whitequark [Tue, 9 Jul 2019 08:14:52 +0000 (08:14 +0000)]
proc_prune: promote assigns to module connections when legal.
This can pave the way for further transformations by exposing
identities that were previously hidden in a process to any pass that
uses SigMap. Indeed, this commit removes some ad-hoc logic from
proc_init that appears to have been tailored to the output of
genrtlil in favor of using `SigMap.apply()`. (This removal is not
optional, as the ad-hoc logic cannot cope with the result of running
proc_prune; a similar issue was fixed in proc_arst.)
whitequark [Mon, 8 Jul 2019 15:19:01 +0000 (15:19 +0000)]
proc_prune: new pass.
The proc_prune pass is similar in nature to proc_rmdead pass: while
proc_rmdead removes branches that never become active because another
branch preempts it, proc_prune removes assignments that never become
active because another assignment preempts them.
Genrtlil contains logic similar to the proc_prune pass, but their
purpose is different: genrtlil has to prune assignments to adapt
the semantics of blocking assignments in HDLs (latest assignment
wins) to semantics of assignments in RTLIL processes (assignment in
the most specific case wins). On the other hand proc_prune is
a general purpose RTLIL simplification that benefits all frontends,
even those not using the Yosys AST library.
The proc_prune pass is added to the proc script after proc_rmdead,
since it gives better results with fewer branches.
Clifford Wolf [Fri, 5 Jul 2019 09:57:41 +0000 (11:57 +0200)]
Merge pull request #1159 from btut/fix/1090_segfault_cell_and_wire
Throw runtime exception when trying to convert inexistend C++ object to Python
Benedikt Tutzer [Thu, 4 Jul 2019 12:20:13 +0000 (14:20 +0200)]
Throw runtime exception when trying to convert a c++-pointer to a
python-object in case the pointer is a nullptr to avoid a segfault.
Fixes #1090
Eddie Hung [Wed, 3 Jul 2019 16:43:00 +0000 (09:43 -0700)]
Merge pull request #1156 from YosysHQ/eddie/fix_abc9_unknown_cell
write_xaiger to treat unknown cell connections as keep-s
Clifford Wolf [Wed, 3 Jul 2019 10:30:37 +0000 (12:30 +0200)]
Merge pull request #1147 from YosysHQ/clifford/fix1144
Improve specify dummy parser
Clifford Wolf [Wed, 3 Jul 2019 09:25:05 +0000 (11:25 +0200)]
Fix tests/various/specify.v
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Wed, 3 Jul 2019 09:22:10 +0000 (11:22 +0200)]
Some cleanups in "ignore specify parser"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Wed, 3 Jul 2019 08:45:29 +0000 (10:45 +0200)]
Merge pull request #1154 from whitequark/manual-sync-always
manual: explain the purpose of `sync always`
Eddie Hung [Wed, 3 Jul 2019 02:14:30 +0000 (19:14 -0700)]
write_xaiger to treat unknown cell connections as keep-s
Eddie Hung [Wed, 3 Jul 2019 02:13:40 +0000 (19:13 -0700)]
Add test
Eddie Hung [Tue, 2 Jul 2019 17:20:42 +0000 (10:20 -0700)]
Merge pull request #1150 from YosysHQ/eddie/script_from_wire
Add "script -select [selection]" to allow commands to be taken from wires
whitequark [Tue, 2 Jul 2019 17:10:13 +0000 (17:10 +0000)]
manual: explain the purpose of `sync always`.
David Shah [Tue, 2 Jul 2019 15:47:54 +0000 (16:47 +0100)]
Merge pull request #1153 from YosysHQ/dave/fix_multi_mux
memory_dff: Fix checking of feedback mux input when more than one mux
Eddie Hung [Tue, 2 Jul 2019 15:22:31 +0000 (08:22 -0700)]
Update test for Pass::call_on_module()
Eddie Hung [Tue, 2 Jul 2019 15:20:37 +0000 (08:20 -0700)]
Use Pass::call_on_module() as per @cliffordwolf comments
Eddie Hung [Tue, 2 Jul 2019 15:19:23 +0000 (08:19 -0700)]
Update test too
Eddie Hung [Tue, 2 Jul 2019 15:17:26 +0000 (08:17 -0700)]
script -select -> script -scriptwire
David Shah [Tue, 2 Jul 2019 12:27:37 +0000 (13:27 +0100)]
memory_dff: Fix checking of feedback mux input when more than one mux
Signed-off-by: David Shah <dave@ds0.me>
Clifford Wolf [Tue, 2 Jul 2019 09:36:26 +0000 (11:36 +0200)]
Fix read_verilog assert/assume/etc on default case label, fixes YosysHQ/SymbiYosys#53
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Eddie Hung [Mon, 1 Jul 2019 18:59:10 +0000 (11:59 -0700)]
Space
Eddie Hung [Mon, 1 Jul 2019 16:46:56 +0000 (09:46 -0700)]
Move CHANGELOG entry from yosys-0.8 to 0.9
Eddie Hung [Mon, 1 Jul 2019 16:46:32 +0000 (09:46 -0700)]
Merge branch 'master' into eddie/script_from_wire
Eddie Hung [Mon, 1 Jul 2019 16:44:53 +0000 (09:44 -0700)]
Move abc9 from yosys-0.8 to yosys-0.9 in CHANGELOG
Eddie Hung [Mon, 1 Jul 2019 16:43:33 +0000 (09:43 -0700)]
Merge branch 'master' of github.com:YosysHQ/yosys
Eddie Hung [Sun, 30 Jun 2019 18:48:01 +0000 (11:48 -0700)]
Comment out invalid syntax
Eddie Hung [Sun, 30 Jun 2019 02:37:04 +0000 (19:37 -0700)]
install *_nowide.lut files
Eddie Hung [Fri, 28 Jun 2019 22:02:50 +0000 (15:02 -0700)]
Merge pull request #1149 from gsomlo/gls-1098-abcext-fixup
Make abc9 pass aware of optional ABCEXTERNAL override
Eddie Hung [Fri, 28 Jun 2019 21:56:34 +0000 (14:56 -0700)]
Merge branch 'master' into eddie/script_from_wire
Eddie Hung [Fri, 28 Jun 2019 21:18:56 +0000 (14:18 -0700)]
autotest.sh to define _AUTOTB when test_autotb
Eddie Hung [Fri, 28 Jun 2019 20:41:32 +0000 (13:41 -0700)]
Try command in another module
Eddie Hung [Fri, 28 Jun 2019 20:39:06 +0000 (13:39 -0700)]
Add to CHANGELOG
Eddie Hung [Fri, 28 Jun 2019 20:36:33 +0000 (13:36 -0700)]
Support ability for "script -select" to take commands from wires
Eddie Hung [Fri, 28 Jun 2019 20:32:09 +0000 (13:32 -0700)]
Add test
Eddie Hung [Fri, 28 Jun 2019 18:28:29 +0000 (11:28 -0700)]
Replace log_assert() with meaningful log_error()
Eddie Hung [Fri, 28 Jun 2019 19:53:38 +0000 (12:53 -0700)]
Remove peepopt call in synth_xilinx since already in synth -run coarse
Gabriel L. Somlo [Fri, 28 Jun 2019 18:54:58 +0000 (14:54 -0400)]
Make abc9 pass aware of optional ABCEXTERNAL override
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Eddie Hung [Fri, 28 Jun 2019 18:16:15 +0000 (11:16 -0700)]
Add missing CHANGELOG entries
Eddie Hung [Fri, 28 Jun 2019 18:10:36 +0000 (11:10 -0700)]
Fix spacing
Eddie Hung [Fri, 28 Jun 2019 17:59:03 +0000 (10:59 -0700)]
Merge pull request #1098 from YosysHQ/xaig
"abc9" pass for timing-aware techmapping (experimental, FPGA only, no FFs)
Eddie Hung [Fri, 28 Jun 2019 17:12:48 +0000 (10:12 -0700)]
Add test from #1144, and try reading without '-specify' flag
Eddie Hung [Fri, 28 Jun 2019 16:59:47 +0000 (09:59 -0700)]
Add generic __builtin_bswap32 function
Eddie Hung [Fri, 28 Jun 2019 16:55:07 +0000 (09:55 -0700)]
Also fix write_aiger for UB
Eddie Hung [Fri, 28 Jun 2019 16:51:43 +0000 (09:51 -0700)]
Fix more potential for undefined behaviour due to container invalidation
Eddie Hung [Fri, 28 Jun 2019 16:49:01 +0000 (09:49 -0700)]
Update synth_ice40 -device doc to be relevant for -abc9 only
Eddie Hung [Fri, 28 Jun 2019 16:46:36 +0000 (09:46 -0700)]
Disable boxing of ECP5 dist RAM due to regression
Eddie Hung [Fri, 28 Jun 2019 16:45:48 +0000 (09:45 -0700)]
Add write address to abc_scc_break of ECP5 dist RAM
Eddie Hung [Fri, 28 Jun 2019 16:45:40 +0000 (09:45 -0700)]
Fix DO4 typo
Clifford Wolf [Fri, 28 Jun 2019 08:30:31 +0000 (10:30 +0200)]
Merge pull request #1146 from gsomlo/gls-test-abc-ext
tests: use optional ABCEXTERNAL when specified
Clifford Wolf [Fri, 28 Jun 2019 08:21:16 +0000 (10:21 +0200)]
Improve specify dummy parser, fixes #1144
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Fri, 28 Jun 2019 06:30:18 +0000 (08:30 +0200)]
Merge pull request #1046 from bogdanvuk/master
Optimizing DFFs whose initial value prevents their value from changing
Gabriel L. Somlo [Fri, 28 Jun 2019 02:54:09 +0000 (22:54 -0400)]
tests: use optional ABCEXTERNAL when specified
Commits
65924fd1,
abc40924, and
ebe29b66 hard-code the invocation
of yosys-abc, which fails if ABCEXTERNAL was specified during the
build. Allow tests to utilize an optional, externally specified
abc binary.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Eddie Hung [Thu, 27 Jun 2019 23:13:22 +0000 (16:13 -0700)]
Reduce diff with upstream
Eddie Hung [Thu, 27 Jun 2019 23:12:20 +0000 (16:12 -0700)]
Extraneous newline
Eddie Hung [Thu, 27 Jun 2019 23:11:39 +0000 (16:11 -0700)]
Remove noise from ice40/cells_sim.v
Eddie Hung [Thu, 27 Jun 2019 23:07:14 +0000 (16:07 -0700)]
Refactor for one "abc_carry" attribute on module
Eddie Hung [Thu, 27 Jun 2019 22:30:00 +0000 (15:30 -0700)]
Merge branch 'xaig' of github.com:YosysHQ/yosys into xaig
Eddie Hung [Thu, 27 Jun 2019 22:29:20 +0000 (15:29 -0700)]
Do not use Module::remove() iterator version
Eddie Hung [Thu, 27 Jun 2019 22:28:55 +0000 (15:28 -0700)]
Remove redundant doc
Eddie Hung [Thu, 27 Jun 2019 22:17:39 +0000 (15:17 -0700)]
Remove &retime when abc9 -fast
Eddie Hung [Thu, 27 Jun 2019 22:15:56 +0000 (15:15 -0700)]
Cleanup abc9.cc
Eddie Hung [Thu, 27 Jun 2019 22:03:21 +0000 (15:03 -0700)]
Undo iterator based Module::remove() for cells, as containers will not
invalidate
Bogdan Vukobratovic [Thu, 27 Jun 2019 20:06:23 +0000 (22:06 +0200)]
Add help for "-sat" option inside opt_rmdff. "opt" can pass "-sat" too
Bogdan Vukobratovic [Thu, 27 Jun 2019 20:02:12 +0000 (22:02 +0200)]
Fix memory leak when one of multiple DFF cells is removed in opt_rmdff
When there are multiple DFFs and one of them is removed, its reference lingers
inside bit2driver dict. While invoking handle_dff() function for other DFFs,
this broken reference is used isnside sat_import_cell() function.
Eddie Hung [Thu, 27 Jun 2019 19:53:23 +0000 (12:53 -0700)]
Merge remote-tracking branch 'origin/master' into xaig
Eddie Hung [Thu, 27 Jun 2019 19:31:15 +0000 (12:31 -0700)]
Merge pull request #1139 from YosysHQ/dave/check-sim-iverilog
tests: Check that Icarus can parse arch sim models
Eddie Hung [Thu, 27 Jun 2019 18:54:34 +0000 (11:54 -0700)]
Merge remote-tracking branch 'origin/master' into xaig
Eddie Hung [Thu, 27 Jun 2019 18:53:42 +0000 (11:53 -0700)]
Grr
Eddie Hung [Thu, 27 Jun 2019 18:26:44 +0000 (11:26 -0700)]
Capitalisation
Eddie Hung [Thu, 27 Jun 2019 18:25:57 +0000 (11:25 -0700)]
Make CHANGELOG clearer
Eddie Hung [Thu, 27 Jun 2019 18:48:48 +0000 (11:48 -0700)]
Merge pull request #1143 from YosysHQ/clifford/fix1135
Add "pmux2shiftx -norange"
Eddie Hung [Thu, 27 Jun 2019 18:31:19 +0000 (11:31 -0700)]
Merge remote-tracking branch 'origin/master' into xaig
Eddie Hung [Thu, 27 Jun 2019 18:22:49 +0000 (11:22 -0700)]
Add warning if synth_xilinx -abc9 with family != xc7
Eddie Hung [Thu, 27 Jun 2019 18:20:40 +0000 (11:20 -0700)]
Remove unneeded include
Eddie Hung [Thu, 27 Jun 2019 18:20:15 +0000 (11:20 -0700)]
Merge origin/master
Eddie Hung [Thu, 27 Jun 2019 18:13:49 +0000 (11:13 -0700)]
Add simcells.v, simlib.v, and some output
Eddie Hung [Thu, 27 Jun 2019 18:02:52 +0000 (11:02 -0700)]
Add #1135 testcase
Eddie Hung [Thu, 27 Jun 2019 14:24:47 +0000 (07:24 -0700)]
synth_xilinx -arch -> -family, consistent with older synth_intel
Eddie Hung [Thu, 27 Jun 2019 14:21:31 +0000 (07:21 -0700)]
Merge pull request #1142 from YosysHQ/clifford/fix1132
Fix handling of partial covers in muxcover
Eddie Hung [Thu, 27 Jun 2019 13:04:56 +0000 (06:04 -0700)]
Merge pull request #1138 from YosysHQ/koriakin/xc7nocarrymux
synth_xilinx: Add -nocarry and -nowidelut options
Eddie Hung [Thu, 27 Jun 2019 13:01:50 +0000 (06:01 -0700)]
Copy tests from eddie/fix1132
Bogdan Vukobratovic [Thu, 27 Jun 2019 10:11:47 +0000 (12:11 +0200)]
Merge remote-tracking branch 'upstream/master'
Clifford Wolf [Thu, 27 Jun 2019 08:59:12 +0000 (10:59 +0200)]
Add "pmux2shiftx -norange", fixes #1135
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Thu, 27 Jun 2019 07:42:49 +0000 (09:42 +0200)]
Fix handling of partial covers in muxcover, fixes #1132
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Eddie Hung [Thu, 27 Jun 2019 03:03:34 +0000 (20:03 -0700)]
Fix spacing
Eddie Hung [Thu, 27 Jun 2019 03:02:38 +0000 (20:02 -0700)]
Improve debugging message for comb loops
Eddie Hung [Thu, 27 Jun 2019 03:02:19 +0000 (20:02 -0700)]
Add WE to ECP5 dist RAM's abc_scc_break too
Eddie Hung [Thu, 27 Jun 2019 03:00:15 +0000 (20:00 -0700)]
Update comment on boxes
Eddie Hung [Thu, 27 Jun 2019 02:58:09 +0000 (19:58 -0700)]
Add "WE" to dist RAM's abc_scc_break
Eddie Hung [Thu, 27 Jun 2019 02:57:54 +0000 (19:57 -0700)]
Support more than one port in the abc_scc_break attr
Eddie Hung [Thu, 27 Jun 2019 02:17:11 +0000 (19:17 -0700)]
Add write_xaiger into CHANGELOG
Eddie Hung [Wed, 26 Jun 2019 17:47:53 +0000 (10:47 -0700)]
Merge branch 'koriakin/xc7nocarrymux' into xaig
Eddie Hung [Wed, 26 Jun 2019 17:47:03 +0000 (10:47 -0700)]
Grrr
David Shah [Wed, 26 Jun 2019 17:17:52 +0000 (18:17 +0100)]
tests: Check that Icarus can parse arch sim models
Signed-off-by: David Shah <dave@ds0.me>
Eddie Hung [Wed, 26 Jun 2019 17:33:07 +0000 (10:33 -0700)]
Remove unused var
Eddie Hung [Wed, 26 Jun 2019 17:23:29 +0000 (10:23 -0700)]
Add _nowide variants of LUT libraries in -nowidelut flows
Eddie Hung [Wed, 26 Jun 2019 17:10:16 +0000 (10:10 -0700)]
Merge branch 'xaig' of github.com:YosysHQ/yosys into xaig
Eddie Hung [Wed, 26 Jun 2019 17:09:59 +0000 (10:09 -0700)]
Merge branch 'koriakin/xc7nocarrymux' into xaig
Eddie Hung [Wed, 26 Jun 2019 17:09:18 +0000 (10:09 -0700)]
Fix spacing
Eddie Hung [Wed, 26 Jun 2019 17:08:40 +0000 (10:08 -0700)]
Merge branch 'koriakin/xc7nocarrymux' into xaig