Cleanup
This commit is contained in:
parent
7869140621
commit
0a62392bb6
@ -894,8 +894,8 @@ Loc getFIFOFE(Loc root, int pos)
|
|||||||
Loc( 0, 0, 25),// WAI6/WAO6
|
Loc( 0, 0, 25),// WAI6/WAO6
|
||||||
Loc( 0, 0, 0),// WAI7/WAO7
|
Loc( 0, 0, 0),// WAI7/WAO7
|
||||||
|
|
||||||
Loc(-1, 0, 0),// WE
|
Loc(-1, 0, 0), // WE
|
||||||
Loc(-1, 0, 8),// WEA
|
Loc(-1, 0, 8), // WEA
|
||||||
|
|
||||||
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
||||||
Loc(-1, 0, 30),// RRSTI1/RRSTO
|
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), // WRSTI4
|
||||||
Loc( 0, 0, 0), // RRSTI4
|
Loc( 0, 0, 0), // RRSTI4
|
||||||
|
|
||||||
Loc(-1, 0, 3),// WEQ
|
Loc(-1, 0, 3), // WEQ
|
||||||
Loc(-1, 0, 4),// REQ
|
Loc(-1, 0, 4), // REQ
|
||||||
// Loc(-1, 0, 11), WEQ
|
// Loc(-1, 0, 11), WEQ
|
||||||
// Loc(-1, 0, 12), REQ
|
// Loc(-1, 0, 12), REQ
|
||||||
// Loc(-1, 0, 19), WEQ
|
// Loc(-1, 0, 19), WEQ
|
||||||
// Loc(-1, 0, 20), REQ
|
// Loc(-1, 0, 20), REQ
|
||||||
// Loc(-1, 0, 27), WEQ
|
// Loc(-1, 0, 27), WEQ
|
||||||
// Loc(-1, 0, 28), REQ
|
// Loc(-1, 0, 28), REQ
|
||||||
Loc( 0, 0, 0),// WEQ2
|
Loc( 0, 0, 0), // WEQ2
|
||||||
Loc( 0, 0, 0),// REQ2
|
Loc( 0, 0, 0), // REQ2
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::vector<Loc> fifo2 =
|
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, 28),// WAI6/WAO6
|
||||||
Loc( 0, 0, 0),// WAI7/WAO7
|
Loc( 0, 0, 0),// WAI7/WAO7
|
||||||
|
|
||||||
Loc(+1, 0, 0),// WE
|
Loc(+1, 0, 0), // WE
|
||||||
Loc(+1, 0, 8),// WEA
|
Loc(+1, 0, 8), // WEA
|
||||||
|
|
||||||
Loc(+1, 0, 22),// WRSTI1/WRSTO
|
Loc(+1, 0, 22),// WRSTI1/WRSTO
|
||||||
Loc(+1, 0, 30),// RRSTI1/RRSTO
|
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), // WRSTI4
|
||||||
Loc( 0, 0, 0), // RRSTI4
|
Loc( 0, 0, 0), // RRSTI4
|
||||||
|
|
||||||
Loc(+1, 0, 3),// WEQ
|
Loc(+1, 0, 3), // WEQ
|
||||||
Loc(+1, 0, 4),// REQ
|
Loc(+1, 0, 4), // REQ
|
||||||
// Loc(+1, 0, 11), WEQ
|
// Loc(+1, 0, 11), WEQ
|
||||||
// Loc(+1, 0, 12), REQ
|
// Loc(+1, 0, 12), REQ
|
||||||
// Loc(+1, 0, 19), WEQ
|
// Loc(+1, 0, 19), WEQ
|
||||||
// Loc(+1, 0, 20), REQ
|
// Loc(+1, 0, 20), REQ
|
||||||
// Loc(+1, 0, 27), WEQ
|
// Loc(+1, 0, 27), WEQ
|
||||||
// Loc(+1, 0, 28), REQ
|
// Loc(+1, 0, 28), REQ
|
||||||
Loc( 0, 0, 0),// WEQ2
|
Loc( 0, 0, 0), // WEQ2
|
||||||
Loc( 0, 0, 0),// REQ2
|
Loc( 0, 0, 0), // REQ2
|
||||||
};
|
};
|
||||||
|
|
||||||
static const std::vector<Loc> xfifo =
|
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, 5), // I/O3
|
||||||
Loc(-1, 0, 6), // I/O4
|
Loc(-1, 0, 6), // I/O4
|
||||||
Loc(-1, 0, 7), // I/O5
|
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, 10),// I/O7
|
||||||
Loc(-1, 0, 13),// I/O8
|
Loc(-1, 0, 13),// I/O8
|
||||||
Loc(-1, 0, 14),// I/O9
|
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, 25),// WAI6/WAO6
|
||||||
Loc( 0, 0, 4), // WAI7/WAO7
|
Loc( 0, 0, 4), // WAI7/WAO7
|
||||||
|
|
||||||
Loc(-1, 0, 0),// WE
|
Loc(-1, 0, 0), // WE
|
||||||
Loc(-1, 0, 8),// WEA
|
Loc(-1, 0, 8), // WEA
|
||||||
|
|
||||||
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
||||||
Loc(-1, 0, 30),// RRSTI1/RRSTO
|
Loc(-1, 0, 30),// RRSTI1/RRSTO
|
||||||
@ -1065,16 +1065,16 @@ Loc getFIFOFE(Loc root, int pos)
|
|||||||
Loc( 0, 0, 7), // WRSTI4
|
Loc( 0, 0, 7), // WRSTI4
|
||||||
Loc( 0, 0, 23),// RRSTI4
|
Loc( 0, 0, 23),// RRSTI4
|
||||||
|
|
||||||
Loc(-1, 0, 3),// WEQ1
|
Loc(-1, 0, 3), // WEQ1
|
||||||
Loc(-1, 0, 4),// REQ1
|
Loc(-1, 0, 4), // REQ1
|
||||||
// Loc(-1, 0, 11), WEQ1
|
// Loc(-1, 0, 11), WEQ1
|
||||||
// Loc(-1, 0, 12), REQ1
|
// Loc(-1, 0, 12), REQ1
|
||||||
// Loc(-1, 0, 19), WEQ1
|
// Loc(-1, 0, 19), WEQ1
|
||||||
// Loc(-1, 0, 20), REQ1
|
// Loc(-1, 0, 20), REQ1
|
||||||
// Loc(-1, 0, 27), WEQ1
|
// Loc(-1, 0, 27), WEQ1
|
||||||
// Loc(-1, 0, 28), REQ1
|
// Loc(-1, 0, 28), REQ1
|
||||||
Loc(+1, 0, 3),// WEQ2
|
Loc(+1, 0, 3), // WEQ2
|
||||||
Loc(+1, 0, 4),// REQ2
|
Loc(+1, 0, 4), // REQ2
|
||||||
// Loc(+1, 0, 11), WEQ2
|
// Loc(+1, 0, 11), WEQ2
|
||||||
// Loc(+1, 0, 12), REQ2
|
// Loc(+1, 0, 12), REQ2
|
||||||
// Loc(+1, 0, 19), WEQ2
|
// Loc(+1, 0, 19), WEQ2
|
||||||
|
@ -293,6 +293,10 @@ void NgUltraPacker::bind_attr_loc(CellInfo *cell, dict<IdString, Property> *attr
|
|||||||
{
|
{
|
||||||
if (attrs->count(id_LOC)) {
|
if (attrs->count(id_LOC)) {
|
||||||
std::string name = attrs->at(id_LOC).as_string();
|
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)) {
|
if (!uarch->locations.count(name)) {
|
||||||
log_error("Unable to find location %s\n", name.c_str());
|
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)
|
void NgUltraPacker::pack_xluts(void)
|
||||||
{
|
{
|
||||||
log_info("Pack XLUTs...\n");
|
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) {
|
for (auto &cell : ctx->cells) {
|
||||||
CellInfo &ci = *cell.second;
|
CellInfo &ci = *cell.second;
|
||||||
if (!ci.type.in(id_NX_LUT))
|
if (!ci.type.in(id_NX_LUT))
|
||||||
@ -355,8 +359,6 @@ void NgUltraPacker::pack_xluts(void)
|
|||||||
log_info(" %6d XLUTs used\n", xlut_used);
|
log_info(" %6d XLUTs used\n", xlut_used);
|
||||||
if (lut_only)
|
if (lut_only)
|
||||||
log_info(" %6d FEs used as LUT only\n", 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();
|
flush_cells();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1906,8 +1908,6 @@ void NgUltraPacker::pre_place(void)
|
|||||||
break;
|
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
|
// 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;
|
CellInfo &ci = *cell.second;
|
||||||
if (!ci.type.in(id_PLL) || ci.bel != BelId())
|
if (!ci.type.in(id_PLL) || ci.bel != BelId())
|
||||||
continue;
|
continue;
|
||||||
//log_warning(" PLL '%s' is not driven by clock dedicated pin.\n", ci.name.c_str(ctx));
|
|
||||||
if (uarch->unused_pll.empty())
|
if (uarch->unused_pll.empty())
|
||||||
log_error(" No more available PLLs for driving '%s'.\n", ci.name.c_str(ctx));
|
log_error(" No more available PLLs for driving '%s'.\n", ci.name.c_str(ctx));
|
||||||
BelId bel = uarch->unused_pll.begin()->first;
|
BelId bel = uarch->unused_pll.begin()->first;
|
||||||
@ -2034,7 +2033,6 @@ void NgUltraImpl::postPlace()
|
|||||||
log_info("Running post-placement ...\n");
|
log_info("Running post-placement ...\n");
|
||||||
packer.duplicate_gck();
|
packer.duplicate_gck();
|
||||||
packer.insert_bypass_gck();
|
packer.insert_bypass_gck();
|
||||||
//log_info("Running post-placement legalisation...\n");
|
|
||||||
log_break();
|
log_break();
|
||||||
ctx->assignArchInfo();
|
ctx->assignArchInfo();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user