From 57b0153b1d0a27b387c838a9b02ed2d1a33a2940 Mon Sep 17 00:00:00 2001 From: joaquin Date: Fri, 11 Mar 2022 10:19:28 -0800 Subject: [PATCH 1/2] change pin length from 100nm to 10nm --- CHANGELOG.md | 4 ++ requirements.txt | 2 +- ubcpdk/components/__init__.py | 2 - ubcpdk/components/add_fiber_array.py | 3 +- ubcpdk/components/cells.py | 21 ++++-- ubcpdk/components/crossing.py | 18 ----- ubcpdk/import_gds.py | 67 +++++++++--------- .../gds_ref/bend_euler_92fd2590.gds | Bin 6130 -> 6130 bytes .../gds_ref/ebeam_adiabatic_te1550.gds | Bin 4808 -> 4972 bytes .../gds_ref/ebeam_bdc_te1550.gds | Bin 7216 -> 7374 bytes .../gds_ref/ebeam_bdc_tm1550.gds | Bin 6274 -> 6432 bytes .../gds_ref/ebeam_crossing4.gds | Bin 1652 -> 1464 bytes .../gds_ref/ebeam_y_1550.gds | Bin 11770 -> 11924 bytes .../gds_ref/ebeam_y_adiabatic.gds | Bin 14802 -> 14962 bytes .../gds_ref/ring_single_dut_aa824f1c.gds | Bin 0 -> 19708 bytes .../gds_ref/rotate_f258530e.gds | Bin 103226 -> 103226 bytes .../straight_87bde41b_strai_83238d66.gds | Bin 112540 -> 112540 bytes .../gds_ref/straight_87bde41b_straight.gds | Bin 866 -> 846 bytes .../test_pdk_settings_ring_with_crossing_.yml | 28 ++++++-- 19 files changed, 79 insertions(+), 66 deletions(-) delete mode 100644 ubcpdk/components/crossing.py create mode 100644 ubcpdk/tests/test_components.gds/gds_ref/ring_single_dut_aa824f1c.gds diff --git a/CHANGELOG.md b/CHANGELOG.md index c4b55065..4df0f9f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## [1.3.6] + +- change pin length from 100nm to 10nm + ## [1.3.5](https://github.com/gdsfactory/ubc/pull/9) - pins are compatible with siepic diff --git a/requirements.txt b/requirements.txt index b17d8bf1..cee563bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -e . lygadgets -gdsfactory[full]==4.3.8 +gdsfactory[full]==4.4.0 modes diff --git a/ubcpdk/components/__init__.py b/ubcpdk/components/__init__.py index 3d9ade98..12c3c456 100644 --- a/ubcpdk/components/__init__.py +++ b/ubcpdk/components/__init__.py @@ -16,8 +16,6 @@ y_adiabatic, y_splitter, bend_euler, -) -from ubcpdk.components.crossing import ( crossing, ring_with_crossing, ) diff --git a/ubcpdk/components/add_fiber_array.py b/ubcpdk/components/add_fiber_array.py index ae2cb94c..461ac0a8 100644 --- a/ubcpdk/components/add_fiber_array.py +++ b/ubcpdk/components/add_fiber_array.py @@ -177,6 +177,7 @@ def add_fiber_array( # c = gc_tm1550() # print(c.get_ports_array()) # print(c.ports.keys()) - c = pdk.straight() + # c = pdk.straight() + c = pdk.mzi() c = add_fiber_array(component=c) c.show() diff --git a/ubcpdk/components/cells.py b/ubcpdk/components/cells.py index 55488c15..fa5cdf4d 100644 --- a/ubcpdk/components/cells.py +++ b/ubcpdk/components/cells.py @@ -7,40 +7,46 @@ def y_splitter() -> Component: import gdsfactory as gf from gdsfactory.add_pins import add_pins_bbox_siepic -from ubcpdk.import_gds import import_gds +from ubcpdk.import_gds import import_gds_siepic_pins from ubcpdk.components.straight import straight dc_broadband_te = gf.partial( - import_gds, + import_gds_siepic_pins, "ebeam_bdc_te1550.gds", doc="Broadband directional coupler TE1550 50/50 power.", ) dc_broadband_tm = gf.partial( - import_gds, + import_gds_siepic_pins, "ebeam_bdc_tm1550.gds", doc="Broadband directional coupler TM1550 50/50 power.", ) dc_adiabatic = gf.partial( - import_gds, + import_gds_siepic_pins, "ebeam_adiabatic_te1550.gds", doc="Adiabatic directional coupler TE1550 50/50 power.", ) y_adiabatic = gf.partial( - import_gds, + import_gds_siepic_pins, "ebeam_y_adiabatic.gds", doc="Adiabatic Y junction TE1550 50/50 power.", ) y_splitter = gf.partial( - import_gds, + import_gds_siepic_pins, "ebeam_y_1550.gds", doc="Y junction TE1550 50/50 power.", ) +crossing = gf.partial( + import_gds_siepic_pins, + "ebeam_crossing4.gds", + doc="TE waveguide crossing.", +) + bend_euler = gf.partial(gf.components.bend_euler, decorator=add_pins_bbox_siepic) mzi = gf.partial( @@ -50,6 +56,7 @@ def y_splitter() -> Component: ebeam_dc_halfring_straight = gf.partial(gf.components.coupler_ring) ebeam_dc_te1550 = gf.partial(gf.components.coupler) spiral = gf.partial(gf.components.spiral_external_io) +ring_with_crossing = gf.partial(gf.components.ring_single_dut, component=crossing) if __name__ == "__main__": @@ -63,7 +70,7 @@ def y_splitter() -> Component: # print(c.ports.keys()) # c = straight() # c = add_fiber_array(component=c) - c = mzi(splitter=y_splitter) + # c = mzi(splitter=y_splitter) # c = gc_te1550() # c = y_splitter() diff --git a/ubcpdk/components/crossing.py b/ubcpdk/components/crossing.py deleted file mode 100644 index f34144b1..00000000 --- a/ubcpdk/components/crossing.py +++ /dev/null @@ -1,18 +0,0 @@ -from gdsfactory.component import Component -from gdsfactory.components.ring_single_dut import ring_single_dut - -from ubcpdk.import_gds import import_gds - - -def crossing() -> Component: - """TE waveguide crossing.""" - return import_gds("ebeam_crossing4.gds") - - -def ring_with_crossing(**kwargs) -> Component: - return ring_single_dut(component=crossing(), **kwargs) - - -if __name__ == "__main__": - c = ring_with_crossing() - c.show() diff --git a/ubcpdk/import_gds.py b/ubcpdk/import_gds.py index a2d54a0b..461740ec 100644 --- a/ubcpdk/import_gds.py +++ b/ubcpdk/import_gds.py @@ -75,23 +75,21 @@ def add_ports(component: Component) -> Component: c.add_port(port) return c + def add_ports_from_siepic_pins( - component: Component, - optical_pin_layer: Layer = LAYER.PORT, - electrical_pin_layer: Layer = LAYER.PORTE, + component: Component, + optical_pin_layer: Layer = LAYER.PORT, + electrical_pin_layer: Layer = LAYER.PORTE, ) -> Component: """Add ports from SiEPIC-type cells. - Looks for label, path pairs - - Args: - component: component - optical_pin_layer: layer for optical pins - electrical_pin_layer: layer for electrical pins - """ - pin_layers = { - 'optical': optical_pin_layer, - 'electrical': electrical_pin_layer - } + Looks for label, path pairs + + Args: + component: component + optical_pin_layer: layer for optical pins + electrical_pin_layer: layer for electrical pins + """ + pin_layers = {"optical": optical_pin_layer, "electrical": electrical_pin_layer} from numpy import arctan2, degrees, isclose # TODO: Add opt-in ports for Lumerical Interconnect simulations @@ -114,12 +112,12 @@ def add_ports_from_siepic_pins( label = l labels.pop(i) if label is None: - print(f'Warning: label not found for path: ({p1}, {p2})') + print(f"Warning: label not found for path: ({p1}, {p2})") continue if optical_pin_layer[0] in path.layers: - port_type = 'optical' + port_type = "optical" elif electrical_pin_layer[0] in pin_layers: - port_type = 'electrical' + port_type = "electrical" else: continue @@ -128,7 +126,7 @@ def add_ports_from_siepic_pins( # If the port name is already used, add a number to it i = 1 while port_name in c.ports: - port_name += f'_{i}' + port_name += f"_{i}" angle = round(degrees(arctan2(p2[1] - p1[1], p2[0] - p1[0])) % 360) port = Port( @@ -137,34 +135,35 @@ def add_ports_from_siepic_pins( width=path.widths[0][0], orientation=angle, layer=pin_layers[port_type], - port_type=port_type + port_type=port_type, ) c.add_port(port) return c + def add_siepic_labels( - component: Component, - component_name_label: str = None, - library: str = 'Design kits/ebeam', - label_layer: Layer = LAYER.DEVREC + component: Component, + component_name_label: str = None, + library: str = "Design kits/ebeam", + label_layer: Layer = LAYER.DEVREC, ) -> Component: """ - Args: - component: component - component_name_label: name of component for SiEPIC label (defaults to component name) - library: Lumerical Interconnect library for SiEPIC label - label_layer: layer for writing SiEPIC labels + Args: + component: component + component_name_label: name of component for SiEPIC label (defaults to component name) + library: Lumerical Interconnect library for SiEPIC label + label_layer: layer for writing SiEPIC labels """ c = component c.add_label( - text=f'Component={c.name if not component_name_label else component_name_label}', + text=f"Component={c.name if not component_name_label else component_name_label}", position=c.center + (0, c.size_info.height / 6), layer=label_layer, ) c.add_label( - text=f'Lumerical_INTERCONNECT_library={library}', + text=f"Lumerical_INTERCONNECT_library={library}", position=c.center - (0, c.size_info.height / 6), layer=label_layer, ) @@ -188,13 +187,17 @@ def add_siepic_labels( add_pins_bbox_siepic, gf.port.auto_rename_ports, remove_pins, - add_ports_from_siepic_pins + add_ports_from_siepic_pins, +) + +import_gds_siepic_pins = gf.partial( + gf.import_gds, gdsdir=PATH.gds, decorator=add_ports_renamed_siepic ) -import_gds_siepic_pins = gf.partial(gf.import_gds, gdsdir=PATH.gds, decorator=add_ports_renamed_siepic) if __name__ == "__main__": gdsname = "ebeam_crossing4.gds" + gdsname = "ebeam_y_1550.gds" c = import_gds_siepic_pins(gdsname) # print(c.ports) c.show(show_ports=False) diff --git a/ubcpdk/tests/test_components.gds/gds_ref/bend_euler_92fd2590.gds b/ubcpdk/tests/test_components.gds/gds_ref/bend_euler_92fd2590.gds index 3261ca2f90456809d218fc74ebf55e54ff3d602b..8ff44432c3737af96550c6b46a841dcee4a493dd 100644 GIT binary patch delta 35 kcmeyQ|4Dy?w>al-1_)rC93pPWDayd0E&#;bll#O|0H&D-umAu6 delta 35 mcmeyQ|4Dy?w>alH1_&^k93pPW>BPXGF2KN`c5iZ@cnScklL)T> diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_adiabatic_te1550.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_adiabatic_te1550.gds index 0b1e0396d33cb283fbb5529f57b66f7e0987a3a7..8354d169655a1f570909935c281317c788f34702 100644 GIT binary patch delta 241 zcmX@1`bKTSUEcWr|9`14Ffe3-=*bF<>f8(r@eB;CcR*s3Wf*li9l<=NzvdtwuOnDJ zkOx*Tz$8C;HRJSp9tH+BUM2}9syNl{G`? delta 81 zcmaE(c0zT+U0$RA|9`14FfdF5(UTPz)wvlMj2IYL?|{T6%P{J4=7D)kf4M+B-aN2+ VAP=lwfJuJxYR2iCpE0!w006{e9jgEU diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_bdc_te1550.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_bdc_te1550.gds index 4da91bafe6220e2b9825aaaed1b1d3c9b56461b5..b2c638cce21f9fa183b95b173c638940d93d20f9 100644 GIT binary patch delta 232 zcmdmBan5o>xD;pO|Nq}E{r_LuJvl*2m$Q+9fm096J0qpT)%g;{Wnk#MKN-RWsReO2 zGf8VO*7Gnhu<DS7Mu* zl$w|upOlguUy^EQYHGm1BFMnNg3pZq|NqQoFp*^QDa}nS%1lnoiTCsiaSd|z_w#dg l4vAOI$xJFrEUL71NiEJy&r`_GEGgCp+X69~9cVlY0|0wpMy&t< delta 73 zcmX?Sxxr#XxD;o||Nq}E{r_LOV{(F&E@ub>1E(ICcScHwt4j>TWnk#sG#SDLsReO2 QGf8VOvavHTu&^)y0Hx_0cK`qY diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_bdc_tm1550.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_bdc_tm1550.gds index 35367c47e18862088eddadfb04aa49457ae67885..28660224669040d382f5705552613dfe17df623f 100644 GIT binary patch delta 275 zcmZoNTwt_8T%0qLfq^rDfq@}@a*wz!XC;K!oe$*ca4}^5|Nm_PSW-b;hp)R5!tKrn z(UavQ6xbM2KpG~$5m%dRC&4{gRzi`7AqA|8O_D9&7^p^Ra*l*RJr4r|8!r=s3j>=N z6VN<1aYhDK1|9)s1_swR3=GW0404ie&iT0o`FW{%CAO(asfoGqNh!(kCAo&CrUncw zf(#5S_{{kK|4%Q2i6om(X>Mv!W^!Uqyr*A?Yml?QpP#F9NW5xJW>QgNQKhX*YH?t<8 delta 107 zcmZ2r)MU6pT%6PB|Nn0b7#J9)P3{rb;bJgiVBkyua}~sOIhR3r-A- sda|5^_T-P^icAbClSL%7c)Cl#YS|>&@{NIV3X`)WgxJ^_7+6>s01TBLKmY&$ diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_crossing4.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_crossing4.gds index 09d28f13c91a3762b542ca59a1a2afb92e450b25..84ceaf3f111eb64757344eff6a4e80106e2196d6 100644 GIT binary patch delta 246 zcmeyuvx9pBAF~1jgV2Hh|KB=*Xk<1>41_0NU{>P+GOQVZ07$z|PGHvI1960of=D2} z8>mKu3yBL+fuf0xrBIlIfk%KDWF}Y}nDD%CdabK7!uS3QV-S$vC4QdAFHG`2a*$w f!N3IFYyba$NcjK%kHlmXR&(Oje@K{I!Ri12C}m>1 diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_y_1550.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_y_1550.gds index a120b6835e1bbe2fb5c56728db0c58cd95a33e49..55956a18ed01250c596fb080def589432834072d 100644 GIT binary patch delta 218 zcmewrJtcNSlMdHoVFn=h|NpV<}9sy>MF$@gMFBqgG*_`up3-a?)^Ga+}lTs6N z<16D0O-&6LSOgguSn%op|NoB!gNY=YPibyyQD$;tPQ0gIh-;9uzn`D0b4YwnW>S%2 dVo{~7OKNdudY(ddW=XL=*anEv>_FpL7yt}iHi-ZL delta 63 zcmbOd`zv}wlMdITXAD5_|NmpJ$vrwce6msu3|#vd7-Y7A=*bgwG`M7?{{R2#1QMG3 OL+1}0I|Bm?3j+Z2Fcn7t diff --git a/ubcpdk/tests/test_components.gds/gds_ref/ebeam_y_adiabatic.gds b/ubcpdk/tests/test_components.gds/gds_ref/ebeam_y_adiabatic.gds index 2dd53d356531807d10acced0afed084d4d970c12..688bffc2628c5b7b6abc7a118f46991d7eacf252 100644 GIT binary patch delta 249 zcmcaq{HbKaK?~7C3?c%|3=9mqKnw!rAY$?Y3q_dB;dTZFmPZT>higGJNJbE<=WzS~ z|G(uxGL!8r`|5cZ7}$837+e_G#F&6)u!%D=urly~3{Skpz`*#1K|zwuIX|}`KQA?} z#5Of4H8D57GCnaSGchT#Br_Rkx*!naGv)vPe8cncc#NLfjjLI&(h!i!7CCdJv_v|5(+?(8c|M~qk&z{+tbH49=-|ySmGp}Sy znOyGB%(~fJ-MmagrdOsevvH>Pn%`$Cxzf0?BPWcQaAqdcEnnRAn?L^gzEAz;y>IMs z|5n#uJM_Dmb&LP{wd! ztoiS+>{%;~96kQ%;iFHD;f^?ZyHQ*BAK8D6R}c7oI#Ofq?0oO2Oy+frO5sBmFqJ9Ha|T|Uqv-HY|$>T|m{ts9EGJpT}s$ZSlb=9v<{{Oye&(eRNzkj-Jk0aKc zZDy^m>t?n}9h7=x>Zz%hq~4VJQ0l9xOS;TvQ+uUuow_%LEjv8*^wdjJZ%KV5^>s>9 zc4?QnLh8D#&t!7jrS6+Lk``R3$5?UvCY$(vm-#ZAGnssEws42k1KH~M zSX!3(b6Mk6Y~x+*#;4hxv)F?xxt3+z%wFunwYe+T;SjFJ@m!yi*qc+hA*XU9zQnI` zAvfVFZkEXudvFW(<<~ffTX7h-;c48Cm(t=b-ohO?jXQA$cj0pGZW)v~kn3|0`}12I z%>6iq2k;yo#4C9)@8n^8ibt@6M{y;O&SdJEc`W;I9CzhO9KusLo@a0pf50g`pHq1u zU!t{8w~#;ODqfz+lzZ@M_T>}~;!PaJ+jtu9k}bsZQ!YV9!jZK`mx_a|3S5Z*XfKNZ&Vz zP3D_Cm;3Naif_Yjc{rb>I5y1W3H&Qh&tw|oyyr2_D?W{Kn-P~rIm(Df;~3t`vw08w zEb|CsyiapF&9~89Gwoc##WvOwU8AxtJGrg3=UNrDkX6@};Z&cMQ`wgnb4T95LA;N~ zUwM(9TbW0BuY5vzZnDO*^4hc!e?c+GUeCca=cZA7h@P8$mOtSP-pKik^M61&%Vjy6 zE&PbqQL`N6wxsWKJJI-a`_R~OhjA#yym>rbqj@4PqPXX-;%)p5#VR+Iukb0FN6t8! zKjtF89mFK(`KM%O>?XoNAYib)SlrQ)ff3yzD@C~E~c8U%5Q0OCR58(ENh-y`We@ydDO(b^bq^g z`D?~jlBb%ul)m6ldq*3`&~s}OxEsZ!&iHFT<~Ux#iM*ay^A6s{seFo$v7KU7_aSH4 zLmD}o8*&NNbj{Do2XYmU@jge5lwGT>O4n$U$MS!2W6FKo*J#dd#$OiqHgT=5=Ux=^ zHZiE*fpS{!`?jMP=RKBj-jjGGPv>tb2lY>K5{tY;UOX5N^)H=v>_n z=TIKW2^`MJ9KjnoiVt!$U#0qNUP5_o$?-U@O*v`VmM3r@j^{|8$g}u8UPjkwk;`r; zQ>}J8g>UjyzR%OFZFSX6owSNww=<}&x}8aLN_6dR&e?h%zt5{u)ke1;IDVREvmV2u#r~WuKJ#Xw)HS4uDFjXxl$KAWES~GE6U6lF?FLC@p>W!%v(^pjuB&xy0 zK~#gWhbLN7vH!(hAGWH$nz^?AIrU+RZR;(Z#Gj_Bo!W(tM^H{%)n(0|(YhVQuXR1j zTWg8(-m-$~BI+^r-InQ8M=f{o2fUo>t;Nr3XYv@jM$5OUUR!o#)bU0%rs2~=0LyL#f*Hz1(>pwb5f8Q8 z^au~)Z+HNI#{GB}#h~eE?#01$?xr2MJ2&Jmtk7I4G4B41af?~yIc~+@(^x7~xGAIV zVt+H&T5lR#{NAe!qTE%sVH?+B3yW;DkFKEDH@-!=ZG1wGzu;Z`gje&gl)LJ3j;Fac zic57KjlJ5zzWfV&@y{&qMf<+jRG;RXe2j7ahZyJo1Fxa)8`MbkR?1OTZ8jXvYbi$6 zE4VE$<$An`^*pcZ_f_=_&T?#R)IZPTX#G@2(z&Wb>9tk)s6UJ1UoW@S0aQ2D9VzBj z*Qno&zUsSE9P7oTDt_fRLiOt~tn#nu@d#TR%Wr*miC zPuFO@ldjWx6LY-U`-K%W*1DM#^SWnwCZ}>dJ-2lve@^vQcMjE6of>Z4oriII%6qG8 z)b*p7)os8k&7oE96lc>3!VC+^*|=UCUP~MlC%ko-LkJRM*X)(RG`Rt#~=bq9_*4 zFYy#U%Ap_zO3tI5&5rxi%O0 zpVr`q{1xX@PMTh$`8Pez3A~5S9e;Ne4yK$G)N7OH6uv<*Ds0JNT%Y^1m1>}n=N8_l z8&8uM#ryUq^UuF+ZF($kt`*nKPp5q3<)iW#Z{=P5C5miep_59?cAo zvL@vrdj!>W_ApN4!IZ1``#jcsb})ZHF)xkb-aL@T9)Ejf#i+C~#lO@{byfU?-{2g| zNAY=XM={8%x1zbmeSzYSXl%s^+?>Xe-GmXBuQK8yx5ZxEfH{7}+F439TzH-9@KJhB zA;v97g&4QF7QWAJ9L+YGOI9rw)J?XP&Y5jt1Dn+Phpe!jjeLrJmcNVjyqaZ-eO3@- zjb%#|vuu%Kkd?c|rOIFOy4B}(m>g%^7b|sr8X%1S?lY6t(m#GC@=y1t<8FL>x)A4!Pd8Q@ z*XjDyq029?Cw*(&&5!%rUC+x-=eNWlRHKP&r^;mCQz^TatZ)=3=i!6zB}Q`o)BWojq;lv|PNBJm}< z_q=Rs>UDg^v3kos%M()%<#UdA=kwe&HR||<&d#Nu@I}s{d#+2L<;(mXUtz3|Kk;IfqiIEE!;}<+wTB^IcM-d;jlz#zxL% zGoNFX_pm#!VNXt^&mP`6jy@}R=OAv(9l0qtf%9HpY-Sb{_Bi*B3G?^1Qfj{Em zbT53-Kwd%nP3~ISJ99U>#ci+2-NyO6oA$BXeYB6|+%sSJE2_hV7gC)p9M9J{gz~y@ zH_qoK^jXb9b(Q<5vvYyE%6&m~mA8%;JV)_ea4*;5wG_t%KjdcgdoJ%YodwRD-{H7_m;?D2W=nEx4%<~)w4@#fE@@#Zg}eK&8u^R0vY)%+fR&7t&}&3x-C@3X7< z_Q$;SG~Yg!SJ(5c+r0XmXFtgMENkBDT**iME>So0Zlm$f`vuqG*_8Kr$5Ni>9YlGZ zw+j!TcodFcjbl4I=YGM{xtJI7&-5A9+-ba?asE4bIei8;_dHs!bC0KWH1`lL<^Zbm zxyD}<*SYGWs7~jWs2=BhK;xOy!GRR_;&*r-N74RMoWP$^oy;+hqH)X_%bO_v#e1n< ziciq~R+R5K>vI7cDK4|+w^T>_QOWw4ZT~FE0ktl^x_18M)7Wq+)b_gQ{V#Ai*jHuRpYM(d>9hXtBf$4bg?$0Dl3 zjyHJ*#ku?wKFk|w9A)dM;|AJiJJd~i4y~iI_;sA&J*R!ALw@Tw;F0W4-r4xu-=I2ef1bPYkF>wE zTQ3dA^LDC(_UmZ9v|mB{K>K7qO?B8{U9_J@>$-iM_x=@*kgc?@aqZb!LlTRDZzoJ#Ax^(EGGA?vt`MfXg4Fwefsa!_aI+npT7FL)aN#!IO_tG7^I ztJ7#5RcG)cF6Uq4o)zt1we|Tv`*Q^cQ(f0aa~aR(QeMG#`CBfbx_Vok)YR46_Su@c zdfPf}Q?H5k$G7cQZ98)T?Td-l!Q1m4U%+|1CiNa#M{V|_#JN;|ZJ&18&HIEn?q+?x zJ)66y9-4Y0XL;QIlQ<=HYU+!r)@}0h&)Jd5bhp1HZjm}Lb!h5@)E}qbkZS)-US~f@ zT$H-1%N~AD#N$1_mb!=a_NwF6dOSJyys*31B|1;yE2*xN9J_Afk4W7!H9c?l z9*(V7)9Z3^s`r=4;}53ZlzIvMUg>sf>af(k_`1ipPVJSN;|%$EH}y5z|JwXMO;msF ze{uZNRQq?I&&fruO68j@RQ%s>^m8Q*8ysul6S8wKkpdUb}&h_m(BD$X4_zRCh0?)tsadNX5Pi$_PS^D`OieiW;W z-$UJK9d`7f_iG*Y?bZgaXMg#Sy}S0C4!^Hk?7tm-Xx#Dps>QfFVt<;%*so4v>|g4* zBla_O*Ae@h{i7rHyPn*G^4MWNY+lCw`3Aqu$9OQsyJIM?#<`3 zH|OaTmyWaT-{R6SkxTd^zRsWUkNgF1=heJ|*D=n2GvoYsa0q|LZ}NU_$!T1RPcqNv z{r<79by!Cg^%CzBDo;|q#P6#P`LB3C(qVtATtxd}#ro-3MRh*Q@Ab+)l#hz|&l3O2 z23(&eFiV^pKV@Go;MZv#%@W5(^*&4d8gHYxHJZmP@oGGuM{_*Ir%@heiA&=kp2zJt znP1`MtZ<6o`=9Vu#&zytT;~x^fhr)w$uBH`saB#AK)?k4NswY%{K1(3n+i}-{Unrinq}3 zjoJ5dXFkR)_!4{3`mQfi9?IS)%ohLhLho;_kMirR@(F&0_wsAJkvs7+?nCjMb12pI zoH2CWIj8bK{*b%#GH%Tq*qe8=m5(w*UuE^A5hn8z{cT zEB!s0y@pn-Como7C@>{e%7O1t~U96wc;TJe@Ns ze~aGdIQJh)9K&@ug7Q)jm&JoPghx<(7JrZXG0wjiBJQR9TT^G9ZMpkJbj=#^}v7QRz{LXyV@iP|O z@A1C2kYyi#*MGsCDgH~uKd-Kq9LtY*F6Cp%67mMo|J;$8bi zejddoZ~eY2F8Nv9i}tT~hw*LNukvs5V!pu}_&SX{?|sU<#vS(|-d(^~_&2`nep-z$ zQr+a`f9Y;i=S!`Fy!Q!9$MG3nz^7^di~AaJ|1SR|#XGNFmUi%Qs+at9_W>LE7&oN# zvg{kQzLyV>VB!Cc)!Qh zdE(DgZ{>X+e>8PQs&y2PuZTE@5$AAQs{0k+N*$4UMymCb{QQ>GM^ax)UE1Y)`P8*j zBY(~t_l*c zO5G~e`br+ReiKhkRsYGc{UPz8)K^oNbQzyb#Lwfil*Fx5_vYiihNpTTkR01b6U8l2 z+!9~s6TZYP%*jXMy0rJ@>^F(~rjF!O9+&6D%cvG}x2IZ9*=HQ9pXm3@z29Z@RA!$O z^WJ=(JEW@1>)~?uh2EJf8s2PMSK<;pXWu-WY!!CeW8-{mmI?|{>|f|v3G-og(# zjURIcKjm_MuCPk%};QEbBZsw=w&0 zQ|`(wIfQDWZan*O62-i33U}dDev>b85EoL8>sC=t$~|~6`*J8fCqCCL594T_#^ZP? zPvR}~Sa}+Mz!{v#<@}NNWagUl-1_x+1-Iw5+@Ck{Xx>Jz&D~A=Qtm$9LFbHq?A()l zo9d)q%yZU!Ljz}W1J36+sFtH2JNFUQRqhL(t7b~PlFj@r*P?SqO-4U<^!Y|Vc3#a# zKX!cX9{t#PbC1u-^UfLl*m?1Ye(bz4M?ZFcJdHPhCXF|L0jJY^qaQmyi;Ui#{I9*o zH-@O`=*P}m+m&tk6u(7v9sSt(4xY*-yqGI_gWAkdOrqwaAG@#)qh{qj`mqc0+~j8k zd5wPTg0V(FcHsyP=2(v6={$oM@+Z8Ea!|OQasE4LO%@*EY(7u1ELca;k6l>I_4zT4 zzi3X;k6r9eu_`mu`>IgiE>{n*8u{H-Yd#e2CP zpWxP%@0I~vz=J6+(T`p7yD54mOFelBH{*5OiNE81e4NAR9Ho=Ekmpm}O26>8uX#n^ zar9%C?&p?#j=NB8L_c;(4x=BtP9CBkyRIA0<0kw$cceVk?azBSg41~lU*$!d!)y6I z#W{NP>O3dk6jkO=*O;ar2N)z;NC@^{b@Y);ud{r^&=>z^{3O% z>Ycwffbtam*!2%k-s@lH7|Kud@zwv0=U7w5AAN`o>NNVX8_cPu)*9q6`mv)wIr_01 zCh{>_FVTdp@y(quYkKO2;(T`mbkG7*2=XH)socAOiL@}t0rE^x!=Oh|$^kY|yH~O(F z&+u9rbDJDgKIU!KPz&$kCN$rs-S{wva5~4+Ynz-i`mvj)@HKjF^kX-9Ec&sV7E+9x z%su+CqrWlwv77tS9AYg-KX&sldQS6c?y1RZ^QElgEfl-vX>8>TcH?sPv?fZF_m=h9 zoBb({ErYo!$8bxY!>xEF?U^li(sQF1E&8!rI=C}e(p+1cscu^Pa8K^ay*Y&Yay<9v zBp%2q6!X@pR4c77@enTLVO+(-)ou?S$-W%UK~%HVVI0NNIGUGo3~%AFoJQ-YI)le^ zIZseiC64F%JdyqRJr1V2j$YH~$Btgt=*Nzlj(+UgZ|PdKC#gMHuNqgJC2yG_g! z#WMP_+r%dNvD?0rY7Ehj-F5+;yX~6Pdw7oH=ThhLT*q=8c2o0-a?|ZRU%RKO<>c5L zqR+b9MX6I#r>4G`x*+v)PK^82savEDOdXmk7RmFh?Zg{W?@xU>by4c7E_-xO{aWfC zVk9>`R_pQP*z>~fUYF=RiLa!(PIBzJiIYM#1S+kToFH6k}{BRPrtruO57 zj@RQ4sV<`*ySBoY{M6p`C9k#VzT`dj(&)#IdW?NH`BF#GBOU$NwF7;rx9C-le(c&t zzT(z)>J}W$$loaI zG~zsh5ofWB--XeS-TE-qQtQo(bsh0Im@&44=(W+09X+$rkKNjz`_P^g{n)Jy9B6;} zkZL~mo9M@Gd4}fL665xomKb;JPhuPW*e&J~{n#z89sSrXQFj}&FP*!kC)Z_;zHeT} zHon0YKE_5yyyYa`+eANhvm8V}c5}q!6Pio(V>cUHbvZZZI~14b$8Hjr=*Mna!oTo! z{+WN|i@cpr^9s6VQ=I=H#`*uiA-s#<aDU%188LH~a^!m*`WET56a;*NUFh=*Mo@pX#l_*rT=@HsS8<&h43_dDOqh z_1MlTpJ$N|s10+j{|%SYyjqOA{sPKhy;#QY!1|;3AP4ie+?m&L3tq-vG{*We&+vZi zV~T%yA&=neJb+J7j?4E_Y~p=g^kbKuBl@w+;u-zeWpy3>*k#v^e(dODkACd3xkW#A zd22q(-n^Twynz`ySKWJ@$T>Wj;v4)1pGtrM-Xa3QTUDub+RVTmkcSoJrHvOD=p67k`M?8^>sRm1LQO-(gA^NdP z<`DhZCFh8K?0DZE{n(|e)Z|J|rt8Mv($SAyl8@-eE*(wlrF1BN#eI1(cjK89+vvwG zsfXytF0I1>RJ+lST{5@m$Bv%a=*KQDQ=4*DoXZ7_nthee(-@0?h3LmFs@dqrj{f=R$1WbuCHyvBtGGACv$!kGs~ELwEf=@sMckNi z9rK9VFV<+zMPrYC?C8;re(ZvpiGJ+(??a;>yWkqpk6kdY=*Nz~`=TGaAePaOU3h_) z^9i0yKZ}0sf_X+icEMPpAG_eW(T`oYkv;iK%5lMZiTeVDpYl!qn9fzWfL>cTo7eDk z{*dw){n&+Z9Lh1=lOwnl#ihJ9T|4@*3*r;~*ab0-e(b_tjPnoVofNO=$Bw@L=*KRI zTl8ZWw&5WZzv#z~zpJAkyRb2P(7LI!RtoE?1u-g^Q}kmOx^o(`Z{n*i~9R1h@ zFN*s+1!IeT>_V11`n&!MI(PmvdQJWlIq{YMh;t|(QA>GqDgJ@#E&8$JzCiS2=NEGV zLowj*TKFX z^Cc&F>m~ZJ^D!oSQ(jDSpQg^`BaU4=|1cvS;S@f^i&9VGgN_eN9l!@1Z;{%q%jn0> z-|wEB*d>}{qQ~<0dHjad$*I;+@_58KejafS`%>LUKX#buOqHAD_)n?ElpNobdP(Xj zsYj*`N{#%*`BtCTx5+Wx@BMG?H?QumPJZrLU%L7}_iF$B>$~oAn@DoMJ2{chQ{Fqu zcZpx#?^f3Tt{=Qx>A(JqHHETLZ~FT^_T0GW>5hKzWxIFz;ohB{tMqAnG@!Hdi?=#E zSMJPvIy*n^&s#e?Kk=Ds`03{KdFf|9OZviNpZo0Si<&Q=B_-c`Ecuz|B+p&rwaK}h zGdZ_w#I@p@aqTt7vTXORIe)l!mmjI6=&fG4vwG?iW1`QZKiQgx#&x><%$m-Pi*e9r zK3~*0KgKDCi+Q>AIFq*u#*8lO;(7Pjznotu&TM27_jIn%a zW7M!U5$}PL|9-|A%UP@C=Xj|7>Xj}_GdM1;OOM6g5%)`T%hT^Ymi)|flIO1R+T>i$ zSs&-_({-)5W?XyCvDAFtwB}f2>@kO!OUx;mn>i+PU1RP^EW{*5<{^} zV!B3*lbDNrk^{MjoJ4LSM^UG%bGEv!#EeR7WxXv-|5dAXio2f|r}w{q`WLQZUr1uztyk$gC!RWC)aV_1 zA2NDu@9!KtHXTiRUjHJK^E!KS-bxau-IFtxdX-MxrfcN?>bc4DqVnUp+x}0_O;(5* zc}o-lgC*ij?K4gc2Q@9uffzyk&k-gDr0ho}Ew*)DsGK6&gh<9i=J S_LP&iN-okhIy}W?)d~o~$6JvYlfa<3z^E_KY$U-{wt>=b3(dGo!@hTGJ6wh(O+#+w!7&NFVl$oNJKRgEsM0MJyR>FOYwdy?d5kX!ztD$?QFTM02}Z$8-m Xf(?vo8JpkBZ+|b($kNZu!omOmnh!oR delta 210 zcmbR9o^8&1wh135r*LIY4rVFaoXYz~jPo1=1Q<pF diff --git a/ubcpdk/tests/test_components.gds/gds_ref/straight_87bde41b_straight.gds b/ubcpdk/tests/test_components.gds/gds_ref/straight_87bde41b_straight.gds index 9ca6ecee62c20c8d99324ffc02b55d62801b37d6..7af520001562e2c1204d8bfb95e7ed795c29c22c 100644 GIT binary patch delta 126 zcmaFFc8+brzBEn-1~y(M21W)pJ|+e(1~x?|1_lNWer5&+#xD#a0?hya|NjjX0RdJp n$s)+Wz(PnD1B1FKST%z>H;CSB!Kll~$T2yMNgGH`V!8kT5aADc delta 155 zcmX@d_K0o5zIqM@1~y(M21W)pJ|+e(1|0$B|NsA=17bE1&A`C$3y6(iG)x>sGq4CU xFtA|iXJAlwf~Z$_0;^+Cy9c9T;$Rx2fAUjCh0UIf9E^;tlY^MFfn*)i1pwfRElU6Z diff --git a/ubcpdk/tests/test_components/test_pdk_settings_ring_with_crossing_.yml b/ubcpdk/tests/test_components/test_pdk_settings_ring_with_crossing_.yml index 05e2ea0a..acf998bd 100644 --- a/ubcpdk/tests/test_components/test_pdk_settings_ring_with_crossing_.yml +++ b/ubcpdk/tests/test_components/test_pdk_settings_ring_with_crossing_.yml @@ -1,8 +1,17 @@ settings: changed: component: - settings: {} - version: 0.0.1 + decorator: + - function: add_ports_from_siepic_pins + - function: remove_pins + - function: auto_rename_ports + - - function: add_bbox_siepic + - function: add_pins_siepic + - function: add_siepic_labels + doc: TE waveguide crossing. + function: import_gds + gdsdir: gds + gdspath: ebeam_crossing4.gds child: {} default: bend: @@ -24,8 +33,17 @@ settings: bend: function: bend_euler component: - settings: {} - version: 0.0.1 + decorator: + - function: add_ports_from_siepic_pins + - function: remove_pins + - function: auto_rename_ports + - - function: add_bbox_siepic + - function: add_pins_siepic + - function: add_siepic_labels + doc: TE waveguide crossing. + function: import_gds + gdsdir: gds + gdspath: ebeam_crossing4.gds coupler: function: coupler_ring gap: 0.2 @@ -40,5 +58,5 @@ settings: info: {} info_version: 2 module: gdsfactory.components.ring_single_dut - name: ring_single_dut_9c01015b + name: ring_single_dut_aa824f1c version: 0.0.1 From 5f672a6d51b44a788acec1951f0d2ed586b22c08 Mon Sep 17 00:00:00 2001 From: joaquin Date: Fri, 11 Mar 2022 11:34:50 -0800 Subject: [PATCH 2/2] fix pre-commit --- ubcpdk/tech.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ubcpdk/tech.py b/ubcpdk/tech.py index 5cb7e075..74191400 100644 --- a/ubcpdk/tech.py +++ b/ubcpdk/tech.py @@ -36,7 +36,7 @@ class LayerMapUbc: WG2: Layer = (31, 0) DEVREC: Layer = (68, 0) LABEL: Layer = (10, 0) - PORT: Layer = (1, 10) # PinRec + PORT: Layer = (1, 10) # PinRec PORTE: Layer = (1, 11) # PinRecM FLOORPLAN: Layer = (99, 0)