Reset and Load restriction
This commit is contained in:
parent
fa259de07a
commit
1723156027
@ -455,8 +455,11 @@ template <size_t N> bool check_assign_sig(std::array<const NetInfo*, N> &sig_set
|
|||||||
|
|
||||||
struct SectionFEWorker
|
struct SectionFEWorker
|
||||||
{
|
{
|
||||||
std::array<const NetInfo *, 2> clk{};
|
std::array<const NetInfo *, 2> clk{}; // from local system matrix
|
||||||
std::array<const NetInfo *, 4> reset_load{};
|
std::array<const NetInfo *, 2> reset{}; // from local system matrix
|
||||||
|
std::array<const NetInfo *, 2> load{}; // from local system matrix
|
||||||
|
std::array<const NetInfo *, 1> shared{}; // 1 from local system matrix
|
||||||
|
// Additional R and L can be used from RI network
|
||||||
bool run(const NgUltraImpl *impl,const Context *ctx, BelId bel, CellInfo *cell)
|
bool run(const NgUltraImpl *impl,const Context *ctx, BelId bel, CellInfo *cell)
|
||||||
{
|
{
|
||||||
Loc loc = ctx->getBelLocation(bel);
|
Loc loc = ctx->getBelLocation(bel);
|
||||||
@ -464,13 +467,14 @@ struct SectionFEWorker
|
|||||||
const CellInfo *ff = ctx->getBoundBelCell(ctx->getBelByLocation(Loc(loc.x,loc.y,id)));
|
const CellInfo *ff = ctx->getBoundBelCell(ctx->getBelByLocation(Loc(loc.x,loc.y,id)));
|
||||||
if (ff == nullptr)
|
if (ff == nullptr)
|
||||||
continue;
|
continue;
|
||||||
// TODO: This restriction is too limited, need to revisit
|
if (!check_assign_sig(reset, ff->getPort(id_R))) {
|
||||||
/*
|
if (!check_assign_sig(shared, ff->getPort(id_R)))
|
||||||
if (!check_assign_sig(reset_load, ff->getPort(id_R)))
|
return false;
|
||||||
return false;
|
}
|
||||||
if (!check_assign_sig(reset_load, ff->getPort(id_L)))
|
if (!check_assign_sig(load, ff->getPort(id_L))) {
|
||||||
return false;
|
if (!check_assign_sig(shared, ff->getPort(id_L)))
|
||||||
*/
|
return false;
|
||||||
|
}
|
||||||
if (!check_assign_sig(clk, ff->getPort(id_CK)))
|
if (!check_assign_sig(clk, ff->getPort(id_CK)))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user