mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-19 20:33:39 +00:00
cxxrtl: expose driver kind in debug information.
This can be useful to determine whether the wire should be a part of a design checkpoint, whether it can be used to override design state, and whether driving it may cause a conflict.
This commit is contained in:
parent
c7b2f07edf
commit
691418e13a
3 changed files with 112 additions and 12 deletions
|
@ -837,6 +837,9 @@ struct debug_item : ::cxxrtl_object {
|
|||
INPUT = CXXRTL_INPUT,
|
||||
OUTPUT = CXXRTL_OUTPUT,
|
||||
INOUT = CXXRTL_INOUT,
|
||||
DRIVEN_SYNC = CXXRTL_DRIVEN_SYNC,
|
||||
DRIVEN_COMB = CXXRTL_DRIVEN_COMB,
|
||||
UNDRIVEN = CXXRTL_UNDRIVEN,
|
||||
};
|
||||
|
||||
debug_item(const ::cxxrtl_object &object) : cxxrtl_object(object) {}
|
||||
|
@ -856,11 +859,11 @@ struct debug_item : ::cxxrtl_object {
|
|||
}
|
||||
|
||||
template<size_t Bits>
|
||||
debug_item(const value<Bits> &item, size_t lsb_offset = 0, uint32_t flags_ = 0) {
|
||||
debug_item(const value<Bits> &item, size_t lsb_offset = 0) {
|
||||
static_assert(sizeof(item) == value<Bits>::chunks * sizeof(chunk_t),
|
||||
"value<Bits> is not compatible with C layout");
|
||||
type = VALUE;
|
||||
flags = flags_;
|
||||
flags = DRIVEN_COMB;
|
||||
width = Bits;
|
||||
lsb_at = lsb_offset;
|
||||
depth = 1;
|
||||
|
@ -903,7 +906,7 @@ struct debug_item : ::cxxrtl_object {
|
|||
static_assert(sizeof(item) == value<Bits>::chunks * sizeof(chunk_t),
|
||||
"value<Bits> is not compatible with C layout");
|
||||
type = ALIAS;
|
||||
flags = 0;
|
||||
flags = DRIVEN_COMB;
|
||||
width = Bits;
|
||||
lsb_at = lsb_offset;
|
||||
depth = 1;
|
||||
|
@ -918,7 +921,7 @@ struct debug_item : ::cxxrtl_object {
|
|||
sizeof(item.next) == value<Bits>::chunks * sizeof(chunk_t),
|
||||
"wire<Bits> is not compatible with C layout");
|
||||
type = ALIAS;
|
||||
flags = 0;
|
||||
flags = DRIVEN_COMB;
|
||||
width = Bits;
|
||||
lsb_at = lsb_offset;
|
||||
depth = 1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue