Rodrigo Wuerdig
05/30/2024, 10:25 PMuser_analog_project_wrapper
? Is it by synthesizing the block in openlane and doing the routing "manually" using magic?
I found some people asking the same, but no good answer: is it possible to route in user_analog_project_wrapper
similarly to what is done in the digital flow and the user_project_wrapper
? The idea of just porting and tweaking the config files between wrappers work?Mitch Bailey
05/31/2024, 12:21 AMcaravel_user_project_analog/openlane/Makefile
may be a bad link. I’m pretty sure you can delete it and user caravel_user_project/openlane/Makefile
. This is the makefile that actually calls openlane and is imported in caravel_user_project_analog/Makefile
.
2. Calling a verilog block from the analog spice can be tricky. If you’re using xschem, you’ll need to create a symbol with the pins in the verilog port order. You can either use the sim_pinnumber
property, or manually edit the symbol file to put the pins in the order you want. Set this property on the symbol type=primitive
.
3. For LVS, you’ll need to read both spice and verilog netlists which can be specified in the lvs/<block>/lvs_config.json
file. See examples in mpw_precheck/checks/be_checks/tech/sky130?/lvs_config.*.json
. This LVS will run with make lvs-<block>
if you use the caravel_user_project/Makefile
. I don’t think caravel_user_project_analog/Makefile
has this target yet.
4. I don’t think the analog flow has timing checks, so be aware of that.Rodrigo Wuerdig
05/31/2024, 12:27 AM