Add series resistor to data input * Some basic esd protection * Fix drc issue from previous commit
diff --git a/mag/proj_sstl_test.mag b/mag/proj_sstl_test.mag index 6a27cc2..f0f0723 100644 --- a/mag/proj_sstl_test.mag +++ b/mag/proj_sstl_test.mag
@@ -1,7 +1,7 @@ magic tech sky130A magscale 1 2 -timestamp 1646210680 +timestamp 1646594466 << locali >> rect 22027 32313 23103 32425 rect 22027 29049 23103 29161 @@ -632,8 +632,9 @@ rect 10700 11805 10706 11811 rect 9981 11746 10067 11752 rect 6024 11617 6030 11724 -rect 6137 11703 9894 11724 -rect 6137 11637 9807 11703 +rect 6137 11617 8304 11724 +rect 9609 11703 9894 11724 +rect 9609 11637 9807 11703 rect 9873 11637 9894 11703 rect 9981 11678 9993 11746 rect 10061 11740 10246 11746 @@ -662,7 +663,7 @@ rect 10061 11678 10246 11684 rect 9981 11677 10067 11678 rect 9987 11672 10067 11677 -rect 6137 11617 9894 11637 +rect 9609 11617 9894 11637 rect 12459 11667 12504 11695 rect 23528 11670 23534 11674 rect 12544 11667 23534 11670 @@ -756,6 +757,8 @@ rect 11463 230 11469 282 rect -424 16 78 112 rect 8949 108 8980 112 +<< rmetal1 >> +rect 8304 11617 9609 11724 << via1 >> rect 23177 35376 23303 35472 rect 23637 35376 23763 35472 @@ -1828,7 +1831,7 @@ timestamp 1646210680 transform -1 0 20118 0 -1 16276 box -2332 -19196 6668 4292 -use sky130_fd_sc_hd__clkbuf_2 sky130_fd_sc_hd__clkbuf_2_0 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag +use sky130_fd_sc_hd__clkbuf_2 sky130_fd_sc_hd__clkbuf_2_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag timestamp 1644111581 transform 1 0 9716 0 1 11488 box -38 -48 406 592 @@ -1836,42 +1839,42 @@ timestamp 1644111581 transform 1 0 10084 0 1 11488 box -38 -48 406 592 -use sky130_fd_sc_hd__clkinv_2 sky130_fd_sc_hd__clkinv_2_0 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag +use sky130_fd_sc_hd__clkinv_2 sky130_fd_sc_hd__clkinv_2_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag timestamp 1644111581 transform 1 0 12384 0 1 11488 box -38 -48 406 592 -use sky130_fd_sc_hd__mux4_1 sky130_fd_sc_hd__mux4_1_0 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag +use sky130_fd_sc_hd__mux4_1 sky130_fd_sc_hd__mux4_1_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag timestamp 1644111581 transform 1 0 10452 0 1 11488 box -38 -48 1970 592 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_0 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag timestamp 1644111581 transform 1 0 12752 0 1 11488 box -38 -48 130 592 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_4 +use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag timestamp 1644111581 -transform 1 0 23608 0 1 15840 -box -38 -48 130 592 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_2 -timestamp 1644111581 -transform 1 0 23608 0 -1 15840 -box -38 -48 130 592 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_1 -timestamp 1644111581 -transform 1 0 23608 0 1 12576 -box -38 -48 130 592 -use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_3 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag -timestamp 1644111581 -transform -1 0 23608 0 1 15840 +transform -1 0 23608 0 1 12576 box -38 -48 498 592 use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_1 timestamp 1644111581 transform -1 0 23608 0 -1 15840 box -38 -48 498 592 -use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_0 +use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_3 timestamp 1644111581 -transform -1 0 23608 0 1 12576 +transform -1 0 23608 0 1 15840 box -38 -48 498 592 +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_1 +timestamp 1644111581 +transform 1 0 23608 0 1 12576 +box -38 -48 130 592 +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_2 +timestamp 1644111581 +transform 1 0 23608 0 -1 15840 +box -38 -48 130 592 +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_4 +timestamp 1644111581 +transform 1 0 23608 0 1 15840 +box -38 -48 130 592 use sky130_fd_sc_hd__and2_1 sky130_fd_sc_hd__and2_1_2 timestamp 1644111581 transform -1 0 23608 0 -1 19104
diff --git a/mag/user_analog_project_wrapper.mag b/mag/user_analog_project_wrapper.mag index 0427176..9d09091 100644 --- a/mag/user_analog_project_wrapper.mag +++ b/mag/user_analog_project_wrapper.mag
@@ -1,12 +1,7 @@ magic tech sky130A magscale 1 2 -timestamp 1646437406 -<< error_p >> -rect 127417 3530 127426 3539 -rect 127426 3521 127435 3530 -rect 127426 2835 127435 2844 -rect 127417 2826 127426 2835 +timestamp 1646600577 << metal1 >> rect 7241 643202 7251 643298 rect 7469 643202 7479 643298 @@ -467,8 +462,11 @@ rect 57514 641802 57739 642827 rect 57514 641568 57739 641577 rect 6999 641231 7206 641240 -rect 126679 3530 127384 4191 +rect 126679 3554 127384 4191 +rect 126679 3530 127435 3554 rect 126679 2835 126731 3530 +rect 127426 2835 127435 3530 +rect 126679 2820 127435 2835 rect 524 -800 636 480 rect 1706 -800 1818 480 rect 2888 -800 3000 480 @@ -576,7 +574,7 @@ rect 123452 -800 123564 480 rect 124634 -800 124746 480 rect 125816 -800 125928 213 -rect 126679 6 127384 2835 +rect 126679 6 127384 2820 rect 126998 -800 127110 6 rect 128180 -800 128292 480 rect 129362 -800 129474 480 @@ -1519,34 +1517,34 @@ rect -100 0 0 704000 rect 584000 0 584100 704000 rect -100 -100 584100 0 -use cfg_shift_register cfg_shift_register_0 +use proj_sstl_test proj_sstl_test_0 +timestamp 1646594466 +transform 1 0 15929 0 1 645492 +box -424 16 33306 40167 +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_0 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag +timestamp 1644111581 +transform 1 0 54234 0 1 642706 +box -38 -48 130 592 +use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_1 +timestamp 1644111581 +transform 1 0 7038 0 1 642706 +box -38 -48 130 592 +use cfg_shift_register cfg_shift_register_3 timestamp 1646187848 -transform 1 0 42470 0 1 642694 -box -72 -183 11802 839 -use cfg_shift_register cfg_shift_register_1 -timestamp 1646187848 -transform 1 0 30694 0 1 642694 +transform 1 0 7142 0 1 642694 box -72 -183 11802 839 use cfg_shift_register cfg_shift_register_2 timestamp 1646187848 transform 1 0 18918 0 1 642694 box -72 -183 11802 839 -use cfg_shift_register cfg_shift_register_3 +use cfg_shift_register cfg_shift_register_1 timestamp 1646187848 -transform 1 0 7142 0 1 642694 +transform 1 0 30694 0 1 642694 box -72 -183 11802 839 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_1 ~/proj/caravan-project/pdk/sky130A/libs.ref/sky130_fd_sc_hd/mag -timestamp 1644111581 -transform 1 0 7038 0 1 642706 -box -38 -48 130 592 -use sky130_fd_sc_hd__tapvpwrvgnd_1 sky130_fd_sc_hd__tapvpwrvgnd_1_0 -timestamp 1644111581 -transform 1 0 54234 0 1 642706 -box -38 -48 130 592 -use proj_sstl_test proj_sstl_test_0 -timestamp 1646210680 -transform 1 0 15929 0 1 645492 -box -424 16 33306 40167 +use cfg_shift_register cfg_shift_register_0 +timestamp 1646187848 +transform 1 0 42470 0 1 642694 +box -72 -183 11802 839 << labels >> flabel metal3 s 583520 269230 584800 269342 0 FreeSans 1120 0 0 0 gpio_analog[0] port 0 nsew signal bidirectional
diff --git a/xschem/proj_sstl_test.sch b/xschem/proj_sstl_test.sch index d752cb3..84a3ce4 100644 --- a/xschem/proj_sstl_test.sch +++ b/xschem/proj_sstl_test.sch
@@ -20,88 +20,89 @@ V {} S {} E {} -N 1950 -590 1950 -430 { lab=n_tx_DQ} -N 1950 -240 1990 -240 { lab=tx_DQ} -N 1990 -590 1990 -240 { lab=tx_DQ} +N 2040 -590 2040 -430 { lab=n_tx_DQ} +N 2040 -240 2080 -240 { lab=tx_DQ} +N 2080 -590 2080 -240 { lab=tx_DQ} N 170 -340 280 -340 { lab=rx_pu_cal[3:0]} N 170 -280 280 -280 { lab=rx_pd_cal[3:0]} N 170 -370 280 -370 { lab=rx_leg_ctrl[6:0]} N 260 -370 260 -250 { lab=rx_leg_ctrl[6:0]} N 260 -250 280 -250 { lab=rx_leg_ctrl[6:0]} N 760 -330 790 -330 { lab=rx_DQ} -N 870 -330 880 -330 { lab=#net1} -N 960 -350 960 -330 { lab=#net2} -N 960 -350 1000 -350 { lab=#net2} -N 1000 -200 1000 -190 { lab=d_sel_1} -N 970 -230 970 -190 { lab=d_sel_0} -N 970 -230 1000 -230 { lab=d_sel_0} -N 860 -300 860 -190 { lab=data_0} -N 860 -300 970 -300 { lab=data_0} -N 970 -390 970 -300 { lab=data_0} -N 970 -390 1000 -390 { lab=data_0} -N 890 -290 890 -190 { lab=data_2} -N 890 -290 980 -290 { lab=data_2} -N 980 -310 980 -290 { lab=data_2} -N 980 -310 1000 -310 { lab=data_2} -N 920 -270 920 -190 { lab=data_3} -N 920 -270 1000 -270 { lab=data_3} -N 1080 -330 1100 -330 { lab=d_out} -N 1090 -330 1090 -280 { lab=d_out} -N 1330 -180 1470 -180 { lab=#net3} -N 1330 -300 1470 -300 { lab=#net4} -N 1330 -370 1330 -300 { lab=#net4} -N 1330 -370 1470 -370 { lab=#net4} -N 1340 -490 1340 -180 { lab=#net3} -N 1340 -490 1470 -490 { lab=#net3} -N 1460 -460 1470 -460 { lab=tx_pu_cal[3:0]} -N 1460 -460 1460 -270 { lab=tx_pu_cal[3:0]} -N 1460 -270 1470 -270 { lab=tx_pu_cal[3:0]} -N 1460 -270 1460 -150 { lab=tx_pu_cal[3:0]} -N 1440 -400 1470 -400 { lab=tx_pd_cal[3:0]} -N 1440 -400 1440 -150 { lab=tx_pd_cal[3:0]} -N 1440 -210 1470 -210 { lab=tx_pd_cal[3:0]} -N 1200 -320 1210 -320 { lab=#net5} +N 960 -330 970 -330 { lab=#net1} +N 1050 -350 1050 -330 { lab=#net2} +N 1050 -350 1090 -350 { lab=#net2} +N 1090 -200 1090 -190 { lab=d_sel_1} +N 1060 -230 1060 -190 { lab=d_sel_0} +N 1060 -230 1090 -230 { lab=d_sel_0} +N 950 -300 950 -190 { lab=data_0} +N 950 -300 1060 -300 { lab=data_0} +N 1060 -390 1060 -300 { lab=data_0} +N 1060 -390 1090 -390 { lab=data_0} +N 980 -290 980 -190 { lab=data_2} +N 980 -290 1070 -290 { lab=data_2} +N 1070 -310 1070 -290 { lab=data_2} +N 1070 -310 1090 -310 { lab=data_2} +N 1010 -270 1010 -190 { lab=data_3} +N 1010 -270 1090 -270 { lab=data_3} +N 1170 -330 1190 -330 { lab=d_out} +N 1180 -330 1180 -280 { lab=d_out} +N 1420 -180 1560 -180 { lab=#net3} +N 1420 -300 1560 -300 { lab=#net4} +N 1420 -370 1420 -300 { lab=#net4} +N 1420 -370 1560 -370 { lab=#net4} +N 1430 -490 1430 -180 { lab=#net3} +N 1430 -490 1560 -490 { lab=#net3} +N 1550 -460 1560 -460 { lab=tx_pu_cal[3:0]} +N 1550 -460 1550 -270 { lab=tx_pu_cal[3:0]} +N 1550 -270 1560 -270 { lab=tx_pu_cal[3:0]} +N 1550 -270 1550 -150 { lab=tx_pu_cal[3:0]} +N 1530 -400 1560 -400 { lab=tx_pd_cal[3:0]} +N 1530 -400 1530 -150 { lab=tx_pd_cal[3:0]} +N 1530 -210 1560 -210 { lab=tx_pd_cal[3:0]} +N 1290 -320 1300 -320 { lab=#net5} N 760 -590 760 -310 { lab=rx_DQ} -N 1200 -160 1200 -150 { lab=tx_leg_ctrl[6:0]} -N 1200 -160 1210 -160 { lab=tx_leg_ctrl[6:0]} -N 1200 -280 1200 -160 { lab=tx_leg_ctrl[6:0]} -N 1200 -280 1210 -280 { lab=tx_leg_ctrl[6:0]} -N 1180 -330 1180 -320 { lab=#net5} -N 1180 -320 1200 -320 { lab=#net5} -N 1090 -280 1090 -200 { lab=d_out} -N 1090 -200 1210 -200 { lab=d_out} -C {/home/derekhm/proj/caravan-project/xschem/SSTL/SSTL.sym} 260 -190 0 0 {name=X1 VDD=IOVDD GND=GND} -C {/home/derekhm/proj/caravan-project/xschem/SSTL/SSTL.sym} 1450 -120 0 0 {name=X2 VDD=IOVDD GND=GND} -C {/home/derekhm/proj/caravan-project/xschem/SSTL/SSTL.sym} 1450 -310 0 0 {name=X3 VDD=IOVDD GND=GND} +N 1290 -160 1290 -150 { lab=tx_leg_ctrl[6:0]} +N 1290 -160 1300 -160 { lab=tx_leg_ctrl[6:0]} +N 1290 -280 1290 -160 { lab=tx_leg_ctrl[6:0]} +N 1290 -280 1300 -280 { lab=tx_leg_ctrl[6:0]} +N 1270 -330 1270 -320 { lab=#net5} +N 1270 -320 1290 -320 { lab=#net5} +N 1180 -280 1180 -200 { lab=d_out} +N 1180 -200 1300 -200 { lab=d_out} +N 850 -330 880 -330 { lab=#net6} +C {xschem/SSTL/SSTL.sym} 260 -190 0 0 {name=X1 VDD=IOVDD GND=GND} +C {xschem/SSTL/SSTL.sym} 1540 -120 0 0 {name=X2 VDD=IOVDD GND=GND} +C {xschem/SSTL/SSTL.sym} 1540 -310 0 0 {name=X3 VDD=IOVDD GND=GND} C {devices/iopin.sym} 760 -590 3 0 {name=p1 lab=rx_DQ } C {devices/ipin.sym} 170 -340 0 0 {name=p2 lab=rx_pu_cal[3:0]} C {devices/ipin.sym} 170 -280 0 0 {name=p3 lab=rx_pd_cal[3:0]} C {devices/ipin.sym} 170 -370 0 0 {name=p4 lab=rx_leg_ctrl[6:0]} -C {devices/ipin.sym} 860 -190 3 0 {name=p5 lab=data_0} -C {devices/ipin.sym} 890 -190 3 0 {name=p6 lab=data_2 +C {devices/ipin.sym} 950 -190 3 0 {name=p5 lab=data_0} +C {devices/ipin.sym} 980 -190 3 0 {name=p6 lab=data_2 } -C {devices/ipin.sym} 920 -190 3 0 {name=p7 lab=data_3 +C {devices/ipin.sym} 1010 -190 3 0 {name=p7 lab=data_3 } -C {devices/ipin.sym} 970 -190 3 0 {name=p8 lab=d_sel_0 +C {devices/ipin.sym} 1060 -190 3 0 {name=p8 lab=d_sel_0 } -C {devices/ipin.sym} 1000 -190 3 0 {name=p9 lab=d_sel_1 +C {devices/ipin.sym} 1090 -190 3 0 {name=p9 lab=d_sel_1 } -C {devices/iopin.sym} 1990 -590 3 0 {name=p10 lab=tx_DQ +C {devices/iopin.sym} 2080 -590 3 0 {name=p10 lab=tx_DQ } -C {devices/iopin.sym} 1950 -590 3 0 {name=p11 lab=n_tx_DQ +C {devices/iopin.sym} 2040 -590 3 0 {name=p11 lab=n_tx_DQ } -C {sky130/sky130_stdcells/clkbuf_2.sym} 830 -330 0 0 {name=x1 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {sky130/sky130_stdcells/clkbuf_2.sym} 920 -330 0 0 {name=x2 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {sky130/sky130_stdcells/mux4_1.sym} 1040 -330 0 0 {name=x3 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {sky130/sky130_stdcells/clkinv_2.sym} 1140 -330 0 0 {name=x4 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {sky130/sky130_stdcells/and2_1.sym} 1270 -180 0 0 {name=xn_and[6:0] VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {sky130/sky130_stdcells/and2_1.sym} 1270 -300 0 0 {name=xand[6:0] VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } -C {devices/ipin.sym} 1460 -150 3 0 {name=p12 lab=tx_pu_cal[3:0]} -C {devices/ipin.sym} 1440 -150 3 0 {name=p13 lab=tx_pd_cal[3:0]} -C {devices/ipin.sym} 1200 -150 3 0 {name=p14 lab=tx_leg_ctrl[6:0]} +C {sky130/sky130_stdcells/clkbuf_2.sym} 920 -330 0 0 {name=x1 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {sky130/sky130_stdcells/clkbuf_2.sym} 1010 -330 0 0 {name=x2 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {sky130/sky130_stdcells/mux4_1.sym} 1130 -330 0 0 {name=x3 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {sky130/sky130_stdcells/clkinv_2.sym} 1230 -330 0 0 {name=x4 VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {sky130/sky130_stdcells/and2_1.sym} 1360 -180 0 0 {name=xn_and[6:0] VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {sky130/sky130_stdcells/and2_1.sym} 1360 -300 0 0 {name=xand[6:0] VGND=GND VNB=GND VPB=VDD VPWR=VDD prefix=sky130_fd_sc_hd__ } +C {devices/ipin.sym} 1550 -150 3 0 {name=p12 lab=tx_pu_cal[3:0]} +C {devices/ipin.sym} 1530 -150 3 0 {name=p13 lab=tx_pd_cal[3:0]} +C {devices/ipin.sym} 1290 -150 3 0 {name=p14 lab=tx_leg_ctrl[6:0]} C {devices/code_shown.sym} 250 -520 0 0 {name=MODELS only_toplevel=true place=header @@ -110,4 +111,9 @@ .include \\\\$::SKYWATER_STDCELLS\\\\/sky130_fd_sc_hd.spice " spice_ignore=false} -C {devices/lab_wire.sym} 1090 -300 3 0 {name=l1 sig_type=std_logic lab=d_out} +C {devices/lab_wire.sym} 1180 -300 3 0 {name=l1 sig_type=std_logic lab=d_out} +C {sky130/sky130_fd_pr/res_generic_m1.sym} 820 -330 3 0 {name=R1 +W=6.525 +L=0.535 +model=res_generic_m1 +mult=1}