SlideShare a Scribd company logo
1 of 53
SPEF Format
So, this has been due for long time. May be
because of tight tape out deadlines, this very
important piece of Physical Design flow just got
missed. And I am sure, like me, many might be
curious to know what is the IEEE SPEF format,
what does various attributes of SPEF file
represent, etc...
So, here you go. Finally got time to
make video on IEEE SPEF format. Let's nail
this down, with below example design, which I
have been using on Udemy
We will take a piece of the circuit and write the
SPEF file for a piece of input port and net
Let's write down the path components of Input
port Din2 in SPEF format, which will also be a
part of large SPEF file
In the above SPEF equivalent "I" represents input port
We can also map the Din2 port with a number, (say *1,
as in below example), and use *1 as reference for Input
Port Din2. So, wherever, we have *1 in SPEF file, it is
nothing but Din2 port. This technique greatly reduces
SPEF file size
This becomes one part of the SPEF file
Further, we will extract the net
connected to Din2 (shown below) and
write a SPEF format of the same
Let's move on with identifying the
path components of net connected to
Din2 port shown below
For now, let's have a distributed RC network representation of
the net (shown below). We do have another way of
representing RC network in reduced format. I will come back
to that in a moment
Now that we know the components of Din2_net, lets write
down the SPEF equivalent of this net. Firstly, we will map the
name "Din2_net" as "*2" and use "*2" hence forth, to refer to
Din2_net.
We will come back to how do we calculate the load value of
"0.15". *D_NET denotes "distributed net". If we had used a
reduced format of the nets, with only single value of resistance
and capacitance, it would had been called as "*R_NET".
Now lets write down the connectivity information of
"Din2_net" or "*2". *CONN section defines connectivity of *2
The below says. *2 (Din2_net) is connected to external port
(*P), named *1 (port Din2), which has direction "input" (I)
The other end of net "*2" is connected to internal pin "Buf1:a"
and having a load (*L) of 0.15 units. I will come back later on
the "units" section, in my following post
This becomes a part of the SPEF file, so lets put it in a file, that
we were maintaining from last post
Notice, we have 3 capacitances and 3 resistances on the net. So
the way to represent them is in below image. The numbers
"121", "122", etc. are the line numbers, *2:1, *2:2.... are the
respective capacitances. I will get back on *2 and *1 and the
beginning and end of the cap section. Broadly, this is to denote
the start and end section of *CAP
Now, we have 4 nodes, and within a pair of node, we have a
resistance, like below
With the introduction of nodes, the representation of
resistance has now become fairly simple, like below
These set of lines for distributed resistance and capacitance,
will become a part of the SPEF file, we were maintaining. So
let;s add it there
These couple of lines (about 20), now represents a small net
and a port. Just imagine, how many lines it will be to extract
parasitics for the complete circuit, below. Its HUGE. I think,
now we nail the reason for having *NAME_MAP. The SPEF file
size greatly reduces, by name mapping. A 10 character net or
port name can be reduced to a 2~3 character net name and can
be referred and reused in the whole SPEF file. These people are
really Smart :)
Remember, I had mentioned, I will get back on units. So here
we go. We have a header file that defines all of the them.
Firstly, the design name, vendor name, version, etc.
Then, the delimiter. Usually, in any report, we see, it as "/". In
SPEF you can have your own delimiter, by defining something
like below
And the units, and power nets
Below is the SPEF file, for one net and one port
So, next time, when you look at the SPEF, just make sure to
open it, and see, if what we discussed in all SPEF format posts,
does make sense.
And, In Lady Windemere's Fan, Oscar Wilde had Lord
Darlington quip that a cynic was 'a man who knows the
price of everything and the value of nothing.'
Let's value SPEF files :)
For more, please refer to below courses
Circuit design & SPICE simulations
https://www.udemy.com/vlsi-academy-circuit-design/?couponCode=forSlideshare
Physical design flow
https://www.udemy.com/vlsi-academy-physical-design-flow/?couponCode=forSlideshare
Clock tree synthesis
https://www.udemy.com/vlsi-academy-clock-tree-synthesis/?couponCode=forSlideshare
Signal integrity
https://www.udemy.com/vlsi-academy-crosstalk/?couponCode=forSlideshare
VLSI – Essential concepts and detailed interview guide
https://www.udemy.com/vlsi-academy/?couponCode=forSlideshare
THANK YOU

More Related Content

What's hot

What is Socket Programming in Python | Edureka
What is Socket Programming in Python | EdurekaWhat is Socket Programming in Python | Edureka
What is Socket Programming in Python | EdurekaEdureka!
 
Writing a Simple OS for Fun
Writing a Simple OS for FunWriting a Simple OS for Fun
Writing a Simple OS for FunSayeed Mahmud
 
