This commit is contained in:
manarabdelaty 2021-12-05 19:50:01 +02:00
commit 00c845525a
39 changed files with 5198 additions and 1781 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
magic
tech sky130A
magscale 1 2
timestamp 1637791793
timestamp 1638483672
<< error_p >>
rect 585752 994898 585758 994904
rect 590380 994898 590386 994904
@ -351,10 +351,6 @@ rect 679466 134863 680228 134864
rect 679466 133781 679467 134863
rect 680227 133781 680228 134863
rect 679466 133780 680228 133781
rect 234842 38177 237788 38178
rect 234842 37337 234843 38177
rect 237787 37337 237788 38177
rect 234842 37336 237788 37337
rect 149632 35995 150436 35996
rect 149632 35167 149633 35995
rect 150435 35167 150436 35995
@ -367,10 +363,6 @@ rect 642026 33989 642027 34759
rect 643633 33989 643634 34759
rect 642026 33988 643634 33989
rect 148098 33958 148902 33959
rect 204996 31645 207928 31646
rect 204996 30787 204997 31645
rect 207927 30787 207928 31645
rect 204996 30786 207928 30787
<< metal1 >>
rect 648104 47124 649670 47188
rect 648104 46660 648166 47124
@ -470,17 +462,9 @@ rect 643660 42198 643694 43988
rect 149600 35166 149632 35996
rect 150436 35166 150458 35996
rect 149600 35114 150458 35166
rect 234814 38178 237814 38242
rect 234814 37336 234842 38178
rect 237788 37336 237814 38178
rect 148068 33958 148098 34788
rect 148902 33958 148926 34788
rect 148068 33900 148926 33958
rect 204958 31646 207958 31734
rect 204958 30786 204996 31646
rect 207928 30786 207958 31646
rect 204958 18004 207958 30786
rect 234814 19380 237814 37336
rect 641954 34760 643694 42198
rect 653462 42634 653578 45026
rect 656772 42634 656910 45026
@ -488,12 +472,6 @@ rect 653462 35808 656910 42634
rect 641954 33988 642026 34760
rect 643634 33988 643694 34760
rect 641954 33920 643694 33988
rect 234814 18544 234884 19380
rect 237754 18544 237814 19380
rect 234814 18466 237814 18544
rect 204958 17128 205020 18004
rect 207872 17128 207958 18004
rect 204958 17038 207958 17128
<< via3 >>
rect 575762 994884 580384 997314
rect 585758 994898 590380 997328
@ -516,13 +494,9 @@ rect 251392 42856 255638 46630
rect 648166 46660 649608 47124
rect 641994 42198 643660 43988
rect 149632 35166 150436 35996
rect 234842 37336 237788 38178
rect 148098 33958 148902 34788
rect 204996 30786 207928 31646
rect 653578 42634 656772 45026
rect 642026 33988 643634 34760
rect 234884 18544 237754 19380
rect 205020 17128 207872 18004
<< metal4 >>
rect 575680 997314 580478 997462
rect 575680 994884 575762 997314
@ -971,6 +945,46 @@ rect 640098 80900 640922 81016
rect 640098 78256 640210 80900
rect 640810 78256 640922 80900
rect 640098 78134 640922 78256
rect 624788 77532 625108 77698
rect 624788 76626 624806 77532
rect 625068 76626 625108 77532
rect 624788 74428 625108 76626
rect 626338 76130 626658 77698
rect 626338 75224 626358 76130
rect 626620 75224 626658 76130
rect 626338 74428 626658 75224
rect 627888 77546 628208 77698
rect 627888 76640 627918 77546
rect 628180 76640 628208 77546
rect 627888 74428 628208 76640
rect 629438 76134 629758 77698
rect 629438 75228 629452 76134
rect 629714 75228 629758 76134
rect 629438 74428 629758 75228
rect 630988 77542 631308 77698
rect 630988 76636 631008 77542
rect 631270 76636 631308 77542
rect 630988 74428 631308 76636
rect 632538 76138 632858 77698
rect 632538 75232 632560 76138
rect 632822 75232 632858 76138
rect 632538 74428 632858 75232
rect 634088 77542 634408 77698
rect 634088 76636 634102 77542
rect 634364 76636 634408 77542
rect 634088 74428 634408 76636
rect 635638 76130 635958 77698
rect 635638 75224 635664 76130
rect 635926 75224 635958 76130
rect 635638 74428 635958 75224
rect 637188 77554 637508 77698
rect 637188 76648 637210 77554
rect 637472 76648 637508 77554
rect 637188 74428 637508 76648
rect 638738 76156 639058 77698
rect 638738 75250 638766 76156
rect 639028 75250 639058 76156
rect 638738 74428 639058 75250
rect 41858 72802 45772 72890
rect 41858 68338 41922 72802
rect 45648 68338 45772 72802
@ -1035,54 +1049,6 @@ rect 143440 40752 148940 40762
rect 143440 40592 148086 40752
rect 148908 40592 148940 40752
rect 143440 40582 148940 40592
rect 208850 19412 209170 19578
rect 208850 18506 208868 19412
rect 209130 18506 209170 19412
rect 204960 18004 207956 18076
rect 204960 17128 205020 18004
rect 207872 17128 207956 18004
rect 204960 17072 207956 17128
rect 208850 16308 209170 18506
rect 210400 18010 210720 19578
rect 210400 17104 210420 18010
rect 210682 17104 210720 18010
rect 210400 16308 210720 17104
rect 211950 19426 212270 19578
rect 211950 18520 211980 19426
rect 212242 18520 212270 19426
rect 211950 16308 212270 18520
rect 213500 18014 213820 19578
rect 213500 17108 213514 18014
rect 213776 17108 213820 18014
rect 213500 16308 213820 17108
rect 215050 19422 215370 19578
rect 215050 18516 215070 19422
rect 215332 18516 215370 19422
rect 215050 16308 215370 18516
rect 216600 18018 216920 19578
rect 216600 17112 216622 18018
rect 216884 17112 216920 18018
rect 216600 16308 216920 17112
rect 218150 19422 218470 19578
rect 218150 18516 218164 19422
rect 218426 18516 218470 19422
rect 218150 16308 218470 18516
rect 219700 18010 220020 19578
rect 219700 17104 219726 18010
rect 219988 17104 220020 18010
rect 219700 16308 220020 17104
rect 221250 19434 221570 19578
rect 221250 18528 221272 19434
rect 221534 18528 221570 19434
rect 221250 16308 221570 18528
rect 222800 18036 223120 19578
rect 234818 19380 237824 19480
rect 234818 18544 234884 19380
rect 237754 18544 237824 19380
rect 234818 18470 237824 18544
rect 222800 17130 222828 18036
rect 223090 17130 223120 18036
rect 222800 16308 223120 17130
<< via4 >>
rect 575762 994884 580384 997314
rect 585758 994898 590380 997328
@ -1202,6 +1168,16 @@ rect 594120 79916 596852 80456
rect 602454 79938 605324 80438
rect 632200 78326 632864 80776
rect 640210 78256 640810 80900
rect 624806 76626 625068 77532
rect 626358 75224 626620 76130
rect 627918 76640 628180 77546
rect 629452 75228 629714 76134
rect 631008 76636 631270 77542
rect 632560 75232 632822 76138
rect 634102 76636 634364 77542
rect 635664 75224 635926 76130
rect 637210 76648 637472 77554
rect 638766 75250 639028 76156
rect 41922 68338 45648 72802
rect 41936 66902 45690 67438
rect 51444 66916 52306 67436
@ -1213,18 +1189,6 @@ rect 241740 42842 245986 46616
rect 251392 42856 255638 46630
rect 648166 46660 649608 47124
rect 666460 47030 669380 47282
rect 208868 18506 209130 19412
rect 205020 17128 207872 18004
rect 210420 17104 210682 18010
rect 211980 18520 212242 19426
rect 213514 17108 213776 18014
rect 215070 18516 215332 19422
rect 216622 17112 216884 18018
rect 218164 18516 218426 19422
rect 219726 17104 219988 18010
rect 221272 18528 221534 19434
rect 234884 18544 237754 19380
rect 222828 17130 223090 18036
<< metal5 >>
rect 575640 997328 666620 997396
rect 575640 997314 585758 997328
@ -1596,11 +1560,16 @@ rect 657500 96142 657728 98712
rect 626744 96074 657728 96142
rect 602390 95956 657728 96074
rect 602390 80438 605390 95956
rect 624824 89474 627824 95956
rect 624824 90740 627824 95956
rect 643544 93474 646544 93588
rect 641906 93154 646544 93474
rect 624824 89154 629362 89474
rect 624824 89012 627824 89154
rect 602390 79938 602454 80438
rect 605324 79938 605390 80438
rect 602390 47188 605390 79938
rect 623076 89474 627824 90740
rect 623076 89154 629362 89474
rect 623076 89012 627824 89154
rect 623076 76192 624208 89012
rect 643544 85474 646544 93154
rect 650994 92590 653994 95956
rect 666426 93406 669426 105300
@ -1616,9 +1585,6 @@ rect 662504 89822 669426 90142
rect 641968 85154 646544 85474
rect 643544 81082 646544 85154
rect 666426 81082 669426 89822
rect 602390 79938 602454 80438
rect 605324 79938 605390 80438
rect 602390 47188 605390 79938
rect 632002 80900 669426 81082
rect 632002 80776 640210 80900
rect 632002 78326 632200 80776
@ -1626,6 +1592,48 @@ rect 632864 78326 640210 80776
rect 632002 78256 640210 78326
rect 640810 78256 669426 80900
rect 632002 78082 669426 78256
rect 642090 77592 643860 78082
rect 624560 77554 643860 77592
rect 624560 77546 637210 77554
rect 624560 77532 627918 77546
rect 624560 76626 624806 77532
rect 625068 76640 627918 77532
rect 628180 77542 637210 77546
rect 628180 76640 631008 77542
rect 625068 76636 631008 76640
rect 631270 76636 634102 77542
rect 634364 76648 637210 77542
rect 637472 76648 643860 77554
rect 634364 76636 643860 76648
rect 625068 76626 643860 76636
rect 624560 76592 643860 76626
rect 620518 76156 639190 76192
rect 620518 76138 638766 76156
rect 620518 76134 632560 76138
rect 620518 76130 629452 76134
rect 620518 75224 626358 76130
rect 626620 75228 629452 76130
rect 629714 75232 632560 76134
rect 632822 76130 638766 76138
rect 632822 75232 635664 76130
rect 629714 75228 635664 75232
rect 626620 75224 635664 75228
rect 635926 75250 638766 76130
rect 639028 75250 639190 76156
rect 635926 75224 639190 75250
rect 620518 75192 639190 75224
rect 620518 72120 621318 75192
rect 641184 73810 641984 76592
rect 640436 73490 641984 73810
rect 620518 71800 621868 72120
rect 620518 68740 621318 71800
rect 641184 70430 641984 73490
rect 640402 70110 641984 70430
rect 620518 68420 621746 68740
rect 620518 66216 621318 68420
rect 641184 67050 641984 70110
rect 640524 66730 641984 67050
rect 641184 65958 641984 66730
rect 666426 47282 669426 78082
rect 602390 47124 649668 47188
rect 602390 46788 648166 47124
@ -1646,53 +1654,6 @@ rect 255638 45788 605390 46588
rect 255638 42856 605396 45788
rect 245986 42842 605396 42856
rect 46836 42788 605396 42842
rect 205820 19434 237824 19472
rect 205820 19426 221272 19434
rect 205820 19412 211980 19426
rect 205820 18506 208868 19412
rect 209130 18520 211980 19412
rect 212242 19422 221272 19426
rect 212242 18520 215070 19422
rect 209130 18516 215070 18520
rect 215332 18516 218164 19422
rect 218426 18528 221272 19422
rect 221534 19380 237824 19434
rect 221534 18544 234884 19380
rect 237754 18544 237824 19380
rect 221534 18528 237824 18544
rect 218426 18516 237824 18528
rect 209130 18506 237824 18516
rect 205820 18472 237824 18506
rect 204580 18036 224806 18072
rect 204580 18018 222828 18036
rect 204580 18014 216622 18018
rect 204580 18010 213514 18014
rect 204580 18004 210420 18010
rect 204580 17128 205020 18004
rect 207872 17128 210420 18004
rect 204580 17104 210420 17128
rect 210682 17108 213514 18010
rect 213776 17112 216622 18014
rect 216884 18010 222828 18018
rect 216884 17112 219726 18010
rect 213776 17108 219726 17112
rect 210682 17104 219726 17108
rect 219988 17130 222828 18010
rect 223090 17130 224806 18036
rect 219988 17104 224806 17130
rect 204580 17072 224806 17104
rect 204580 14000 205380 17072
rect 225246 15690 226046 18472
rect 224498 15370 226046 15690
rect 204580 13680 205930 14000
rect 204580 10620 205380 13680
rect 225246 12310 226046 15370
rect 224464 11990 226046 12310
rect 204580 10300 205808 10620
rect 204580 8096 205380 10300
rect 225246 8930 226046 11990
rect 224586 8610 226046 8930
rect 225246 7838 226046 8610
<< comment >>
rect 0 1037400 717600 1037600
rect 0 200 200 1037400
@ -1826,8 +1787,6 @@ flabel metal5 664092 267180 666518 267904 0 FreeSans 3200 0 0 0 vssa1_core
flabel metal5 667280 263142 669706 263866 0 FreeSans 3200 0 0 0 vdda1_core
flabel metal5 634330 96284 638114 98514 0 FreeSans 16000 0 0 0 vssd_core
flabel metal5 633452 78554 637236 80784 0 FreeSans 16000 0 0 0 vccd_core
flabel metal5 206106 18628 207168 19326 0 FreeSans 4800 0 0 0 vccd_core
flabel metal5 206018 17180 207080 17878 0 FreeSans 4800 0 0 0 vssd_core
flabel metal5 182024 250550 190042 253308 0 FreeSans 16000 0 0 0 vssd1_core
flabel metal5 182160 246638 190178 249396 0 FreeSans 16000 0 0 0 vccd1_core
flabel metal5 181852 266620 189870 269378 0 FreeSans 16000 0 0 0 vssa1_core
@ -1838,4 +1797,6 @@ flabel metal5 621512 258708 630212 261250 0 FreeSans 16000 0 0 0 vssa2_core
flabel metal5 621598 254668 630298 257210 0 FreeSans 16000 0 0 0 vdda2_core
flabel metal5 621936 242776 630636 245318 0 FreeSans 16000 0 0 0 vssd2_core
flabel metal5 621794 238736 630494 241278 0 FreeSans 16000 0 0 0 vccd2_core
flabel metal5 621956 75300 623018 75998 0 FreeSans 4800 0 0 0 vssd_core
flabel metal5 639514 76786 640576 77484 0 FreeSans 4800 0 0 0 vccd_core
<< end >>

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
magic
tech sky130A
magscale 1 2
timestamp 1636495793
timestamp 1638586901
<< metal4 >>
rect -1120 140 14840 560
<< metal5 >>
@ -10,13 +10,13 @@ tri 6930 15120 7070 15260 se
rect 7070 15120 8190 15260
tri 6790 14840 6930 14980 se
rect 6930 14840 8190 15120
tri 5670 14700 5810 14840 se
rect 5810 14700 7280 14840
rect 5670 14630 7280 14700
tri 5530 14420 5670 14560 se
rect 5670 14490 7140 14630
tri 5630 14700 5770 14840 se
rect 5770 14700 7280 14840
rect 5630 14630 7280 14700
tri 5490 14420 5630 14560 se
rect 5630 14490 7140 14630
tri 7140 14490 7280 14630 nw
rect 5670 14420 5950 14490
rect 5630 14420 5950 14490
tri 5950 14420 6020 14490 nw
rect 5040 14210 5950 14420
rect 7840 14350 8190 14840
@ -45,19 +45,21 @@ tri 9380 11900 9660 12180 sw
rect 5880 11760 7280 11900
tri 7280 11760 7420 11900 nw
rect 7840 11760 9660 11900
rect 5880 11620 6650 11760
rect 5880 11622 6792 11760
tri 6792 11622 6930 11760 nw
rect 5880 11620 6713 11622
rect 2380 11200 3500 11620
tri 2380 11060 2520 11200 ne
rect 2520 10780 3360 11200
tri 3360 11060 3500 11200 nw
tri 5880 11107 6393 11620 ne
rect 6393 11107 6650 11620
tri 6650 11480 6930 11760 nw
rect 6393 11107 6713 11620
tri 6713 11543 6792 11622 nw
rect 7840 10990 8260 11760
tri 8960 11480 9240 11760 ne
rect 9240 11480 9660 11760
tri 13580 11620 14000 12040 se
rect 14000 11620 14280 12040
rect 14000 11620 14320 12040
tri 13160 11200 13580 11620 se
rect 7840 10920 10640 10990
tri 7280 10780 7420 10920 se
@ -132,20 +134,21 @@ tri 2380 6580 2520 6720 ne
rect 2520 6580 13160 6720
rect 560 6440 1400 6580
rect -980 6300 -140 6440
tri -700 6160 -560 6300 ne
rect -560 6160 -140 6300
tri -700 6120 -520 6300 ne
rect -520 6160 -140 6300
tri -140 6160 140 6440 sw
rect 700 6160 1400 6440
tri 1400 6300 1680 6580 nw
rect 2800 6440 13160 6580
tri -420 5880 -140 6160 ne
rect -140 6090 280 6160
rect -520 6120 280 6160
tri -380 5840 -100 6120 ne
rect -100 6090 280 6120
tri 280 6090 350 6160 sw
rect 700 6090 1330 6160
tri 1330 6090 1400 6160 nw
rect -140 5880 1330 6090
tri 0 5740 140 5880 ne
rect 140 5740 1330 5880
rect -100 5840 1330 6090
tri 40 5740 140 5840 ne
rect 140 5740 1330 5840
tri 280 5600 420 5740 ne
rect 420 5600 2160 5740
tri 560 5460 700 5600 ne
@ -162,9 +165,9 @@ tri 10500 5880 10640 6020 nw
rect 4060 5740 10080 5880
tri 10080 5740 10220 5880 nw
tri 4060 5180 4620 5740 ne
rect 4620 5320 10080 5740
tri 10080 5320 10360 5600 sw
rect 4620 5180 10360 5320
rect 4620 5220 10080 5740
tri 10080 5220 10360 5500 sw
rect 4620 5180 10360 5220
rect 980 5040 3220 5180
tri 3220 5040 3360 5180 sw
rect 4620 5040 7140 5180
@ -203,8 +206,8 @@ rect 11340 4480 11760 6020
tri 12180 5880 12320 6020 ne
rect 12320 5880 13160 6020
tri 13160 5880 13440 6160 sw
tri 12600 5320 13160 5880 ne
rect 13160 5320 13440 5880
tri 12560 5320 13120 5880 ne
rect 13120 5320 13440 5880
tri 12460 4620 12740 4900 se
rect 12740 4760 14000 4900
tri 14000 4760 14140 4900 sw

