Apologies for leaving this extremely last minute but does anyone have any tips on how to fix this er...
j

James Meech

almost 2 years ago
Apologies for leaving this extremely last minute but does anyone have any tips on how to fix this error when running make user_project_wrapper for the design challenge? Running make user_proj_example completed without errors.
[STEP 10]
[INFO]: Running Global Routing (log: ../home/james/Desktop/Efabless/Project/RNG/openlane/user_project_wrapper/runs/23_11_03_01_07/logs/routing/10-global.log)...
[ERROR]: during executing openroad script /openlane/scripts/openroad/groute.tcl
[ERROR]: Log: ../home/james/Desktop/Efabless/Project/RNG/openlane/user_project_wrapper/runs/23_11_03_01_07/logs/routing/10-global.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: 421
[INFO GRT-0198] Via related Steiner nodes: 0
[INFO GRT-0199] Via filling finished.
[INFO GRT-0111] Final number of vias: 3608
[INFO GRT-0112] Final usage 3D: 33730
[ERROR GRT-0119] Routing congestion too high. Check the congestion heatmap in the GUI and load /home/james/Desktop/Efabless/Project/RNG/openlane/user_project_wrapper/runs/23_11_03_01_07/tmp/routing/groute-congestion.rpt in the DRC viewer.
Error: groute.tcl, 37 GRT-0119
child process exited abnormally
I tried to open the groute-congestion.rpt in the openroad -gui DRC viewer but it segfaults as soon as I open the .rpt file:
OpenLane Container (d054702):/openlane$ openroad -gui
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'
libGL error: MESA-LOADER: failed to retrieve device information
libGL error: unable to load driver: i915_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: i915
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
OpenROAD 41a51eaf4ca2171c92ff38afb91eb37bbd3f36da
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
Signal 11 received
Stack trace:
 0# 0x0000000000D429A7 in openroad
 1# 0x00007F9B0C88B400 in /lib64/libc.so.6
 2# odb::dbBlock::getDataBase() in openroad
 3# gui::DRCWidget::loadTRReport(QString const&) in openroad
 4# gui::DRCWidget::loadReport(QString const&) in openroad
 5# gui::DRCWidget::selectReport() in openroad
 6# 0x00000000012ABF85 in openroad
 7# QMetaObject::activate(QObject*, int, int, void**) in /lib64/libQt5Core.so.5
 8# 0x00007F9B0E522B5D in /lib64/libQt5Widgets.so.5
 9# 0x00007F9B0E523F8E in /lib64/libQt5Widgets.so.5
10# QAbstractButton::mouseReleaseEvent(QMouseEvent*) in /lib64/libQt5Widgets.so.5
11# QWidget::event(QEvent*) in /lib64/libQt5Widgets.so.5
12# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
13# QApplication::notify(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
14# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
15# QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) in /lib64/libQt5Widgets.so.5
16# 0x00007F9B0E483721 in /lib64/libQt5Widgets.so.5
17# 0x00007F9B0E485D65 in /lib64/libQt5Widgets.so.5
18# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
19# QApplication::notify(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
20# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
21# QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) in /lib64/libQt5Gui.so.5
22# QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) in /lib64/libQt5Gui.so.5
23# QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Gui.so.5
24# 0x00007F9B11819950 in /lib64/libQt5XcbQpa.so.5
25# g_main_context_dispatch in /lib64/libglib-2.0.so.0
26# 0x00007F9B095F13F8 in /lib64/libglib-2.0.so.0
27# g_main_context_iteration in /lib64/libglib-2.0.so.0
28# QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
29# QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
30# QCoreApplication::exec() in /lib64/libQt5Core.so.5
31# gui::startGui(int&, char**, Tcl_Interp*, std::string const&, bool) in openroad
32# ord::tclAppInit(Tcl_Interp*) in openroad
33# Tcl_Main in /lib64/libtcl8.5.so
34# main in openroad
35# __libc_start_main in /lib64/libc.so.6
36# 0x0000000000D3C6C7 in openroad
Segmentation fault (core dumped)
Hmmmm I'm trying to do LVS and at this point I'm not sure if I'm having a magic problem, a spice pro...
p

Pepijn de Vos

