Let's assume you are managing a schematic-driven top level design in Virtuoso and you want to import a digital block Verilog netlist into Virtuoso. This is a very common use model in mixed-signal implementation. While the Layout Database is saved in Open Access (OA), the optimized Verilog netlist needs to be imported into Virtuoso.
The Common Power Format (CPF) describes the design power intent for the whole flow, including digital implementation in Encounter, custom/analog implementation in Virtuoso Schematic Editor, and further into simulation. In Virtuoso Schematic XL, CPF creates the inherited connections for you in an automated way. You may want to reuse the same CPF that was used for your digital block implementation in Encounter.
CPF is not a command file. It doesn't contain power domain coordinates, power routing details, number of power switches, or implementation details.
Within the Virtuoso IC 6.1.5 release it is possible to describe your low power intent through a CPF file. This posting describes the method according to the use model described above. Further information, including supported CPF commands, is available in the Virtuoso Schematic XL User Guide.
A consistent power intent for the analog and digital parts of your design is required. You could have explicit power pins and implicit net sets and net expressions defined in parallel. CPF will update or create the net sets and expressions.
All of the power and ground nets (PG nets) in your design should have the signal type Power or Ground. The default signal type is Signal. This might be the case if you take a closer look at your standard cell library. Power and Ground nets are very often defined as type signal. Another requirement is that your standard cell power connection must be described as an inherited connection. Before you start, make sure that the CPF created is verified for correctness using the Cadence Conformal Low Power product.
And as mentioned before, you need Schematics XL to make use of CPF.
Step by Step introduction
After Verilog import Open Check - Rules Setup - Inherited Connections and enable the CPF nets error switch.
To verify the signal types choose Options - Check and enable "set Signal Type from Net and Type Registration."
Applying the right signal type
As mentioned above, we need to make sure to set the right signal type. Descend in the hierarchy by double clicking on a symbol until the standard cells occur. Are your PG nets defined as inherited connections, but the signal type is Signal? If so you need to change it. Because your standard cell library usually is set to read only, we need to change the cells in your design using the register API to provide a complete list of all your PG nets (don't miss the std cell PG nets):
ciRegisterNet("power" list("VDD" "vdd" "VDD!" "VDDA" "VDDD" ....) )
ciRegisterNet("ground" list("VSS" "vss" "VSS!" "GND" "gnd" ....) )
Now check if the PG Signal type gets applied correctly:
Finally we use the Check - Hierarchy command to propagate the changes to the schematic. Don't enable save schematics since you may don't have write access to the Library
Open "File - Import Power Intend" or type schHiAddCPFNetSets() in the CIW command line to open the CPF import form. Library, Cell and View Name are already filled in. The View Name List may be changed by adopting by editing "Options - Check - Views to check.
Specify your CPF File name
Use ‘Register Special Low Power cells' for Isolation cells , Level shifter cells, Power switches, ...Use ‘Remove existing Power Intend' if you are not sure which power is defined and you want to rebuild the power connection. The alternative is to use "Edit - Power Intend - Remove netSet properties." The progress is logged in CIW and CDS.log files.
Again, the last step is to propagate the power intent through the hierarchies and we use "Check - Hierarchy."
After importing and applying the CPF file you may want to verify the created power intent. To verify the created power domains, rules, mappings ... Enable "Window - Assistant - Power Intend Export" for a review.
To verify the created inherited connections on a specific instance open "Edit- Net Expressions - Available properties" and select a block or instance.
If you want to verify the evaluated names from net expressions open "Edit- Net Expressions - Evaluated Names." In case you want to review which instances are connected to a PG net, use the Search assistant to search for a net and check the User properties.