mirror of https://github.com/YosysHQ/yosys.git
1a44645aef
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. |
||
---|---|---|
.. | ||
cxxrtl | ||
README.txt |
README.txt
This directory contains the runtime components of CXXRTL and should be placed on the include path when building the simulation using the `-I${YOSYS}/backends/cxxrtl/runtime` option. These components are not used in the Yosys binary; they are only built as a part of the simulation binary. The interfaces declared in `cxxrtl_capi*.h` contain the stable C API. These interfaces will not be changed in backward-incompatible ways unless no other option is available, and any breaking changes will be made in a way that causes the downstream code to fail in a visible way. The ABI of these interfaces is considered stable as well, and it will not use features complicating its use via libraries such as libffi or ctypes. The implementations in `cxxrtl_capi*.cc` are considered private; they are still placed in the include path to enable build-system-less builds (where the CXXRTL runtime component is included in the C++ file of the simulation toplevel). The interfaces declared in `cxxrtl*.h` (without `capi`) are unstable and may change without notice. For clarity, all of the files in this directory and its subdirectories have unique names regardless of the directory where they are placed.