aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim 'mithro' Ansell <me@mith.ro>2018-06-12 19:15:17 -0700
committerTim 'mithro' Ansell <me@mith.ro>2018-06-12 19:18:50 -0700
commit82f2f3d278fe64a8053cb633e98287b21bb4b684 (patch)
tree4ae5735580b8d61ccff8fd2540bcedca9cec3fe7
parentd8d30fa63000fab66e770db996c4bb90dcb90420 (diff)
downloadicestorm-82f2f3d278fe64a8053cb633e98287b21bb4b684.tar.gz
icestorm-82f2f3d278fe64a8053cb633e98287b21bb4b684.tar.bz2
icestorm-82f2f3d278fe64a8053cb633e98287b21bb4b684.zip
HLC: Use '~>' instead of '<->' for routing switches.
As mentioned in ca6b2d9ebd521ecec58b9b5627c9380355adeab1, the 'routing' switches are not actually bidirectional. This makes the '<->' specifier very misleading. Instead use '~>' to differentiate it from the 'buffer' switches.
-rwxr-xr-xicebox/icebox_asc2hlc.py2
-rwxr-xr-xicebox/icebox_hlc2asc.py12
2 files changed, 7 insertions, 7 deletions
diff --git a/icebox/icebox_asc2hlc.py b/icebox/icebox_asc2hlc.py
index 4f0f6fa..facca4b 100755
--- a/icebox/icebox_asc2hlc.py
+++ b/icebox/icebox_asc2hlc.py
@@ -797,7 +797,7 @@ class Tile:
self.ic.max_y - 1, entry[3])
if dst == 'fabout':
dst = lookup_fabout(*self.xy)
- self.buffer_and_routing.add((src, '<->', dst))
+ self.buffer_and_routing.add((src, '~>', dst))
continue
if entry[1] == 'buffer':
if match:
diff --git a/icebox/icebox_hlc2asc.py b/icebox/icebox_hlc2asc.py
index 3b9ee38..00ed050 100755
--- a/icebox/icebox_hlc2asc.py
+++ b/icebox/icebox_hlc2asc.py
@@ -775,7 +775,7 @@ clearing:{:<30} - current set :{}""".format(
if (src, dst) not in self.buffers:
self.buffers.append((src, dst))
self.apply_directive('buffer', src, dst)
- elif len(fields) == 3 and fields[1] == '<->':
+ elif len(fields) == 3 and fields[1] == '~>':
src = untranslate_netname(self.x, self.y,
self.ic.max_x - 1,
self.ic.max_y - 1, fields[0])
@@ -786,7 +786,7 @@ clearing:{:<30} - current set :{}""".format(
if (src, dst) not in self.routings:
self.routings.append((src, dst))
self.apply_directive('routing', src, dst)
- elif len(fields) >= 5 and (fields[1] == '->' or fields[1] == '<->'):
+ elif len(fields) >= 5 and (fields[1] == '->' or fields[1] == '~>'):
self.read(fields[:3])
self.read(fields[2:])
else:
@@ -840,11 +840,11 @@ class LogicCell:
self.seq_bits[2] = '1'
elif fields == ['async_setreset']:
self.seq_bits[3] = '1'
- elif len(fields) > 3 and (fields[1] == '->' or fields[1] == '<->'):
+ elif len(fields) > 3 and (fields[1] == '->' or fields[1] == '~>'):
self.read(fields[:3])
self.read(fields[2:])
return
- elif len(fields) == 3 and (fields[1] == '->' or fields[1] == '<->'):
+ elif len(fields) == 3 and (fields[1] == '->' or fields[1] == '~>'):
prefix = 'lutff_%d/' % self.index
# Strip prefix if it is given
@@ -1001,10 +1001,10 @@ class IOBlock:
== ("padin_glb_netwk", fields[2][10:])]
assert len(bit) == 1
self.tile.ic.extra_bits.add(bit[0])
- elif len(fields) > 3 and (fields[1] == '->' or fields[1] == '<->'):
+ elif len(fields) > 3 and (fields[1] == '->' or fields[1] == '~>'):
self.read(fields[:3])
self.read(fields[2:])
- elif len(fields) == 3 and (fields[1] == '->' or fields[1] == '<->'):
+ elif len(fields) == 3 and (fields[1] == '->' or fields[1] == '~>'):
prefix = 'io_%d/' % self.index
# Strip prefix if it is given