View File

@ -1,7 +1,7 @@
magic
tech sky130A
magscale 1 2
timestamp 1637790566
timestamp 1638492834
<< error_p >>
rect 111554 1006757 112632 1006758
rect 111554 1006005 111555 1006757
@ -789,10 +789,6 @@ rect 679466 134863 680228 134864
rect 679466 133781 679467 134863
rect 680227 133781 680228 134863
rect 679466 133780 680228 133781
rect 234842 38177 237788 38178
rect 234842 37337 234843 38177
rect 237787 37337 237788 38177
rect 234842 37336 237788 37337
rect 149632 35995 150436 35996
rect 149632 35167 149633 35995
rect 150435 35167 150436 35995
@ -805,10 +801,6 @@ rect 642026 33989 642027 34759
rect 643633 33989 643634 34759
rect 642026 33988 643634 33989
rect 148098 33958 148902 33959
rect 204996 31645 207928 31646
rect 204996 30787 204997 31645
rect 207927 30787 207928 31645
rect 204996 30786 207928 30787
<< error_s >>
rect 41068 950418 41092 951330
rect 43500 950418 43524 951330
@ -1418,17 +1410,9 @@ rect 643660 42198 643694 43988
rect 149600 35166 149632 35996
rect 150436 35166 150458 35996
rect 149600 35114 150458 35166
rect 234814 38178 237814 38242
rect 234814 37336 234842 38178
rect 237788 37336 237814 38178
rect 148068 33958 148098 34788
rect 148902 33958 148926 34788
rect 148068 33900 148926 33958
rect 204958 31646 207958 31734
rect 204958 30786 204996 31646
rect 207928 30786 207958 31646
rect 204958 18004 207958 30786
rect 234814 19380 237814 37336
rect 641954 34760 643694 42198
rect 653462 42634 653578 45026
rect 656772 42634 656910 45026
@ -1436,12 +1420,6 @@ rect 653462 35808 656910 42634
rect 641954 33988 642026 34760
rect 643634 33988 643694 34760
rect 641954 33920 643694 33988
rect 234814 18544 234884 19380
rect 237754 18544 237814 19380
rect 234814 18466 237814 18544
rect 204958 17128 205020 18004
rect 207872 17128 207958 18004
rect 204958 17038 207958 17128
<< via3 >>
rect 575788 995134 580384 997056
rect 585758 995140 590354 997062
@ -1566,13 +1544,9 @@ rect 251392 42856 255638 46630
rect 648166 46660 649608 47124
rect 641994 42198 643660 43988
rect 149632 35166 150436 35996
rect 234842 37336 237788 38178
rect 148098 33958 148902 34788
rect 204996 30786 207928 31646
rect 653578 42634 656772 45026
rect 642026 33988 643634 34760
rect 234884 18544 237754 19380
rect 205020 17128 207872 18004
<< metal4 >>
rect 575680 997056 580478 997130
rect 575680 995134 575788 997056
@ -2343,6 +2317,46 @@ rect 640098 80900 640922 81016
rect 640098 78256 640210 80900
rect 640810 78256 640922 80900
rect 640098 78134 640922 78256
rect 629888 77208 630208 77374
rect 629888 76302 629906 77208
rect 630168 76302 630208 77208
rect 629888 74104 630208 76302
rect 631438 75806 631758 77374
rect 631438 74900 631458 75806
rect 631720 74900 631758 75806
rect 631438 74104 631758 74900
rect 632988 77222 633308 77374
rect 632988 76316 633018 77222
rect 633280 76316 633308 77222
rect 632988 74104 633308 76316
rect 634538 75810 634858 77374
rect 634538 74904 634552 75810
rect 634814 74904 634858 75810
rect 634538 74104 634858 74904
rect 636088 77218 636408 77374
rect 636088 76312 636108 77218
rect 636370 76312 636408 77218
rect 636088 74104 636408 76312
rect 637638 75814 637958 77374
rect 637638 74908 637660 75814
rect 637922 74908 637958 75814
rect 637638 74104 637958 74908
rect 639188 77218 639508 77374
rect 639188 76312 639202 77218
rect 639464 76312 639508 77218
rect 639188 74104 639508 76312
rect 640738 75806 641058 77374
rect 640738 74900 640764 75806
rect 641026 74900 641058 75806
rect 640738 74104 641058 74900
rect 642288 77230 642608 77374
rect 642288 76324 642310 77230
rect 642572 76324 642608 77230
rect 642288 74104 642608 76324
rect 643838 75832 644158 77374
rect 643838 74926 643866 75832
rect 644128 74926 644158 75832
rect 643838 74104 644158 74926
rect 41858 72802 45772 72890
rect 41858 68338 41922 72802
rect 45648 68338 45772 72802
@ -2407,54 +2421,6 @@ rect 143440 40752 148940 40762
rect 143440 40592 148086 40752
rect 148908 40592 148940 40752
rect 143440 40582 148940 40592
rect 208850 19412 209170 19578
rect 208850 18506 208868 19412
rect 209130 18506 209170 19412
rect 204960 18004 207956 18076
rect 204960 17128 205020 18004
rect 207872 17128 207956 18004
rect 204960 17072 207956 17128
rect 208850 16308 209170 18506
rect 210400 18010 210720 19578
rect 210400 17104 210420 18010
rect 210682 17104 210720 18010
rect 210400 16308 210720 17104
rect 211950 19426 212270 19578
rect 211950 18520 211980 19426
rect 212242 18520 212270 19426
rect 211950 16308 212270 18520
rect 213500 18014 213820 19578
rect 213500 17108 213514 18014
rect 213776 17108 213820 18014
rect 213500 16308 213820 17108
rect 215050 19422 215370 19578
rect 215050 18516 215070 19422
rect 215332 18516 215370 19422
rect 215050 16308 215370 18516
rect 216600 18018 216920 19578
rect 216600 17112 216622 18018
rect 216884 17112 216920 18018
rect 216600 16308 216920 17112
rect 218150 19422 218470 19578
rect 218150 18516 218164 19422
rect 218426 18516 218470 19422
rect 218150 16308 218470 18516
rect 219700 18010 220020 19578
rect 219700 17104 219726 18010
rect 219988 17104 220020 18010
rect 219700 16308 220020 17104
rect 221250 19434 221570 19578
rect 221250 18528 221272 19434
rect 221534 18528 221570 19434
rect 221250 16308 221570 18528
rect 222800 18036 223120 19578
rect 234818 19380 237824 19480
rect 234818 18544 234884 19380
rect 237754 18544 237824 19380
rect 234818 18470 237824 18544
rect 222800 17130 222828 18036
rect 223090 17130 223120 18036
rect 222800 16308 223120 17130
<< via4 >>
rect 575762 990884 580384 993314
rect 670928 995628 676500 996584
@ -2651,6 +2617,16 @@ rect 594120 79916 596852 80456
rect 602454 79938 605324 80438
rect 632200 78326 632864 80776
rect 640210 78256 640810 80900
rect 629906 76302 630168 77208
rect 631458 74900 631720 75806
rect 633018 76316 633280 77222
rect 634552 74904 634814 75810
rect 636108 76312 636370 77218
rect 637660 74908 637922 75814
rect 639202 76312 639464 77218
rect 640764 74900 641026 75806
rect 642310 76324 642572 77230
rect 643866 74926 644128 75832
rect 41922 68338 45648 72802
rect 41936 66902 45690 67438
rect 51444 66916 52306 67436
@ -2662,18 +2638,6 @@ rect 241740 42842 245986 46616
rect 251392 42856 255638 46630
rect 648166 46660 649608 47124
rect 666460 47030 669380 47282
rect 208868 18506 209130 19412
rect 205020 17128 207872 18004
rect 210420 17104 210682 18010
rect 211980 18520 212242 19426
rect 213514 17108 213776 18014
rect 215070 18516 215332 19422
rect 216622 17112 216884 18018
rect 218164 18516 218426 19422
rect 219726 17104 219988 18010
rect 221272 18528 221534 19434
rect 234884 18544 237754 19380
rect 222828 17130 223090 18036
<< metal5 >>
rect 52598 996584 676660 996702
rect 52598 995628 670928 996584
@ -3195,6 +3159,10 @@ rect 643544 93474 646544 93588
rect 641906 93154 646544 93474
rect 624824 89154 629362 89474
rect 624824 89012 627824 89154
rect 602390 79938 602454 80438
rect 605324 79938 605390 80438
rect 602390 47188 605390 79938
rect 625618 75868 627034 89012
rect 643544 85474 646544 93154
rect 650994 92590 653994 95956
rect 666426 93406 669426 105300
@ -3210,9 +3178,6 @@ rect 662504 89822 669426 90142
rect 641968 85154 646544 85474
rect 643544 81082 646544 85154
rect 666426 81082 669426 89822
rect 602390 79938 602454 80438
rect 605324 79938 605390 80438
rect 602390 47188 605390 79938
rect 632002 80900 669426 81082
rect 632002 80776 640210 80900
rect 632002 78326 632200 80776
@ -3220,6 +3185,46 @@ rect 632864 78326 640210 80776
rect 632002 78256 640210 78326
rect 640810 78256 669426 80900
rect 632002 78082 669426 78256
rect 645256 77268 647084 78082
rect 629786 77230 647084 77268
rect 629786 77222 642310 77230
rect 629786 77208 633018 77222
rect 629786 76302 629906 77208
rect 630168 76316 633018 77208
rect 633280 77218 642310 77222
rect 633280 76316 636108 77218
rect 630168 76312 636108 76316
rect 636370 76312 639202 77218
rect 639464 76324 642310 77218
rect 642572 76324 647084 77230
rect 639464 76312 647084 76324
rect 630168 76302 647084 76312
rect 629786 76268 647084 76302
rect 625618 75832 644188 75868
rect 625618 75814 643866 75832
rect 625618 75810 637660 75814
rect 625618 75806 634552 75810
rect 625618 74900 631458 75806
rect 631720 74904 634552 75806
rect 634814 74908 637660 75810
rect 637922 75806 643866 75814
rect 637922 74908 640764 75806
rect 634814 74904 640764 74908
rect 631720 74900 640764 74904
rect 641026 74926 643866 75806
rect 644128 74926 644188 75832
rect 641026 74900 644188 74926
rect 625618 74868 644188 74900
rect 625618 71796 626418 74868
rect 646284 73486 647084 76268
rect 645536 73166 647084 73486
rect 625618 71476 626968 71796
rect 625618 68416 626418 71476
rect 646284 70106 647084 73166
rect 645502 69786 647084 70106
rect 625618 68096 626846 68416
rect 646284 66726 647084 69786
rect 645624 66406 647084 66726
rect 666426 47282 669426 78082
rect 602390 47124 649668 47188
rect 602390 46788 648166 47124
@ -3240,53 +3245,6 @@ rect 255638 45788 605390 46588
rect 255638 42856 605396 45788
rect 245986 42842 605396 42856
rect 46836 42788 605396 42842
rect 205820 19434 237824 19472
rect 205820 19426 221272 19434
rect 205820 19412 211980 19426
rect 205820 18506 208868 19412
rect 209130 18520 211980 19412
rect 212242 19422 221272 19426
rect 212242 18520 215070 19422
rect 209130 18516 215070 18520
rect 215332 18516 218164 19422
rect 218426 18528 221272 19422
rect 221534 19380 237824 19434
rect 221534 18544 234884 19380
rect 237754 18544 237824 19380
rect 221534 18528 237824 18544
rect 218426 18516 237824 18528
rect 209130 18506 237824 18516
rect 205820 18472 237824 18506
rect 204580 18036 224806 18072
rect 204580 18018 222828 18036
rect 204580 18014 216622 18018
rect 204580 18010 213514 18014
rect 204580 18004 210420 18010
rect 204580 17128 205020 18004
rect 207872 17128 210420 18004
rect 204580 17104 210420 17128
rect 210682 17108 213514 18010
rect 213776 17112 216622 18014
rect 216884 18010 222828 18018
rect 216884 17112 219726 18010
rect 213776 17108 219726 17112
rect 210682 17104 219726 17108
rect 219988 17130 222828 18010
rect 223090 17130 224806 18036
rect 219988 17104 224806 17130
rect 204580 17072 224806 17104
rect 204580 14000 205380 17072
rect 225246 15690 226046 18472
rect 224498 15370 226046 15690
rect 204580 13680 205930 14000
rect 204580 10620 205380 13680
rect 225246 12310 226046 15370
rect 224464 11990 226046 12310
rect 204580 10300 205808 10620
rect 204580 8096 205380 10300
rect 225246 8930 226046 11990
rect 224586 8610 226046 8930
rect 225246 7838 226046 8610
<< comment >>
rect 0 1037400 717600 1037600
rect 0 200 200 1037400
@ -3464,8 +3422,6 @@ flabel metal5 664092 267180 666518 267904 0 FreeSans 3200 0 0 0 vssa1_core
flabel metal5 667280 263142 669706 263866 0 FreeSans 3200 0 0 0 vdda1_core
flabel metal5 634330 96284 638114 98514 0 FreeSans 16000 0 0 0 vssd_core
flabel metal5 633452 78554 637236 80784 0 FreeSans 16000 0 0 0 vccd_core
flabel metal5 206106 18628 207168 19326 0 FreeSans 4800 0 0 0 vccd_core
flabel metal5 206018 17180 207080 17878 0 FreeSans 4800 0 0 0 vssd_core
flabel metal5 182024 250550 190042 253308 0 FreeSans 16000 0 0 0 vssd1_core
flabel metal5 182160 246638 190178 249396 0 FreeSans 16000 0 0 0 vccd1_core
flabel metal5 181852 266620 189870 269378 0 FreeSans 16000 0 0 0 vssa1_core
@ -3476,4 +3432,6 @@ flabel metal5 621512 258708 630212 261250 0 FreeSans 16000 0 0 0 vssa2_core
flabel metal5 621598 254668 630298 257210 0 FreeSans 16000 0 0 0 vdda2_core
flabel metal5 621936 242776 630636 245318 0 FreeSans 16000 0 0 0 vssd2_core
flabel metal5 621794 238736 630494 241278 0 FreeSans 16000 0 0 0 vccd2_core
flabel metal5 627056 74976 628118 75674 0 FreeSans 4800 0 0 0 vssd_core
flabel metal5 644752 76466 645814 77164 0 FreeSans 4800 0 0 0 vccd_core
<< end >>

