Forum Replies Created
Viewing 1 post (of 1 total)
-
AuthorPosts
-
mbjvrijn
MemberDear 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
-
AuthorPosts
Viewing 1 post (of 1 total)