icetime progress

This commit is contained in:
Clifford Wolf 2016-01-25 16:46:23 +01:00
parent 54bf7cfb05
commit 93fc358cd0
2 changed files with 15 additions and 6 deletions

View File

@ -1,3 +1,6 @@
CELL CascadeBuf
IOPATH I O 137.402:178.5:217.075 170.116:221:268.76
CELL CascadeMux
IOPATH I O 0:0:0 0:0:0

View File

@ -1508,7 +1508,7 @@ struct make_interconn_worker_t
if (trg.name.substr(0, 6) == "span4_" || trg.name.substr(0, 4) == "sp4_")
{
bool horiz = trg.name.substr(0, 6) == "sp4_h_";
int count_length = -1;
int count_length = 0;
while (seg_parents.count(*cursor) && cursor->net == trg.net) {
horiz = horiz || (cursor->name.substr(0, 6) == "sp4_h_");
@ -1519,7 +1519,10 @@ struct make_interconn_worker_t
if (cursor->net == trg.net)
goto skip_to_cursor;
count_length = std::max(count_length, 0);
count_length = std::min(std::max(count_length, 0), 4);
if (max_span_hack)
count_length = 4;
if (cursor->name.substr(0, 7) == "span12_" || cursor->name.substr(0, 5) == "sp12_") {
tn = tname();
@ -1536,7 +1539,7 @@ struct make_interconn_worker_t
cell_log[trg] = std::make_pair(*cursor, "IoSpan4Mux");
} else {
tn = tname();
netlist_cell_types[tn] = stringf("Span4Mux_%c%d", horiz ? 'h' : 'v', max_span_hack ? 4 : count_length);
netlist_cell_types[tn] = stringf("Span4Mux_%c%d", horiz ? 'h' : 'v', count_length);
netlist_cell_ports[tn]["I"] = seg_name(*cursor);
netlist_cell_ports[tn]["O"] = seg_name(trg);
cell_log[trg] = std::make_pair(*cursor, stringf("Span4Mux_%c%d", horiz ? 'h' : 'v', count_length));
@ -1550,7 +1553,7 @@ struct make_interconn_worker_t
if (trg.name.substr(0, 7) == "span12_" || trg.name.substr(0, 5) == "sp12_")
{
bool horiz = trg.name.substr(0, 7) == "sp12_h_";
int count_length = -1;
int count_length = 0;
while (seg_parents.count(*cursor) && cursor->net == trg.net) {
horiz = horiz || (cursor->name.substr(0, 7) == "sp12_h_");
@ -1561,10 +1564,13 @@ struct make_interconn_worker_t
if (cursor->net == trg.net)
goto skip_to_cursor;
count_length = std::max(count_length, 0);
count_length = std::min(std::max(count_length, 0), 12);
if (max_span_hack)
count_length = 12;
tn = tname();
netlist_cell_types[tn] = stringf("Span12Mux_%c%d", horiz ? 'h' : 'v', max_span_hack ? 12 : count_length);
netlist_cell_types[tn] = stringf("Span12Mux_%c%d", horiz ? 'h' : 'v', count_length);
netlist_cell_ports[tn]["I"] = seg_name(*cursor);
netlist_cell_ports[tn]["O"] = seg_name(trg);
cell_log[trg] = std::make_pair(*cursor, stringf("Span12Mux_%c%d", horiz ? 'h' : 'v', count_length));