mirror of https://github.com/openXC7/prjxray.git
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:
parent
d3b91d6054
commit
8d462d341a
|
|
@ -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
|
||||
|
||||
|
||||
#################################################
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue