I have come up with a question and i would really want to hear the opinion of more expert people in here about my issue concerning parasitic extraction in an hierarchical design.So,let me pose my question more clearly :
I have an hierarcical design.Let's say that the top level schematic's name is A.
A consists of two sub-cells that i will give them the name B1,B2.
B1 has 6 more sub-cells (C1,C2,C3,C4,C5,C6).
I know hot to perform hierarchical RCX with the Hierarchy Editor tool of Cadence but...if i want to take into account the parasitics of the interconnections of some specific sub-cells what is the way to implement the extraction procedure and take correct results?Can Hierarchy Editor do this or i need another tool of cadence and subsequently an extra license for this?
A testbench for me in the hierarchy editor would be :
C5,C6 --> av_extracted
and i want to extract as well the interconnections between C5-C6 cells and between B1-B2 cells.I should note that all sub-cells have their own physical implementation (layout view in other words).
Thanks in advance for any helpful answer.
My Best Regards,
Hi Jimito13First, a minor correction. it is not correct to say "perform hierarchical RCX with the Hierarchy Editor". It is not possible to do hierarchical RC extraction using the Hierarchical Editor (HE). It is meant for controlling the views to use for simulation netlisting, not parasitic extraction. Parasitic extraction can only be done using QRC parasitic extractor. I think you meant to say "perform mixed views simulation with the Hierarchy Editor". You can do it as follows:a. Do hierarchical Assura LVS for layout cell "A" with ?preserveCells avParameters option. The cell file should contain B1, B2, C1, C2, C3, C4, C5 & C6b. Do hierarchical parasitic extraction with "excluded nets proper" option using QRC. Except for the required nets (e.g. C5-C6), exclude all other nets for RC extractionc. Create testbench schematic "myTB" with cell A in itd. Create a config view for "myTB" using HEe. In HE, set views of A, B2, C5 and C6 as "av_extracted"f. Do simulation using config view in ADE-L or ADE-XLThis should give you what you want. : ) It takes a bit of time to exclude the unwanted nets but there is no choice because hierarchical extraction only works with "excluded nets" and "excluded nets proper" options."excluded nets" option gives you R for the non-excluded nets and C on all nets. "excluded nets proper" options gives you RC on only the non-excluded nets. Please refer to $QRC_HOME/doc/qrcxUser/qrcxUser.pdf for more details.Best regardsQuek
In reply to Quek:
Thanks a lot for your helpful feedback :-) You are absolutely right with your first paragraph,QRC performs the extraction procedure and not HE,i formulated it wrong in my first message.I have a couple of additional questions before closing this topic.
1. ?preserveCells gives a drop-down menu with File & Cells choises.What should i select?Sould i syntax a file and input it into Assura via the menu below or i can insert the names of the cells manually?I would appreciate if you could send me a screenshot as an example or an example syntax of a file.
2.The Vss rail of my circuit is one and common to all cells from the lowest level to the top level via various interconnections from level to level.Is it possible to exclude it from extraction of some specific cells and not from others?I suppose that it is not feasible since in reality Vss i one entity (irrelevantly if it is created from Vss cables of individual low level cells and the interconnections among them) but i am wondering if there is a technique to cheat Assura QRC and make the selective extraction i desire...
Thanks in advance.
In reply to jimito13:
Hi Jimito13You can enter the names in a file if there are lots of cells to preserve. It would be easier editing a file. E.g. for spef/dspf flow, we can use SKILL to grap cellnames from the layout, dump them into a file and then use that file for ?preserveCells. If there are just a few cells to preserve, you can just enter them in the form.It is possible to do the selective extraction of RC for a net but it would be quite an elaborate scheme that requires re-compilation of QRC tech directory with -res_blocking and -blocking options. Appropriate marker layers would most likely also have to be added to the layout in order to do the blocking. I think it is not really worth the effort. : )Best regardsQuek
What you should see on the form:
I do not know how to thank you..You have helped me a lot up to now and the least i can say is a BIG THANKS :-)
One final question.What is the difference between Cells & Exclude Cells White Boxes that i must fill in at the above ?PreserveCells option's form.
Thanks in advance again :-)
Hi Jimito13You are welcome. : )Assuming that you have cells A1, A2 and A3. If you enter only "A1" in "Cells" box, it means only cell A1 will be preserved. "Exclude" box is used to exclude specific cells when wildcards are used in "Cells" box. E.g. you have entered "A*" in Cells box to save a little typing but actually you do not want cell A1 to be preserved. In this case, you will also need to enter "A1" in Exclude box.Best regardsQuek
Ok,for wildcards case i got it.For the example i gave you above,with the multiple cells of the hierarchy,if i fill in the cells B1,B2,C1,C2,C3 in the Cells box and the cells C4,C5,C6 in the Exclude Cells box,this means that LVS will be executed on B1,B2,C1,C2,C3?And how this choise affects the next step that is QRC?I am a little bit confused,sorry if i become annoying...
It does not mean that lvs will be executed only on B1, B2, C1, C2 and C3. It means that during lvs, only cells B1, B2, C1, C2 and C3 will be preserved. During lvs, cells might sometimes be promoted to a higher level of hierarchy in order to match the schematic. As such, the cell will no longer be present in the final lvs database. This would create a problem for hierarchical QRC extraction because QRC works on the lvs database and if there are no cells in it, it would not be possible to do a hierarchical extraction. QRC normally gives a flat output unless hierarchical extraction is selected.Hence in order to do QRC hierarchical extraction, the cells have to be present in the lvs database and in order to ensure that they are present, we use ?preserveCells option. You should not enter C4, C5 and C6 in the Exclude box because we want them to be preseved too. Otherwise you will not get the full cell hierarchy from QRC. C4, C5 and C6 should also be entered in the Cells box. You can then choose to use "av_extracted" or "schematic" for these cells in the Hierarchy Editor.Best regardsQuek
Ok Quek,everything is clear now!Thank you once more for your time to answer my questions and for your precious help :-)
Good Morning Quek,
I am gonna need your precious advice one more time.When a create a config view with HE in order to post simulate my circuit with mixed views (that is : schematic for cell A,av_extracted for cell B,schematic for cell C etc...),how the interconnection among various cells are considered by the simulator?Are they taken as ideal like in a schematic only simulation or real as designed in the layout of the top level cell that contains all the individual sub-cells?
Thanks a lot in advance.
Each cellView that you're picking in the hierarchy editor will have nets and components as contained in that cellView. So for example, if your av_extracted view has parasitic R and C on some nets, those will be included in the design being netlisted.
Nothing additional will get invented, if you like. You simply are netlisting the components and connectivity in the cellViews you've picked.
So, any ideal blocks you have will be ideal. Any parasitic extracted blocks you have will have parasitics. This strikes me as being rather obvious, so I'm not quite sure why you're asking this? All the hierarchy editor does is allow you to choose which representations will be used for each cell, or instance (or occurrence) in the hierarchy, and is used by the netlisters so they know which blocks to netlist as the hierarchy is traversed.
In reply to Andrew Beckett:
Thanks for your reply at first.Maybe i didn't pose my question clear enough at first.What you say is absolutely obvious so it would never be the subject of a question.Suppose that i have a cell A with schematic representation and cell B with av_extracted representation during simulation with HE of the top level cell C (A,B and their interconnection are the cells that create the top level circuit C).How the simulator is going to consider the connection between A and B if the configuration is as mentioned above (A-->Schematic , B-->av_extracted)?
Presumably for a particular net which exists in cell A, cell B and also in the top level C (i.e. the connection between the instances), you'll have the parasitics on that net which exist in cell B, the ideal connections that you have in cell A, and whatever components on that net which come from cell C.
This still seems fairly obvious, so I must be missing something still...
Perhaps you should try it and take a look at the resulting netlist? That may clarify any confusion or concerns you may have?
Hi Jimito13I think Andrew has already explained the key point. You will get whatever that is in the view which you have set in HE. We have the following situation:Top cell C contains 2 cells A and B. In HE, cell A uses schematic view and B uses av_extracted view. C is a schematic.Since C is a schematic, there are no parasitics in the line connecting cells A and B. Simulator does not need to be concerned about this situation because this is the job of the netlister. Here is what you will get:a. Netlister writes connection between A and B as ideal connectionb. It descends into schematic view of cell A and netlist the devicesc. It descends into av_extracted view of cell B and netlist the devices and parasitic RCsHope that this clears up your confusion. : )Best regardsQuek
Ok guys i got it now.Maybe my confusion was indeed obvious but i just wanted some confirmation.Thanks a lot for your time and your precious answers.