Instantiating "nmos" (not "nmos4") symbol view from "cds_generic" library in which the model field is populated with "mod". It extracts as follows:
M6 (0 0 0 0) mod
The symbol view has only 3 terminals, and there are only 3 terminals in the pin list. There appears to be an error in the "spectre" view, which shows 4 terminals. Only fix is to copy "symbol" and "spectre" views to an editable library and delete a terminal from the "spectre" view. If this is indeed an error, can it be corrected in the next release? If there is already an open ticket I appologize for not finding it.
Hi jmoriartyActually "cds_generic" is not one of the libraries that can be found in Virtuoso installation. I believe that it has been most likely created by your CAD support. You will need to get their help to resolve the issue. In the meantime, you can try using "nmos" cell from "analogLib" library. Just add the following line in your cds.lib file:DEFINE analogLib $CDSHOME/tools/dfII/etc/cdslib/artist/analogLibBest regardsQuek
Thanks very much Quek, and sorry. I'll wipe the egg off of my face and go postal on my CAD team.
Sorry; spoke too quickly. Exact same problem with analogLib, which is probably from where the local cds_generic library is copied. I'm afriad that the issue is still open, but it applies to the "nmos" cell in the "analogLib" library. The spectre view has four terminals and it should have only three, so the the device extracts as a 4-terminal device when the "symbol" view is instantiated. Just change "cds_lib" to "analogLib" in the original post, and everything else applies. Sorry for the confusion.
Hi JackActually the situation is as follows:The nmos cell has only 3 terminals but will be netlisted as a usual 4 terminal mos device as requested by bsim model requirements. The 4th terminal (bulk) is hidden because it has been set as an inherited connection in the spectre view. If you open up the properties form of the "B" pin in the spectre view, you will find that the inherited property name is "bulk_n" and the default global net is gnd!.Inherited connection allows easy overriding of a net from the top level. E.g. if user does not specify the value of bulk_n property, the bulk terminal will be netlisted using the global ground "0". That's why you have "0" as the net name in your netlist.You can override the default gnd! as follows:a. Create a new schematic and place an instance of "nmos" from analogLibb. Open ADE and do spectre netlistingc. You will get "0" as the bulk netd. Now open up properties form of the nmos instancee. Add a "netSet" bulk_n property as shown below and set its value to "abc"f. Check and save the schematicg. Re-do netlisting using ADEh. You will now have (net1 net2 net3 abc) in the netlist and not (net1 net2 net3 0)Unless your spectre model file specifically uses 3 terminal model instead of 4 terminals, you should not remove the inherited connection in the spectre view. If you would like to specify the terminal net explicitly, you should use "nmos4" cell instead of "nmos" cell.Hope that this clears up the issue. : )Best regardsQuek
Thanks very much Quek. Actually, once the cell is copied, it's just as easy to delete the two pins from the spectre view, though I have used the netSet property before in other situations.
The reason that a three-terminal symbol is useful is that models for discrete DMOS devices generally are three-terminal. Having a three-terminal symbol available in a standard spectre library allows the user simply to instantiate the three-terminal symbol and populate the model field with the name of the model provided by the DMOS manufacturer. (It is assumed that the models library has already been added to the user's model path.)
I'd like to request that a three terminal symbol be added to analogLib if possible. Cadence could call it "nmos3" to fit with the "nmos" and "nmos4" devices already there. I think it would get used, maybe more than the other two cells because most companies use their own libraries or use libraries from fab PDKs for design, either of which includes symbols compatible with bsim models. On the other hand, it's easy to create a copy, so not really that important.
Thanks again Quek.