aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhermitsoft <hermisu@mail.com>2017-03-09 13:53:34 +0100
committerhermitsoft <hermisu@mail.com>2017-03-09 13:53:34 +0100
commit62b7f71319a73ed10c0428f09e9dae698bdcb116 (patch)
tree79aba766d190b59bb8d2449a40876c456e390df5
parent1f1f10b7f08941b1fbffca51452888b8d08e56a0 (diff)
downloadicestorm-62b7f71319a73ed10c0428f09e9dae698bdcb116.tar.gz
icestorm-62b7f71319a73ed10c0428f09e9dae698bdcb116.tar.bz2
icestorm-62b7f71319a73ed10c0428f09e9dae698bdcb116.zip
ieren and pin info for all LP384
-rw-r--r--icebox/icebox.py145
-rw-r--r--icefuzz/pinloc/pinloc-384-cm36.sh44
-rw-r--r--icefuzz/pinloc/pinloc-384-cm49.sh46
-rw-r--r--icefuzz/pinloc/pinloc-384-qn32.sh2
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"