diff options
author | YRabbit <rabbit@yrabbit.cyou> | 2022-07-10 08:05:25 +1000 |
---|---|---|
committer | YRabbit <rabbit@yrabbit.cyou> | 2022-07-10 08:05:25 +1000 |
commit | ecddac7b18526940db529389b7efdae299b7dd12 (patch) | |
tree | fb27cb7b7d8a3a79d7d1b14049396a9cf2596dd6 /common/kernel/context.h | |
parent | 1ebfe67daf2ec3e1e64150f09ab4c194f41d1d9d (diff) | |
parent | 664cec54b92844745e21a4e86dcf8e3cca09d781 (diff) | |
download | nextpnr-ecddac7b18526940db529389b7efdae299b7dd12.tar.gz nextpnr-ecddac7b18526940db529389b7efdae299b7dd12.tar.bz2 nextpnr-ecddac7b18526940db529389b7efdae299b7dd12.zip |
Merge branch 'master' into clock-wip
Diffstat (limited to 'common/kernel/context.h')
-rw-r--r-- | common/kernel/context.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/common/kernel/context.h b/common/kernel/context.h index cb8fd257..4a5667d0 100644 --- a/common/kernel/context.h +++ b/common/kernel/context.h @@ -65,6 +65,24 @@ struct Context : Arch, DeterministicRNG dict<WireId, PipId> *route = nullptr, bool useEstimate = true); // -------------------------------------------------------------- + // Dispatch to the Arch API or pseudo-cell API accordingly + bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayQuad &delay) const override + { + return cell->pseudo_cell ? cell->pseudo_cell->getDelay(fromPort, toPort, delay) + : Arch::getCellDelay(cell, fromPort, toPort, delay); + } + TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const override + { + return cell->pseudo_cell ? cell->pseudo_cell->getPortTimingClass(port, clockInfoCount) + : Arch::getPortTimingClass(cell, port, clockInfoCount); + } + TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const override + { + return cell->pseudo_cell ? cell->pseudo_cell->getPortClockingInfo(port, index) + : Arch::getPortClockingInfo(cell, port, index); + } + + // -------------------------------------------------------------- // call after changing hierpath or adding/removing nets and cells void fixupHierarchy(); |