Marcelina Kościelnicka [Sun, 5 Jul 2020 02:57:24 +0000 (04:57 +0200)]
dfflegalize: Prefer mapping dff to sdff before adff
This ensures that, when both sync and async FFs are available and abc9
is involved, the sync FFs will be used, and will thus remain available
for sequential synthesis.
Marcelina Kościelnicka [Sat, 4 Jul 2020 22:55:38 +0000 (00:55 +0200)]
opt_expr: Fix crash on $mul optimization with more zeros removed than Y has.
Fixes #2221.
Dan Ravensloft [Sat, 25 Apr 2020 16:25:59 +0000 (17:25 +0100)]
intel_alm: DSP inference
Dan Ravensloft [Sat, 4 Jul 2020 18:39:40 +0000 (19:39 +0100)]
gowin: replace determine_init with setundef
Marcelina Kościelnicka [Wed, 1 Jul 2020 01:31:34 +0000 (03:31 +0200)]
synth_intel_alm: Use dfflegalize.
Dan Ravensloft [Thu, 28 May 2020 10:33:19 +0000 (11:33 +0100)]
Improve MISTRAL_FF specify rules
Co-authored-by: Eddie Hung <eddie@fpgeh.com>
Eddie Hung [Wed, 27 May 2020 19:49:16 +0000 (12:49 -0700)]
tests: update fsm.ys resource count
Suspect it is to do with map/set ordering in techmap; should
be fixed by #1862?
Eddie Hung [Wed, 27 May 2020 16:37:57 +0000 (09:37 -0700)]
abc9: only techmap (* abc9_flop *) modules
Eddie Hung [Tue, 26 May 2020 15:38:11 +0000 (08:38 -0700)]
intel_alm: compose $__MISTRAL_FF_SYNCONLY from MISTRAL_FF
Eddie Hung [Tue, 26 May 2020 15:37:26 +0000 (08:37 -0700)]
abc9: techmap from user design to allow abc9_flop modules to be composed
from other primitives
Eddie Hung [Mon, 25 May 2020 22:15:20 +0000 (15:15 -0700)]
intel_alm: add $__ prefix to MISTRAL_FF_SYNCONLY
Dan Ravensloft [Sat, 23 May 2020 11:52:13 +0000 (12:52 +0100)]
intel_alm: ABC9 sequential optimisations
Rupert Swarbrick [Fri, 3 Jul 2020 10:12:03 +0000 (11:12 +0100)]
Add newlines to help text for dfflegalize
I think these were probably missed by accident. Spotted because GCC
spits out lots of messages like this:
passes/techmap/dfflegalize.cc:114:7: warning: zero-length gnu_printf format string [-Wformat-zero-length]
114 | log("");
| ^~
(because we tell GCC that the first argument to log() looks like a
printf control string in log.h, and a zero length such string triggers
a warning).
clairexen [Thu, 2 Jul 2020 15:50:22 +0000 (17:50 +0200)]
Merge pull request #2132 from YosysHQ/eddie/verific_initial
verific: rewrite initial assume/asserts prior to elaboration
clairexen [Thu, 2 Jul 2020 15:48:37 +0000 (17:48 +0200)]
Merge pull request #2208 from boqwxp/qbfsat-cleanup
qbfsat: Cleanup and refactoring
clairexen [Thu, 2 Jul 2020 15:46:11 +0000 (17:46 +0200)]
Merge pull request #2186 from YosysHQ/mwk/dfflegalize
Add dfflegalize pass.
clairexen [Thu, 2 Jul 2020 15:43:48 +0000 (17:43 +0200)]
Merge pull request #2211 from YosysHQ/mwk/fix-fmcombine-ff
fmcombine: use the master ff cell type list
clairexen [Thu, 2 Jul 2020 15:43:34 +0000 (17:43 +0200)]
Merge pull request #2210 from YosysHQ/mwk/fix-opt_merge
opt_merge: use the master FF type list
clairexen [Thu, 2 Jul 2020 15:43:10 +0000 (17:43 +0200)]
Merge pull request #2195 from YosysHQ/mwk/manual-gates
Add a few more gate types to the manual.
Alberto Gonzalez [Tue, 30 Jun 2020 07:00:14 +0000 (07:00 +0000)]
qbfsat: Remove useless comment and #ifndef guards.
Alberto Gonzalez [Tue, 30 Jun 2020 06:57:45 +0000 (06:57 +0000)]
qbfsat: Specify default values for some options in the help message.
Alberto Gonzalez [Mon, 29 Jun 2020 23:01:56 +0000 (23:01 +0000)]
qbfsat: Clean up external executable command lines and update temporary directory name.
Alberto Gonzalez [Mon, 29 Jun 2020 22:06:43 +0000 (22:06 +0000)]
qbfsat: Clean up and refactor data structures into `qbfsat.h`.
clairexen [Wed, 1 Jul 2020 14:41:32 +0000 (16:41 +0200)]
Merge pull request #2203 from antmicro/fix-grammar
Signed and macro grammar update
clairexen [Wed, 1 Jul 2020 14:40:20 +0000 (16:40 +0200)]
Merge pull request #2179 from splhack/static-cast
Support SystemVerilog Static Cast
clairexen [Wed, 1 Jul 2020 14:35:27 +0000 (16:35 +0200)]
Merge pull request #2138 from boqwxp/qbfsat-oflag
qbfsat: Add `-O[012]` options to control pre-solving simplification with ABC
clairexen [Wed, 1 Jul 2020 14:34:32 +0000 (16:34 +0200)]
Merge pull request #2206 from boqwxp/qbfsat-fix-name-specialization
qbfsat: Fix name-based hole specialization
Marcelina Kościelnicka [Tue, 30 Jun 2020 13:30:59 +0000 (15:30 +0200)]
dfflegalize: Add tests.
Marcelina Kościelnicka [Tue, 23 Jun 2020 12:36:34 +0000 (14:36 +0200)]
Add dfflegalize pass.
Marcelina Kościelnicka [Tue, 30 Jun 2020 19:07:17 +0000 (21:07 +0200)]
fmcombine: use the master ff cell type list
Marcelina Kościelnicka [Tue, 30 Jun 2020 18:57:35 +0000 (20:57 +0200)]
opt_merge: use the master FF type list
clairexen [Tue, 30 Jun 2020 15:38:49 +0000 (17:38 +0200)]
Merge pull request #2136 from zachjs/master
Allow constant function calls in for loops and generate if and case
clairexen [Tue, 30 Jun 2020 15:12:51 +0000 (17:12 +0200)]
Merge pull request #2199 from YosysHQ/mmicko/sim_memory
sim - error when memrd and memwr detected
clairexen [Tue, 30 Jun 2020 15:11:13 +0000 (17:11 +0200)]
Merge pull request #2201 from YosysHQ/fix_test_cell_ilang
Use ID macro to fix assertion
clairexen [Tue, 30 Jun 2020 15:05:51 +0000 (17:05 +0200)]
Merge pull request #2209 from YosysHQ/verific_update
Update verific API version check
Marcelina Kościelnicka [Tue, 30 Jun 2020 13:31:12 +0000 (15:31 +0200)]
simcells: Fix reset polarity for $_DLATCH_???_ cells.
Miodrag Milanovic [Tue, 30 Jun 2020 10:13:13 +0000 (12:13 +0200)]
Update verific API version check
Alberto Gonzalez [Tue, 30 Jun 2020 05:47:03 +0000 (05:47 +0000)]
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>
Alberto Gonzalez [Tue, 30 Jun 2020 01:53:21 +0000 (01:53 +0000)]
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.
whitequark [Tue, 30 Jun 2020 00:08:08 +0000 (00:08 +0000)]
Merge pull request #2205 from whitequark/fix-2204
techmap: don't drop attributes on replaced cells
whitequark [Mon, 29 Jun 2020 23:14:13 +0000 (23:14 +0000)]
techmap: don't drop attributes on replaced cells.
This was introduced in
76c4ee4ea5cb6a3dc214f66237af22a1bedda010.
Fixes #2204.
Zachary Snow [Sat, 27 Jun 2020 02:52:36 +0000 (19:52 -0700)]
Allow constant function calls in for loops and generate if and case
Miodrag Milanović [Mon, 29 Jun 2020 13:16:29 +0000 (15:16 +0200)]
Merge pull request #2200 from YosysHQ/mmicko/fix_expose
expose pass fix
Miodrag Milanovic [Mon, 29 Jun 2020 12:45:49 +0000 (14:45 +0200)]
Give error that options are exclusive
Miodrag Milanovic [Mon, 29 Jun 2020 12:42:48 +0000 (14:42 +0200)]
cleanup
whitequark [Mon, 29 Jun 2020 12:34:09 +0000 (12:34 +0000)]
Merge pull request #2197 from Xiretza/test_cell-shifts
test_cell: don't generate directional shifts with \B_SIGNED=1
Miodrag Milanovic [Mon, 29 Jun 2020 11:18:13 +0000 (13:18 +0200)]
Use ID macro to fix assertion
Miodrag Milanovic [Mon, 29 Jun 2020 09:56:43 +0000 (11:56 +0200)]
expose pass fix
Miodrag Milanovic [Mon, 29 Jun 2020 08:33:39 +0000 (10:33 +0200)]
sim - error when memrd and memwr detected
Xiretza [Sun, 28 Jun 2020 19:30:16 +0000 (21:30 +0200)]
test_cell: don't generate directional shifts with \B_SIGNED=1
This was made an explicit error in
e97e33d, "kernel: require \B_SIGNED=0
on $shl, $sshl, $shr, $sshr.".
Marcelina Kościelnicka [Fri, 26 Jun 2020 18:57:39 +0000 (20:57 +0200)]
Add latches to the manual.
Marcelina Kościelnicka [Fri, 26 Jun 2020 15:16:00 +0000 (17:16 +0200)]
Add a few more gate types to the manual.
Miodrag Milanovic [Fri, 26 Jun 2020 18:11:01 +0000 (20:11 +0200)]
Fix crash in verific frontend
Kamil Rakoczy [Fri, 26 Jun 2020 13:35:35 +0000 (15:35 +0200)]
Add signed/unsigned tests
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Lukasz Dalek [Mon, 1 Jun 2020 13:25:24 +0000 (15:25 +0200)]
Parse macro call attached semicolon as empty expression
Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Lukasz Dalek [Mon, 18 May 2020 19:01:16 +0000 (21:01 +0200)]
Fix integer signing grammar
This commit fixes signed/unsigned grammar in parameters as defined in SV
LRM A2.2.1. Example of correct parameters:
parameter integer signed i = 0;
parameter integer unsigned i = 0;
Example of incorrect parameters:
parameter signed integer i = 0;
parameter unsigned integer i = 0;
Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
whitequark [Fri, 26 Jun 2020 08:48:15 +0000 (08:48 +0000)]
Merge pull request #2193 from whitequark/cxxrtl-help-text
cxxrtl: update help text
whitequark [Fri, 26 Jun 2020 08:30:44 +0000 (08:30 +0000)]
cxxrtl: update help text.
whitequark [Fri, 26 Jun 2020 07:30:27 +0000 (07:30 +0000)]
Merge pull request #2188 from antmicro/missing-operators
Add logic-assignments operators
whitequark [Fri, 26 Jun 2020 07:29:24 +0000 (07:29 +0000)]
Merge pull request #2189 from antmicro/optional-labels
Add support for optional labels
clairexen [Thu, 25 Jun 2020 16:21:51 +0000 (18:21 +0200)]
Merge pull request #2168 from whitequark/assert-unused-exprs
Use (and ignore) the expression provided to log_assert in NDEBUG builds
clairexen [Thu, 25 Jun 2020 16:18:09 +0000 (18:18 +0200)]
Merge pull request #2135 from boqwxp/qbfsat-timeinfo
log and qbfsat: Also include child process usage in `PerformanceTimer::query()` and report the time for each call to the QBF-SAT solver
clairexen [Thu, 25 Jun 2020 16:14:17 +0000 (18:14 +0200)]
Merge pull request #2093 from boqwxp/qbfsat-bugfixes
qbfsat: Multiple bugfixes
clairexen [Thu, 25 Jun 2020 14:40:30 +0000 (16:40 +0200)]
Merge pull request #2192 from YosysHQ/verific_netbus_attr
verific - import attributes for net buses
Kamil Rakoczy [Thu, 25 Jun 2020 12:20:47 +0000 (14:20 +0200)]
Add sub-assign and and-assign tests
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Kamil Rakoczy [Thu, 25 Jun 2020 12:17:41 +0000 (14:17 +0200)]
Move combined assign tests to single file
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Kamil Rakoczy [Thu, 25 Jun 2020 11:29:06 +0000 (13:29 +0200)]
Support missing sub-assign and and-assign operators
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Miodrag Milanovic [Thu, 25 Jun 2020 07:18:53 +0000 (09:18 +0200)]
optimization, all items should have same attributes
Kamil Rakoczy [Wed, 24 Jun 2020 12:38:03 +0000 (14:38 +0200)]
Add xor-assignment test
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Lukasz Dalek [Tue, 23 Jun 2020 16:50:50 +0000 (18:50 +0200)]
Support missing xor-assign operator
Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Lukasz Dalek [Fri, 19 Jun 2020 18:46:38 +0000 (20:46 +0200)]
Support optional labels at the end of package definition
Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Lukasz Dalek [Tue, 19 May 2020 14:58:48 +0000 (16:58 +0200)]
Support optional labels at the end of module definition
Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Kamil Rakoczy [Wed, 24 Jun 2020 09:45:38 +0000 (11:45 +0200)]
Add or-assignment and plus-assignment tests
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Kamil Rakoczy [Wed, 3 Jun 2020 14:44:02 +0000 (16:44 +0200)]
Add plus-assignment operator
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Kamil Rakoczy [Wed, 3 Jun 2020 11:51:57 +0000 (13:51 +0200)]
Add or-assignment operator
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
Miodrag Milanovic [Wed, 24 Jun 2020 09:01:06 +0000 (11:01 +0200)]
verific - import attributes for net buses as well
whitequark [Wed, 24 Jun 2020 05:40:01 +0000 (05:40 +0000)]
Merge pull request #2185 from YosysHQ/mwk/cxxrtl-ff-types
cxxrtl: Add support for the new FF types.
Marcelina Kościelnicka [Wed, 24 Jun 2020 00:15:08 +0000 (02:15 +0200)]
cxxrtl: Add support for the new FF types.
Marcelina Kościelnicka [Tue, 23 Jun 2020 21:16:43 +0000 (23:16 +0200)]
simplemap: Fix $dffsre mapping.
clairexen [Tue, 23 Jun 2020 18:25:52 +0000 (20:25 +0200)]
Merge pull request #1818 from YosysHQ/mwk/new-ff-types
Add new FF types to library.
Marcelina Kościelnicka [Tue, 23 Jun 2020 15:25:46 +0000 (17:25 +0200)]
Update
dff2dffe, dff2dffs, zinit to new FF types.
Marcelina Kościelnicka [Tue, 23 Jun 2020 13:39:25 +0000 (15:39 +0200)]
Add add* functions for the new FF types
Marcelina Kościelnicka [Thu, 9 Apr 2020 01:55:56 +0000 (03:55 +0200)]
Add new FF types to simplemap.
Marcelina Kościelnicka [Wed, 8 Apr 2020 22:26:17 +0000 (00:26 +0200)]
Add support for new FF types in some opt passes.
Marcelina Kościelnicka [Wed, 8 Apr 2020 19:42:50 +0000 (21:42 +0200)]
Add new builtin FF types
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).
whitequark [Mon, 22 Jun 2020 17:01:59 +0000 (17:01 +0000)]
Merge pull request #2182 from whitequark/update-abc
Update ABC
whitequark [Mon, 22 Jun 2020 14:18:07 +0000 (14:18 +0000)]
Update ABC.
whitequark [Mon, 22 Jun 2020 00:10:25 +0000 (00:10 +0000)]
Merge pull request #2181 from whitequark/minisat-wasm-signal
minisat: add missing include guard for WASI
whitequark [Sun, 21 Jun 2020 21:26:21 +0000 (21:26 +0000)]
minisat: add missing include guard for WASI.
Including signal.h used to be allowed in WASI by mistake, but it's
an error since SDK 11.
whitequark [Sun, 21 Jun 2020 15:19:23 +0000 (15:19 +0000)]
Merge pull request #2180 from Xiretza/pyosys-override
pyosys: Use C++11 override keyword for bindings
Xiretza [Sun, 21 Jun 2020 14:27:33 +0000 (16:27 +0200)]
pyosys: Use C++11 override keyword for bindings
7191dd16 dropped the YS_OVERRIDE macro, but it was still being generated
by the python bindings generator, resulting in errors like these when
compiled with ENABLE_PYOSYS=1:
kernel/python_wrappers.cc:350:21: error: expected ‘;’ at end of member declaration
350 | virtual void help() YS_OVERRIDE;
| ^
| ;
kernel/python_wrappers.cc:350:23: error: ‘YS_OVERRIDE’ does not name a type
350 | virtual void help() YS_OVERRIDE;
| ^~~~~~~~~~~
Alberto Gonzalez [Wed, 10 Jun 2020 18:21:07 +0000 (18:21 +0000)]
log: Remove unused `_POSIX_TIMERS` branch in `PerformanceTimer::query()`.
Alberto Gonzalez [Sun, 7 Jun 2020 07:45:24 +0000 (07:45 +0000)]
log, qbfsat: Include child process time in `PerformanceTimer::query()` and report the time for each call to the QBF-SAT solver.
Alberto Gonzalez [Tue, 9 Jun 2020 21:44:45 +0000 (21:44 +0000)]
qbfsat: Simplify solution recovery parsing and tweak the solution regexes.
Alberto Gonzalez [Tue, 9 Jun 2020 21:31:58 +0000 (21:31 +0000)]
qbfsat: Avoid instantiating `AttrObject`s directly.
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
Alberto Gonzalez [Tue, 9 Jun 2020 05:27:09 +0000 (05:27 +0000)]
qbfsat: Simplify solution format and replace `SigBit::str()` with `log_signal()`.
Co-Authored-By: Claire Wolf <claire@symbioticeda.com>
Alberto Gonzalez [Tue, 26 May 2020 23:12:15 +0000 (23:12 +0000)]
qbfsat: Fixes three bugs.
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.
Alberto Gonzalez [Fri, 22 May 2020 04:48:33 +0000 (04:48 +0000)]
qbfsat: Use bit precise mapping for hole value wires and a more robust hole spec for writing to and specializing from a solution file.
whitequark [Sun, 21 Jun 2020 02:05:12 +0000 (02:05 +0000)]
Merge pull request #2177 from boqwxp/dict-iterator-jump
hashlib, rtlil: Add `operator+()` and `operator+=()` to `dict` iterators
Kazuki Sakamoto [Sat, 20 Jun 2020 02:09:43 +0000 (19:09 -0700)]
static cast: simplify