Jordan
06/11/2024, 7:32 PMMitch Bailey
06/12/2024, 1:03 AMcaravel_user_project/Makefile includes the lvs-<block> target where <block> is a subdirectory of lvs and contains an lvs_config.json file. (ie. lvs/<block>/lvs_config.json).
Unfortunately, the caravel_user_project_analog/Makefile may not have this target (the analog version of the Makefile may be out-of-date).
The lvs system using lvs_config.json is hierarchical. For example, if you had digital blocks digital1 and digital2 each with lvs_config.json files, you could include these in your user_analog_project_wrapper/lvs_config.json file like this:
"INCLUDE_CONFIGS": [
"$UPRJ_ROOT/lvs/digital1/lvs_config.json",
"$UPRJ_ROOT/lvs/digital2/lvs_config.json"
]
And it should pull all the relevant information.
There are some things that you need to be careful of:
• In xschem, create a symbol for each digital block with the pins in the same order as the verilog port order. You can use the sim_pinorder (I think) property to order the pins, but I find it easiest to open the text file and put them in order there.
• Set the symbol type=primitive property (not type=subcircuit).
• Mixed signal LVS is case insensitive, so be sure your verilog doesn’t use names that only differ in case.
• Analog layouts may require selective flattening during LVS. This can be specified in the lvs_config.json file, so you shouldn’t need any preprocessing.
I’d be happy to help with any questions.Jordan
06/12/2024, 12:40 PMMitch Bailey
06/12/2024, 1:15 PMLinen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by