06 - ELF format, knowing your friend
06 - ELF format, knowing your friend06 - ELF format, knowing your friend
06 - ELF format, knowing your friendAlexandre Moneger
 
Networking
NetworkingNetworking
NetworkingTuan Ngo
 
Inter-Process communication using pipe in FPGA based adaptive communication
Inter-Process communication using pipe in FPGA based adaptive communicationInter-Process communication using pipe in FPGA based adaptive communication
Inter-Process communication using pipe in FPGA based adaptive communicationMayur Shah
 
Application Layer and Socket Programming
Application Layer and Socket ProgrammingApplication Layer and Socket Programming
Application Layer and Socket Programmingelliando dias
 
Socket programming
Socket programmingSocket programming
Socket programmingMdEmonRana
 
Unix system programming
Unix system programmingUnix system programming
Unix system programmingSyed Mustafa
 
IPv6 technical introduction
IPv6 technical introductionIPv6 technical introduction
IPv6 technical introductionRayed Alrashed
 
Socket Programming Tutorial
Socket Programming TutorialSocket Programming Tutorial
Socket Programming TutorialJignesh Patel
 
IPC mechanisms in windows
IPC mechanisms in windowsIPC mechanisms in windows
IPC mechanisms in windowsVinoth Raj
 
Simple chat room using python
Simple chat room using pythonSimple chat room using python
Simple chat room using pythonVISHAL VERMA
 

What's hot (19)

socket programming
socket programming socket programming
socket programming
 
What is Socket Programming in Python | Edureka
What is Socket Programming in Python | EdurekaWhat is Socket Programming in Python | Edureka
What is Socket Programming in Python | Edureka
 
Writing a Simple OS for Fun
Writing a Simple OS for FunWriting a Simple OS for Fun
Writing a Simple OS for Fun
 
06 - ELF format, knowing your friend
06 - ELF format, knowing your friend06 - ELF format, knowing your friend
06 - ELF format, knowing your friend
 
Networking
NetworkingNetworking
Networking
 
Inter-Process communication using pipe in FPGA based adaptive communication
Inter-Process communication using pipe in FPGA based adaptive communicationInter-Process communication using pipe in FPGA based adaptive communication
Inter-Process communication using pipe in FPGA based adaptive communication
 
Application Layer and Socket Programming
Application Layer and Socket ProgrammingApplication Layer and Socket Programming
Application Layer and Socket Programming
 
Socket programming
Socket programmingSocket programming
Socket programming
 
Sockets
SocketsSockets
Sockets
 
Ipc
IpcIpc
Ipc
 
Socket programming
Socket programmingSocket programming
Socket programming
 
Basic socket programming
Basic socket programmingBasic socket programming
Basic socket programming
 
Unix system programming
Unix system programmingUnix system programming
Unix system programming
 
01 Ipv6 Addressing
01 Ipv6 Addressing01 Ipv6 Addressing
01 Ipv6 Addressing
 
IPv6 technical introduction
IPv6 technical introductionIPv6 technical introduction
IPv6 technical introduction
 
Socket Programming Tutorial
Socket Programming TutorialSocket Programming Tutorial
Socket Programming Tutorial
 
IPC mechanisms in windows
IPC mechanisms in windowsIPC mechanisms in windows
IPC mechanisms in windows
 
Sockets
SocketsSockets
Sockets
 
Simple chat room using python
Simple chat room using pythonSimple chat room using python
Simple chat room using python
 

Similar to SPEF format

OSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfOSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfgadisaAdamu
 
Protocol Ppt[1]
Protocol Ppt[1]Protocol Ppt[1]
Protocol Ppt[1]anil933
 
2.(3)OSI and TCP layer.ppt
2.(3)OSI and TCP layer.ppt2.(3)OSI and TCP layer.ppt
2.(3)OSI and TCP layer.pptprashant554034
 
02 PO_BT1005_C01_0 TCPIP Basis (2).pdf
02 PO_BT1005_C01_0 TCPIP Basis (2).pdf02 PO_BT1005_C01_0 TCPIP Basis (2).pdf
02 PO_BT1005_C01_0 TCPIP Basis (2).pdfNguynTy5
 
Project descriptionIn this Phase, we will develop two nodes.docx
Project descriptionIn this Phase, we will develop two nodes.docxProject descriptionIn this Phase, we will develop two nodes.docx
Project descriptionIn this Phase, we will develop two nodes.docxwkyra78
 
Internet protocol concepts and overview
Internet protocol concepts and overviewInternet protocol concepts and overview
Internet protocol concepts and overviewAGhaKhan01
 
