ecp5: EBR clocking fix
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
dab70466cd
commit
11579a1046
13
ecp5/arch.cc
13
ecp5/arch.cc
@ -683,15 +683,18 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port
|
|||||||
info.clockToQ.delay = 395;
|
info.clockToQ.delay = 395;
|
||||||
}
|
}
|
||||||
} else if (cell->type == id_DP16KD) {
|
} else if (cell->type == id_DP16KD) {
|
||||||
for (auto c : boost::adaptors::reverse(port.str(this))) {
|
std::string port_name = port.str(this);
|
||||||
|
for (auto c : boost::adaptors::reverse(port_name)) {
|
||||||
if (std::isdigit(c))
|
if (std::isdigit(c))
|
||||||
continue;
|
continue;
|
||||||
if (c == 'A')
|
if (c == 'A') {
|
||||||
info.clock_port = id_CLKA;
|
info.clock_port = id_CLKA;
|
||||||
else if (c == 'B')
|
break;
|
||||||
|
} else if (c == 'B') {
|
||||||
info.clock_port = id_CLKB;
|
info.clock_port = id_CLKB;
|
||||||
else
|
break;
|
||||||
NPNR_ASSERT_FALSE_STR("bad ram port");
|
} else
|
||||||
|
NPNR_ASSERT_FALSE_STR("bad ram port " + port.str(this));
|
||||||
}
|
}
|
||||||
info.edge = (str_or_default(cell->params, info.clock_port == id_CLKB ? id("CLKBMUX") : id("CLKAMUX"), "CLK") ==
|
info.edge = (str_or_default(cell->params, info.clock_port == id_CLKB ? id("CLKBMUX") : id("CLKAMUX"), "CLK") ==
|
||||||
"INV")
|
"INV")
|
||||||
|
Loading…
Reference in New Issue
Block a user