| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This commit changes the VCD writer such that for all signals that
have `debug_item.type == VALUE && debug_item.next == nullptr`, it
would only sample the value once.
Commit f2d7a187 added more debug information by including constant
wires, and decreased the performance of VCD writer proportionally
because the constant wires were still repeatedly sampled; this commit
eliminates the performance hit.
|
|
|
|
|
|
|
|
|
| |
Constant wires can represent a significant chunk of the design in
generic designs or after optimization. Emitting them in VCD files
significantly improves usability because gtkwave removes all traces
that are not present in the VCD file after reload, and iterative
development suffers if switching a varying signal to a constant
disrupts the workflow.
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes the VCD writer such that for all signals that
share `debug_item.curr`, it would only emit a single VCD identifier,
and sample the value once.
Commit 9b39c6f7 added redundancy to debug information by including
alias wires, and increased the size of VCD files proportionally; this
commit eliminates the redundancy from VCD files so that their size
is the same as before.
|
|
|
|
|
|
|
| |
Alias wires can represent a significant chunk of the design in highly
hierarchical designs; in Minerva SRAM, there are 273 member wires and
527 alias wires. Showing them in every hierarchy level significantly
improves usability.
|
| |
|
| |
|
| |
|
|\
| |
| | |
cxxrtl: add a VCD writer using debug information
|
| |
| |
| |
| |
| | |
To avoid confusion with the C++ source files that are a part of
the simulation itself and not a part of Yosys build.
|
| |
| |
| |
| | |
This C API is fully featured.
|
| |
| |
| |
| |
| | |
On a representative design (Minerva SoC) this reduces VCD file size
by ~20× and runtime by ~3×.
|
|/ |
|
|\
| |
| | |
cxxrtl: add debug information to the C++ API, and add introspection via a new C API
|
| |
| |
| |
| |
| |
| | |
Compared to the C++ API, the C API currently has two limitations:
1. Memories cannot be updated in a race-free way.
2. Black boxes cannot be implemented in C.
|
|/
|
|
|
|
|
|
|
|
| |
Debug information describes values, wires, and memories with a simple
C-compatible layout. It can be emitted on demand into a map, which
has no runtime cost when it is unused, and allows late bound designs.
The `hdlname` attribute is used as the lookup key such that original
names, as emitted by the frontend, can be used for debugging and
introspection.
|
|\
| |
| | |
MacOS has even stricter stack limits in catalina.
|
| | |
|
| |
| |
| | |
Invoking sby in macOS Catalina fails because of bizarre stack limits in Catalina.
|
|\ \
| | |
| | | |
cxxrtl: fix implementation of $sshr cell
|
| | |
| | |
| | |
| | | |
Fixes #2111.
|
|\ \ \
| | | |
| | | | |
btor backend: make not printing internal names default
|
| | | | |
|
| |_|/
|/| |
| | |
| | | |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
|\ \ \
| | | |
| | | | |
Implementation of SV structs.
|
| |\ \ \ |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Use in-tree include directory in manual build
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This is basically the same issue as in tests/various/plugin.sh,
which uses yosys-config to compile a plugin. `yosys-config --cxxflags`
points to `$PREFIX/share/` (/usr/local/share by default), which might
not exist yet or might be out of date. Building directly from the
headers in ./share/ avoids this.
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | | |
abc9: -dff improvements
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
btor backend: add option to not include internal names
|
|/ / / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Preserve 'signed'-ness of a verilog wire through RTLIL
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
signedness of a wire
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
As per suggestion made in https://github.com/YosysHQ/yosys/pull/1987, now:
RTLIL::wire holds an is_signed field.
This is exported in JSON backend
This is exported via dump_rtlil command
This is read in via ilang_parser
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Pyosys API: idict type handling
|
| |\ \ \ \ \ \ \ |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
- Also, re-applied no-line-break workaround to rtlil.h to make parser
catch all methods.
|