aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2017-11-17 10:06:35 +0000
committerDavid Shah <davey1576@gmail.com>2017-11-17 15:09:58 +0000
commite7d22f22777227df18ff9c34e3b663aef04a075b (patch)
treed43d7f79ae4fa6efa68030a19adedfd8f2cf5af7
parentcdf688363968ee8895d8e6fe08178cff8fc9ee75 (diff)
downloadicestorm-e7d22f22777227df18ff9c34e3b663aef04a075b.tar.gz
icestorm-e7d22f22777227df18ff9c34e3b663aef04a075b.tar.bz2
icestorm-e7d22f22777227df18ff9c34e3b663aef04a075b.zip
UltraPlus Internal Oscillator support
-rw-r--r--icebox/icebox.py22
-rwxr-xr-xicebox/icebox_chipdb.py13
2 files changed, 34 insertions, 1 deletions
diff --git a/icebox/icebox.py b/icebox/icebox.py
index 12e1fca..7628e56 100644
--- a/icebox/icebox.py
+++ b/icebox/icebox.py
@@ -4438,6 +4438,28 @@ dsp_config_db = {
}
}
+# This contains the data for extra cells not included
+# in any previous databases
+
+extra_cells_db = {
+ "5k" : {
+ ("HFOSC", (0, 31, 1)) : {
+ "CLKHFPU": (0, 29, "lutff_0/in_1"),
+ "CLKHFEN": (0, 29, "lutff_7/in_3"),
+ "CLKHF": (0, 29, "glb_netwk_4"),
+ "CLKHF_FABRIC": (0, 28, "slf_op_7"),
+ "CLKHF_DIV_1": (0, 16, "CBIT_4"),
+ "CLKHF_DIV_0": (0, 16, "CBIT_3")
+ },
+ ("LFOSC", (25, 31, 1)) : {
+ "CLKLFPU": (25, 29, "lutff_0/in_1"),
+ "CLKLFEN": (25, 29, "lutff_7/in_3"),
+ "CLKLF": (25, 29, "glb_netwk_5"),
+ "CLKLF_FABRIC": (25, 29, "slf_op_0")
+ }
+ }
+}
+
iotile_full_db = parse_db(iceboxdb.database_io_txt)
logictile_db = parse_db(iceboxdb.database_logic_txt, "1k")
logictile_5k_db = parse_db(iceboxdb.database_logic_txt, "5k")
diff --git a/icebox/icebox_chipdb.py b/icebox/icebox_chipdb.py
index 7d75670..ce30153 100755
--- a/icebox/icebox_chipdb.py
+++ b/icebox/icebox_chipdb.py
@@ -314,7 +314,18 @@ for dsploc in ic.dsp_tiles[0]:
cfg = ic.get_dsp_config_db(x, y)
for key in sorted(cfg):
print("%s %s" % (key, " ".join([str(k) for k in cfg[key]])))
-
+ print()
+
+if ic.device in icebox.extra_cells_db:
+ for cell in icebox.extra_cells_db[ic.device]:
+ name, loc = cell
+ x, y, z = loc
+ print(".extra_cell %d %d %d %s" % (x, y, z, name))
+ cellinfo = icebox.extra_cells_db[ic.device][cell]
+ for key in sorted(cellinfo):
+ print("%s %s" % (key, " ".join([str(k) for k in cellinfo[key]])))
+ print()
+
print(".extra_bits")
extra_bits = dict()
for idx in sorted(ic.extra_bits_db()):