Another question is about Verilog-A and xschem. I don't know if there are open source digital simula...
s

Stefan Schippers

over 1 year ago
Another question is about Verilog-A and xschem. I don't know if there are open source digital simulators that also support Verilog-A. The ngspice SPICE simulator can simulate Verilog-A modules that are compiled into .osdi files and placed in a directory known by the simulator. A good example is the reram testbench also provided by xschem_sky130. Since the top level netlist is a regular SPICE netlist all I needed to do was to add the correct netlisting rule for the reram subcircuit. See the
tb_reram.sch
schematic. The
XR1
symbol is a subcircuit. The subcircuit instantiates the 'N... element that is a verilog-A primitive. This element calls a model that sets some parameter values and binds to a verilog-A module: •
XR1
--> subcircuit
sky130_fd_pr_reram__reram_cell
• subcircuit
sky130_fd_pr_reram__reram_cell
--> instantiates the '`N`' line with
sky130_fd_pr_reram__reram_model
model. • The
sky130_fd_pr_reram__reram_model
model sets some parameter values and binds to the
sky130_fd_pr_reram__reram_module
Verilog-A code. • The
sky130_fd_pr_reram__reram_module
code placed in a
<http://sky130_fd_pr_reram__reram_module.va|sky130_fd_pr_reram__reram_module.va>
file is compiled with
openvaf
and the generated .osdi file is placed in a place known by ngspice. • In the netlist there is a
pre_osdi
/path/to/sky130_fd_pr_reram__reram_module.osdi
that allows ngspice to link in the compiled module.
👀 1
0
🌏 1
Hi all, I am facing the a routing congestion error in the step "Running Global Routing Resizer Timi...
s

Sergi Albort

almost 2 years ago
Hi all, I am facing the a routing congestion error in the step "Running Global Routing Resizer Timing Optimizations". This congestion error is independent of the the position of the macros, either if are placed manually our auto. Furthermore this error only pop ups when I used a caravel flow scheme, with really flows there is not any problem. Finally, opening the openroad gui it can be noticed that is due to a "high congestion area" in the center of the design. The strange part of this error is that this step is before placing and routing the inner logic of this design, so it does not make that much sense to talk about congestion when only macros are placed. I would be so glad is somebody could help me out with this problem. The git link of the project is: https://github.com/salb97/efabless_subsystem_caravel and the run is server_config [STEP 14] [INFO]: Running Global Routing Resizer Timing Optimizations (log: designs/efabless_segmentation_memories/runs/server_config/logs/routing/14-resizer_timing.log)... [ERROR]: during executing openroad script /openlane/scripts/openroad/resizer_routing_timing.tcl [ERROR]: Log: designs/efabless_segmentation_memories/runs/server_config/logs/routing/14-resizer_timing.log [ERROR]: Last 10 lines: [INFO GRT-0101] Running extra iterations to remove overflow. [INFO GRT-0103] Extra Run for hard benchmark. [INFO GRT-0197] Via related to pin nodes: 39480 [INFO GRT-0198] Via related Steiner nodes: 3402 [INFO GRT-0199] Via filling finished. [INFO GRT-0111] Final number of vias: 134804 [INFO GRT-0112] Final usage 3D: 3743051 [ERROR GRT-0118] Routing congestion too high. Check the congestion heatmap in the GUI. Error: resizer_routing_timing.tcl, 39 GRT-0118 child process exited abnormally [ERROR]: Creating issue reproducible...