From 9dcf204dece518a48192a90ea962a9d630283e11 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Tue, 18 Feb 2020 08:41:48 -0800 Subject: TimingInfo: index by (port_name,offset) --- kernel/timinginfo.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'kernel') 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 BitBit; - -struct ModuleTiming -{ - RTLIL::IdString type; - dict comb; - dict 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 BitBit; + + struct ModuleTiming + { + RTLIL::IdString type; + dict comb; + dict arrival, required; + }; + dict data; TimingInfo() -- cgit v1.2.3