over 3 years ago
Hmmmm I'm trying to do LVS and at this point I'm not sure if I'm having a magic problem, a spice problem, a klayout problem, or some other problem. I'm running @Amro Tork’s https://github.com/mabrains/sky130_klayout_pdk/blob/main/scripts/run_standard_lvs.py script, on my gds file https://github.com/pepijndevos/sky130_lvds which shells out to @Tim Edwards’s magic and netgen. My gds is very incomplete, but I just want to get all the things working before I go all the way and have to ge back and fix a million things. So I made this dummy schematic of just the mosfets I drew
* schematic.cir
* .lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt
XM3 cm V- bufneg VDD_IO sky130_fd_pr__pfet_g5v0d10v5 l=0.5 w=10 m=10
XM2 cm V+ bufpos VDD_IO sky130_fd_pr__pfet_g5v0d10v5 l=0.5 w=10 m=10
And then I ran
python ../sky130_klayout_pdk/scripts/run_standard_lvs.py lvds.gds output.txt schematic.cir report.txt TOP
which generates some
.ext
files as well as write some spice to
output.txt
* NGSPICE file created from TOP.ext - technology: sky130A

.subckt sky130_fd_pr__pfet_g5v0d10v5_VU6JZ7 a_50_n1036# w_n144_n1098# a_n50_n1062#
+ a_n108_n1036#
X0 a_50_n1036# a_n50_n1062# a_n108_n1036# w_n144_n1098# sky130_fd_pr__pfet_g5v0d10v5 ad=2.9e+12p pd=2.058e+07u as=2.9e+12p ps=2.058e+07u w=1e+07u l=500000u
.ends

.subckt TOP
Xpfet_g5v0d10v5_7x05[0|0] m1_n102_n1172# w_n1336_n1674# m1_n66_1210# m1_n102_n1172#
+ sky130_fd_pr__pfet_g5v0d10v5_VU6JZ7
Xpfet_g5v0d10v5_7x05[1|0] m1_n102_1628# w_n1336_n1674# m1_n66_4010# m1_n102_1628#
[...]
But that's where the happiness ends. There was an error message from magic, but maybe it can be ignored?
Error while reading cell "$$$CONTEXT_INFO$$$" (byte position 338): Cell "contact" was already defined in this file.
Error while reading cell "$$$CONTEXT_INFO$$$" (byte position 338): Ignoring duplicate definition
But then comes the netgen part and here it completely goes of the rails. If I add a
.lib
statement it just gives an error, and if I don't, it seems to generate a dummy device and then complain that it doesn't have any properties:
Netgen 1.5.224 compiled on vr 24 jun 2022 10:27:18 CEST
Warning: netgen command 'format' use fully-qualified name '::netgen::format'
Warning: netgen command 'global' use fully-qualified name '::netgen::global'
Reading netlist file output.txt
Call to undefined subcircuit sky130_fd_pr__pfet_g5v0d10v5
Creating placeholder cell definition.
Reading netlist file schematic.cir
Call to undefined subcircuit sky130_fd_pr__pfet_g5v0d10v5
Creating placeholder cell definition.
Reading setup file /usr/local/share/pdk/sky130A//libs.tech/netgen/sky130A_setup.tcl
Model sky130_fd_pr__pfet_g5v0d10v5 pin 1 == 3
No property mult found for device sky130_fd_pr__pfet_g5v0d10v5
No property sa found for device sky130_fd_pr__pfet_g5v0d10v5
No property sb found for device sky130_fd_pr__pfet_g5v0d10v5
No property sd found for device sky130_fd_pr__pfet_g5v0d10v5
No property nf found for device sky130_fd_pr__pfet_g5v0d10v5
No property nrd found for device sky130_fd_pr__pfet_g5v0d10v5
No property nrs found for device sky130_fd_pr__pfet_g5v0d10v5
No property area found for device sky130_fd_pr__pfet_g5v0d10v5
No property perim found for device sky130_fd_pr__pfet_g5v0d10v5
No property topography found for device sky130_fd_pr__pfet_g5v0d10v5
[...]
And then the report is just
Equate elements:  no current cell.

Equate elements:  no current cell.
Verify:  no current cell to verify.