Hello,
I realized last night, that I was celebrating my work anniversary. Thanks Linkedin for reminding me that :). And, thought, let’s celebrate this one by nailing SPEF format. What a way to celebrate work anniversary, by working :).
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 🙂
Thanks
Kunal
Some spef files having missing D_NET information. Why there are such spef files in the first place and how we can instruct the synthesis tools to dump this information in the spef file?