Is it possible to run the OpenROAD gui inside the Openlane docker? When I try to do so I get the fo...
t

Tiago Silva

about 3 years ago
Is it possible to run the OpenROAD gui inside the Openlane docker? When I try to do so I get the following error:
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'
process 9: The last reference on a connection was dropped without closing the connection. This is a bug in an application. See dbus_connection_unref() documentation for details.
Most likely, the application was supposed to call dbus_connection_close(), since this is a private connection.
  D-Bus not built with -rdynamic so unable to print a backtrace
Stack trace:
 0# 0x0000000001035AA6 in openroad
 1# 0x00007F16C53C4400 in /lib64/libc.so.6
 2# gsignal in /lib64/libc.so.6
 3# abort in /lib64/libc.so.6
 4# 0x00007F16BA845655 in /lib64/libdbus-1.so.3
 5# _dbus_warn_check_failed in /lib64/libdbus-1.so.3
 6# 0x00007F16BDAFCBFB in /lib64/libQt5DBus.so.5
 7# QObject::event(QEvent*) in /lib64/libQt5Core.so.5
 8# 0x00007F16C66F5A55 in /lib64/libQt5Core.so.5
 9# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
10# QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) in /lib64/libQt5Core.so.5
11# 0x00007F16C6744A03 in /lib64/libQt5Core.so.5
12# g_main_context_dispatch in /lib64/libglib-2.0.so.0
13# 0x00007F16C235C3F8 in /lib64/libglib-2.0.so.0
14# g_main_context_iteration in /lib64/libglib-2.0.so.0
15# QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
16# QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
17# QThread::exec() in /lib64/libQt5Core.so.5
18# 0x00007F16BDAFA3B5 in /lib64/libQt5DBus.so.5
19# 0x00007F16C654BE71 in /lib64/libQt5Core.so.5
20# 0x00007F16C810EEA5 in /lib64/libpthread.so.0
21# clone in /lib64/libc.so.6
QThread::wait: Thread tried to wait on itself
QMutex: destroying locked mutex
QThread: Destroyed while thread is still running
Stack trace:
 0# 0x0000000001035AA6 in openroad
 1# 0x00007F16C53C4400 in /lib64/libc.so.6
 2# gsignal in /lib64/libc.so.6
 3# abort in /lib64/libc.so.6
 4# 0x00007F16C6538CE1 in /lib64/libQt5Core.so.5
 5# QThread::~QThread() in /lib64/libQt5Core.so.5
 6# 0x00007F16BDAFA5D9 in /lib64/libQt5DBus.so.5
 7# 0x00007F16C53C7CE9 in /lib64/libc.so.6
 8# 0x00007F16C53C7D37 in /lib64/libc.so.6
 9# 0x0000000001035ACB in openroad
10# 0x00007F16C53C4400 in /lib64/libc.so.6
11# gsignal in /lib64/libc.so.6
12# abort in /lib64/libc.so.6
13# 0x00007F16BA845655 in /lib64/libdbus-1.so.3
14# _dbus_warn_check_failed in /lib64/libdbus-1.so.3
15# 0x00007F16BDAFCBFB in /lib64/libQt5DBus.so.5
16# QObject::event(QEvent*) in /lib64/libQt5Core.so.5
17# 0x00007F16C66F5A55 in /lib64/libQt5Core.so.5
18# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
19# QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) in /lib64/libQt5Core.so.5
20# 0x00007F16C6744A03 in /lib64/libQt5Core.so.5
21# g_main_context_dispatch in /lib64/libglib-2.0.so.0
22# 0x00007F16C235C3F8 in /lib64/libglib-2.0.so.0
23# g_main_context_iteration in /lib64/libglib-2.0.so.0
24# QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
25# QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in /lib64/libQt5Core.so.5
26# QThread::exec() in /lib64/libQt5Core.so.5
27# 0x00007F16BDAFA3B5 in /lib64/libQt5DBus.so.5
28# 0x00007F16C654BE71 in /lib64/libQt5Core.so.5
29# 0x00007F16C810EEA5 in /lib64/libpthread.so.0
30# clone in /lib64/libc.so.6
<@U01CHL4UY1Z> these are the correct syntaxes for resistors: ```XR1 M net1 B sky130_fd_pr__res_iso_p...
s

Stefan Schippers

about 5 years ago
@User these are the correct syntaxes for resistors:
XR1 M net1 B sky130_fd_pr__res_iso_pw W=2.65 L=2.65 mult=1 m=1
XR2 M net2 B sky130_fd_pr__res_generic_nd W=1 L=1 mult=1 m=1
XR3 M net3 B sky130_fd_pr__res_generic_pd W=1 L=1 mult=1 m=1
XR5 M net5 B sky130_fd_pr__res_high_po W=1 L=1 mult=1 m=1
XR6 M net6 B sky130_fd_pr__res_high_po_0p35 W=0.35 L=1 mult=1 m=1
XR7 M net7 B sky130_fd_pr__res_high_po_0p69 W=0.69 L=0.69 mult=1 m=1
XR8 M net8 B sky130_fd_pr__res_high_po_1p41 W=1.41 L=1.41 mult=1 m=1
XR9 M net9 B sky130_fd_pr__res_xhigh_po W=1 L=1 mult=1 m=1
XR10 M net10 B sky130_fd_pr__res_xhigh_po_0p35 W=0.35 L=0.35 mult=1 m=1
XR11 M net11 B sky130_fd_pr__res_xhigh_po_0p69 W=0.69 L=0.69 mult=1 m=1
XR12 M net12 B sky130_fd_pr__res_xhigh_po_1p41 W=1.41 L=1.41 mult=1 m=1
Resistors with _0pnn or_1pnn suffixes can be used only with specified width. For capacitors here is a sample for vertical metal capacitors:
XC2 G 0 0 0 sky130_fd_pr__cap_vpp_11p5x11p7_l1m1m2m3m4_shieldm5 W=1 L=1 mult=1 m=1
and these are mim (Metal-Insulator-Metal) capacitors:
XC6 c0 c1 sky130_fd_pr__cap_mim_m3_1 W=1 L=1 MF=1
XC7 c0 c1 sky130_fd_pr__cap_mim_m3_2 W=1 L=1 MF=1
Values for resistances must be calculated from process parameters: Rho for resistors and capacitance per unit area for caps. As an experimental feature xschem on some resistors is displaying the nominal value (keep in mind that silicon resistors are not perfectly constant, they vary with biasing conditions and temperature). If people like that i can add this for capacitors and remaining resistors.