diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-06-17 15:15:49 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-06-17 15:15:49 +0200 |
commit | 246fe999ddf7ad8f4462719510e12f97244c5793 (patch) | |
tree | 6ea83a82ebf9ce5b8df87edd782854cd901b39db /ice40 | |
parent | 1f9c28ba58cdf13bfef46a283c60c6e337b10311 (diff) | |
download | nextpnr-246fe999ddf7ad8f4462719510e12f97244c5793.tar.gz nextpnr-246fe999ddf7ad8f4462719510e12f97244c5793.tar.bz2 nextpnr-246fe999ddf7ad8f4462719510e12f97244c5793.zip |
Move TileInfoPOD to chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'ice40')
-rw-r--r-- | ice40/chip.h | 4 | ||||
-rw-r--r-- | ice40/chipdb.py | 20 |
2 files changed, 16 insertions, 8 deletions
diff --git a/ice40/chip.h b/ice40/chip.h index 8298d837..6739e45a 100644 --- a/ice40/chip.h +++ b/ice40/chip.h @@ -180,8 +180,8 @@ struct ConfigEntryPOD struct TileInfoPOD { int8_t cols, rows; - int num_config_entries; - ConfigEntryPOD *entries; + int16_t num_config_entries; + RelPtr<ConfigEntryPOD> entries; } __attribute__((packed)); static const int max_switch_bits = 5; diff --git a/ice40/chipdb.py b/ice40/chipdb.py index 93f0d883..6a2f2788 100644 --- a/ice40/chipdb.py +++ b/ice40/chipdb.py @@ -701,14 +701,19 @@ for t in range(num_tile_types): elif len(bits) % 2 == 1: bba.u16(0, "padding") centries_info.append((name, len(bits), t, safename)) - bba.l("tile%d_config" % t, "ConfigEntryPOD", export=True) + bba.l("tile%d_config" % t, "ConfigEntryPOD") for name, num_bits, t, safename in centries_info: bba.s(name, "name") bba.u32(num_bits, "num_bits") bba.r("tile%d_%s_bits" % (t, safename), "num_bits") if len(centries_info) == 0: bba.u32(0, "padding") - tileinfo.append("{%d, %d, %d, tile%d_config}" % (tile_sizes[t][0], tile_sizes[t][1], len(centries_info), t)) + ti = dict() + ti["cols"] = tile_sizes[t][0] + ti["rows"] = tile_sizes[t][1] + ti["num_entries"] = len(centries_info) + ti["entries"] = "tile%d_config" % t + tileinfo.append(ti) bba.l("wire_data_%s" % dev_name, "WireInfoPOD", export=True) for info in wireinfo: @@ -761,16 +766,19 @@ for info in switchinfo: bba.u8(0, "row<%d> (unused)" % i) bba.u8(0, "col<%d> (unused)" % i) +bba.l("tile_data_%s" % dev_name, "TileInfoPOD", export=True) +for info in tileinfo: + bba.u8(info["cols"], "cols") + bba.u8(info["rows"], "rows") + bba.u16(info["num_entries"], "num_entries") + bba.r(info["entries"], "entries") + bba.finalize() if compact_output: bba.write_compact_c(sys.stdout) else: bba.write_verbose_c(sys.stdout) -print("static TileInfoPOD tile_data_%s[%d] = {" % (dev_name, num_tile_types)) -print(" " + ",\n ".join(tileinfo)) -print("};") - iereninfo = [] for ieren in ierens: iereninfo.append("{%d, %d, %d, %d, %d, %d}" % ieren) |