Internet protocol concepts and overview
Internet protocol concepts and overviewInternet protocol concepts and overview
Internet protocol concepts and overviewAGhaKhan01
 
Unit 1 network models & typical examples(part a)
Unit 1 network models & typical examples(part a)Unit 1 network models & typical examples(part a)
Unit 1 network models & typical examples(part a)Vishal kakade
 
Chap 02
Chap 02Chap 02
Chap 02IGNOU
 
Difference between OSI Layer & TCP/IP Layer
Difference between OSI Layer & TCP/IP LayerDifference between OSI Layer & TCP/IP Layer
Difference between OSI Layer & TCP/IP LayerNetwax Lab
 
TCP/IP Training Basic Concepts.
TCP/IP Training Basic Concepts.TCP/IP Training Basic Concepts.
TCP/IP Training Basic Concepts.Amir Panahi
 
Arrays and pointers
Arrays and pointersArrays and pointers
Arrays and pointersKevin Nguyen
 

Similar to SPEF format (20)

Sockets and Socket-Buffer
Sockets and Socket-BufferSockets and Socket-Buffer
Sockets and Socket-Buffer
 
OSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdfOSI open system interconnection LAYERS.pdf
OSI open system interconnection LAYERS.pdf
 
Ch02.ppt
Ch02.pptCh02.ppt
Ch02.ppt
 
Protocol Ppt[1]
Protocol Ppt[1]Protocol Ppt[1]
Protocol Ppt[1]
 
OSI MODEL
OSI MODELOSI MODEL
OSI MODEL
 
2.(3)OSI and TCP layer.ppt
2.(3)OSI and TCP layer.ppt2.(3)OSI and TCP layer.ppt
2.(3)OSI and TCP layer.ppt
 
02 PO_BT1005_C01_0 TCPIP Basis (2).pdf
02 PO_BT1005_C01_0 TCPIP Basis (2).pdf02 PO_BT1005_C01_0 TCPIP Basis (2).pdf
02 PO_BT1005_C01_0 TCPIP Basis (2).pdf
 
Project descriptionIn this Phase, we will develop two nodes.docx
Project descriptionIn this Phase, we will develop two nodes.docxProject descriptionIn this Phase, we will develop two nodes.docx
Project descriptionIn this Phase, we will develop two nodes.docx
 
Chap 02
Chap 02Chap 02
Chap 02
 
Internet protocol concepts and overview
Internet protocol concepts and overviewInternet protocol concepts and overview
Internet protocol concepts and overview
 
Internet protocol concepts and overview
Internet protocol concepts and overviewInternet protocol concepts and overview
Internet protocol concepts and overview
 
Chap 02 osi model
Chap 02 osi modelChap 02 osi model
Chap 02 osi model
 
Unit 1 network models & typical examples(part a)
Unit 1 network models & typical examples(part a)Unit 1 network models & typical examples(part a)
Unit 1 network models & typical examples(part a)
 
Cisco doc
Cisco docCisco doc
Cisco doc
 
Bt0076 tcp ip
Bt0076  tcp ipBt0076  tcp ip
Bt0076 tcp ip
 
Chap 02
Chap 02Chap 02
Chap 02
 
Difference between OSI Layer & TCP/IP Layer
Difference between OSI Layer & TCP/IP LayerDifference between OSI Layer & TCP/IP Layer
Difference between OSI Layer & TCP/IP Layer
 
Chapter 3
Chapter 3Chapter 3
Chapter 3
 
TCP/IP Training Basic Concepts.
TCP/IP Training Basic Concepts.TCP/IP Training Basic Concepts.
TCP/IP Training Basic Concepts.
 
Arrays and pointers
Arrays and pointersArrays and pointers
Arrays and pointers
 

More from kunal ghosh (vlsisystemdesign.com) (6)

The Big Question
The Big QuestionThe Big Question
The Big Question
 
Signal Integrity (SI glitch)
Signal Integrity (SI glitch)Signal Integrity (SI glitch)
Signal Integrity (SI glitch)
 
Common clock path pessimism removal
Common clock path pessimism removalCommon clock path pessimism removal
Common clock path pessimism removal
 
On-Chip Variation
On-Chip VariationOn-Chip Variation
On-Chip Variation
 
Regular buffer v/s Clock buffer
Regular buffer v/s Clock bufferRegular buffer v/s Clock buffer
Regular buffer v/s Clock buffer
 
Clk-to-q delay, library setup and hold time
Clk-to-q delay, library setup and hold timeClk-to-q delay, library setup and hold time
Clk-to-q delay, library setup and hold time
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

