Alberto Gonzalez [Mon, 25 May 2020 20:32:13 +0000 (20:32 +0000)]
qbfsat: Move SMT2 info statements back to the top of the file.
Alberto Gonzalez [Thu, 30 Apr 2020 21:27:18 +0000 (21:27 +0000)]
qbfsat: Add `-solver` option and allow choice of Z3 or Yices, making Yices 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.
Eddie Hung [Mon, 25 May 2020 16:14:00 +0000 (09:14 -0700)]
Merge pull request #2044 from YosysHQ/eddie/fix2037
verilog: allow attributes on behavioural statements (including null statement)
Eddie Hung [Thu, 21 May 2020 16:46:26 +0000 (09:46 -0700)]
verilog: move attr from simple_behav_stmt to its children to attach
Eddie Hung [Thu, 14 May 2020 23:32:14 +0000 (16:32 -0700)]
test: add attribute-before-stmt test from @nakengelhardt
Eddie Hung [Thu, 14 May 2020 17:46:40 +0000 (10:46 -0700)]
verilog: do not warn for attributes on null statements
Eddie Hung [Mon, 11 May 2020 17:26:08 +0000 (10:26 -0700)]
tests: add an generate-else test too
Eddie Hung [Mon, 11 May 2020 17:20:33 +0000 (10:20 -0700)]
verilog: handle empty generate statement by removing gen_stmt_or_null...
... rule which causes a s/r conflict. Now we get an empty genblock,
which should be okay.
Eddie Hung [Mon, 11 May 2020 16:33:19 +0000 (09:33 -0700)]
verilog: fix #2037 by permitting (and freeing) attributes on null stmt
Eddie Hung [Mon, 11 May 2020 16:33:11 +0000 (09:33 -0700)]
tests: add #2037 testcase
clairexen [Mon, 25 May 2020 13:50:18 +0000 (15:50 +0200)]
Merge pull request #2015 from boqwxp/qbfsat-bisection
qbfsat: Add an iterative bisection optimization method and make it the default.
Eddie Hung [Sun, 24 May 2020 17:10:50 +0000 (10:10 -0700)]
Merge pull request #2075 from YosysHQ/eddie/xaiger_cleanup
xaiger: do not derive cells
Eddie Hung [Sun, 24 May 2020 15:48:23 +0000 (08:48 -0700)]
xaiger: add testcase
Eddie Hung [Sun, 24 May 2020 15:17:30 +0000 (08:17 -0700)]
xaiger: do not derive cells
Eddie Hung [Sat, 23 May 2020 16:28:42 +0000 (09:28 -0700)]
Merge pull request #2074 from YosysHQ/eddie/ecp5_cleanup
ecp5: cleanup unused +/ecp5/abc9_model.v
Eddie Hung [Sat, 23 May 2020 15:17:40 +0000 (08:17 -0700)]
ecp5: cleanup unused +/ecp5/abc9_model.v
Alberto Gonzalez [Thu, 21 May 2020 23:20:44 +0000 (23:20 +0000)]
qbfsat: Remove cruft inadvertently left untouched in commit
86fc49a9d60f9ad4cdeec93663e7245a9fdf60c6.
Alberto Gonzalez [Sat, 25 Apr 2020 04:12:02 +0000 (04:12 +0000)]
qbfsat: Add bisection mode and make it the default.
Also adds `-nooptimize` and reorganizes `qbfsat.cc` a bit.
whitequark [Fri, 22 May 2020 20:08:39 +0000 (20:08 +0000)]
Merge pull request #2072 from whitequark/cxxrtl-dont-purge
cxxrtl: get rid of -O5 aka `opt_clean -purge` optimization level
whitequark [Fri, 22 May 2020 17:44:05 +0000 (17:44 +0000)]
cxxrtl: get rid of -O5 aka `opt_clean -purge` optimization level.
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.
Eddie Hung [Fri, 22 May 2020 04:39:13 +0000 (21:39 -0700)]
abc9_ops: update comment
Eddie Hung [Thu, 21 May 2020 18:00:36 +0000 (11:00 -0700)]
Merge pull request #2057 from YosysHQ/eddie/fix_task_attr
verilog: support attributes before (not after) task identifier (but 13 s/r conflicts)
Eddie Hung [Thu, 21 May 2020 16:10:56 +0000 (09:10 -0700)]
Update frontends/verilog/verilog_parser.y
Co-authored-by: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
Miodrag Milanović [Thu, 21 May 2020 13:36:30 +0000 (15:36 +0200)]
Merge pull request #2059 from boqwxp/logger-vector-to-dict
log: Use `dict` instead of `std::vector<std::pair>` for `log_expect_{error, warning, log}` to better express the intent that each element is unique.
N. Engelhardt [Wed, 20 May 2020 08:12:24 +0000 (10:12 +0200)]
Merge pull request #2046 from PeterCrozier/trap
Extend YS_DEBUGTRAP to MacOS.
N. Engelhardt [Wed, 20 May 2020 06:55:36 +0000 (08:55 +0200)]
Merge pull request #2054 from boqwxp/fix-smtbmc
smtbmc: Fix return status handling.
Alberto Gonzalez [Tue, 19 May 2020 16:13:44 +0000 (16:13 +0000)]
smtbmc: Fix typo in error message.
Co-Authored-By: N. Engelhardt <nak@symbioticeda.com>
Marcelina Kościelnicka [Mon, 18 May 2020 16:15:03 +0000 (18:15 +0200)]
Add force_downto and force_upto wire attributes.
Fixes #2058.
Eddie Hung [Mon, 18 May 2020 15:06:50 +0000 (08:06 -0700)]
Merge pull request #1926 from YosysHQ/eddie/abc9_auto_dff
abc9: support seq synthesis when module has (* abc9_flop *) and bypass non-combinatorial (* abc9_box *)
Claire Wolf [Sun, 17 May 2020 09:31:11 +0000 (11:31 +0200)]
Revert "Add support for non-power-of-two mem chunks in verific importer"
This reverts commit
173aa27ca5ef6e7c0a9277e8da7765adcd63bfe9.
Alberto Gonzalez [Thu, 14 May 2020 22:52:07 +0000 (22:52 +0000)]
log: Use `dict` instead of `std::vector<std::pair>` for `log_expect_{error, warning, log}` to better express the intent that each element is unique.
Eddie Hung [Thu, 14 May 2020 23:44:35 +0000 (16:44 -0700)]
abc9: use (* abc9_keep *) instead of (* abc9_scc *); apply to $_DFF_?_
instead of moving them to $__ prefix
Eddie Hung [Thu, 14 May 2020 23:10:11 +0000 (16:10 -0700)]
verilog: attributes before task enable (but 13 s/r conflicts)
Eddie Hung [Thu, 14 May 2020 23:09:41 +0000 (16:09 -0700)]
tests: attributes before task enable
Eddie Hung [Thu, 14 May 2020 22:30:08 +0000 (15:30 -0700)]
Merge pull request #2055 from YosysHQ/eddie/logger_multiple
logger: fix for multiple calls with same pattern
Eddie Hung [Thu, 14 May 2020 19:14:23 +0000 (12:14 -0700)]
opt_expr: Sx to Sz; spotted by @Xiretza
Eddie Hung [Thu, 14 May 2020 18:56:22 +0000 (11:56 -0700)]
Merge pull request #1994 from YosysHQ/eddie/fix_bug1758
opt_expr: improve single-bit $and/$or/$xor/$xnor cells; gate cells too
Eddie Hung [Thu, 14 May 2020 17:38:31 +0000 (10:38 -0700)]
logger: clean up doc
Eddie Hung [Thu, 14 May 2020 09:09:13 +0000 (02:09 -0700)]
abc9_ops: -prep_hier to create unmap module that removes Q's (* init *)
Eddie Hung [Thu, 14 May 2020 07:29:45 +0000 (00:29 -0700)]
abc9: preserve $_DFF_?_.Q's (* init *); rely on clean to remove it
Eddie Hung [Thu, 14 May 2020 05:10:24 +0000 (22:10 -0700)]
Fix broken test when ignoring abc9_flop with init == 1'b1
Eddie Hung [Thu, 14 May 2020 04:56:06 +0000 (21:56 -0700)]
abc9_ops/xaiger: further reducing Module::derive() calls by ...
replacing _all_ (* abc9_box *) instantiations with their derived types
Eddie Hung [Thu, 14 May 2020 01:02:05 +0000 (18:02 -0700)]
Cleanup; reduce Module::derive() calls
Eddie Hung [Wed, 13 May 2020 21:42:18 +0000 (14:42 -0700)]
ecp5: latches_map.v if *not* -asyncprld
Eddie Hung [Wed, 13 May 2020 21:16:42 +0000 (14:16 -0700)]
ecp5: synth_ecp5 to no longer need +/ecp5/abc9_{,un}map.v
Eddie Hung [Wed, 13 May 2020 21:12:06 +0000 (14:12 -0700)]
ecp5: fix rebase mistake
Eddie Hung [Thu, 23 Apr 2020 00:37:07 +0000 (17:37 -0700)]
abc9: update to =_$abc9_flops pattern which includes whiteboxes
Eddie Hung [Wed, 22 Apr 2020 20:07:19 +0000 (13:07 -0700)]
abc9_ops: update docs
Eddie Hung [Wed, 22 Apr 2020 03:44:11 +0000 (20:44 -0700)]
xilinx: gate specify/attributes from iverilog
Eddie Hung [Wed, 22 Apr 2020 00:54:24 +0000 (17:54 -0700)]
abc9: only do +/abc9_map if `DFF
Eddie Hung [Wed, 22 Apr 2020 00:25:15 +0000 (17:25 -0700)]
abc9: rework submod -- since it won't move (* keep *) cells
Eddie Hung [Wed, 22 Apr 2020 00:04:26 +0000 (17:04 -0700)]
ecp5: TRELLIS_FF bypass path only in async mode
Eddie Hung [Wed, 22 Apr 2020 00:03:28 +0000 (17:03 -0700)]
timinginfo: ignore $specify2 cells if EN is false
Eddie Hung [Tue, 21 Apr 2020 22:45:05 +0000 (15:45 -0700)]
xilinx/ice40/ecp5: zinit requires selected wires, so select them all
Eddie Hung [Tue, 21 Apr 2020 22:44:56 +0000 (15:44 -0700)]
abc9_ops: move assert
Eddie Hung [Tue, 21 Apr 2020 22:42:05 +0000 (15:42 -0700)]
abc9: put 'aigmap' back
Eddie Hung [Tue, 21 Apr 2020 21:13:38 +0000 (14:13 -0700)]
xilinx/ecp5/ice40: add (* abc9_flop *) to bypass-able cells
Eddie Hung [Tue, 21 Apr 2020 21:12:28 +0000 (14:12 -0700)]
abc9_ops: fix bypass boxes using (* abc9_bypass *)
Eddie Hung [Tue, 21 Apr 2020 19:42:09 +0000 (12:42 -0700)]
abc9_ops: tidy up, suppress error if no boxes/holes
Eddie Hung [Tue, 21 Apr 2020 19:32:30 +0000 (12:32 -0700)]
abc9_ops: -prep_delays to not insert delay box if input connection is const
Eddie Hung [Tue, 21 Apr 2020 19:30:25 +0000 (12:30 -0700)]
abc9_ops: cleanup; -prep_dff -> -prep_dff_submod
Eddie Hung [Tue, 21 Apr 2020 19:22:39 +0000 (12:22 -0700)]
abc9_ops: add -prep_bypass for auto bypass boxes; refactor
Eliminate need for abc9_{,un}map.v in xilinx
-prep_dff_{hier,unmap} -> -prep_hier
Eddie Hung [Thu, 16 Apr 2020 21:03:54 +0000 (14:03 -0700)]
abc9_ops: -reintegrate to handle $_FF_; cleanup
Eddie Hung [Thu, 16 Apr 2020 21:02:42 +0000 (14:02 -0700)]
xaiger: no longer use nonstandard even/odd to designate +ve/-ve polarity
Eddie Hung [Thu, 16 Apr 2020 21:01:54 +0000 (14:01 -0700)]
aiger: -xaiger to return $_FF_ flops
Eddie Hung [Thu, 16 Apr 2020 19:08:59 +0000 (12:08 -0700)]
abc9: not enough to techmap_fail on (* init=1 *), hide them using $__
Eddie Hung [Thu, 16 Apr 2020 17:49:33 +0000 (10:49 -0700)]
abc9: test to use box file instead of auto
Eddie Hung [Thu, 16 Apr 2020 17:40:33 +0000 (10:40 -0700)]
abc9: restore selected_modules()
Eddie Hung [Thu, 16 Apr 2020 17:25:41 +0000 (10:25 -0700)]
synth_*: no need to explicitly read +/abc9_model.v
Eddie Hung [Thu, 16 Apr 2020 17:25:22 +0000 (10:25 -0700)]
Revert "Merge pull request #1917 from YosysHQ/eddie/abc9_delay_check"
This reverts commit
759283fa65b1195ebe3a5bc6890ec622febca0eb, reversing
changes made to
f41c7ccfff4bf104c646ca4b85e079a0f91c9151.
Eddie Hung [Thu, 16 Apr 2020 17:24:02 +0000 (10:24 -0700)]
abc9: add flop boxes to basic $_DFF_P_ and $_DFF_N_ too
Eddie Hung [Thu, 16 Apr 2020 17:21:08 +0000 (10:21 -0700)]
kernel: TimingInfo to clamp -ve setup/edge-sensitive delays to zero
Eddie Hung [Wed, 15 Apr 2020 23:29:11 +0000 (16:29 -0700)]
abc9_ops: -prep_dff_map to error if async flop found
Eddie Hung [Wed, 19 Feb 2020 01:59:33 +0000 (17:59 -0800)]
Uncomment negative setup times; clamp to zero for connectivity
Eddie Hung [Wed, 15 Apr 2020 23:18:37 +0000 (16:18 -0700)]
abc9: remove redundant wbflip
Eddie Hung [Wed, 15 Apr 2020 23:16:30 +0000 (16:16 -0700)]
xaiger: always sort input/output bits by port id
redundant for normal design, but necessary for holes
Eddie Hung [Wed, 15 Apr 2020 23:13:57 +0000 (16:13 -0700)]
abc9: generate $abc9_holes design instead of <name>$holes
Eddie Hung [Wed, 15 Apr 2020 22:50:57 +0000 (15:50 -0700)]
abc9_ops: more robust
Eddie Hung [Wed, 15 Apr 2020 22:41:55 +0000 (15:41 -0700)]
abc9: suppress warnings when no compatible + used flop boxes formed
Eddie Hung [Wed, 15 Apr 2020 19:28:03 +0000 (12:28 -0700)]
xilinx: update abc9_dff tests
Eddie Hung [Wed, 15 Apr 2020 19:27:26 +0000 (12:27 -0700)]
xilinx: remove no-longer-relevant test
Eddie Hung [Wed, 15 Apr 2020 19:15:36 +0000 (12:15 -0700)]
aiger/xaiger: use odd for negedge clk, even for posedge
Since abc9 doesn't like negative mergeability values
Eddie Hung [Wed, 15 Apr 2020 16:38:29 +0000 (09:38 -0700)]
abc9: cleanup
Eddie Hung [Tue, 14 Apr 2020 19:56:28 +0000 (12:56 -0700)]
Revert "ecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init"
This reverts commit
8c702b6cc0221a00021a3e4661c883bb591c924b.
Eddie Hung [Tue, 14 Apr 2020 19:35:12 +0000 (12:35 -0700)]
abc9_ops: -prep_dff_map to check $_DFF_[NP]_.Q drives module output
Eddie Hung [Tue, 14 Apr 2020 18:38:44 +0000 (11:38 -0700)]
abc9_ops: do away with '$abc9_cells' selection
Eddie Hung [Tue, 14 Apr 2020 18:10:48 +0000 (11:10 -0700)]
abc9_ops: use new 'design -delete' and 'select -unset'
Eddie Hung [Tue, 14 Apr 2020 17:36:07 +0000 (10:36 -0700)]
ecp5: (* abc9_flop *) gated behind YOSYS
Eddie Hung [Tue, 14 Apr 2020 15:53:07 +0000 (08:53 -0700)]
submod: revert accidental change
Eddie Hung [Tue, 14 Apr 2020 15:18:04 +0000 (08:18 -0700)]
Revert "Merge branch 'eddie/kernel_makeblackbox' into eddie/abc9_auto_dff"
This reverts commit
e08497c7c9d8a6f7a3eccddf2149c45d9ecff207, reversing
changes made to
e366fd55122236a21c6daee6765724add840a1f9.
Eddie Hung [Tue, 14 Apr 2020 15:03:58 +0000 (08:03 -0700)]
xaiger: update help text
Eddie Hung [Tue, 14 Apr 2020 14:51:23 +0000 (07:51 -0700)]
ecp5: add synth_ecp5 -dff to work with -abc9
Eddie Hung [Tue, 14 Apr 2020 14:49:55 +0000 (07:49 -0700)]
abc9_ops: -prep_dff_map to warn if no specify cells
Eddie Hung [Tue, 14 Apr 2020 14:48:37 +0000 (07:48 -0700)]
ice40: synth_ice40 cleanup
Eddie Hung [Tue, 14 Apr 2020 14:31:07 +0000 (07:31 -0700)]
ecp5: replace ecp5_ffinit with techmap rules + dff2dffs -match-init
Eddie Hung [Tue, 14 Apr 2020 02:08:46 +0000 (19:08 -0700)]
kernel: Module::makeblackbox() to clear connections + delete wires last
Eddie Hung [Tue, 14 Apr 2020 00:32:21 +0000 (17:32 -0700)]
ice40: add synth_ice40 -dff option, support with -abc9
Eddie Hung [Tue, 14 Apr 2020 00:31:44 +0000 (17:31 -0700)]
ice40: split out cells_map.v into ff_map.v
Eddie Hung [Tue, 14 Apr 2020 00:30:29 +0000 (17:30 -0700)]
abc9_ops: -prep_dff_map to cope with plain $_DFF_[NP]_ flops
Eddie Hung [Mon, 13 Apr 2020 23:21:08 +0000 (16:21 -0700)]
synth_xilinx: rename dff_mode -> dff