I'm using IC6.1.5 and an external simulator. It has a predefined set of mapping functions that convert schematic names to netlist names. For example, if I name a node in my schematic to begin with a "." (like .monitor for example), this name get converted to _net0 during netlisting.
I want to override this default behavior so that I can control the mapping, but my attempts so far have been unsuccessful.
Here's what I did:
I defined the $SIMRC to point to a directory in which I have my own .simrc file. In my .simrc file, I defined
hnlSetDef('mapNetFirstChar list('("." "net_") ))
After this, I have completely exited IC and restarted. I reopen my saved state for the external simulator and from the ADE menu I do a Simulation > Netlist > Recreate. However, my netlist still contains _net0 instead of the desired net_monitor for the net named .monitor in my schematic.
What am I missing? Do I need to force unbinding somehow since mapNetFirstChar has been previously defined by the external simulator? How do I do the unbinding?
Thanks in advance for all tips and help.
By "external simulator" I assume you don't mean a Cadence simulator? ADE netlisters use a wrapper around the underlying OSS capability, and so initialize these kind of settings per simulator.
You have to do it by customizing the netlister so that the new settings get done within nlInitialize for the netlister you're using. Similar examples are shown in these two solutions:
If you're using hspiceD or spectre there may be variables to do what you want - not 100% sure - but if you state if it's one of these I can check.
Yes, the simulator is not a Cadence product, but has been integrated into Cadence and appears as a choice in ADE (the default choice, in fact). I believe the context file for this simulator defines the mapping which I wish to alter.
I will have a look at the soultions you have listed and see if I can make some progress using them. Thank you.
I assume from your response that the .simrc file contents would only come into play if the coding of the netlisting for the external simulator has been written to account for entries in the .simrc, otherwise it is basically ignored. Is that correct?
The real issue I'm trying to solve is that different versions of this non-Cadence product use inconsistent mapping and this breaks the OCEAN scripts that people have made as they are forced to move to updated versions. I'm looking for a way to add a layer on top which redefines the mapping back to the original version and still allows use of the updated versions.