SPEF format

  • 2. So, this has been due for long time. May be because of tight tape out deadlines, this very important piece of Physical Design flow just got missed. And I am sure, like me, many might be curious to know what is the IEEE SPEF format, what does various attributes of SPEF file represent, etc...
  • 3. So, here you go. Finally got time to make video on IEEE SPEF format. Let's nail this down, with below example design, which I have been using on Udemy
  • 4.
  • 5. We will take a piece of the circuit and write the SPEF file for a piece of input port and net
  • 6.
  • 7. Let's write down the path components of Input port Din2 in SPEF format, which will also be a part of large SPEF file
  • 8.
  • 9.
  • 10.
  • 11. In the above SPEF equivalent "I" represents input port We can also map the Din2 port with a number, (say *1, as in below example), and use *1 as reference for Input Port Din2. So, wherever, we have *1 in SPEF file, it is nothing but Din2 port. This technique greatly reduces SPEF file size
  • 12.
  • 13.
  • 14. This becomes one part of the SPEF file
  • 15.
  • 16. Further, we will extract the net connected to Din2 (shown below) and write a SPEF format of the same
  • 17.
  • 18. Let's move on with identifying the path components of net connected to Din2 port shown below
  • 19.
  • 20. For now, let's have a distributed RC network representation of the net (shown below). We do have another way of representing RC network in reduced format. I will come back to that in a moment
  • 21.
  • 22. Now that we know the components of Din2_net, lets write down the SPEF equivalent of this net. Firstly, we will map the name "Din2_net" as "*2" and use "*2" hence forth, to refer to Din2_net.
  • 23.
  • 24. We will come back to how do we calculate the load value of "0.15". *D_NET denotes "distributed net". If we had used a reduced format of the nets, with only single value of resistance and capacitance, it would had been called as "*R_NET". Now lets write down the connectivity information of "Din2_net" or "*2". *CONN section defines connectivity of *2
  • 25.
  • 26. The below says. *2 (Din2_net) is connected to external port (*P), named *1 (port Din2), which has direction "input" (I)
  • 27.
  • 28. The other end of net "*2" is connected to internal pin "Buf1:a" and having a load (*L) of 0.15 units. I will come back later on the "units" section, in my following post
  • 29.
  • 30. This becomes a part of the SPEF file, so lets put it in a file, that we were maintaining from last post
  • 31.
  • 32. Notice, we have 3 capacitances and 3 resistances on the net. So the way to represent them is in below image. The numbers "121", "122", etc. are the line numbers, *2:1, *2:2.... are the respective capacitances. I will get back on *2 and *1 and the beginning and end of the cap section. Broadly, this is to denote the start and end section of *CAP
  • 33.
  • 34. Now, we have 4 nodes, and within a pair of node, we have a resistance, like below
  • 35.
  • 36. With the introduction of nodes, the representation of resistance has now become fairly simple, like below
  • 37.
  • 38. These set of lines for distributed resistance and capacitance, will become a part of the SPEF file, we were maintaining. So let;s add it there
  • 39.
  • 40. These couple of lines (about 20), now represents a small net and a port. Just imagine, how many lines it will be to extract parasitics for the complete circuit, below. Its HUGE. I think, now we nail the reason for having *NAME_MAP. The SPEF file size greatly reduces, by name mapping. A 10 character net or port name can be reduced to a 2~3 character net name and can be referred and reused in the whole SPEF file. These people are really Smart :)
  • 41.
  • 42. Remember, I had mentioned, I will get back on units. So here we go. We have a header file that defines all of the them. Firstly, the design name, vendor name, version, etc.
  • 43.
  • 44. Then, the delimiter. Usually, in any report, we see, it as "/". In SPEF you can have your own delimiter, by defining something like below
  • 45.
  • 46. And the units, and power nets
  • 47.
  • 48.
  • 49. Below is the SPEF file, for one net and one port
  • 50.
  • 51. So, next time, when you look at the SPEF, just make sure to open it, and see, if what we discussed in all SPEF format posts, does make sense. And, In Lady Windemere's Fan, Oscar Wilde had Lord Darlington quip that a cynic was 'a man who knows the price of everything and the value of nothing.' Let's value SPEF files :)
  • 52. For more, please refer to below courses Circuit design & SPICE simulations https://www.udemy.com/vlsi-academy-circuit-design/?couponCode=forSlideshare Physical design flow https://www.udemy.com/vlsi-academy-physical-design-flow/?couponCode=forSlideshare Clock tree synthesis https://www.udemy.com/vlsi-academy-clock-tree-synthesis/?couponCode=forSlideshare Signal integrity https://www.udemy.com/vlsi-academy-crosstalk/?couponCode=forSlideshare VLSI – Essential concepts and detailed interview guide https://www.udemy.com/vlsi-academy/?couponCode=forSlideshare