| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/
|
|
| |
Fixes #2124.
|
|
|
|
|
| |
The CXXRTL code that handled the `hdlname` attribute implemented
outdated semantics.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
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×.
|
| |
|
|
|
|
|
|
| |
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
|
| | | |
|
|\ \ \
| |/ /
|/| | |
abc9: -dff improvements
|
| | | |
|
| | |
| | |
| | |
| | | |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
| | | |
|
|\ \ \
| | | |
| | | | |
Preserve 'signed'-ness of a verilog wire through RTLIL
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
|\ \ \ \
| |_|_|/
|/| | | |
abc9: fixes around handling combinatorial loops
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
smtbmc and qbfsat: Add timeout option to set solver timeouts for Z3, Yices, and CVC4.
|
| | | |
| | | |
| | | |
| | | | |
Co-Authored-By: clairexen <claire@symbioticeda.com>
|
| | | |
| | | |
| | | |
| | | | |
and CVC4.
|
|\ \ \ \
| | | | |
| | | | | |
Fix modulo/remainder semantics
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The $div and $mod cells use truncating division semantics (rounding
towards 0), as defined by e.g. Verilog. Another rounding mode, flooring
(rounding towards negative infinity), can be used in e.g. VHDL. The
new $divfloor cell provides this flooring division.
This commit also fixes the handling of $div in opt_expr, which was
previously optimized as if it was $divfloor.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The $div and $mod cells use truncating division semantics (rounding
towards 0), as defined by e.g. Verilog. Another rounding mode, flooring
(rounding towards negative infinity), can be used in e.g. VHDL. The
new $modfloor cell provides this flooring modulo (also known as "remainder"
in several languages, but this name is ambiguous).
This commit also fixes the handling of $mod in opt_expr, which was
previously optimized as if it was $modfloor.
|
|\ \ \ \ \
| |/ / / /
|/| / / /
| |/ / / |
qbfsat: Add `-solver` option and allow choice of Z3 or Yices, making Yices the default.
|
| | | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
the default.
Ensures that "BV" is the logic whenever solving an exists-forall problem with Yices, moves the "(set-logic ...)" directive above any non-info line, sets the `ef-max-iters` parameter to a very high number when using Yices in exists-forall mode so as not to prematurely abandon difficult problems, and does not provide the incompatible "--incremental" Yices argument when in exists-forall mode.
|
|\ \ \
| | | |
| | | | |
Add extmodule support to firrtl backend
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The current firrtl backend emits blackboxes as standard modules
with an empty body, but this causes the firrtl compiler to
optimize out entire circuits due to the absence of any drivers.
Yosys already tags blackboxes with a (*blackbox*) attribute, so this
commit just propagates this change to firrtl's syntax for blackboxes.
|
|\ \ \ \
| | | | |
| | | | | |
firrtl: Accept techmapped cell types in FIRRTL backend.
|
| | | | | |
|
| | | | | |
|
| |_|/ /
|/| | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This isn't actually necessary anymore after scheduling was improved,
and `clean -purge` disrupts the mapping between wires in the input
RTLIL netlist and the output CXXRTL code.
|
|\ \ \ \
| | | | |
| | | | | |
smtbmc: Fix return status handling.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Co-Authored-By: N. Engelhardt <nak@symbioticeda.com>
|
| |/ / / |
|