mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-06 14:13:23 +00:00
cxxrtl: expose port direction in debug information.
This can be useful to distinguish e.g. a combinatorially driven wire with type `CXXRTL_VALUE` from a module input with the same type, as well as general introspection.
This commit is contained in:
parent
8d6e5c6391
commit
b025ee0aa6
3 changed files with 51 additions and 5 deletions
|
@ -112,6 +112,28 @@ enum cxxrtl_type {
|
|||
// More object types may be added in the future, but the existing ones will never change.
|
||||
};
|
||||
|
||||
// Flags of a simulated object.
|
||||
enum cxxrtl_flag {
|
||||
// Node is a module input port.
|
||||
//
|
||||
// This flag can be set on objects of type `CXXRTL_VALUE` and `CXXRTL_WIRE`. It may be combined
|
||||
// with `CXXRTL_OUTPUT`, as well as other flags.
|
||||
CXXRTL_INPUT = 1 << 0,
|
||||
|
||||
// Node is a module output port.
|
||||
//
|
||||
// This flag can be set on objects of type `CXXRTL_WIRE`. It may be combined with `CXXRTL_INPUT`,
|
||||
// as well as other flags.
|
||||
CXXRTL_OUTPUT = 1 << 1,
|
||||
|
||||
// Node is a module inout port.
|
||||
//
|
||||
// This flag can be set on objects of type `CXXRTL_WIRE`. It may be combined with other flags.
|
||||
CXXRTL_INOUT = (CXXRTL_INPUT|CXXRTL_OUTPUT),
|
||||
|
||||
// More object flags may be added in the future, but the existing ones will never change.
|
||||
};
|
||||
|
||||
// Description of a simulated object.
|
||||
//
|
||||
// The `data` array can be accessed directly to inspect and, if applicable, modify the bits
|
||||
|
@ -123,6 +145,9 @@ struct cxxrtl_object {
|
|||
// determines all other properties of the object.
|
||||
uint32_t type; // actually `enum cxxrtl_type`
|
||||
|
||||
// Flags of the object.
|
||||
uint32_t flags; // actually bit mask of `enum cxxrtl_flags`
|
||||
|
||||
// Width of the object in bits.
|
||||
size_t width;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue