Its actually possible - using "supplySensitive" connect elements - to use a single logic discipline in the simulations..
But this always makes me nervous because it doesn't fail to simulate when you connect a 3v logic net to a 1v logic net.. (since there is only 1 discipline)
Easiest way is simply to create 2 logic disciplines..
since High voltage logic CAN be used at lower voltage, I like to use a supplySensitive discipline for any 3v gates.. (ie logic_ss) and while I'd like to do the same for my 1v devices, I'd ahve to go back in all the verilog code from the StdCell Libraries and modify them to get the supply sensitive references in there.. Which I might do SOMEDAY, but for now, I just the default discipline..
Which I set to logic_cmos - because I know that "logic" is a keyword in systemverilog that is not related to disciplines.. so I refuse to use it anymore!
In my connect rules I don't allow a direct connection between logic_ss and logic_cmos.. But I can write my Shifters so that HV to LV has logic_ss input , logic_cmos output,
and the LV2HVshifter has logic_cmos input and logic_ss output.
I'll probably have to upgrade my stdcell libraries on my next project..
Cadence could probably send you a set of connect models like this if you don't have them..
- oh, you do have to
Code:`include "disciplines_ss.vams"
in each of the models where you use these disciplines
(you can put the path to these in your hdl.var file that is used when you netlist schematics.. and run ams)
so there is never a problem..
then you write the connectRules to include all of these,
L2E , E2L and BiDir for the logic_cmos to/from electrical
L2E_ss E2L_ss and BiDir_ss for the logic_ss to/from electrical
and you're set.