Home Forums Nazca Issues with sbend_solve

Tagged: 

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #6234
    iv_tern
    Member

    Hello all,

    I’m getting this exception thrown when trying to connect two cells with sbend_p2p

    It is not allowed to create a node outside the scope of max one level deep: You cannot connect to a cell that is not placed inside the cell you are creating.

    It is thrown by copy in netlist.py

    The code in question is

    import nazca as nd
    import testpat as testpat
    
    from nazca.interconnects import Interconnect
    
    nd.clear_layout()
    nd.clear_layers()
    
    ic = Interconnect(width=50, radius=10.0, layer=1)
    
    trs = testpat.obj1()
    trs.put(12500, 12500,0)
    
    pad1 = testpat.pad(padlen=1000, padwidth=5000).put(14500,0,0)
    pad2 = testpat.pad(padlen=1000, padwidth=5000).put(16500,0,0)
    
    ic1 = ic.sbend_p2p(pin1=pad1.pin['b0'], pin2=obj1.pin['a0']).put()
    ic2 = ic.sbend_p2p(pin1=pad2.pin['b0'], pin2=obj1.pin['b0']).put()
    
    nd.export_plt()

    I’ve never encountered this behaviour before, despite making similar designs (using the same pre-built cells from the same testpat file). Am I overlooking something? Any tips on troubleshooting?

    If I repeat the same with strt_p2p, the design does not fail, but the straight lines go to two a0 and b0 pins near the origin.

    #6236
    Ronald
    Keymaster

    Dear iv_tern,

    Note that obj1 in pin2=obj1.pin['a0'] is not in scope of this snippet. If obj1 refers to an instance in another cell than you are working in you will get the “outside the scope” message. Note that obj1 should not be a Cell. Try type(obj1) to see what obj1 is.
    Can you reproduce this behaviour without the custom import?

    The nd.clear statements are better put directly after import nazca as nd
    Which Nazca version are you using?

    Ronald

    #6237
    iv_tern
    Member

    Apologies, the lines about the pins are referring to trs pin2=trs.pin[‘a0’], as the original names are slightly long and convoluted, I edited it for clarity’s sake. It turns out that it is however a cell, not an instance.

    Fixed the issue – it turns out that this makes an instance

    trs=testpat.obj().put()

    and this makes a cell

    trs=testpat.obj.()

    trs.put()

Viewing 3 posts - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.