Micah Tseng
11/21/2022, 7:42 PMand2_0
#(
.VGND ( VSS ) ,
.VNB ( VSS ) ,
.VPB ( VDD ) ,
.VPWR ( VDD ) ,
.prefix ( sky130_fd_sc_hd__ )
)
x2 (
.A( S ),
.B( IN ),
.X( OUT_1 )
);
However, OpenLane expects an instantiation to look like
sky130_fd_sc_hd__and2_0 x2 (
.A( S ),
.B( IN ),
.X( OUT_1 )
);
So I wrote a python script to handle removing the parameters and inserting the full name of the standard cell. You can find the script here: https://github.com/UAH-IC-Design-Team/sky130-10-bit-SAR-ADC/blob/dev/util/verilog_parameter_strip.py
Bussing:
Since I ran simulations in Spice, I used the Xschem spice bussing notation: net_name[1..10]
rather than the verilog bussing net_name[1:10]
. It worked well for simulating thing, but converting that in the netlist to verilog acceptable bussing in python turned into a nightmare and I ended up simply redoing all the schematics to remove bussing entirely.
FEATURES
1. Verilog: What do you think about adding a checkbox that would modify the netlist generation and strip the parameters and insert the full name of the of the cell?
2. Bussing: This one is harder, but it would be nice to have a way to use busses, but still be able to output both spice and verilog netlists. Like perhaps, always inputing verilog busses in the schematic, but there is a checkbox to convert the busses to spice busses on the netlist generation? I’m not sure on this one what is the best/easiest, but it would be nice for this workflow and also would also easily allow both spice and event based simulations for thorough design verification.
I am a little strapped for time until the semester finishes, but if I can help out in anyway, let me know.