mirror of
https://github.com/YosysHQ/yosys
synced 2025-09-14 05:31:29 +00:00
hashlib: redo interface for flexibility
This commit is contained in:
parent
7a362f1f74
commit
d071489ab1
35 changed files with 542 additions and 386 deletions
|
@ -36,7 +36,6 @@ struct TimingInfo
|
|||
explicit 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); }
|
||||
std::optional<SigBit> get_connection(RTLIL::Cell *cell) {
|
||||
if (!cell->hasPort(name))
|
||||
return {};
|
||||
|
@ -45,6 +44,11 @@ struct TimingInfo
|
|||
return {};
|
||||
return port[offset];
|
||||
}
|
||||
Hasher hash_acc(Hasher h) const {
|
||||
h.acc(name);
|
||||
h.acc(offset);
|
||||
return h;
|
||||
}
|
||||
};
|
||||
struct BitBit
|
||||
{
|
||||
|
@ -52,7 +56,11 @@ struct TimingInfo
|
|||
BitBit(const NameBit &first, const NameBit &second) : first(first), second(second) {}
|
||||
BitBit(const SigBit &first, const SigBit &second) : first(first), second(second) {}
|
||||
bool operator==(const BitBit& bb) const { return bb.first == first && bb.second == second; }
|
||||
unsigned int hash() const { return mkhash_add(first.hash(), second.hash()); }
|
||||
Hasher hash_acc(Hasher h) const {
|
||||
h.acc(first);
|
||||
h.acc(second);
|
||||
return h;
|
||||
}
|
||||
};
|
||||
|
||||
struct ModuleTiming
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue