Home Forums Nazca Questions and Answers Broken / Disjointed interconnects from tutorial

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
  • #6545

    Dear Nazca forum,

    I’m not sure why but when I try and create an interconnect using the standard code in the Tutorial I get disjointed interconnects. The standard code is below and a screenshot from Klayout is provided.

    I didn’t see another post like this in the forum before, but apologies if this has been posted before.

    # example created by Bright Photonics
    import nazca as nd
    import nazca.demofab as demo
    demo.shallow.radius = 20
    s1 = demo.shallow.strt(10).put(0)
    s2 = demo.shallow.strt(30).put(100, 40, 0)
    demo.shallow.sbend_p2p(pin1=s1, pin2=s2.pin['a0']).put()

    Screen shot from Klayout


    Dear japon,

    Good that you ask, as more people seem confused about this feature.

    That offset between a bend and straight waveguide is intended in this demo interconnect. In various technologies (like InP) this offset is often needed for an optically smooth transition (looking “disjunct” geometrically). The light (mode) can be thought of as being swept to the outer side wall of the bend. Nazca takes care of this offset for you. Many designs made in other tools tend to be wrong by not having this offset automatically (you have to add it manually if you happen to know this) leading to underperforming photonic circuits (excess loss and higher order mode generation). As this is a demo interconnect, the offset is a bit exaggerated in size.

    Note1: The arrows at the pins from straight to bend indicate this connection is correct (intended): they are aligned.

    Note2: There are no arrows inside the sbend element (by choice) as this is a single interconnect.

    The offset is a property ‘os’ of the xsection, here xsection “Shallow” in demofab. When creating an interconnect demo.shallow (in the demofab PDK) from xsection “Shallow” that property is automatically copied into the interconnect as property ‘offset’. To not have an offset, either define a xsection without ‘os’ or ‘os=0’ in the first place, or in this case when it is already added to an existing interconnect, simply switch of the offset in the interconnect via demo.shallow.offset = 0.



    Dear Ronald,

    Thanks for your quick response. That’s interesting I’ve actually never heard of such a technique before in other programs, as you say.

    I thought something might be off in my particular instance as I didn’t notice the offset in the image on the tutorial page. So I was a bit concerned.

    Thanks for your continued support of this wonderful tool.



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