diff options
author | whitequark <whitequark@whitequark.org> | 2020-09-02 17:16:10 +0000 |
---|---|---|
committer | whitequark <whitequark@whitequark.org> | 2020-09-02 18:00:12 +0000 |
commit | 691418e13a086c096373df13f7302323721faf35 (patch) | |
tree | d47f5a6d25c8f054e815615c76d4f36dc5111b06 /backends/cxxrtl/cxxrtl.h | |
parent | c7b2f07edf0c6c00f8576c1b4796a30e7447e917 (diff) | |
download | yosys-691418e13a086c096373df13f7302323721faf35.tar.gz yosys-691418e13a086c096373df13f7302323721faf35.tar.bz2 yosys-691418e13a086c096373df13f7302323721faf35.zip |
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.
Diffstat (limited to 'backends/cxxrtl/cxxrtl.h')
-rw-r--r-- | backends/cxxrtl/cxxrtl.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/backends/cxxrtl/cxxrtl.h b/backends/cxxrtl/cxxrtl.h index df42f5807..41089a153 100644 --- a/backends/cxxrtl/cxxrtl.h +++ b/backends/cxxrtl/cxxrtl.h @@ -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; |