Add FF XINI bits

Signed-off-by: Clifford Wolf <clifford@clifford.at>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
This commit is contained in:
Clifford Wolf 2017-10-18 17:16:10 +02:00 committed by Tim 'mithro' Ansell
parent d3b91d6054
commit 8d462d341a
3 changed files with 41 additions and 5 deletions

View File

@ -45,10 +45,10 @@ with open("design_%s.txt" % sys.argv[1], "r") as f:
if site not in data:
data[site] = dict()
data[site]["%s.INIT" % bel] = init
data[site]["%s.CINV" % bel] = cinv
data[site]["%s.DINV" % bel] = dinv
data[site]["%s.RINV" % bel] = rinv
data[site]["%s.ZINI" % bel] = 1-init
# data[site]["%s.CINV" % bel] = cinv
# data[site]["%s.DINV" % bel] = dinv
# data[site]["%s.RINV" % bel] = rinv
#################################################

View File

@ -139,6 +139,14 @@ for segtype in segbits.keys():
m = re.search(r"(.)LUT.INIT\[(..)\]", bit_name)
label = m.group(1) + m.group(2)
if re.search(r"\.[ABCD]5?FF\.", bit_name):
bgcolor = "#aaffaa"
m = re.search(r"\.([ABCD]5?)FF\.([A-Z]+)", bit_name)
if m.group(2) == "ZINI":
label = m.group(1) + "Z"
else:
label = m.group(1) + "?"
print("<td bgcolor=\"%s\" title=\"%s\"><span style=\"font-size:10px\">%s</span></td>" % (bgcolor, "\n".join(title), label), file=f)
print("</tr>", file =f)

View File

@ -15,6 +15,8 @@ using std::tuple;
using std::vector;
using std::string;
bool mode_inv = false;
int num_bits = 0, num_tags = 0;
map<string, int> bit_ids, tag_ids;
vector<string> bit_ids_r, tag_ids_r;
@ -84,6 +86,26 @@ void read_input(std::istream &f, std::string filename)
tags.resize(tag_idx+1);
tags[tag_idx] = true;
if (mode_inv)
{
auto &inv_tags = token == "1" ? segdata_tags0(*segptr) : segdata_tags1(*segptr);
token = tag_ids_r.at(tag_idx) + "__INV";
if (tag_ids.count(token) == 0) {
tag_ids[token] = num_tags++;
tag_ids_r.push_back(token);
}
int inv_tag_idx = tag_ids.at(token);
if (int(inv_tags.size()) <= inv_tag_idx)
inv_tags.resize(inv_tag_idx+1);
inv_tags[inv_tag_idx] = true;
}
continue;
}
@ -120,12 +142,15 @@ int main(int argc, char **argv)
const char *outfile = nullptr;
int opt;
while ((opt = getopt(argc, argv, "o:")) != -1)
while ((opt = getopt(argc, argv, "io:")) != -1)
switch (opt)
{
case 'o':
outfile = optarg;
break;
case 'i':
mode_inv = true;
break;
default:
goto help;
}
@ -138,6 +163,9 @@ help:
fprintf(stderr, " -o <filename>\n");
fprintf(stderr, " set output file\n");
fprintf(stderr, "\n");
fprintf(stderr, " -i\n");
fprintf(stderr, " add inverted tags\n");
fprintf(stderr, "\n");
return 1;
}