https://open-source-silicon.dev logo
#openroad
Title
# openroad
u

20Mhz

07/15/2020, 4:16 PM
I’m getting a crash during repair_tie_fanout, any hints?
Copy code
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
  * frame #0: 0x0000000107ba7fd7 openroad`odb::dbNet::getBTerms() + 7
    frame #1: 0x000000010792f3a8 openroad`sta::dbNetwork::termIterator(sta::Net const*) const + 88
    frame #2: 0x0000000107a0cd84 openroad`sta::Network::visitConnectedPins(sta::Net const*, sta::PinVisitor&, sta::Set<sta::Net const*, std::__1::less<sta::Net const*> >&) const + 260
    frame #3: 0x0000000107a0cc4e openroad`sta::Network::visitConnectedPins(sta::Net const*, sta::PinVisitor&) const + 46
    frame #4: 0x0000000107a0d1d9 openroad`sta::Network::connectedPinIterator(sta::Net const*) const + 89
    frame #5: 0x000000010790056f openroad`sta::Resizer::repairTieFanout(sta::LibertyPort*, double, bool) + 415
    frame #6: 0x0000000107912751 openroad`_wrap_repair_tie_fanout_cmd(void*, Tcl_Interp*, int, Tcl_Obj* const*) + 433
m

mehdi

07/15/2020, 10:05 PM
it is hard for me to debug. Do you have a testcase that would help me reproduce that?
u

20Mhz

07/15/2020, 11:46 PM
I think I know what the problem is, is crashing because the net is missing, for some reason I have the same reference for tie high and low, so its looking for .LO pin on a tie hi
ie:
Copy code
sky130_fd_sc_hs__conb_1 _12926_ (.HI(_06461_));
 sky130_fd_sc_hs__conb_1 _12927_ (.LO(_06462_));
See Resizer.cc
Copy code
Resizer::repairTieFanout( 
...
 for (Instance *inst : insts) {
    Pin *drvr_pin = network_->findPin(inst, tie_port);
    const char *inst_name = network_->name(inst);
    Net *net = network_->net(drvr_pin);
    NetConnectedPinIterator *pin_iter = network_->connectedPinIterator(net);
m

mehdi

07/15/2020, 11:53 PM
I thought there was one cell that does tie hi/lo in this pdk?
u

20Mhz

07/15/2020, 11:54 PM
thats usually the case, don’t know if is modeling or synthesis problem yet…to be continued
…or a linking problem :)
m

mehdi

07/15/2020, 11:55 PM
Ok I will look at it. Thanks!
What is the cell name?
u

20Mhz

07/15/2020, 11:56 PM
Copy code
sky130_fd_sc_hs__conb_1
Copy code
sky130_fd_sc_hs/latest/timing/sky130_fd_sc_hs__ff_100C_1v95.lib:    cell ("sky130_fd_sc_hs__conb_1") {
sky130_fd_sc_hs/latest/timing/sky130_fd_sc_hs__ff_100C_1v95.lib:        pin ("HI") {
sky130_fd_sc_hs/latest/timing/sky130_fd_sc_hs__ff_100C_1v95.lib:        pin ("LO") {
will need to look into the layout
m

mehdi

07/16/2020, 12:03 AM
Yes, i am impoting this cell in virtuoso
u

20Mhz

07/16/2020, 12:04 AM
SVG was fastest
odd tie, i was expecting some active devices
m

mehdi

07/16/2020, 12:06 AM
What is svg?
u

20Mhz

07/16/2020, 12:07 AM
vector based image format, gets created from the scripits on the google-skywater repository
m

mehdi

07/16/2020, 12:07 AM
Oh got it. Thanks
I still can't import this to virtuoso correctly
can't really read the layers from the svg
this the verilog of thsi cell:
module sky130_fd_sc_hs__conb (
VPWR,
VGND,
HI  ,
LO
);
u

20Mhz

07/16/2020, 1:07 AM
yeah, is there a way to forbid it from synthesis? ie: dont_use
ok…pretty round day, found a bug, fixed a bug, I’ll say is time for a drink, cheers
m

mehdi

07/16/2020, 1:25 AM
Yes, did you do that? How did you fix this?
(I do not get notification in the evenings)
u

20Mhz

07/16/2020, 1:27 AM
just need to bail out if there is no net, I can’t submit until I get clarity on potential conflict of interest
m

mehdi

07/16/2020, 1:28 AM
not sure I understand, but let's chat tomorrow
u

20Mhz

07/16/2020, 1:30 AM
need to check with my employer.., since there some non compete clause on my contract
good night
m

mehdi

07/16/2020, 1:31 AM
I see and good night!
@User address=0 implies a nullptr dereference. Can you fill a bug or ask Cherry (resizer is his)?