aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.h
diff options
context:
space:
mode:
authorDavid Shah <davey1576@gmail.com>2018-11-15 11:26:08 +0000
committerGitHub <noreply@github.com>2018-11-15 11:26:08 +0000
commit9472b6d78f68544d430feeae6d75dbd2dc43019d (patch)
tree0ab6b20c90d4a93cd9e2d0c14bdadb296e159cdc /generic/arch.h
parentd3b2065cd7d2470a132c055f4bd88d270e1e8fe1 (diff)
parent9f9b242cf0a3b587df8f5b0eb542ca7256ca0eb9 (diff)
downloadnextpnr-9472b6d78f68544d430feeae6d75dbd2dc43019d.tar.gz
nextpnr-9472b6d78f68544d430feeae6d75dbd2dc43019d.tar.bz2
nextpnr-9472b6d78f68544d430feeae6d75dbd2dc43019d.zip
Merge pull request #103 from YosysHQ/timingapi
Timing constraints API, multiple clock domains
Diffstat (limited to 'generic/arch.h')
-rw-r--r--generic/arch.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/generic/arch.h b/generic/arch.h
index 9311464e..dc4258cc 100644
--- a/generic/arch.h
+++ b/generic/arch.h
@@ -211,6 +211,14 @@ struct Arch : BaseCtx
delay_t getDelayEpsilon() const { return 0.01; }
delay_t getRipupDelayPenalty() const { return 1.0; }
float getDelayNS(delay_t v) const { return v; }
+
+ DelayInfo getDelayFromNS(float ns) const
+ {
+ DelayInfo del;
+ del.delay = ns;
+ return del;
+ }
+
uint32_t getDelayChecksum(delay_t v) const { return 0; }
bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const;
@@ -225,8 +233,10 @@ struct Arch : BaseCtx
DecalXY getGroupDecal(GroupId group) const;
bool getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, DelayInfo &delay) const;
- // Get the port class, also setting clockPort if applicable
- TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, IdString &clockPort) const;
+ // Get the port class, also setting clockInfoCount to the number of TimingClockingInfos associated with a port
+ TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
+ // Get the TimingClockingInfo of a port
+ TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
bool isValidBelForCell(CellInfo *cell, BelId bel) const;
bool isBelLocationValid(BelId bel) const;