Home › Forums › Nazca › Connecting two dissimilar ribbons › Reply To: Connecting two dissimilar ribbons
25 October 2019 at 17:43
#5712
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