aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/timinginfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/timinginfo.h')
-rw-r--r--kernel/timinginfo.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/kernel/timinginfo.h b/kernel/timinginfo.h
index e2af4d51a..8d0904175 100644
--- a/kernel/timinginfo.h
+++ b/kernel/timinginfo.h
@@ -25,17 +25,27 @@
YOSYS_NAMESPACE_BEGIN
-typedef std::pair<RTLIL::SigBit,RTLIL::SigBit> BitBit;
-
-struct ModuleTiming
-{
- RTLIL::IdString type;
- dict<BitBit, int> comb;
- dict<RTLIL::SigBit, int> arrival, required;
-};
-
struct TimingInfo
{
+ struct NameBit
+ {
+ RTLIL::IdString name;
+ int offset;
+ NameBit() {}
+ NameBit(const RTLIL::SigBit &b) : name(b.wire->name), offset(b.offset) {}
+ bool operator==(const NameBit& nb) const { return nb.name == name && nb.offset == offset; }
+ bool operator!=(const NameBit& nb) const { return !operator==(nb); }
+ unsigned int hash() const { return mkhash_add(name.hash(), offset); }
+ };
+ typedef std::pair<NameBit,NameBit> BitBit;
+
+ struct ModuleTiming
+ {
+ RTLIL::IdString type;
+ dict<BitBit, int> comb;
+ dict<NameBit, int> arrival, required;
+ };
+
dict<RTLIL::IdString, ModuleTiming> data;
TimingInfo()