View File

@ -1,7 +1,7 @@
magic
tech sky130A
magscale 1 2
timestamp 1638030917
timestamp 1638587925
<< viali >>
rect 1087 833 1121 867
rect 1639 833 1673 867
@ -77,79 +77,57 @@ rect 0 1040 5980 1062
rect 198 824 204 876
rect 256 864 262 876
rect 937 864 995 873
rect 1075 867 1133 873
rect 1075 864 1087 867
rect 256 836 1087 864
rect 256 824 262 836
rect 937 827 995 836
rect 1075 833 1087 836
rect 1121 833 1133 867
rect 1075 864 1133 873
rect 1256 864 1262 916
rect 1314 904 1320 916
rect 1314 876 1450 904
rect 1314 864 1320 876
rect 1422 864 1450 876
rect 1489 864 1547 873
rect 1627 867 1685 873
rect 1627 864 1639 867
rect 1422 836 1639 864
rect 1075 827 1133 833
rect 1627 864 1685 873
rect 256 836 1133 864
rect 1422 836 1685 864
rect 256 824 262 836
rect 937 827 995 836
rect 1075 827 1133 836
rect 1489 827 1547 836
rect 1627 833 1639 836
rect 1673 833 1685 867
rect 1627 827 1685 833
rect 1627 827 1685 836
rect 4571 864 4629 873
rect 4709 867 4767 873
rect 4709 864 4721 867
rect 4571 836 4721 864
rect 4571 827 4629 836
rect 4709 833 4721 836
rect 4755 864 4767 867
rect 4709 864 4767 873
rect 5718 864 5724 876
rect 4755 836 5724 864
rect 4755 833 4767 836
rect 4709 827 4767 833
rect 4571 836 5724 864
rect 4571 827 4629 836
rect 4709 827 4767 836
rect 5718 824 5724 836
rect 5776 824 5782 876
rect 1213 799 1271 805
rect 1213 796 1225 799
rect 1038 768 1225 796
rect 1213 796 1271 805
rect 1351 796 1409 805
rect 1765 796 1823 805
rect 1903 796 1961 805
rect 2038 796 2044 808
rect 1038 768 1409 796
rect 1694 768 1961 796
rect 2035 768 2044 796
rect 658 688 664 740
rect 716 728 722 740
rect 1038 728 1066 768
rect 1213 765 1225 768
rect 1259 796 1271 799
rect 1351 796 1409 805
rect 1765 796 1823 805
rect 1903 799 1961 805
rect 1903 796 1915 799
rect 1259 768 1409 796
rect 1694 768 1915 796
rect 1259 765 1271 768
rect 1213 759 1271 765
rect 1213 759 1271 768
rect 1351 759 1409 768
rect 716 700 1066 728
rect 1578 716 1584 768
rect 1636 756 1642 768
rect 1694 756 1722 768
rect 1765 759 1823 768
rect 1903 765 1915 768
rect 1949 765 1961 799
rect 2038 796 2044 808
rect 2035 768 2044 796
rect 1903 759 1961 765
rect 1903 759 1961 768
rect 2038 756 2044 768
rect 2096 796 2102 808
rect 2176 799 2240 808
rect 2176 796 2191 799
rect 2096 768 2191 796
rect 2096 756 2102 768
rect 2176 765 2191 768
rect 2225 765 2240 799
rect 2176 796 2240 808
rect 2360 796 2424 808
rect 2498 796 2504 808
rect 2096 768 2240 796
rect 2358 768 2504 796
rect 2176 756 2240 765
rect 2096 756 2102 768
rect 2176 756 2240 768
rect 2360 756 2424 768
rect 2498 756 2504 768
rect 2556 756 2562 808
@ -189,13 +167,10 @@ rect 4856 756 4862 768
rect 4936 756 5000 768
rect 5258 756 5264 768
rect 5316 796 5322 808
rect 5396 799 5460 808
rect 5396 796 5411 799
rect 5316 768 5411 796
rect 5396 796 5460 808
rect 5316 768 5460 796
rect 5316 756 5322 768
rect 5396 765 5411 768
rect 5445 765 5460 799
rect 5396 756 5460 765
rect 5396 756 5460 768
rect 1636 728 1722 756
rect 1636 716 1642 728
rect 716 688 722 700
@ -273,36 +248,12 @@ rect 5724 824 5776 876
rect 664 688 716 740
rect 1584 716 1636 768
rect 2044 756 2096 808
rect 2504 799 2556 808
rect 2504 765 2513 799
rect 2513 765 2547 799
rect 2547 765 2556 799
rect 2504 756 2556 765
rect 2964 799 3016 808
rect 2964 765 2973 799
rect 2973 765 3007 799
rect 3007 765 3016 799
rect 2964 756 3016 765
rect 3424 799 3476 808
rect 3424 765 3433 799
rect 3433 765 3467 799
rect 3467 765 3476 799
rect 3424 756 3476 765
rect 3884 799 3936 808
rect 3884 765 3893 799
rect 3893 765 3927 799
rect 3927 765 3936 799
rect 3884 756 3936 765
rect 4344 799 4396 808
rect 4344 765 4353 799
rect 4353 765 4387 799
rect 4387 765 4396 799
rect 4344 756 4396 765
rect 4804 799 4856 808
rect 4804 765 4813 799
rect 4813 765 4847 799
rect 4847 765 4856 799
rect 4804 756 4856 765
rect 2504 756 2556 808
rect 2964 756 3016 808
rect 3424 756 3476 808
rect 3884 756 3936 808
rect 4344 756 4396 808
rect 4804 756 4856 808
rect 5264 756 5316 808
rect 778 518 830 570
rect 842 518 894 570
@ -1263,201 +1214,201 @@ rect 3118 778 4282 1014
rect 4518 778 5980 1014
rect 0 736 5980 778
use sky130_fd_sc_hd__fill_1 FILLER_0_9 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 828 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__decap_3 PHY_2 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 0 0 -1 1632
box -38 -48 314 592
use sky130_fd_sc_hd__decap_3 PHY_0
timestamp 1638025753
timestamp 1638322937
transform 1 0 0 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_12 FILLER_1_3 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 276 0 -1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[0\] $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
transform 1 0 920 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_6 FILLER_0_3 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 276 0 1 544
box -38 -48 590 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[0\] $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638322937
transform 1 0 920 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_12 FILLER_1_15
timestamp 1638025753
timestamp 1638322937
transform 1 0 1380 0 -1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[5\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 2300 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[1\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 1196 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[4\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 2024 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[3\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 1748 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[2\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 1472 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__fill_1 FILLER_0_29
timestamp 1638025753
transform 1 0 2668 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__decap_12 FILLER_1_27
timestamp 1638025753
transform 1 0 2484 0 -1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_6 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 2576 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[7\]
timestamp 1638025753
transform 1 0 3220 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[6\]
timestamp 1638025753
transform 1 0 2760 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__fill_2 FILLER_0_38 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 3496 0 1 544
box -38 -48 222 592
use sky130_fd_sc_hd__fill_2 FILLER_0_33
timestamp 1638025753
timestamp 1638322937
transform 1 0 3036 0 1 544
box -38 -48 222 592
use sky130_fd_sc_hd__fill_1 FILLER_0_48
timestamp 1638025753
transform 1 0 4416 0 1 544
use sky130_fd_sc_hd__fill_1 FILLER_0_29
timestamp 1638322937
transform 1 0 2668 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__decap_12 FILLER_1_27
timestamp 1638322937
transform 1 0 2484 0 -1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[7\]
timestamp 1638322937
transform 1 0 3220 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[6\]
timestamp 1638322937
transform 1 0 2760 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__fill_2 FILLER_0_43
timestamp 1638322937
transform 1 0 3956 0 1 544
box -38 -48 222 592
use sky130_fd_sc_hd__decap_4 FILLER_1_51 $PDKPATH/libs.ref/sky130_fd_sc_hd/mag
timestamp 1638025753
timestamp 1638322937
transform 1 0 4692 0 -1 1632
box -38 -48 406 592
use sky130_fd_sc_hd__fill_1 FILLER_0_48
timestamp 1638322937
transform 1 0 4416 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__decap_12 FILLER_1_39
timestamp 1638025753
timestamp 1638322937
transform 1 0 3588 0 -1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[9\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 4140 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[8\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 3680 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[12\]
timestamp 1638025753
timestamp 1638322937
transform 1 0 4508 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__fill_2 FILLER_0_43
timestamp 1638025753
transform 1 0 3956 0 1 544
box -38 -48 222 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[10\]
timestamp 1638025753
transform 1 0 4784 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_8
timestamp 1638025753
timestamp 1638322937
transform 1 0 5152 0 -1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_7
timestamp 1638025753
timestamp 1638322937
transform 1 0 5152 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__fill_1 FILLER_1_55
timestamp 1638025753
timestamp 1638322937
transform 1 0 5060 0 -1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__fill_1 FILLER_0_55
timestamp 1638025753
timestamp 1638322937
transform 1 0 5060 0 1 544
box -38 -48 130 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[10\]
timestamp 1638322937
transform 1 0 4784 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__fill_2 FILLER_0_60
timestamp 1638025753
timestamp 1638322937
transform 1 0 5520 0 1 544
box -38 -48 222 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[11\]
timestamp 1638025753
transform 1 0 5244 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_4 FILLER_1_57
timestamp 1638025753
timestamp 1638322937
transform 1 0 5244 0 -1 1632
box -38 -48 406 592
use sky130_fd_sc_hd__fill_1 FILLER_1_61
timestamp 1638025753
timestamp 1638322937
transform 1 0 5612 0 -1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__conb_1 gpio_default_value\[11\]
timestamp 1638322937
transform 1 0 5244 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_3 PHY_3
timestamp 1638025753
timestamp 1638322937
transform -1 0 5980 0 -1 1632
box -38 -48 314 592
use sky130_fd_sc_hd__decap_3 PHY_1
timestamp 1638025753
timestamp 1638322937
transform -1 0 5980 0 1 544
box -38 -48 314 592
use sky130_fd_sc_hd__decap_3 PHY_4
timestamp 1638025753
timestamp 1638322937
transform 1 0 0 0 1 1632
box -38 -48 314 592
use sky130_fd_sc_hd__decap_12 FILLER_2_3
timestamp 1638025753
timestamp 1638322937
transform 1 0 276 0 1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__decap_12 FILLER_2_15
timestamp 1638025753
timestamp 1638322937
transform 1 0 1380 0 1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_9
timestamp 1638322937
transform 1 0 2576 0 1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__fill_1 FILLER_2_27
timestamp 1638025753
timestamp 1638322937
transform 1 0 2484 0 1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__decap_12 FILLER_2_29
timestamp 1638025753
timestamp 1638322937
transform 1 0 2668 0 1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_9
timestamp 1638025753
transform 1 0 2576 0 1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__decap_12 FILLER_2_41
timestamp 1638025753
timestamp 1638322937
transform 1 0 3772 0 1 1632
box -38 -48 1142 592
use sky130_fd_sc_hd__fill_1 FILLER_2_61
timestamp 1638025753
transform 1 0 5612 0 1 1632
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_10
timestamp 1638322937
transform 1 0 5152 0 1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__decap_4 FILLER_2_57
timestamp 1638025753
timestamp 1638322937
transform 1 0 5244 0 1 1632
box -38 -48 406 592
use sky130_fd_sc_hd__fill_1 FILLER_2_61
timestamp 1638322937
transform 1 0 5612 0 1 1632
box -38 -48 130 592
use sky130_fd_sc_hd__decap_3 PHY_5
timestamp 1638025753
timestamp 1638322937
transform -1 0 5980 0 1 1632
box -38 -48 314 592
use sky130_fd_sc_hd__decap_3 FILLER_2_53
timestamp 1638025753
timestamp 1638322937
transform 1 0 4876 0 1 1632
box -38 -48 314 592
use sky130_fd_sc_hd__tapvpwrvgnd_1 TAP_10
timestamp 1638025753
transform 1 0 5152 0 1 1632
box -38 -48 130 592
<< labels >>
rlabel metal5 s 0 1436 5980 1756 6 VGND
port 0 nsew ground input

View File

@ -1,6 +1,6 @@
magic
tech sky130A
timestamp 1635801696
timestamp 1638586442
<< metal5 >>
tri 2970 7740 3060 7830 se
rect 3060 7740 3960 8010
@ -240,22 +240,25 @@ rect 4320 3420 5760 3510
tri 5760 3420 5940 3600 sw
tri 1080 2880 1620 3420 ne
rect 1620 3330 2700 3420
rect 1620 3240 2610 3330
tri 2610 3240 2700 3330 nw
rect 1620 3264 2634 3330
tri 2634 3264 2700 3330 nw
rect 4320 3330 5400 3420
tri 4320 3240 4410 3330 ne
rect 4410 3240 5400 3330
tri 4320 3295 4355 3330 ne
rect 4355 3295 5400 3330
tri 4355 3264 4386 3295 ne
rect 1620 3240 2634 3264
rect 1620 3150 2160 3240
tri 2160 3150 2250 3240 nw
rect 1620 3060 1980 3150
tri 1980 3060 2070 3150 nw
tri 2315 3060 2495 3240 ne
rect 2495 3150 2610 3240
rect 2495 3060 2520 3150
tri 2520 3060 2610 3150 nw
rect 4410 3150 4525 3240
tri 4410 3060 4500 3150 ne
rect 4500 3060 4525 3150
rect 2495 3174 2634 3240
rect 2495 3060 2520 3174
tri 2520 3060 2634 3174 nw
rect 4386 3240 5400 3295
rect 4386 3174 4525 3240
tri 4386 3060 4500 3174 ne
rect 4500 3060 4525 3174
tri 4525 3060 4705 3240 nw
tri 4770 3150 4860 3240 ne
rect 4860 3150 5400 3240

View File

@ -1,4 +1,18 @@
#!/bin/sh
#
magic -dnull -noconsole -rcfile /usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc << EOF
drc off
crashbackups stop
load caravan
select top cell
expand
extract do local
extract all
ext2spice lvs
ext2spice
EOF
rm *.ext
export NETGEN_COLUMNS=60
netgen -batch lvs "caravan.spice caravan" "../verilog/gl/caravan.v caravan" ./sky130A_setup.tcl comp.out

View File

@ -1,4 +1,18 @@
#!/bin/sh
#
magic -dnull -noconsole -rcfile /usr/share/pdk/sky130A/libs.tech/magic/sky130A.magicrc << EOF
drc off
crashbackups stop
load caravel
select top cell
expand
extract do local
extract all
ext2spice lvs
ext2spice
EOF
rm *.ext
export NETGEN_COLUMNS=60
netgen -batch lvs "caravel.spice caravel" "../verilog/gl/caravel.v caravel" ./sky130A_setup.tcl comp.out

View File

@ -69,7 +69,7 @@ import re
def usage():
print('Usage:')
print('gen_gpio_defaults.py [<path_to_project>]')
print('gen_gpio_defaults.py [<path_to_project>] [-test]')
print('')
print('where:')
print(' <path_to_project> is the path to the project top level directory.')
@ -123,7 +123,13 @@ if __name__ == '__main__':
magpath = user_project_path + '/mag'
gdspath = user_project_path + '/gds'
vpath = user_project_path + '/verilog'
caravel_path = os.environ['CARAVEL_ROOT']
glpath = vpath + '/gl'
try:
caravel_path = os.environ['CARAVEL_ROOT']
except:
print('Warning: CARAVEL_ROOT not set; assuming the cwd.')
caravel_path = os.getcwd()
# Check paths
if not os.path.isdir(gdspath):
@ -134,6 +140,10 @@ if __name__ == '__main__':
print('No directory ' + vpath + ' found (path to verilog).')
sys.exit(1)
if not os.path.isdir(glpath):
print('No directory ' + glpath + ' found (path to gate-level verilog).')
sys.exit(1)
if not os.path.isdir(magpath):
print('No directory ' + magpath + ' found (path to magic databases).')
sys.exit(1)
@ -221,17 +231,17 @@ if __name__ == '__main__':
mag_file = magpath + '/' + cell_name + '.mag'
cellsused[i] = cell_name
# Record which bits need to be set for this binval
bitflips = []
for j in range(0, 13):
if binval[12 - j] == '1':
bitflips.append(j)
if not os.path.isfile(mag_file):
# A cell with this set of defaults doesn't exist, so make it
# First read the 0000 cell, then write to mag_path while
# changing the position of vias on the "1" bits
# Record which bits need to be set
bitflips = []
for j in range(0, 13):
if binval[12 - j] == '1':
bitflips.append(j)
with open(caravel_path + '/mag/gpio_defaults_block.mag', 'r') as ifile:
maglines = ifile.read().splitlines()
outlines = []
@ -256,6 +266,42 @@ if __name__ == '__main__':
else:
print('Layout file ' + mag_file + ' already exists and does not need to be generated.')
gl_file = glpath + '/' + cell_name + '.v'
defrex = re.compile('[ \t]*assign[ \t]+gpio_defaults\[([0-9]+)\]')
if not os.path.isfile(gl_file):
# A cell with this set of defaults doesn't exist, so make it
# First read the default cell, then write to gl_path while
# changing the assignment statements at the bottom of each file.
with open(caravel_path + '/verilog/gl/gpio_defaults_block.v', 'r') as ifile:
vlines = ifile.read().splitlines()
outlines = []
for vline in vlines:
is_flipped = False
dmatch = defrex.match(vline)
if dmatch:
bitidx = int(dmatch.group(1))
if bitidx in bitflips:
is_flipped = True
if is_flipped:
outlines.append(re.sub('_low', '_high', vline))
elif 'gpio_defaults_block' in vline:
outlines.append(re.sub('gpio_defaults_block', cell_name, vline))
else:
outlines.append(vline)
print('Creating new gate-level verilog file ' + gl_file)
if testmode:
print('(Test only)')
else:
with open(gl_file, 'w') as ofile:
for outline in outlines:
print(outline, file=ofile)
else:
print('Gate-level verilog file ' + gl_file + ' already exists and does not need to be generated.')
print('Step 2: Modify top-level layouts to use the specified defaults.')
# Create a backup of the caravan and caravel layouts
@ -291,6 +337,36 @@ if __name__ == '__main__':
for outline in outlines:
print(outline, file=ofile)
# Do the same to the top gate-level verilog
instrex = re.compile('[ \t]*(gpio_defaults_block_?[0-9]*)[ \t]+gpio_defaults_block_([0-9]+)')
if testmode:
print('Test only: Caravel top gate-level verilog:')
with open(caravel_path + '/verilog/gl/caravel.v', 'r') as ifile:
vlines = ifile.read().splitlines()
outlines = []
for vline in vlines:
imatch = instrex.match(vline)
if imatch:
gpioname = imatch.group(1)
gpioidx = int(imatch.group(2))
cellname = cellsused[int(gpioidx)]
if cellname:
outlines.append(re.sub(gpioname, cellname, vline, 1))
if testmode:
print('Replacing line: ' + vline)
print('With: ' + outlines[-1])
else:
outlines.append(vline)
else:
outlines.append(vline)
if not testmode:
with open(glpath + '/caravel.v', 'w') as ofile:
for outline in outlines:
print(outline, file=ofile)
if testmode:
print('Test only: Caravan layout:')
with open(caravel_path + '/mag/caravan.mag', 'r') as ifile:
@ -319,5 +395,33 @@ if __name__ == '__main__':
for outline in outlines:
print(outline, file=ofile)
# Do the same to the top gate-level verilog
if testmode:
print('Test only: Caravan top gate-level verilog:')
with open(caravel_path + '/verilog/gl/caravan.v', 'r') as ifile:
vlines = ifile.read().splitlines()
outlines = []
for vline in vlines:
imatch = instrex.match(vline)
if imatch:
gpioname = imatch.group(1)
gpioidx = int(imatch.group(2))
cellname = cellsused[int(gpioidx)]
if cellname:
outlines.append(re.sub(gpioname, cellname, vline, 1))
if testmode:
print('Replacing line: ' + vline)
print('With: ' + outlines[-1])
else:
outlines.append(vline)
else:
outlines.append(vline)
if not testmode:
with open(glpath + '/caravan.v', 'w') as ofile:
for outline in outlines:
print(outline, file=ofile)
print('Done.')
sys.exit(0)

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = caravan
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = gpio
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -28,10 +28,6 @@
`include "caravel_netlists.v"
`include "spiflash.v"
// NOTE: Temporary location of management SoC wrapper is a symbolic link
// to the caravel_pico repository verilog/rtl/mgmt_core_wrapper.v
`include "mgmt_core_wrapper.v"
module gpio_tb;
reg clock;

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = gpio_mgmt
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = hkspi
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = hkspi_power
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = irq
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = mem
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = mprj_bitbang
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -136,41 +136,29 @@ module mprj_bitbang_tb;
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1);
write_byte(8'h16);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
end
endtask
task bitbang_one_clock_and_reset;
task bitbang_load;
begin
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1);
write_byte(8'h0e);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h05 << 1);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
end
endtask
@ -193,24 +181,6 @@ module mprj_bitbang_tb;
end
endtask
task bitbang_thirteen_clocks_and_reset;
begin
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock();
bitbang_one_clock_and_reset();
end
endtask
integer i;
// Now drive the digital signals on the housekeeping SPI
@ -243,7 +213,7 @@ module mprj_bitbang_tb;
start_csb();
write_byte(8'h80); // Write stream command
write_byte(8'h13); // Address (register 19 = GPIO bit-bang control)
write_byte(8'h1b << 1); // Data = 0x01 (enable bit-bang mode)
write_byte(8'h66); // Data = 0x01 (enable bit-bang mode)
end_csb();
// Clock 12 times. Set data when clock is zero.
@ -252,9 +222,10 @@ module mprj_bitbang_tb;
// Bits: (0 = serial xfer)
// 1 = bit-bang enable
// 2 = bit-bang resetn
// 3 = bit-bang clock
// 4 = bit-bang data user 1
// 5 = bit-bang data user 2
// 3 = bit-bang load
// 4 = bit-bang clock
// 5 = bit-bang data user 1
// 6 = bit-bang data user 2
// Apply data 0x1809 (management standard output) to
// first block of user 1 and user 2 (GPIO 0 and 37)
@ -263,164 +234,165 @@ module mprj_bitbang_tb;
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1f << 1); // bit 0
write_byte(8'h76); // bit 0
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1b << 1);
write_byte(8'h66);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1f << 1); // bit 1
write_byte(8'h76); // bit 1
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 2
write_byte(8'h16); // bit 2
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 3
write_byte(8'h16); // bit 3
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 4
write_byte(8'h16); // bit 4
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 5
write_byte(8'h16); // bit 5
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 6
write_byte(8'h16); // bit 6
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 7
write_byte(8'h16); // bit 7
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 8
write_byte(8'h16); // bit 8
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1b << 1);
write_byte(8'h66);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1f << 1); // bit 9
write_byte(8'h76); // bit 9
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 10
write_byte(8'h16); // bit 10
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h07 << 1); // bit 11
write_byte(8'h16); // bit 11
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1b << 1);
write_byte(8'h66);
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h1f << 1); // bit 12
write_byte(8'h76); // bit 12
end_csb();
start_csb();
write_byte(8'h80);
write_byte(8'h13);
write_byte(8'h03 << 1);
write_byte(8'h06);
end_csb();
// Toggle GPIO external control enable and clock forward 2 registers
// This moves ahead of the bidirectional registers at the front.
bitbang_thirteen_clocks();
bitbang_thirteen_clocks_and_reset();
bitbang_thirteen_clocks();
bitbang_load();
// There is no point in resetting bit bang mode because at
// this point the SPI pins just got disabled by loading zeros.

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = mprj_ctrl
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = pass_thru
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = perf
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -20,9 +20,6 @@ RTL_PATH = $(VERILOG_PATH)/rtl
IP_PATH = ../../../../ip
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
PDK_PATH?=$(PDK_ROOT)/sky130A
@ -35,14 +32,28 @@ SIM?=RTL
PATTERN = pll
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
%.vvp: %_tb.v %.hex
ifeq ($(SIM),RTL)
iverilog -Ttyp $(SIM_DEFINES) -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(IP_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif
%.vcd: %.vvp check-env
vvp $<

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = qspi
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = spi_master
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = sram_exec
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = storage
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = sysctrl
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -30,6 +27,14 @@ SIM_DEFINES = -DFUNCTIONAL -DSIM
SIM?=RTL
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
.SUFFIXES:
PATTERN = timer
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -30,6 +27,14 @@ SIM_DEFINES = -DFUNCTIONAL -DSIM
SIM?=RTL
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
.SUFFIXES:
PATTERN = timer2
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = uart
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -19,9 +19,6 @@ VERILOG_PATH = ../../../..
RTL_PATH = $(VERILOG_PATH)/rtl
BEHAVIOURAL_MODELS = ../../
# Temporary: Path to management SoC wrapper repository
MGMT_WRAPPER_PATH = ~/gits/caravel_pico/verilog/rtl
FIRMWARE_PATH = ../..
GCC_PATH?=/ef/apps/bin
GCC_PREFIX?=riscv32-unknown-elf
@ -34,6 +31,14 @@ SIM?=RTL
PATTERN = user_pass_thru
# Path to management SoC wrapper repository
MGMT_CORE_PATH ?= ~/gits/caravel_pico
ifeq ($(SIM),RTL)
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog/rtl
else
MGMT_WRAPPER_PATH = $(MGMT_CORE_PATH)/verilog
endif
all: ${PATTERN:=.vcd}
hex: ${PATTERN:=.hex}
@ -45,7 +50,7 @@ ifeq ($(SIM),RTL)
$< -o $@
else
iverilog -Ttyp $(SIM_DEFINES) -DGL -I $(BEHAVIOURAL_MODELS) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) \
-I $(PDK_PATH) -I $(VERILOG_PATH) -I $(RTL_PATH) -I $(MGMT_WRAPPER_PATH) \
$< -o $@
endif

View File

@ -0,0 +1,124 @@
// SPDX-FileCopyrightText: 2020 Efabless Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// SPDX-License-Identifier: Apache-2.0
`default_nettype none
/*
*-------------------------------------------------------------
*
* user_analog_project_wrapper
*
* This wrapper enumerates all of the pins available to the
* user for the user analog project.
*
*-------------------------------------------------------------
*/
module user_analog_project_wrapper (
`ifdef USE_POWER_PINS
inout vdda1, // User area 1 3.3V supply
inout vdda2, // User area 2 3.3V supply
inout vssa1, // User area 1 analog ground
inout vssa2, // User area 2 analog ground
inout vccd1, // User area 1 1.8V supply
inout vccd2, // User area 2 1.8v supply
inout vssd1, // User area 1 digital ground
inout vssd2, // User area 2 digital ground
`endif
// Wishbone Slave ports (WB MI A)
input wb_clk_i,
input wb_rst_i,
input wbs_stb_i,
input wbs_cyc_i,
input wbs_we_i,
input [3:0] wbs_sel_i,
input [31:0] wbs_dat_i,
input [31:0] wbs_adr_i,
output wbs_ack_o,
output [31:0] wbs_dat_o,
// Logic Analyzer Signals
input [127:0] la_data_in,
output [127:0] la_data_out,
input [127:0] la_oenb,
/* GPIOs. There are 27 GPIOs, on either side of the analog.
* These have the following mapping to the GPIO padframe pins
* and memory-mapped registers, since the numbering remains the
* same as caravel but skips over the analog I/O:
*
* io_in/out/oeb/in_3v3 [26:14] <---> mprj_io[37:25]
* io_in/out/oeb/in_3v3 [13:0] <---> mprj_io[13:0]
*
* When the GPIOs are configured by the Management SoC for
* user use, they have three basic bidirectional controls:
* in, out, and oeb (output enable, sense inverted). For
* analog projects, a 3.3V copy of the signal input is
* available. out and oeb must be 1.8V signals.
*/
input [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] io_in,
input [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] io_in_3v3,
output [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] io_out,
output [`MPRJ_IO_PADS-`ANALOG_PADS-1:0] io_oeb,
/* Analog (direct connection to GPIO pad---not for high voltage or
* high frequency use). The management SoC must turn off both
* input and output buffers on these GPIOs to allow analog access.
* These signals may drive a voltage up to the value of VDDIO
* (3.3V typical, 5.5V maximum).
*
* Note that analog I/O is not available on the 7 lowest-numbered
* GPIO pads, and so the analog_io indexing is offset from the
* GPIO indexing by 7, as follows:
*
* gpio_analog/noesd [17:7] <---> mprj_io[35:25]
* gpio_analog/noesd [6:0] <---> mprj_io[13:7]
*
*/
inout [`MPRJ_IO_PADS-`ANALOG_PADS-10:0] gpio_analog,
inout [`MPRJ_IO_PADS-`ANALOG_PADS-10:0] gpio_noesd,
/* Analog signals, direct through to pad. These have no ESD at all,
* so ESD protection is the responsibility of the designer.
*
* user_analog[10:0] <---> mprj_io[24:14]
*
*/
inout [`ANALOG_PADS-1:0] io_analog,
/* Additional power supply ESD clamps, one per analog pad. The
* high side should be connected to a 3.3-5.5V power supply.
* The low side should be connected to ground.
*
* clamp_high[2:0] <---> mprj_io[20:18]
* clamp_low[2:0] <---> mprj_io[20:18]
*
*/
inout [2:0] io_clamp_high,
inout [2:0] io_clamp_low,
// Independent clock (on independent integer divider)
input user_clock2,
// User maskable interrupt signals
output [2:0] user_irq
);
// Dummy assignment so that we can take it through the openlane flow
assign io_out = io_in;
endmodule // user_analog_project_wrapper

View File

@ -0,0 +1,91 @@
// SPDX-FileCopyrightText: 2020 Efabless Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// SPDX-License-Identifier: Apache-2.0
`default_nettype none
/*
*-------------------------------------------------------------
*
* user_project_wrapper
*
* This wrapper enumerates all of the pins available to the
* user for the user project.
*
* An example user project is provided in this wrapper. The
* example should be removed and replaced with the actual
* user project.
*
*-------------------------------------------------------------
*/
module user_project_wrapper #(
parameter BITS = 32
)(
`ifdef USE_POWER_PINS
inout vdda1, // User area 1 3.3V supply
inout vdda2, // User area 2 3.3V supply
inout vssa1, // User area 1 analog ground
inout vssa2, // User area 2 analog ground
inout vccd1, // User area 1 1.8V supply
inout vccd2, // User area 2 1.8v supply
inout vssd1, // User area 1 digital ground
inout vssd2, // User area 2 digital ground
`endif
// Wishbone Slave ports (WB MI A)
input wb_clk_i,
input wb_rst_i,
input wbs_stb_i,
input wbs_cyc_i,
input wbs_we_i,
input [3:0] wbs_sel_i,
input [31:0] wbs_dat_i,
input [31:0] wbs_adr_i,
output wbs_ack_o,
output [31:0] wbs_dat_o,
// Logic Analyzer Signals
input [127:0] la_data_in,
output [127:0] la_data_out,
input [127:0] la_oenb,
// IOs
input [`MPRJ_IO_PADS-1:0] io_in,
output [`MPRJ_IO_PADS-1:0] io_out,
output [`MPRJ_IO_PADS-1:0] io_oeb,
// Analog (direct connection to GPIO pad---use with caution)
// Note that analog I/O is not available on the 7 lowest-numbered
// GPIO pads, and so the analog_io indexing is offset from the
// GPIO indexing by 7 (also upper 2 GPIOs do not have analog_io).
inout [`MPRJ_IO_PADS-10:0] analog_io,
// Independent clock (on independent integer divider)
input user_clock2,
// User maskable interrupt signals
output [2:0] user_irq
);
// Dummy assignments so that we can take it through the openlane flow
`ifdef SIM
// Needed for running GL simulation
assign io_out = 0;
assign io_oeb = 0;
`else
assign io_out = io_in;
`endif
endmodule // user_project_wrapper

View File

@ -4041,7 +4041,7 @@ module caravan(vddio, vddio_2, vssio, vssio_2, vdda, vssa, vccd, vssd, vdda1, vd
.porb_l(porb_l),
.vdd1v8(vccd_core),
.vdd3v3(vddio_core),
.vss3v3(vssio_core)
.vss3v3(vssio_core),
.vss1v8(vssd_core)
);
xres_buf rstb_level (

3132
verilog/gl/chip_io_alt.v Normal file

File diff suppressed because it is too large Load Diff

View File

@ -49,18 +49,19 @@
// Assume default net type to be wire because GL netlists don't have the wire
// definitions
`default_nettype wire
`include "gl/mgmt_core.v"
`include "gl/digital_pll.v"
`include "gl/DFFRAM.v"
`include "gl/storage.v"
`include "gl/caravel_clocking.v"
`include "gl/user_id_programming.v"
`include "gl/chip_io_alt.v"
`include "gl/housekeeping.v"
`include "gl/mprj_logic_high.v"
`include "gl/mprj2_logic_high.v"
`include "gl/mgmt_protect.v"
`include "gl/mgmt_protect_hv.v"
`include "gl/gpio_control_block.v"
`include "gl/gpio_defaults_block.v"
`include "gl/gpio_defaults_block_0403.v"
`include "gl/gpio_defaults_block_1803.v"
`include "gl/gpio_logic_high.v"
`include "gl/xres_buf.v"
`include "gl/spare_logic_block.v"

View File

@ -47,18 +47,19 @@
`endif
`ifdef GL
`include "gl/mgmt_core.v"
`include "gl/digital_pll.v"
`include "gl/DFFRAM.v"
`include "gl/storage.v"
`include "gl/caravel_clocking.v"
`include "gl/user_id_programming.v"
`include "gl/chip_io.v"
`include "gl/housekeeping.v"
`include "gl/mprj_logic_high.v"
`include "gl/mprj2_logic_high.v"
`include "gl/mgmt_protect.v"
`include "gl/mgmt_protect_hv.v"
`include "gl/gpio_control_block.v"
`include "gl/gpio_defaults_block.v"
`include "gl/gpio_defaults_block_0403.v"
`include "gl/gpio_defaults_block_1803.v"
`include "gl/gpio_logic_high.v"
`include "gl/xres_buf.v"
`include "gl/spare_logic_block.v"