mirror of https://github.com/YosysHQ/icestorm.git
icetime progress
This commit is contained in:
parent
54bf7cfb05
commit
93fc358cd0
|
|
@ -1,3 +1,6 @@
|
||||||
|
CELL CascadeBuf
|
||||||
|
IOPATH I O 137.402:178.5:217.075 170.116:221:268.76
|
||||||
|
|
||||||
CELL CascadeMux
|
CELL CascadeMux
|
||||||
IOPATH I O 0:0:0 0:0:0
|
IOPATH I O 0:0:0 0:0:0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1508,7 +1508,7 @@ struct make_interconn_worker_t
|
||||||
if (trg.name.substr(0, 6) == "span4_" || trg.name.substr(0, 4) == "sp4_")
|
if (trg.name.substr(0, 6) == "span4_" || trg.name.substr(0, 4) == "sp4_")
|
||||||
{
|
{
|
||||||
bool horiz = trg.name.substr(0, 6) == "sp4_h_";
|
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) {
|
while (seg_parents.count(*cursor) && cursor->net == trg.net) {
|
||||||
horiz = horiz || (cursor->name.substr(0, 6) == "sp4_h_");
|
horiz = horiz || (cursor->name.substr(0, 6) == "sp4_h_");
|
||||||
|
|
@ -1519,7 +1519,10 @@ struct make_interconn_worker_t
|
||||||
if (cursor->net == trg.net)
|
if (cursor->net == trg.net)
|
||||||
goto skip_to_cursor;
|
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_") {
|
if (cursor->name.substr(0, 7) == "span12_" || cursor->name.substr(0, 5) == "sp12_") {
|
||||||
tn = tname();
|
tn = tname();
|
||||||
|
|
@ -1536,7 +1539,7 @@ struct make_interconn_worker_t
|
||||||
cell_log[trg] = std::make_pair(*cursor, "IoSpan4Mux");
|
cell_log[trg] = std::make_pair(*cursor, "IoSpan4Mux");
|
||||||
} else {
|
} else {
|
||||||
tn = tname();
|
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]["I"] = seg_name(*cursor);
|
||||||
netlist_cell_ports[tn]["O"] = seg_name(trg);
|
netlist_cell_ports[tn]["O"] = seg_name(trg);
|
||||||
cell_log[trg] = std::make_pair(*cursor, stringf("Span4Mux_%c%d", horiz ? 'h' : 'v', count_length));
|
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_")
|
if (trg.name.substr(0, 7) == "span12_" || trg.name.substr(0, 5) == "sp12_")
|
||||||
{
|
{
|
||||||
bool horiz = trg.name.substr(0, 7) == "sp12_h_";
|
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) {
|
while (seg_parents.count(*cursor) && cursor->net == trg.net) {
|
||||||
horiz = horiz || (cursor->name.substr(0, 7) == "sp12_h_");
|
horiz = horiz || (cursor->name.substr(0, 7) == "sp12_h_");
|
||||||
|
|
@ -1561,10 +1564,13 @@ struct make_interconn_worker_t
|
||||||
if (cursor->net == trg.net)
|
if (cursor->net == trg.net)
|
||||||
goto skip_to_cursor;
|
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();
|
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]["I"] = seg_name(*cursor);
|
||||||
netlist_cell_ports[tn]["O"] = seg_name(trg);
|
netlist_cell_ports[tn]["O"] = seg_name(trg);
|
||||||
cell_log[trg] = std::make_pair(*cursor, stringf("Span12Mux_%c%d", horiz ? 'h' : 'v', count_length));
|
cell_log[trg] = std::make_pair(*cursor, stringf("Span12Mux_%c%d", horiz ? 'h' : 'v', count_length));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue