| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
qbfsat: Add `-O[012]` options to control pre-solving simplification with ABC
|
| |
| |
| |
| |
| |
| | |
Thanks to @mwk for the gate mapping part of the ABC scripts.
Co-Authored-By: Marcelina Kościelnicka <mwk@0x04.net>
|
|\ \
| | |
| | | |
qbfsat: Fix name-based hole specialization
|
| |/
| |
| |
| | |
Look for unique connections in the containing module with the $anyconst port Y SigBit on the RHS and use those. If no such connection is found, fall back to using the name of the $anyconst port Y SigBit.
|
|\ \
| | |
| | | |
sim - error when memrd and memwr detected
|
| | | |
|
|\ \ \
| | | |
| | | | |
Use ID macro to fix assertion
|
| |/ / |
|
| |/
|/|
| |
| |
| |
| | |
This was introduced in 76c4ee4ea5cb6a3dc214f66237af22a1bedda010.
Fixes #2204.
|
|\ \
| | |
| | | |
expose pass fix
|
| | | |
|
| | | |
|
| |/ |
|
|/
|
|
|
| |
This was made an explicit error in e97e33d, "kernel: require \B_SIGNED=0
on $shl, $sshl, $shr, $sshr.".
|
|\
| |
| | |
Use (and ignore) the expression provided to log_assert in NDEBUG builds
|
| |
| |
| |
| |
| | |
[[maybe_unused]] is available since C++17, so this commit adds
a polyfill YS_MAYBE_UNUSED. Once we require C++17 we can drop it.
|
| | |
|
|\ \
| | |
| | | |
log and qbfsat: Also include child process usage in `PerformanceTimer::query()` and report the time for each call to the QBF-SAT solver
|
| | |
| | |
| | |
| | | |
report the time for each call to the QBF-SAT solver.
|
|\| |
| | |
| | | |
qbfsat: Multiple bugfixes
|
| | | |
|
| | |
| | |
| | |
| | | |
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
`log_signal()`.
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
1. Infinite loop in the optimization procedure when the first solution found while maximizing is at zero.
2. A signed-ness issue when maximizing.
3. Erroneously entering bisection mode with no wire to optimize.
|
| |/
| |
| |
| | |
spec for writing to and specializing from a solution file.
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new types include:
- FFs with async reset and enable (`$adffe`, `$_DFFE_[NP][NP][01][NP]_`)
- FFs with sync reset (`$sdff`, `$_SDFF_[NP][NP][01]_`)
- FFs with sync reset and enable, reset priority (`$sdffs`, `$_SDFFE_[NP][NP][01][NP]_`)
- FFs with sync reset and enable, enable priority (`$sdffce`, `$_SDFFCE_[NP][NP][01][NP]_`)
- FFs with async reset, set, and enable (`$dffsre`, `$_DFFSRE_[NP][NP][NP][NP]_`)
- latches with reset or set (`$adlatch`, `$_DLATCH_[NP][NP][01]_`)
The new FF types are not actually used anywhere yet (this is left
for future commits).
|
|\
| |
| | |
Use C++11 final/override/[[noreturn]]
|
| | |
|
|/
|
|
| |
module wires.
|
|\
| |
| | |
splitnets: Cleanup and efficiency improvements
|
| | |
|
| | |
|
|\|
| |
| | |
splitnets: propagate (*hdlname*) and disambiguate via start_offset
|
| |
| |
| |
| | |
This allows reliably coalescing the split wires later.
|
|/ |
|
|
|
|
| |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
|
|
|
| |
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, `flatten` matched the template objects with
the newly created objects solely by their name. Because of this,
it could be confused by code such as:
module bar();
$dff a();
endmodule
module foo();
bar b();
$dff \b.a ();
endmodule
After this commit, `flatten` avoids every possible case of name
collision.
Fixes #2106.
|
|\
| |
| | |
Silence warning in select.cc and pass some more args by ref
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this patch, the code passed around std::string objects by
value. It's probably not a hot-spot, but it can't hurt to avoid the
copying.
Removing the copy and clean-up code means the resulting code is ~6.1kb
smaller when compiled with GCC 9.3 and standard settings.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Pass a string argument by reference
- Avoid multiple calls to IdString::str and IdString::c_str
- Avoid combining checks for size > 0 and first char (C strings are
null terminated, so foo[0] != '\0' implies that foo has positive
length)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With GCC 9.3, at least, compiling select.cc spits out a warning about
an implausible bound being passed to strncmp. This comes from inlining
IdString::compare(): it turns out that passing std::string::npos as a
bound to strncmp triggers it.
This patch replaces the compare call with a memcmp with the same
effect. The repeated calls to IdString::c_str are slightly
inefficient, but I'll address that in a follow-up commit.
|
|\ \
| | |
| | | |
Simplify a modport check in hierarchy.cc
|