From: ian Date: Tue, 24 Aug 2004 22:46:11 +0000 (+0000) Subject: before reorg d and manual stuff and... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=c7facfcd528e9a0a96ee8688a314a612663be165;p=trains.git before reorg d and manual stuff and... --- diff --git a/pcb/generate-netspec.pl b/pcb/generate-netspec.pl index 7c7f143..5c872c0 100755 --- a/pcb/generate-netspec.pl +++ b/pcb/generate-netspec.pl @@ -24,12 +24,6 @@ push @indiv, qw(cdu_enable print "INDIV0 25 :1%13/2 @indiv\n"; # 26-way ribbon print "INDIV1 26 @indiv\n";; # 25-way D -foreach $iter (0..5) { - foreach $netbase (qw(t q qmid)) { - print "$netbase$iter Fat\n"; - } -} - while () { print; } die $! if STDOUT->error; @@ -50,6 +44,8 @@ rly_v12 Power 31 l_gnd l_vcc 33 RB0..7 +!type Fat q0..5 qmid0..5 t0..5 +!type Power ptdrain0..17 !PIC-ASSIGN 1 mclr diff --git a/pcb/netlist-expand b/pcb/netlist-expand index 7950e24..30f03c4 100755 --- a/pcb/netlist-expand +++ b/pcb/netlist-expand @@ -16,6 +16,10 @@ # # !PIC picpinlist # Defines PIC pins - see assignpicpins +# +# !type Type ...netspec/netrange... +# ...netspec/netrange... [see below for netrange] + # CHIP is [A-Z][A-Z0-9]* # @@ -28,7 +32,7 @@ # # netspec assigns next pin to netspec # -# net\d+..\d+ assigns next several pins to sequentially named nets +# net\d+..\d+ netrange: specifies sequentially named nets # nets will be net\d+ where numbers will go from first # \d+ to 2nd \d+ in pin-spec-item inclusive (whether # up or down) @@ -59,10 +63,8 @@ die if $ARGV[0] =~ m/^\-/; -sub o ($$$@) { - my ($netname, $type, $fmt, @stuff) = @_; - my ($stuff); - $stuff= sprintf $fmt, @stuff; +sub o ($$$) { + my ($netname, $type, $stuff) = @_; print "# o $netname $type $stuff\n" or die $!; if (length $type && exists $net{$netname}{Type}) { die "$netname $type" if $net{$netname}{Type} ne $type; @@ -71,17 +73,10 @@ sub o ($$$@) { $net{$netname}{Type}= $type if length $type; } -sub unpack_iter_list ($$@) { - my ($max,$options,@in) = @_; - # options: zero or more characters from - # r allow several occurrences of same pin number - # p allow only partial specification - # o return array of pins (first entry is undef) in order - # instead of array of { Pin =>, Action => } - my (@expanded, @done, @out); - my ($i); +sub expand_netranges (@) { + my (@in) = @_; local ($_); - @expanded= (); + my (@expanded) = (); foreach $_ (@in) { if (m/^(\w*[A-Za-z])(\d+)\.\.(\d+)$/) { my ($base,$start,$end)=($1,$2,$3); @@ -99,6 +94,22 @@ sub unpack_iter_list ($$@) { push @expanded, $_; } } + return @expanded; +} + +sub unpack_iter_list ($$@) { + my ($max,$options,@in) = @_; + # options: zero or more characters from + # r allow several occurrences of same pin number + # p allow only partial specification + # o return array of pins (first entry is undef) in order + # instead of array of { Pin =>, Action => } + my (@expanded, @done, @out); + my ($i); + local ($_); + + @expanded= expand_netranges(@in); + my $start= 1; my $step= 1; my $jump= 0; @@ -261,6 +272,10 @@ sub data_fin () { } elsif ($data_accum =~ m/^\!PIC\-DEFINE\s/) { shift @s; definepicpins(@s); + } elsif ($data_accum =~ m/^\!type\s+[A-Z]\w+\s+/) { + shift @s; + my ($type) = shift @s; + map { o($_,$type,''); } expand_netranges(@s); } elsif ($data_accum =~ m/^\!/) { die "bad directive $data_accum"; } else { @@ -281,8 +296,8 @@ while (<>) { } data_fin(); if (m/^([a-z]\S+)\s+(\S+)(\s+(\S.*\S))?$/) { - o($1,$2,"%s",$3); - } elsif (m/^\!?[A-Z].*/ || m,^\d+\-\d+/\d+\s+[A-Z],) { + o($1,$2,$3); + } elsif (m/^\!/ || m/^[A-Z].*/ || m,^\d+\-\d+/\d+\s+[A-Z],) { $data_accum= $_; } else { die "$_ ?"; diff --git a/pcb/reversers.pcb b/pcb/reversers.pcb index 58dcc12..e43db86 100644 --- a/pcb/reversers.pcb +++ b/pcb/reversers.pcb @@ -1,12 +1,12 @@ # release: pcb-bin 1.99p -# date: Tue Aug 24 23:33:08 2004 +# date: Tue Aug 24 23:45:54 2004 # user: ian (Ian Jackson) # host: anarres.relativity.greenend.org.uk PCB["reversers.pcb" 1410000 355000] Grid[2500.00000000 0 0 0] -Cursor[1198151 158674 3.000000] +Cursor[1151349 193729 3.575940] Thermal[0.500000] DRC[809 400 800 800] Flags(0x0000000000001e51) @@ -1864,7 +1864,7 @@ Element[0x00000000 "Transistor" "PTFET3" "TO220W" 1155000 55000 32500 -11500 0 1 Element[0x00000000 "" "PTD7" "" 1200000 105000 25000 -2500 0 100 0x00000000] ( Pin[0 0 12500 3000 13100 6000 "" "1" 0x00004001] - Pin[70000 0 12500 3000 13100 6000 "" "2" 0x00004041] + Pin[70000 0 12500 3000 13100 6000 "" "2" 0x00004001] ElementLine [55000 0 62500 0 2500] ElementLine [7500 0 15000 0 2500] ElementLine [20000 7500 20000 -7500 2500] @@ -2258,7 +2258,7 @@ Element[0x00000000 "" "PTD6" "" 1065000 90000 25000 -2500 0 100 0x00000000] Element[0x00000000 "Transistor" "PTFET7" "TO220W" 1155000 105000 32500 -11500 0 100 0x00000000] ( Pin[0 0 8000 3000 8600 3000 "1" "1" 0x00004101] - Pin[10000 0 8000 3000 8600 3000 "2" "2" 0x00004045] + Pin[10000 0 8000 3000 8600 3000 "2" "2" 0x00004001] Pin[20000 0 8000 3000 8600 3000 "3" "3" 0x00004001] ElementLine [17000 -12000 17000 -6000 1000] ElementLine [3000 -12000 3000 -6000 1000] @@ -2326,6 +2326,150 @@ Element[0x00000000 "generic" "RAP1" "DIL 16" 967500 167500 17000 5000 3 100 0x00 ElementArc [15000 -5000 5000 5000 0 180 1000] ) +Rat[820600 105800 1 857500 107500 1 0x00000010] +Rat[857500 107500 1 965000 80000 1 0x00000010] +Rat[820600 105800 1 697500 107500 1 0x00000010] +Rat[820600 116600 1 857500 117500 1 0x00000010] +Rat[857500 117500 1 967500 237500 1 0x00000010] +Rat[820600 116600 1 637500 187500 1 0x00000010] +Rat[809400 111200 1 867500 107500 1 0x00000010] +Rat[809400 111200 1 697500 117500 1 0x00000010] +Rat[867500 107500 1 967500 167500 1 0x00000010] +Rat[809400 122000 1 867500 117500 1 0x00000010] +Rat[867500 117500 1 967500 227500 1 0x00000010] +Rat[809400 122000 1 637500 197500 1 0x00000010] +Rat[809400 100400 1 867500 97500 1 0x00000010] +Rat[867500 97500 1 965000 70000 1 0x00000010] +Rat[809400 100400 1 697500 97500 1 0x00000010] +Rat[820600 95000 1 857500 97500 1 0x00000010] +Rat[857500 97500 1 965000 50000 1 0x00000010] +Rat[820600 95000 1 697500 67500 1 0x00000010] +Rat[607500 15000 1 1040000 15000 1 0x00000010] +Rat[1040000 140000 1 1175000 130000 1 0x00000010] +Rat[617500 25000 1 1065000 15000 1 0x00000010] +Rat[1065000 140000 1 1200000 130000 1 0x00000010] +Rat[557500 25000 1 637500 167500 1 0x00000010] +Rat[577500 15000 1 637500 217500 1 0x00000010] +Rat[587500 15000 1 697500 217500 1 0x00000010] +Rat[697500 47500 1 715000 27500 1 0x00000010] +Rat[715000 27500 1 735000 60000 1 0x00000010] +Rat[735000 60000 1 767500 62500 1 0x00000010] +Rat[820600 73400 1 857500 77500 1 0x00000010] +Rat[820600 73400 1 735000 50000 1 0x00000010] +Rat[560000 80000 1 580000 80000 1 0x00000010] +Rat[580000 80000 1 570000 50000 1 0x00000010] +Rat[580000 80000 1 615000 112500 1 0x00000010] +Rat[615000 112500 1 697500 57500 1 0x00000010] +Rat[530000 80000 1 547500 25000 1 0x00000010] +Rat[550000 80000 1 540000 80000 1 0x00000010] +Rat[550000 80000 1 580000 130000 1 0x00000010] +Rat[570000 80000 1 537500 25000 1 0x00000010] +Rat[550000 50000 1 527500 25000 1 0x00000010] +Rat[540000 50000 1 580000 105000 1 0x00000010] +Rat[580000 105000 1 615000 122500 1 0x00000010] +Rat[537500 57500 1 530000 50000 0 0x00000010] +Rat[520000 50000 0 520000 42500 0 0x00000010] +Rat[620000 157500 0 637500 157500 1 0x00000010] +Rat[637500 157500 1 697500 137500 1 0x00000010] +Rat[697500 137500 1 717500 140000 1 0x00000010] +Rat[717500 140000 1 710000 220000 1 0x00000010] +Rat[710000 220000 1 740000 237500 1 0x00000010] +Rat[717500 140000 1 777500 62500 1 0x00000010] +Rat[777500 62500 1 809400 78800 1 0x00000010] +Rat[809400 78800 1 867500 77500 1 0x00000010] +Rat[650000 135000 1 697500 127500 1 0x00000010] +Rat[697500 127500 1 717500 130000 1 0x00000010] +Rat[717500 130000 1 770000 207500 1 0x00000010] +Rat[717500 130000 1 795000 20000 1 0x00000010] +Rat[809400 89600 1 767500 92500 1 0x00000010] +Rat[809400 89600 1 867500 87500 1 0x00000010] +Rat[820600 84200 1 857500 87500 1 0x00000010] +Rat[820600 84200 1 750000 85000 1 0x00000010] +Rat[597500 25000 1 770000 227500 1 0x00000010] +Rat[587500 25000 1 740000 227500 1 0x00000010] +Rat[767500 172500 1 770000 217500 1 0x00000010] +Rat[750000 165000 1 740000 207500 1 0x00000010] +Rat[567500 15000 1 637500 47500 1 0x00000010] +Rat[697500 237500 1 720000 220000 1 0x00000010] +Rat[720000 220000 1 740000 217500 1 0x00000010] +Rat[740000 217500 1 770000 237500 1 0x00000010] +Rat[697500 237500 1 582500 232500 1 0x00000010] +Rat[820600 138200 1 857500 137500 1 0x00000010] +Rat[857500 137500 1 967500 177500 1 0x00000010] +Rat[820600 138200 1 697500 157500 1 0x00000010] +Rat[809400 132800 1 867500 127500 1 0x00000010] +Rat[867500 127500 1 967500 187500 1 0x00000010] +Rat[809400 132800 1 697500 167500 1 0x00000010] +Rat[809400 143600 1 867500 137500 1 0x00000010] +Rat[867500 137500 1 967500 197500 1 0x00000010] +Rat[809400 143600 1 697500 187500 1 0x00000010] +Rat[820600 149000 1 857500 147500 1 0x00000010] +Rat[857500 147500 1 967500 207500 1 0x00000010] +Rat[820600 149000 1 697500 197500 1 0x00000010] +Rat[820600 159800 1 857500 157500 1 0x00000010] +Rat[857500 157500 1 967500 217500 1 0x00000010] +Rat[820600 159800 1 697500 207500 1 0x00000010] +Rat[697500 87500 1 965000 10000 1 0x00000010] +Rat[697500 147500 1 965000 20000 1 0x00000010] +Rat[697500 177500 1 965000 30000 1 0x00000010] +Rat[697500 227500 1 965000 40000 1 0x00000010] +Rat[809400 154400 1 867500 147500 1 0x00000010] +Rat[867500 147500 1 965000 60000 1 0x00000010] +Rat[809400 154400 1 697500 77500 1 0x00000010] +Rat[1313100 59200 1 1280000 15000 0 0x00000010] +Rat[1313100 48400 1 1270000 30000 0 0x00000010] +Rat[1301900 140200 1 1280000 140000 0 0x00000010] +Rat[1301900 151000 1 1270000 155000 0 0x00000010] +Rat[1301900 161800 1 1280000 165000 0 0x00000010] +Rat[1301900 172600 1 1270000 180000 0 0x00000010] +Rat[1313100 178000 1 1280000 190000 0 0x00000010] +Rat[1313100 167200 1 1270000 205000 0 0x00000010] +Rat[1313100 156400 1 1280000 215000 0 0x00000010] +Rat[1313100 145600 1 1260000 220000 0 0x00000010] +Rat[1301900 53800 1 1280000 40000 0 0x00000010] +Rat[1301900 64600 1 1270000 55000 0 0x00000010] +Rat[1301900 75400 1 1280000 65000 0 0x00000010] +Rat[1301900 86200 1 1270000 80000 0 0x00000010] +Rat[1301900 97000 1 1280000 90000 0 0x00000010] +Rat[1301900 107800 1 1270000 105000 0 0x00000010] +Rat[1301900 118600 1 1280000 115000 0 0x00000010] +Rat[1301900 129400 1 1270000 130000 0 0x00000010] +Rat[560000 50000 1 845000 20000 1 0x00000010] +Rat[845000 20000 1 1005000 15000 0 0x00000010] +Rat[1020000 30000 0 765000 27500 1 0x00000010] +Rat[1020000 140000 1 997500 167500 1 0x00000010] +Rat[1020000 155000 0 997500 177500 1 0x00000010] +Rat[1020000 165000 1 997500 187500 1 0x00000010] +Rat[1020000 180000 0 997500 197500 1 0x00000010] +Rat[1020000 190000 1 997500 207500 1 0x00000010] +Rat[1020000 205000 0 997500 217500 1 0x00000010] +Rat[1020000 215000 1 997500 227500 1 0x00000010] +Rat[1020000 230000 0 997500 237500 1 0x00000010] +Rat[1020000 40000 1 995000 10000 1 0x00000010] +Rat[1020000 55000 0 995000 20000 1 0x00000010] +Rat[1020000 65000 1 995000 30000 1 0x00000010] +Rat[1020000 80000 0 995000 40000 1 0x00000010] +Rat[1020000 90000 1 995000 50000 1 0x00000010] +Rat[1020000 105000 0 995000 60000 1 0x00000010] +Rat[1020000 115000 1 995000 70000 1 0x00000010] +Rat[1020000 130000 0 995000 80000 1 0x00000010] +Rat[535000 230000 0 527500 212500 1 0x00000010] +Rat[535000 102500 0 527500 120000 1 0x00000010] +Rat[527500 120000 1 527500 140000 1 0x00000010] +Rat[527500 140000 1 527500 160000 1 0x00000010] +Rat[527500 160000 1 527500 180000 1 0x00000010] +Rat[602500 67500 1 595000 67500 1 0x00000010] +Rat[590000 7500 0 550000 7500 0 0x00000010] +Rat[482500 52500 0 487500 57500 1 0x00000010] +Rat[550000 192500 0 582500 192500 1 0x00000010] +Rat[582500 192500 1 637500 207500 1 0x00000010] +Rat[582500 182500 0 637500 177500 1 0x00000010] +Rat[582500 172500 0 630000 170000 1 0x00000010] +Rat[582500 162500 0 627500 167500 1 0x00000010] +Rat[582500 212500 0 637500 237500 1 0x00000010] +Rat[582500 202500 0 637500 227500 1 0x00000010] +Rat[820600 127400 1 857500 127500 1 0x00000010] +Rat[820600 127400 1 637500 57500 1 0x00000010] Layer(1 "component") ( Line[390000 145000 390000 130000 4000 2000 0x00000020] @@ -2530,9 +2674,9 @@ Layer(1 "component") Line[1030000 40000 1040000 50000 2500 2000 0x00000020] Line[1040000 50000 1125000 50000 2500 2000 0x00000020] Line[1125000 50000 1135000 40000 2500 2000 0x00000020] - Line[1165000 105000 1175000 95000 2500 2000 0x00000064] - Line[1175000 95000 1260000 95000 2500 2000 0x00000064] - Line[1260000 95000 1270000 105000 2500 2000 0x00000064] + Line[1165000 105000 1175000 95000 2500 2000 0x00000020] + Line[1175000 95000 1260000 95000 2500 2000 0x00000020] + Line[1260000 95000 1270000 105000 2500 2000 0x00000020] Line[1135000 90000 1280000 90000 2500 2000 0x00000020] Line[547500 15000 520000 15000 2500 2000 0x00000020] Line[1135000 65000 1280000 65000 2500 2000 0x00000020] @@ -2602,7 +2746,7 @@ Layer(2 "solder") Line[637500 87500 622500 87500 1000 2000 0x00000020] Line[422500 42500 495000 42500 1000 2000 0x00000020] Line[437500 37500 500000 37500 1000 2000 0x00000020] - Line[1065000 2500 1065000 40000 2500 2000 0x00000020] + Line[260000 100000 355000 100000 4000 2000 0x00000020] Line[632500 107500 632500 112500 1000 2000 0x00000020] Line[607500 62500 612500 67500 1000 2000 0x00000020] Line[455000 185000 497500 227500 4000 2000 0x00000020] @@ -2780,7 +2924,7 @@ Layer(2 "solder") Line[97835 22835 95000 22835 4000 2000 0x00000020] Line[58465 20000 58465 22500 4000 2000 0x00000020] Line[58465 22500 60000 22500 4000 2000 0x00000020] - Line[1200000 230000 1200000 237500 2500 2000 0x00000020] + Line[1200000 230000 1200000 230000 2500 2000 0x00000020] Line[97835 22500 97835 22835 4000 2000 0x00000020] Line[156890 22500 156890 23110 4000 2000 0x00000020] Line[1040000 40000 1040000 215000 2500 2000 0x00000220] @@ -2791,9 +2935,9 @@ Layer(2 "solder") Line[617500 42500 630000 42500 2500 2000 0x00000020] Line[550000 160000 550000 127500 2500 2000 0x00000020] Line[637500 67500 640000 67500 1000 2000 0x00000020] - Line[1200000 130000 1200000 237500 2500 2000 0x00000020] + Line[1200000 130000 1200000 230000 2500 2000 0x00000020] Line[380000 80000 295000 80000 4000 2000 0x00000020] - Line[260000 100000 355000 100000 4000 2000 0x00000020] + Line[1065000 15000 1065000 40000 2500 2000 0x00000020] ) Layer(3 "GND") ( @@ -3154,109 +3298,109 @@ NetList() Connect("PIC-37") Connect("RAP0-6") ) - Net("ptdrain0" "Signal") + Net("ptdrain0" "Power") ( Connect("POINTS-12") Connect("PTD0-2") Connect("PTFET0-2") ) - Net("ptdrain1" "Signal") + Net("ptdrain1" "Power") ( Connect("POINTS-13") Connect("PTD1-2") Connect("PTFET1-2") ) - Net("ptdrain10" "Signal") + Net("ptdrain10" "Power") ( Connect("POINTS-17") Connect("PTD10-2") Connect("PTFET10-2") ) - Net("ptdrain11" "Signal") + Net("ptdrain11" "Power") ( Connect("POINTS-16") Connect("PTD11-2") Connect("PTFET11-2") ) - Net("ptdrain12" "Signal") + Net("ptdrain12" "Power") ( Connect("POINTS-15") Connect("PTD12-2") Connect("PTFET12-2") ) - Net("ptdrain13" "Signal") + Net("ptdrain13" "Power") ( Connect("POINTS-14") Connect("PTD13-2") Connect("PTFET13-2") ) - Net("ptdrain14" "Signal") + Net("ptdrain14" "Power") ( Connect("POINTS-1") Connect("PTD14-2") Connect("PTFET14-2") ) - Net("ptdrain15" "Signal") + Net("ptdrain15" "Power") ( Connect("POINTS-2") Connect("PTD15-2") Connect("PTFET15-2") ) - Net("ptdrain16" "Signal") + Net("ptdrain16" "Power") ( Connect("POINTS-3") Connect("PTD16-2") Connect("PTFET16-2") ) - Net("ptdrain17" "Signal") + Net("ptdrain17" "Power") ( Connect("POINTS-4") Connect("PTD17-2") Connect("PTFET17-2") ) - Net("ptdrain2" "Signal") + Net("ptdrain2" "Power") ( Connect("POINTS-25") Connect("PTD2-2") Connect("PTFET2-2") ) - Net("ptdrain3" "Signal") + Net("ptdrain3" "Power") ( Connect("POINTS-24") Connect("PTD3-2") Connect("PTFET3-2") ) - Net("ptdrain4" "Signal") + Net("ptdrain4" "Power") ( Connect("POINTS-23") Connect("PTD4-2") Connect("PTFET4-2") ) - Net("ptdrain5" "Signal") + Net("ptdrain5" "Power") ( Connect("POINTS-22") Connect("PTD5-2") Connect("PTFET5-2") ) - Net("ptdrain6" "Signal") + Net("ptdrain6" "Power") ( Connect("POINTS-21") Connect("PTD6-2") Connect("PTFET6-2") ) - Net("ptdrain7" "Signal") + Net("ptdrain7" "Power") ( Connect("POINTS-20") Connect("PTD7-2") Connect("PTFET7-2") ) - Net("ptdrain8" "Signal") + Net("ptdrain8" "Power") ( Connect("POINTS-19") Connect("PTD8-2") Connect("PTFET8-2") ) - Net("ptdrain9" "Signal") + Net("ptdrain9" "Power") ( Connect("POINTS-18") Connect("PTD9-2")