This commit is contained in:
Miodrag Milanovic 2024-07-03 13:53:48 +02:00
parent 7869140621
commit 0a62392bb6
2 changed files with 24 additions and 26 deletions

View File

@ -894,8 +894,8 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 25),// WAI6/WAO6
Loc( 0, 0, 0),// WAI7/WAO7
Loc(-1, 0, 0),// WE
Loc(-1, 0, 8),// WEA
Loc(-1, 0, 0), // WE
Loc(-1, 0, 8), // WEA
Loc(-1, 0, 22),// WRSTI1/WRSTO
Loc(-1, 0, 30),// RRSTI1/RRSTO
@ -906,16 +906,16 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 0), // WRSTI4
Loc( 0, 0, 0), // RRSTI4
Loc(-1, 0, 3),// WEQ
Loc(-1, 0, 4),// REQ
Loc(-1, 0, 3), // WEQ
Loc(-1, 0, 4), // REQ
// Loc(-1, 0, 11), WEQ
// Loc(-1, 0, 12), REQ
// Loc(-1, 0, 19), WEQ
// Loc(-1, 0, 20), REQ
// Loc(-1, 0, 27), WEQ
// Loc(-1, 0, 28), REQ
Loc( 0, 0, 0),// WEQ2
Loc( 0, 0, 0),// REQ2
Loc( 0, 0, 0), // WEQ2
Loc( 0, 0, 0), // REQ2
};
static const std::vector<Loc> fifo2 =
@ -974,8 +974,8 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 28),// WAI6/WAO6
Loc( 0, 0, 0),// WAI7/WAO7
Loc(+1, 0, 0),// WE
Loc(+1, 0, 8),// WEA
Loc(+1, 0, 0), // WE
Loc(+1, 0, 8), // WEA
Loc(+1, 0, 22),// WRSTI1/WRSTO
Loc(+1, 0, 30),// RRSTI1/RRSTO
@ -986,16 +986,16 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 0), // WRSTI4
Loc( 0, 0, 0), // RRSTI4
Loc(+1, 0, 3),// WEQ
Loc(+1, 0, 4),// REQ
Loc(+1, 0, 3), // WEQ
Loc(+1, 0, 4), // REQ
// Loc(+1, 0, 11), WEQ
// Loc(+1, 0, 12), REQ
// Loc(+1, 0, 19), WEQ
// Loc(+1, 0, 20), REQ
// Loc(+1, 0, 27), WEQ
// Loc(+1, 0, 28), REQ
Loc( 0, 0, 0),// WEQ2
Loc( 0, 0, 0),// REQ2
Loc( 0, 0, 0), // WEQ2
Loc( 0, 0, 0), // REQ2
};
static const std::vector<Loc> xfifo =
@ -1005,7 +1005,7 @@ Loc getFIFOFE(Loc root, int pos)
Loc(-1, 0, 5), // I/O3
Loc(-1, 0, 6), // I/O4
Loc(-1, 0, 7), // I/O5
Loc(-1, 0, 9),// I/O6
Loc(-1, 0, 9), // I/O6
Loc(-1, 0, 10),// I/O7
Loc(-1, 0, 13),// I/O8
Loc(-1, 0, 14),// I/O9
@ -1053,8 +1053,8 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 25),// WAI6/WAO6
Loc( 0, 0, 4), // WAI7/WAO7
Loc(-1, 0, 0),// WE
Loc(-1, 0, 8),// WEA
Loc(-1, 0, 0), // WE
Loc(-1, 0, 8), // WEA
Loc(-1, 0, 22),// WRSTI1/WRSTO
Loc(-1, 0, 30),// RRSTI1/RRSTO
@ -1065,16 +1065,16 @@ Loc getFIFOFE(Loc root, int pos)
Loc( 0, 0, 7), // WRSTI4
Loc( 0, 0, 23),// RRSTI4
Loc(-1, 0, 3),// WEQ1
Loc(-1, 0, 4),// REQ1
Loc(-1, 0, 3), // WEQ1
Loc(-1, 0, 4), // REQ1
// Loc(-1, 0, 11), WEQ1
// Loc(-1, 0, 12), REQ1
// Loc(-1, 0, 19), WEQ1
// Loc(-1, 0, 20), REQ1
// Loc(-1, 0, 27), WEQ1
// Loc(-1, 0, 28), REQ1
Loc(+1, 0, 3),// WEQ2
Loc(+1, 0, 4),// REQ2
Loc(+1, 0, 3), // WEQ2
Loc(+1, 0, 4), // REQ2
// Loc(+1, 0, 11), WEQ2
// Loc(+1, 0, 12), REQ2
// Loc(+1, 0, 19), WEQ2

View File

@ -293,6 +293,10 @@ void NgUltraPacker::bind_attr_loc(CellInfo *cell, dict<IdString, Property> *attr
{
if (attrs->count(id_LOC)) {
std::string name = attrs->at(id_LOC).as_string();
if (boost::starts_with(name,"TILE[")) {
boost::replace_all(name, ".DFF", ".FE");
boost::replace_all(name, ".LUT", ".FE");
}
if (!uarch->locations.count(name)) {
log_error("Unable to find location %s\n", name.c_str());
}
@ -304,7 +308,7 @@ void NgUltraPacker::bind_attr_loc(CellInfo *cell, dict<IdString, Property> *attr
void NgUltraPacker::pack_xluts(void)
{
log_info("Pack XLUTs...\n");
int xlut_used = 0, lut_only = 0;//, lut_and_ff = 0;
int xlut_used = 0, lut_only = 0;
for (auto &cell : ctx->cells) {
CellInfo &ci = *cell.second;
if (!ci.type.in(id_NX_LUT))
@ -355,8 +359,6 @@ void NgUltraPacker::pack_xluts(void)
log_info(" %6d XLUTs used\n", xlut_used);
if (lut_only)
log_info(" %6d FEs used as LUT only\n", lut_only);
//if (lut_and_ff)
// log_info(" %6d FEs used as LUT and DFF\n", lut_and_ff);
flush_cells();
}
@ -1906,8 +1908,6 @@ void NgUltraPacker::pre_place(void)
break;
}
}
//if (!found)
// log_error(" No more available PLLs for driving '%s'.\n", ci.name.c_str(ctx));
}
}
// If PLL use any other pin, location is not relevant, so we pick available
@ -1915,7 +1915,6 @@ void NgUltraPacker::pre_place(void)
CellInfo &ci = *cell.second;
if (!ci.type.in(id_PLL) || ci.bel != BelId())
continue;
//log_warning(" PLL '%s' is not driven by clock dedicated pin.\n", ci.name.c_str(ctx));
if (uarch->unused_pll.empty())
log_error(" No more available PLLs for driving '%s'.\n", ci.name.c_str(ctx));
BelId bel = uarch->unused_pll.begin()->first;
@ -2034,7 +2033,6 @@ void NgUltraImpl::postPlace()
log_info("Running post-placement ...\n");
packer.duplicate_gck();
packer.insert_bypass_gck();
//log_info("Running post-placement legalisation...\n");
log_break();
ctx->assignArchInfo();
}