clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
349cbdf9da
commit
dd2c5942a4
@ -427,9 +427,11 @@ struct Arch : BaseArch<ArchRanges>
|
|||||||
|
|
||||||
ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
|
ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
|
||||||
|
|
||||||
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const override; // delay.cc
|
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port,
|
||||||
|
int &clockInfoCount) const override; // delay.cc
|
||||||
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const override; // delay.cc
|
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const override; // delay.cc
|
||||||
bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayQuad &delay) const override; // delay.cc
|
bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort,
|
||||||
|
DelayQuad &delay) const override; // delay.cc
|
||||||
DelayQuad getPipDelay(PipId pip) const override; // delay.cc
|
DelayQuad getPipDelay(PipId pip) const override; // delay.cc
|
||||||
|
|
||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
|
@ -23,7 +23,8 @@ NEXTPNR_NAMESPACE_BEGIN
|
|||||||
TimingPortClass Arch::getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const
|
TimingPortClass Arch::getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const
|
||||||
{
|
{
|
||||||
clockInfoCount = 0;
|
clockInfoCount = 0;
|
||||||
if (cell->type.in(id_MISTRAL_NOT, id_MISTRAL_BUF, id_MISTRAL_ALUT2, id_MISTRAL_ALUT3, id_MISTRAL_ALUT4, id_MISTRAL_ALUT5, id_MISTRAL_ALUT6)) {
|
if (cell->type.in(id_MISTRAL_NOT, id_MISTRAL_BUF, id_MISTRAL_ALUT2, id_MISTRAL_ALUT3, id_MISTRAL_ALUT4,
|
||||||
|
id_MISTRAL_ALUT5, id_MISTRAL_ALUT6)) {
|
||||||
if (port.in(id_A, id_B, id_C, id_D, id_E, id_F))
|
if (port.in(id_A, id_B, id_C, id_D, id_E, id_F))
|
||||||
return TMG_COMB_INPUT;
|
return TMG_COMB_INPUT;
|
||||||
if (port == id_Q)
|
if (port == id_Q)
|
||||||
@ -100,7 +101,8 @@ bool Arch::getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort
|
|||||||
// - MLABs-as-LABs have different timings to LABs
|
// - MLABs-as-LABs have different timings to LABs
|
||||||
// - speed grades
|
// - speed grades
|
||||||
|
|
||||||
if (cell->type.in(id_MISTRAL_NOT, id_MISTRAL_BUF, id_MISTRAL_ALUT2, id_MISTRAL_ALUT3, id_MISTRAL_ALUT4, id_MISTRAL_ALUT5, id_MISTRAL_ALUT6)) {
|
if (cell->type.in(id_MISTRAL_NOT, id_MISTRAL_BUF, id_MISTRAL_ALUT2, id_MISTRAL_ALUT3, id_MISTRAL_ALUT4,
|
||||||
|
id_MISTRAL_ALUT5, id_MISTRAL_ALUT6)) {
|
||||||
if (toPort == id_Q) {
|
if (toPort == id_Q) {
|
||||||
if (cell->type == id_MISTRAL_ALUT6 && fromPort == id_A) {
|
if (cell->type == id_MISTRAL_ALUT6 && fromPort == id_A) {
|
||||||
delay = DelayQuad{/* RF */ 592, /* RR */ 605, /* FF */ 567, /* FR */ 573};
|
delay = DelayQuad{/* RF */ 592, /* RR */ 605, /* FF */ 567, /* FR */ 573};
|
||||||
@ -215,15 +217,24 @@ DelayQuad Arch::getPipDelay(PipId pip) const
|
|||||||
auto dst_type = CycloneV::rn2t(dst.node);
|
auto dst_type = CycloneV::rn2t(dst.node);
|
||||||
|
|
||||||
switch (dst_type) {
|
switch (dst_type) {
|
||||||
case CycloneV::rnode_type_t::H14: return DelayQuad{254};
|
case CycloneV::rnode_type_t::H14:
|
||||||
case CycloneV::rnode_type_t::H3: return DelayQuad{214};
|
return DelayQuad{254};
|
||||||
case CycloneV::rnode_type_t::H6: return DelayQuad{298};
|
case CycloneV::rnode_type_t::H3:
|
||||||
case CycloneV::rnode_type_t::V2: return DelayQuad{210};
|
return DelayQuad{214};
|
||||||
case CycloneV::rnode_type_t::V4: return DelayQuad{262};
|
case CycloneV::rnode_type_t::H6:
|
||||||
case CycloneV::rnode_type_t::DCMUX: return DelayQuad{0};
|
return DelayQuad{298};
|
||||||
case CycloneV::rnode_type_t::GIN: return DelayQuad{83}; // need to check with Sarayan
|
case CycloneV::rnode_type_t::V2:
|
||||||
case CycloneV::rnode_type_t::GOUT: return DelayQuad{123};
|
return DelayQuad{210};
|
||||||
case CycloneV::rnode_type_t::TCLK: return DelayQuad{46};
|
case CycloneV::rnode_type_t::V4:
|
||||||
|
return DelayQuad{262};
|
||||||
|
case CycloneV::rnode_type_t::DCMUX:
|
||||||
|
return DelayQuad{0};
|
||||||
|
case CycloneV::rnode_type_t::GIN:
|
||||||
|
return DelayQuad{83}; // need to check with Sarayan
|
||||||
|
case CycloneV::rnode_type_t::GOUT:
|
||||||
|
return DelayQuad{123};
|
||||||
|
case CycloneV::rnode_type_t::TCLK:
|
||||||
|
return DelayQuad{46};
|
||||||
}
|
}
|
||||||
return DelayQuad{308};
|
return DelayQuad{308};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user