kernel/rtlil: Add `SigBit operator[](int offset)` to `SigChunk`

This is already supported by `SigSpec` and since both `SigChunk` and
`SigSpec` implement `extract` which is the multi-bit variant of this,
there is no good reason for `SigChunk` to not support
`SigBit operator[](int offset)`.
This commit is contained in:
Jannis Harder 2024-04-15 14:08:58 +02:00 committed by Emily Schmidt
parent c73c8a39cf
commit f24e2536c6
2 changed files with 15 additions and 0 deletions

View File

@ -3754,6 +3754,20 @@ RTLIL::SigChunk RTLIL::SigChunk::extract(int offset, int length) const
return ret;
}
RTLIL::SigBit RTLIL::SigChunk::operator[](int offset) const
{
log_assert(offset >= 0);
log_assert(offset <= width);
RTLIL::SigBit ret;
if (wire) {
ret.wire = wire;
ret.offset = this->offset + offset;
} else {
ret.data = data[offset];
}
return ret;
}
bool RTLIL::SigChunk::operator <(const RTLIL::SigChunk &other) const
{
if (wire && other.wire)

View File

@ -769,6 +769,7 @@ struct RTLIL::SigChunk
SigChunk(const RTLIL::SigBit &bit);
RTLIL::SigChunk extract(int offset, int length) const;
RTLIL::SigBit operator[](int offset) const;
inline int size() const { return width; }
inline bool is_wire() const { return wire != NULL; }