diff options
| -rw-r--r-- | icebox/icebox.py | 145 | ||||
| -rw-r--r-- | icefuzz/pinloc/pinloc-384-cm36.sh | 44 | ||||
| -rw-r--r-- | icefuzz/pinloc/pinloc-384-cm49.sh | 46 | ||||
| -rw-r--r-- | icefuzz/pinloc/pinloc-384-qn32.sh | 2 | 
4 files changed, 196 insertions, 41 deletions
| diff --git a/icebox/icebox.py b/icebox/icebox.py index a39fa53..791a5a7 100644 --- a/icebox/icebox.py +++ b/icebox/icebox.py @@ -250,7 +250,7 @@ class iceconfig:                  if x == 0: return True              return False -             +          if not 0 <= x <= self.max_x: return False          if not 0 <= y <= self.max_y: return False          return pos_has_net(self.tile_pos(x, y), netname) @@ -1807,44 +1807,43 @@ ieren_db = {          (33, 31, 0, 33, 31, 0),      ],      "384": [ -        # IO-block (X, Y, Z) <-> IeRen-block (X, Y, Z) -        ( 0, 1, 0, 0, 0, 0), #384? -        ( 0, 1, 1, 0, 1, 0), #384? -        ( 0, 2, 0, 0, 2, 0), #384? -        ( 0, 2, 1, 0, 2, 0), #384? -        ( 0, 4, 0, 0, 4, 0), #384? -        ( 0, 4, 1, 0, 4, 0), #384? -        ( 0, 5, 0, 0, 5, 0), #384? -        ( 0, 5, 1, 0, 5, 0), #384? -        ( 0, 6, 0, 0, 6, 0), #384? -        ( 0, 6, 1, 0, 6, 0), #384? -        ( 0, 7, 0, 0, 7, 0), #384? -        ( 0, 7, 1, 0, 7, 0), #384? -        ( 2, 9, 0, 2, 9, 0), #384? -        ( 2, 9, 1, 2, 9, 0), #384? -        ( 3, 0, 0, 3, 0, 0), #384? -        ( 3, 0, 1, 3, 0, 0), #384? -        ( 3, 9, 0, 3, 9, 0), #384? -        ( 3, 9, 1, 3, 9, 0), #384? -        ( 4, 0, 0, 4, 0, 0), #384? -        ( 4, 0, 1, 4, 0, 0), #384? -        ( 4, 9, 0, 4, 9, 0), #384? -        ( 4, 9, 1, 4, 9, 0), #384? -        ( 5, 0, 0, 5, 0, 0), #384? -        ( 5, 0, 1, 5, 0, 0), #384? -        ( 5, 9, 0, 5, 9, 0), #384? -        ( 5, 9, 1, 5, 9, 0), #384? -        ( 6, 0, 0, 6, 0, 0), #384? -        ( 6, 0, 1, 6, 0, 0), #384? -        ( 6, 9, 0, 6, 9, 0), #384? -        ( 6, 9, 1, 6, 9, 0), #384? -        ( 7, 3, 1, 7, 3, 0), #384? -        ( 7, 4, 0, 7, 4, 0), #384? -        ( 7, 4, 1, 7, 4, 0), #384? -        ( 7, 5, 0, 7, 5, 0), #384? -        ( 7, 5, 1, 7, 5, 0), #384? -        ( 7, 6, 0, 7, 6, 0), #384? -        ( 7, 6, 1, 7, 6, 0), #384? +        ( 0,  1, 0,  0,  1, 1), +        ( 0,  1, 1,  0,  1, 0), +        ( 0,  2, 0,  0,  2, 1), +        ( 0,  2, 1,  0,  2, 0), +        ( 0,  4, 0,  0,  4, 1), +        ( 0,  4, 1,  0,  4, 0), +        ( 0,  5, 0,  0,  5, 1), +        ( 0,  5, 1,  0,  5, 0), +        ( 0,  6, 0,  0,  6, 1), +        ( 0,  6, 1,  0,  6, 0), +        ( 0,  7, 0,  0,  7, 1), +        ( 0,  7, 1,  0,  7, 0), +        ( 2,  9, 0,  2,  9, 1), +        ( 2,  9, 1,  2,  9, 0), +        ( 3,  0, 0,  3,  0, 1), +        ( 3,  0, 1,  3,  0, 0), +        ( 3,  9, 0,  3,  9, 1), +        ( 3,  9, 1,  3,  9, 0), +        ( 4,  0, 0,  4,  0, 1), +        ( 4,  0, 1,  4,  0, 0), +        ( 4,  9, 0,  4,  9, 1), +        ( 4,  9, 1,  4,  9, 0), +        ( 5,  0, 0,  5,  0, 1), +        ( 5,  0, 1,  5,  0, 0), +        ( 5,  9, 0,  5,  9, 1), +        ( 5,  9, 1,  5,  9, 0), +        ( 6,  0, 0,  6,  0, 1), +        ( 6,  0, 1,  6,  0, 0), +        ( 6,  9, 0,  6,  9, 1), +        ( 6,  9, 1,  6,  9, 0), +        ( 7,  3, 1,  7,  3, 0), +        ( 7,  4, 0,  7,  4, 1), +        ( 7,  4, 1,  7,  4, 0), +        ( 7,  5, 0,  7,  5, 1), +        ( 7,  5, 1,  7,  5, 0), +        ( 7,  6, 0,  7,  6, 1), +        ( 7,  6, 1,  7,  6, 0),      ],  } @@ -3785,6 +3784,72 @@ pinloc_db = {          ( "30",  3,  9, 1),          ( "31",  2,  9, 0),          ( "32",  2,  9, 1), +    ], +    "384-cm36": [ +        ( "A1",  0,  7, 0), +        ( "A2",  2,  9, 1), +        ( "A3",  3,  9, 1), +        ( "B1",  0,  7, 1), +        ( "B3",  4,  9, 0), +        ( "B4",  7,  5, 0), +        ( "B5",  7,  5, 1), +        ( "B6",  7,  6, 0), +        ( "C1",  0,  5, 0), +        ( "C2",  0,  5, 1), +        ( "C3",  2,  9, 0), +        ( "C5",  7,  4, 1), +        ( "C6",  7,  6, 1), +        ( "D1",  0,  4, 1), +        ( "D5",  6,  0, 1), +        ( "D6",  7,  4, 0), +        ( "E1",  0,  4, 0), +        ( "E2",  3,  0, 1), +        ( "E3",  4,  0, 0), +        ( "E4",  5,  0, 0), +        ( "E5",  6,  0, 0), +        ( "E6",  7,  3, 1), +        ( "F2",  3,  0, 0), +        ( "F3",  4,  0, 1), +        ( "F5",  5,  0, 1), +    ], +    "384-cm49": [ +        ( "A1",  0,  7, 1), +        ( "A2",  2,  9, 1), +        ( "A3",  3,  9, 0), +        ( "A4",  4,  9, 1), +        ( "A5",  5,  9, 0), +        ( "A6",  6,  9, 0), +        ( "A7",  6,  9, 1), +        ( "B1",  0,  7, 0), +        ( "B2",  0,  6, 0), +        ( "B3",  2,  9, 0), +        ( "B4",  4,  9, 0), +        ( "C1",  0,  5, 1), +        ( "C2",  0,  6, 1), +        ( "C4",  3,  9, 1), +        ( "C5",  7,  6, 1), +        ( "C6",  7,  5, 1), +        ( "C7",  7,  6, 0), +        ( "D1",  0,  4, 0), +        ( "D2",  0,  5, 0), +        ( "D3",  0,  2, 0), +        ( "D4",  5,  9, 1), +        ( "D6",  7,  4, 1), +        ( "D7",  7,  5, 0), +        ( "E2",  0,  4, 1), +        ( "E6",  6,  0, 1), +        ( "E7",  7,  4, 0), +        ( "F1",  0,  2, 1), +        ( "F2",  0,  1, 0), +        ( "F3",  3,  0, 1), +        ( "F4",  4,  0, 0), +        ( "F5",  5,  0, 0), +        ( "F6",  6,  0, 0), +        ( "F7",  7,  3, 1), +        ( "G1",  0,  1, 1), +        ( "G3",  3,  0, 0), +        ( "G4",  4,  0, 1), +        ( "G6",  5,  0, 1),      ]  } @@ -3831,7 +3896,7 @@ logictile_db.append([["B1[50]"], "CarryInSet"])  logictile_8k_db.append([["B1[49]"], "buffer", "carry_in", "carry_in_mux"])  logictile_8k_db.append([["B1[50]"], "CarryInSet"]) -logictile_384_db.append([["B1[49]"], "buffer", "carry_in", "carry_in_mux"]) #384? +logictile_384_db.append([["B1[49]"], "buffer", "carry_in", "carry_in_mux"])  logictile_384_db.append([["B1[50]"], "CarryInSet"])  for db in [iotile_l_db, iotile_r_db, iotile_t_db, iotile_b_db, logictile_db, logictile_8k_db, logictile_384_db, rambtile_db, ramttile_db, rambtile_8k_db, ramttile_8k_db]: diff --git a/icefuzz/pinloc/pinloc-384-cm36.sh b/icefuzz/pinloc/pinloc-384-cm36.sh new file mode 100644 index 0000000..b950e28 --- /dev/null +++ b/icefuzz/pinloc/pinloc-384-cm36.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +mkdir -p pinloc-384-cm36 +cd pinloc-384-cm36 + +pins=" +        A1 A2 A3 +        B1    B3 B4 B5 B6 +        C1 C2 C3    C5 C6 +        D1          D5 D6 +        E1 E2 E3 E4 E5 E6 +           F2 F3    F5 +" + +if [ $(echo $pins | wc -w) -ne 25 ]; then +	echo "Incorrect number of pins:" $(echo $pins | wc -w) +	exit 1 +fi + +{ +	echo -n "all:" +	for pin in $pins; do +		id="pinloc-384-cm36_${pin}" +		echo -n " ${id}.exp" +	done +	echo + +	for pin in $pins; do +		id="pinloc-384-cm36_${pin}" +		echo "module top(output y); assign y = 0; endmodule" > ${id}.v +		echo "set_io y ${pin}" >> ${id}.pcf +		echo; echo "${id}.exp:" +		echo "	ICEDEV=lp384-cm36 bash ../../icecube.sh ${id} > ${id}.log 2>&1" +		echo "	../../../icebox/icebox_explain.py ${id}.asc > ${id}.exp.new" +		echo "	! grep '^Warning: pin' ${id}.log" +		echo "	rm -rf ${id}.tmp" +		echo "	mv ${id}.exp.new ${id}.exp" +	done +} >  pinloc-384-cm36.mk + +set -ex +make -f pinloc-384-cm36.mk -j4 +python3 ../pinlocdb.py pinloc-384-cm36_*.exp > ../pinloc-384-cm36.txt + diff --git a/icefuzz/pinloc/pinloc-384-cm49.sh b/icefuzz/pinloc/pinloc-384-cm49.sh new file mode 100644 index 0000000..ea81bd0 --- /dev/null +++ b/icefuzz/pinloc/pinloc-384-cm49.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +mkdir -p pinloc-384-cm49 +cd pinloc-384-cm49 + +pins=" +        A1 A2 A3 A4 A5 A6 A7 +        B1 B2 B3 B4 +        C1 C2    C4 C5 C6 C7 +        D1 D2 D3 D4    D6 D7 +           E2          E6 E7 +        F1 F2 F3 F4 F5 F6 F7 +        G1    G3 G4    G6 +" + + +if [ $(echo $pins | wc -w) -ne 37 ]; then +	echo "Incorrect number of pins:" $(echo $pins | wc -w) +	exit 1 +fi + +{ +	echo -n "all:" +	for pin in $pins; do +		id="pinloc-384-cm49_${pin}" +		echo -n " ${id}.exp" +	done +	echo + +	for pin in $pins; do +		id="pinloc-384-cm49_${pin}" +		echo "module top(output y); assign y = 0; endmodule" > ${id}.v +		echo "set_io y ${pin}" >> ${id}.pcf +		echo; echo "${id}.exp:" +		echo "	ICEDEV=lp384-cm49 bash ../../icecube.sh ${id} > ${id}.log 2>&1" +		echo "	../../../icebox/icebox_explain.py ${id}.asc > ${id}.exp.new" +		echo "	! grep '^Warning: pin' ${id}.log" +		echo "	rm -rf ${id}.tmp" +		echo "	mv ${id}.exp.new ${id}.exp" +	done +} >  pinloc-384-cm49.mk + +set -ex +make -f pinloc-384-cm49.mk -j4 +python3 ../pinlocdb.py pinloc-384-cm49_*.exp > ../pinloc-384-cm49.txt + diff --git a/icefuzz/pinloc/pinloc-384-qn32.sh b/icefuzz/pinloc/pinloc-384-qn32.sh index a3d91e4..da8c63d 100644 --- a/icefuzz/pinloc/pinloc-384-qn32.sh +++ b/icefuzz/pinloc/pinloc-384-qn32.sh @@ -28,7 +28,7 @@ fi  		echo "module top(output y); assign y = 0; endmodule" > ${id}.v  		echo "set_io y ${pin}" >> ${id}.pcf  		echo; echo "${id}.exp:" -		echo "	ICEDEV=384-qn32 bash ../../icecube.sh ${id} > ${id}.log 2>&1" +		echo "	ICEDEV=lp384-qn32 bash ../../icecube.sh ${id} > ${id}.log 2>&1"  		echo "	../../../icebox/icebox_explain.py ${id}.asc > ${id}.exp.new"  		echo "	! grep '^Warning: pin' ${id}.log"  		echo "	rm -rf ${id}.tmp" | 
