#
# !PIC picpinlist
# Defines PIC pins - see assignpicpins
+#
+# !type Type ...netspec/netrange...
+# ...netspec/netrange... [see below for netrange]
+
# CHIP is [A-Z][A-Z0-9]*
#
#
# 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)
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;
$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);
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;
} 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 {
}
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 "$_ ?";
# 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)
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]
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]
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]
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]
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]
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]
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")
(
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")