From f7eb8bc65cbde2d1c9335c04e3f6ba1044cda6b7 Mon Sep 17 00:00:00 2001 From: TinyTapeoutBot <139130078+TinyTapeoutBot@users.noreply.github.com> Date: Sun, 7 Dec 2025 05:18:09 +0200 Subject: [PATCH] feat: update project tt_um_silicon_art from dxa4481/tiny Commit: e08acbdd390ec1ca30e70ccb866eb4769f4e0702 Workflow: https://github.com/dxa4481/tiny/actions/runs/19998166051 --- projects/tt_um_silicon_art/commit_id.json | 6 +- projects/tt_um_silicon_art/docs/info.md | 12 +- projects/tt_um_silicon_art/pdk.json | 8 +- .../tt_um_silicon_art/tt_um_silicon_art.lef | 181 +- .../tt_um_silicon_art/tt_um_silicon_art.oas | Bin 22926 -> 2753 bytes .../tt_um_silicon_art/tt_um_silicon_art.v | 2455 +---------------- 6 files changed, 89 insertions(+), 2573 deletions(-) diff --git a/projects/tt_um_silicon_art/commit_id.json b/projects/tt_um_silicon_art/commit_id.json index 45584b4..24cd81f 100644 --- a/projects/tt_um_silicon_art/commit_id.json +++ b/projects/tt_um_silicon_art/commit_id.json @@ -1,8 +1,8 @@ { - "app": "Tiny Tapeout main bbd9aa18", + "app": "custom_gds action", "repo": "https://github.com/dxa4481/tiny", - "commit": "f6ba2671c44df1ac6487a752b118a1c84ac78726", - "workflow_url": "https://github.com/dxa4481/tiny/actions/runs/19954450932", + "commit": "e08acbdd390ec1ca30e70ccb866eb4769f4e0702", + "workflow_url": "https://github.com/dxa4481/tiny/actions/runs/19998166051", "project_id": 3497, "sort_id": 1764832851934 } \ No newline at end of file diff --git a/projects/tt_um_silicon_art/docs/info.md b/projects/tt_um_silicon_art/docs/info.md index e5417ff..29337df 100644 --- a/projects/tt_um_silicon_art/docs/info.md +++ b/projects/tt_um_silicon_art/docs/info.md @@ -11,7 +11,7 @@ The design includes: 2. A decorative border frame around the design 3. All required TinyTapeout pins properly defined on Metal4.pin layer 4. Power pins (VPWR, VGND) on TopMetal1.pin layer -5. A minimal Verilog stub that passes inputs through with an XOR pattern +5. A minimal Verilog stub with all outputs tied to ground **Important DRC note:** Art uses `.drawing` layers (datatype 0) which are the only fabricated layers in TinyTapeout's IHP whitelist. All geometry meets DRC requirements: - Pixel art: ~7.88 µm pixels (min: 0.20 µm) ✅ @@ -25,13 +25,11 @@ The design fits in the 202.08 × 154.98 µm tile area (TinyTapeout IHP 1x1 tile) The functional logic is minimal (just for TinyTapeout compatibility): -1. Apply any 8-bit input pattern to `ui_in[7:0]` -2. The output `uo_out[7:0]` will be the input XOR'd with 0xAA +1. All digital outputs (`uo_out[7:0]`) are tied to ground (0x00) +2. All bidirectional outputs (`uio_out[7:0]`) are also grounded +3. Bidirectional pins are configured as inputs (`uio_oe = 0x00`) -For example: -- Input: 0x00 → Output: 0xAA -- Input: 0xFF → Output: 0x55 -- Input: 0xAA → Output: 0x00 +The design maintains connections to all input pins internally to satisfy synthesis requirements, but outputs remain at logic 0 regardless of input values. ## External hardware diff --git a/projects/tt_um_silicon_art/pdk.json b/projects/tt_um_silicon_art/pdk.json index 2dafde5..d181258 100644 --- a/projects/tt_um_silicon_art/pdk.json +++ b/projects/tt_um_silicon_art/pdk.json @@ -1,7 +1,3 @@ { - "FLOW_NAME": "LibreLane", - "FLOW_VERSION": "3.0.0.dev44", - "PDK": "ihp-sg13g2", - "PDK_SOURCE": "IHP-Open-PDK", - "PDK_VERSION": "cb7daaa8901016cf7c5d272dfa322c41f024931f" -} \ No newline at end of file + "PDK": "ihp-sg13g2" +} diff --git a/projects/tt_um_silicon_art/tt_um_silicon_art.lef b/projects/tt_um_silicon_art/tt_um_silicon_art.lef index 6c9a841..06e6364 100644 --- a/projects/tt_um_silicon_art/tt_um_silicon_art.lef +++ b/projects/tt_um_silicon_art/tt_um_silicon_art.lef @@ -1,60 +1,32 @@ -VERSION 5.7 ; - NOWIREEXTENSIONATPIN ON ; - DIVIDERCHAR "/" ; - BUSBITCHARS "[]" ; +VERSION 5.8 ; +BUSBITCHARS "[]" ; +DIVIDERCHAR "/" ; + MACRO tt_um_silicon_art CLASS BLOCK ; - FOREIGN tt_um_silicon_art ; + FOREIGN tt_um_silicon_art 0.000 0.000 ; ORIGIN 0.000 0.000 ; SIZE 202.080 BY 154.980 ; + SYMMETRY X Y ; + PIN VGND DIRECTION INOUT ; USE GROUND ; PORT LAYER TopMetal1 ; - RECT 21.580 3.150 23.780 151.420 ; - END - PORT - LAYER TopMetal1 ; - RECT 60.450 3.150 62.650 151.420 ; - END - PORT - LAYER TopMetal1 ; - RECT 99.320 3.150 101.520 151.420 ; - END - PORT - LAYER TopMetal1 ; - RECT 138.190 3.150 140.390 151.420 ; - END - PORT - LAYER TopMetal1 ; - RECT 177.060 3.150 179.260 151.420 ; + RECT 4.100 5.000 5.900 149.980 ; END END VGND + PIN VPWR DIRECTION INOUT ; USE POWER ; PORT LAYER TopMetal1 ; - RECT 15.380 3.560 17.580 151.830 ; - END - PORT - LAYER TopMetal1 ; - RECT 54.250 3.560 56.450 151.830 ; - END - PORT - LAYER TopMetal1 ; - RECT 93.120 3.560 95.320 151.830 ; - END - PORT - LAYER TopMetal1 ; - RECT 131.990 3.560 134.190 151.830 ; - END - PORT - LAYER TopMetal1 ; - RECT 170.860 3.560 173.060 151.830 ; + RECT 7.600 5.000 9.400 149.980 ; END END VPWR + PIN clk DIRECTION INPUT ; USE SIGNAL ; @@ -63,6 +35,7 @@ MACRO tt_um_silicon_art RECT 187.050 153.980 187.350 154.980 ; END END clk + PIN ena DIRECTION INPUT ; USE SIGNAL ; @@ -71,6 +44,7 @@ MACRO tt_um_silicon_art RECT 190.890 153.980 191.190 154.980 ; END END ena + PIN rst_n DIRECTION INPUT ; USE SIGNAL ; @@ -79,78 +53,79 @@ MACRO tt_um_silicon_art RECT 183.210 153.980 183.510 154.980 ; END END rst_n + PIN ui_in[0] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 179.370 153.980 179.670 154.980 ; END END ui_in[0] + PIN ui_in[1] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 175.530 153.980 175.830 154.980 ; END END ui_in[1] + PIN ui_in[2] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 171.690 153.980 171.990 154.980 ; END END ui_in[2] + PIN ui_in[3] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 167.850 153.980 168.150 154.980 ; END END ui_in[3] + PIN ui_in[4] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 164.010 153.980 164.310 154.980 ; END END ui_in[4] + PIN ui_in[5] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 160.170 153.980 160.470 154.980 ; END END ui_in[5] + PIN ui_in[6] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 156.330 153.980 156.630 154.980 ; END END ui_in[6] + PIN ui_in[7] DIRECTION INPUT ; USE SIGNAL ; - ANTENNAGATEAREA 0.180700 ; PORT LAYER Metal4 ; RECT 152.490 153.980 152.790 154.980 ; END END ui_in[7] + PIN uio_in[0] DIRECTION INPUT ; USE SIGNAL ; @@ -159,6 +134,7 @@ MACRO tt_um_silicon_art RECT 148.650 153.980 148.950 154.980 ; END END uio_in[0] + PIN uio_in[1] DIRECTION INPUT ; USE SIGNAL ; @@ -167,6 +143,7 @@ MACRO tt_um_silicon_art RECT 144.810 153.980 145.110 154.980 ; END END uio_in[1] + PIN uio_in[2] DIRECTION INPUT ; USE SIGNAL ; @@ -175,6 +152,7 @@ MACRO tt_um_silicon_art RECT 140.970 153.980 141.270 154.980 ; END END uio_in[2] + PIN uio_in[3] DIRECTION INPUT ; USE SIGNAL ; @@ -183,6 +161,7 @@ MACRO tt_um_silicon_art RECT 137.130 153.980 137.430 154.980 ; END END uio_in[3] + PIN uio_in[4] DIRECTION INPUT ; USE SIGNAL ; @@ -191,6 +170,7 @@ MACRO tt_um_silicon_art RECT 133.290 153.980 133.590 154.980 ; END END uio_in[4] + PIN uio_in[5] DIRECTION INPUT ; USE SIGNAL ; @@ -199,6 +179,7 @@ MACRO tt_um_silicon_art RECT 129.450 153.980 129.750 154.980 ; END END uio_in[5] + PIN uio_in[6] DIRECTION INPUT ; USE SIGNAL ; @@ -207,6 +188,7 @@ MACRO tt_um_silicon_art RECT 125.610 153.980 125.910 154.980 ; END END uio_in[6] + PIN uio_in[7] DIRECTION INPUT ; USE SIGNAL ; @@ -215,276 +197,223 @@ MACRO tt_um_silicon_art RECT 121.770 153.980 122.070 154.980 ; END END uio_in[7] + PIN uio_oe[0] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 56.490 153.980 56.790 154.980 ; END END uio_oe[0] + PIN uio_oe[1] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 52.650 153.980 52.950 154.980 ; END END uio_oe[1] + PIN uio_oe[2] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 48.810 153.980 49.110 154.980 ; END END uio_oe[2] + PIN uio_oe[3] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 44.970 153.980 45.270 154.980 ; END END uio_oe[3] + PIN uio_oe[4] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 41.130 153.980 41.430 154.980 ; END END uio_oe[4] + PIN uio_oe[5] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 37.290 153.980 37.590 154.980 ; END END uio_oe[5] + PIN uio_oe[6] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 33.450 153.980 33.750 154.980 ; END END uio_oe[6] + PIN uio_oe[7] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 29.610 153.980 29.910 154.980 ; END END uio_oe[7] + PIN uio_out[0] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 87.210 153.980 87.510 154.980 ; END END uio_out[0] + PIN uio_out[1] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 83.370 153.980 83.670 154.980 ; END END uio_out[1] + PIN uio_out[2] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 79.530 153.980 79.830 154.980 ; END END uio_out[2] + PIN uio_out[3] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 75.690 153.980 75.990 154.980 ; END END uio_out[3] + PIN uio_out[4] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 71.850 153.980 72.150 154.980 ; END END uio_out[4] + PIN uio_out[5] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 68.010 153.980 68.310 154.980 ; END END uio_out[5] + PIN uio_out[6] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 64.170 153.980 64.470 154.980 ; END END uio_out[6] + PIN uio_out[7] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.299200 ; PORT LAYER Metal4 ; RECT 60.330 153.980 60.630 154.980 ; END END uio_out[7] + PIN uo_out[0] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.708600 ; PORT LAYER Metal4 ; RECT 117.930 153.980 118.230 154.980 ; END END uo_out[0] + PIN uo_out[1] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.632400 ; PORT LAYER Metal4 ; RECT 114.090 153.980 114.390 154.980 ; END END uo_out[1] + PIN uo_out[2] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.708600 ; PORT LAYER Metal4 ; RECT 110.250 153.980 110.550 154.980 ; END END uo_out[2] + PIN uo_out[3] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.632400 ; PORT LAYER Metal4 ; RECT 106.410 153.980 106.710 154.980 ; END END uo_out[3] + PIN uo_out[4] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.708600 ; PORT LAYER Metal4 ; RECT 102.570 153.980 102.870 154.980 ; END END uo_out[4] + PIN uo_out[5] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.632400 ; PORT LAYER Metal4 ; RECT 98.730 153.980 99.030 154.980 ; END END uo_out[5] + PIN uo_out[6] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.708600 ; PORT LAYER Metal4 ; RECT 94.890 153.980 95.190 154.980 ; END END uo_out[6] + PIN uo_out[7] DIRECTION OUTPUT ; USE SIGNAL ; - ANTENNADIFFAREA 0.632400 ; PORT LAYER Metal4 ; RECT 91.050 153.980 91.350 154.980 ; END END uo_out[7] - OBS - LAYER GatPoly ; - RECT 2.880 3.630 199.200 151.350 ; - LAYER Metal1 ; - RECT 2.880 3.560 199.200 151.420 ; - LAYER Metal2 ; - RECT 15.560 3.635 179.080 152.185 ; - LAYER Metal3 ; - RECT 15.515 3.680 179.665 152.145 ; - LAYER Metal4 ; - RECT 15.560 153.770 29.400 153.980 ; - RECT 30.120 153.770 33.240 153.980 ; - RECT 33.960 153.770 37.080 153.980 ; - RECT 37.800 153.770 40.920 153.980 ; - RECT 41.640 153.770 44.760 153.980 ; - RECT 45.480 153.770 48.600 153.980 ; - RECT 49.320 153.770 52.440 153.980 ; - RECT 53.160 153.770 56.280 153.980 ; - RECT 57.000 153.770 60.120 153.980 ; - RECT 60.840 153.770 63.960 153.980 ; - RECT 64.680 153.770 67.800 153.980 ; - RECT 68.520 153.770 71.640 153.980 ; - RECT 72.360 153.770 75.480 153.980 ; - RECT 76.200 153.770 79.320 153.980 ; - RECT 80.040 153.770 83.160 153.980 ; - RECT 83.880 153.770 87.000 153.980 ; - RECT 87.720 153.770 90.840 153.980 ; - RECT 91.560 153.770 94.680 153.980 ; - RECT 95.400 153.770 98.520 153.980 ; - RECT 99.240 153.770 102.360 153.980 ; - RECT 103.080 153.770 106.200 153.980 ; - RECT 106.920 153.770 110.040 153.980 ; - RECT 110.760 153.770 113.880 153.980 ; - RECT 114.600 153.770 117.720 153.980 ; - RECT 118.440 153.770 121.560 153.980 ; - RECT 122.280 153.770 125.400 153.980 ; - RECT 126.120 153.770 129.240 153.980 ; - RECT 129.960 153.770 133.080 153.980 ; - RECT 133.800 153.770 136.920 153.980 ; - RECT 137.640 153.770 140.760 153.980 ; - RECT 141.480 153.770 144.600 153.980 ; - RECT 145.320 153.770 148.440 153.980 ; - RECT 149.160 153.770 152.280 153.980 ; - RECT 153.000 153.770 156.120 153.980 ; - RECT 156.840 153.770 159.960 153.980 ; - RECT 160.680 153.770 163.800 153.980 ; - RECT 164.520 153.770 167.640 153.980 ; - RECT 168.360 153.770 171.480 153.980 ; - RECT 172.200 153.770 175.320 153.980 ; - RECT 176.040 153.770 179.160 153.980 ; - RECT 15.560 3.635 179.620 153.770 ; - LAYER Metal5 ; - RECT 15.515 3.470 179.125 151.510 ; - END + END tt_um_silicon_art -END LIBRARY +END LIBRARY diff --git a/projects/tt_um_silicon_art/tt_um_silicon_art.oas b/projects/tt_um_silicon_art/tt_um_silicon_art.oas index ebaef6062fe8b8e47d2d1f98d4ea745fd158d57c..8ce773092441cf808aad7f028e617b5b35d6cae4 100644 GIT binary patch delta 2515 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�v}L-oQ*StaLMR!oiN{n#EYP8Vt#UBmo98|J*lf%_T8G-uR1 z)s-dJ^g9Q8ZsW0|Pv?Sy{x;M`$aIJb@n%0G1n**a=fjiWO_`3*Hh5)MA3oljoPS!dnO|cUlSiKaOrg+wJt?`iz9;PQ z-T_s2LFhrx6-jG$is2oG%>Kg^;8HjaD*O2JBbXKk!uwT~Qlm^IxItp(PbJaiFyz~< zsO!I{rK_B~Cr}-?&yI*iQ@0CwTW%5^YNt@PNo-8s%RPH$0d?0rtlOV%;)|1Ojs~UV zehy&w`LQV2f8AIXf`#ybZ}9LYT+iZydt_+Ww>m?X2jV7*|;B!2D@UE#$->$v&> z&IOK?kz3X;OWT+>`)Qpubqi|hqo$H=O%7c(EHzx)Hp;Xa_Rk~hj#Iy|ynPMtolw18 z%CgB5U1>Z4LchkkGd*|dHzB2-IZ)m#1IAt`=BswHKTVx@0v@$)vr22LjqI$yuoJEyky2F}j6S8i{k7ECuRHalA`)Vj9mD!9WP z;1j{rJ9m|L0yZmOJlyz$eQbE*DUUmkZGT(DS8ezFV0(IOdM(Xu??Ed%K((2)7_yD{ zZIqWN;wC8oxFbyf?)ro5wFj1|f;dhGSPLDlo3tSv4hpW;K`=1l2j#uuZ+sZ5SRseJvCW#9v|73_P&s zwSt_55^3;_%+y35r5^CovS@AgkKk(sEZ%fXG-G0MME=R0GuF@krFwAParA(9o$Qt4 z30Rdr*zGFl2#gGN$(`G&@q=uTA}A)r@9`5mz?}ym%RjFYfF_SyFF4rzeQsYf;bP&z z!hg7VV``Rg2o>-AMMHd`*o<$xM+b8tMT1EkbT0^^YajKme zk`>$BFriEQ_#B}>hH1xZoI*#8o6Y!0Tg-*b^om&#xY*w9C>3PuYCT3=ccYspHX->3 zapR7-7r7cpuyHxw>b?_d8U{_%%BM%5pa@&|L#82paxss~@+{yQFI$xP^Wjx8># zE}Z4ZL@m5y{p7E~PH)Z}zrH!P<-ZTLVC+#if_?#*)zquFs@3dTmd+X=Q9Iu|!3v*~ zp2QeQ;e&4-Ld?ChVwU|f!^b~3viuVQcnhiXAaNTMqvWcj#7kgiU$|8YowRx~7McVuMDaL;6&Ry|u-Cxj7$VQ!pH}HDwdpdZpKf)&HNbODe zUM4L&FfU!|Y`XJQO=E*E=;q#hqTy}23+HO0xpw!>-wAG2txHC(XJ@(H+hx$&grl*} z9oEbHauU}nhZDf5*^v-rg`V k~%paI(4g(2)svclM(D?r!g_tmp5kuPw@}a~9PU zKzl2JyVmTInM0k793O117RK)Eu=of6SD^oCcb+;)YeD(AJ}Rmp;drkcX8VHNi`l=M zv2H{hca3i|{v{EQ5EsY28c15T-^I`P>Y-2~F>`>zFUMHKza2c?Iq$0mqUmJt7v9*+ z!o&>W}-fi>Lx%x^nYF*`8-fykfZP_6xtTgM43a?77cIZu-ArMnvR8Ssl0kc9bSPGWh