Move TileInfoPOD to chipdb blob

Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
Clifford Wolf 2018-06-17 15:15:49 +02:00
parent 1f9c28ba58
commit 246fe999dd
2 changed files with 16 additions and 8 deletions

View File

@ -180,8 +180,8 @@ struct ConfigEntryPOD
struct TileInfoPOD struct TileInfoPOD
{ {
int8_t cols, rows; int8_t cols, rows;
int num_config_entries; int16_t num_config_entries;
ConfigEntryPOD *entries; RelPtr<ConfigEntryPOD> entries;
} __attribute__((packed)); } __attribute__((packed));
static const int max_switch_bits = 5; static const int max_switch_bits = 5;

View File

@ -701,14 +701,19 @@ for t in range(num_tile_types):
elif len(bits) % 2 == 1: elif len(bits) % 2 == 1:
bba.u16(0, "padding") bba.u16(0, "padding")
centries_info.append((name, len(bits), t, safename)) 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: for name, num_bits, t, safename in centries_info:
bba.s(name, "name") bba.s(name, "name")
bba.u32(num_bits, "num_bits") bba.u32(num_bits, "num_bits")
bba.r("tile%d_%s_bits" % (t, safename), "num_bits") bba.r("tile%d_%s_bits" % (t, safename), "num_bits")
if len(centries_info) == 0: if len(centries_info) == 0:
bba.u32(0, "padding") 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) bba.l("wire_data_%s" % dev_name, "WireInfoPOD", export=True)
for info in wireinfo: for info in wireinfo:
@ -761,16 +766,19 @@ for info in switchinfo:
bba.u8(0, "row<%d> (unused)" % i) bba.u8(0, "row<%d> (unused)" % i)
bba.u8(0, "col<%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() bba.finalize()
if compact_output: if compact_output:
bba.write_compact_c(sys.stdout) bba.write_compact_c(sys.stdout)
else: else:
bba.write_verbose_c(sys.stdout) bba.write_verbose_c(sys.stdout)
print("static TileInfoPOD tile_data_%s[%d] = {" % (dev_name, num_tile_types))
print(" " + ",\n ".join(tileinfo))
print("};")
iereninfo = [] iereninfo = []
for ieren in ierens: for ieren in ierens:
iereninfo.append("{%d, %d, %d, %d, %d, %d}" % ieren) iereninfo.append("{%d, %d, %d, %d, %d, %d}" % ieren)