This commit adds a debug_scopes container, which can collect metadata about scopes in a design. Currently the only scope is that of a module. A module scope can be represented either by a module and cell pair, or a $scopeinfo cell in a flattened netlist. The metadata produced by the C++ API is identical between these two cases, so flattening remains transparent to a netlist with CXXRTL.
The existing debug_items method is deprecated. This isn't strictly necessary, but the user experience is better if the path is provided as e.g. "top " (as some VCD viewers make it awkward to select topmost anonymous scope), and the upgrade flow encourages that, which should reduce frustration later.
While the new debug_items method could still be broken in the future as the C++ API permits, this seems unlikely since the debug information can now capture all common netlist aspects and includes several extension points (via debug_item, debug_scope types).
Also, naming of scope paths was normalized to path or top_path, as applicable.
This commit adds a
debug_scopes
container, which can collect metadata about scopes in a design. Currently the only scope is that of a module. A module scope can be represented either by a module and cell pair, or a$scopeinfo
cell in a flattened netlist. The metadata produced by the C++ API is identical between these two cases, so flattening remains transparent to a netlist with CXXRTL.The existing
debug_items
method is deprecated. This isn't strictly necessary, but the user experience is better if the path is provided as e.g."top "
(as some VCD viewers make it awkward to select topmost anonymous scope), and the upgrade flow encourages that, which should reduce frustration later.While the new
debug_items
method could still be broken in the future as the C++ API permits, this seems unlikely since the debug information can now capture all common netlist aspects and includes several extension points (viadebug_item
,debug_scope
types).Also, naming of scope paths was normalized to
path
ortop_path
, as applicable.