Home Forums Nazca Connecting two dissimilar ribbons Reply To: Connecting two dissimilar ribbons

#5712
mbjvrijn
Member

Dear Ronald,

As I understand it you are proposing to use the definition of the xsection to create a large ribbon that can have nicely defined taper. I’ve tried to use this, but I don’t think you can change the pitch of the ribbon in this way and it’s a bit challenging to connect this to the rest of the circuit.

import nazca as nd

xs = nd.add_xsection(name='GSG')
nd.add_layer(name='L1', layer=1)
n_ribbon=20
for i in range(0,n_ribbon):
    nd.add_layer2xsection(xsection='GSG', leftedge=(1.5-n_ribbon+2*i, 0), rightedge=(0.5-n_ribbon+2*i, 0), layer='L1')

tr = nd.interconnects.Interconnect(xs='GSG', width=3.0, radius=40)

tr.strt(length=40).put(0)
tr.taper(length=20, width2=6.0).put()
tr.strt(length=40, width=6.0).put()

nd.export_plt()

At the moment I’m using a slightly scruffy method that only works because I’m working in metals that only use 1 layer, where I use a polygon to define a taper based on the pin information.

import nazca as nd

xs = nd.add_xsection(name='metal_strt')
nd.add_layer(name='L1', layer=1)
nd.add_layer2xsection(xsection='metal_strt', leftedge=(0.5, 0), rightedge=(-0.5, 0), layer='L1')
ic=nd.interconnects.Interconnect(xs='metal_strt', width=3.0, radius=40)

in_wg=ic.strt(10).put(0,0)
out_wg=ic.strt(length=10,width=20.0).put(30,20)

width_in=in_wg.pin['b0'].width
x_in=in_wg.pin['b0'].xya()[0]
y_in=in_wg.pin['b0'].xya()[1]

width_out=out_wg.pin['a0'].width
x_out=out_wg.pin['a0'].xya()[0]
y_out=out_wg.pin['a0'].xya()[1]

nd.Polygon(layer=1,points=[(x_in,y_in+width_in/2),(x_in,y_in-width_in/2),(x_out,y_out-width_out/2),(x_out,y_out+width_out/2)]).put(0,0)

nd.export_gds()

For now this works. If you were suggesting something else and I misinterpreted your code, I’d be happy with a cleaner solution.

Kind regards