Eddie Hung [Sat, 7 Dec 2019 01:06:10 +0000 (17:06 -0800)]
write_xaiger to inst each cell type once, do not call techmap/aigmap
Eddie Hung [Sat, 7 Dec 2019 01:05:02 +0000 (17:05 -0800)]
techmap/aigmap of whiteboxes to occur before abc9 instead of in write_xaiger
Clifford Wolf [Thu, 5 Dec 2019 16:24:24 +0000 (08:24 -0800)]
Merge pull request #1551 from whitequark/manual-cell-operands
Clarify semantics of comb cells, in particular shifts
whitequark [Wed, 4 Dec 2019 11:59:36 +0000 (11:59 +0000)]
kernel: require \B_SIGNED=0 on $shl, $sshl, $shr, $sshr.
Before this commit, these cells would accept any \B_SIGNED and in
case of \B_SIGNED=1, would still treat the \B input as unsigned.
Also fix the Verilog frontend to never emit such constructs.
whitequark [Wed, 4 Dec 2019 11:06:05 +0000 (11:06 +0000)]
manual: document behavior of many comb cells more precisely.
Marcin Kościelnicki [Wed, 4 Dec 2019 08:44:00 +0000 (09:44 +0100)]
xilinx: Add tristate buffer mapping. (#1528)
Fixes #1225.
Marcin Kościelnicki [Wed, 4 Dec 2019 07:44:08 +0000 (08:44 +0100)]
iopadmap: Refactor and fix tristate buffer mapping. (#1527)
The previous code for rerouting wires when inserting tristate buffers
was overcomplicated and didn't handle all cases correctly (in
particular, only cell connections were rewired — internal connections
were not).
Marcin Kościelnicki [Wed, 4 Dec 2019 05:31:09 +0000 (06:31 +0100)]
xilinx: Add models for LUTRAM cells. (#1537)
Clifford Wolf [Tue, 3 Dec 2019 16:43:18 +0000 (08:43 -0800)]
Merge pull request #1524 from pepijndevos/gowindffinit
Gowin: add and test DFF init values
Pepijn de Vos [Tue, 3 Dec 2019 15:56:15 +0000 (16:56 +0100)]
update test
Pepijn de Vos [Tue, 3 Dec 2019 14:12:25 +0000 (15:12 +0100)]
Use -match-init to not synth contradicting init values
David Shah [Mon, 2 Dec 2019 10:20:21 +0000 (10:20 +0000)]
Merge pull request #1542 from YosysHQ/dave/abc9-loop-fix
abc9: Fix breaking of SCCs
Clifford Wolf [Mon, 2 Dec 2019 00:30:48 +0000 (16:30 -0800)]
Merge pull request #1539 from YosysHQ/mwk/ilang-bounds-check
read_ilang: do bounds checking on bit indices
David Shah [Sun, 1 Dec 2019 20:44:56 +0000 (20:44 +0000)]
abc9: Fix breaking of SCCs
Signed-off-by: David Shah <dave@ds0.me>
Miodrag Milanović [Fri, 29 Nov 2019 16:33:41 +0000 (17:33 +0100)]
Merge pull request #1540 from YosysHQ/mwk/xilinx-bufpll
xilinx: Add missing blackbox cell for BUFPLL.
Marcin Kościelnicki [Fri, 29 Nov 2019 15:55:29 +0000 (15:55 +0000)]
xilinx: Add missing blackbox cell for BUFPLL.
Eddie Hung [Thu, 28 Nov 2019 05:55:56 +0000 (21:55 -0800)]
Revert "Fold loop"
This reverts commit
a30d5e1cc35791a98b2269c5e587c566fe8b0a35.
Marcin Kościelnicki [Wed, 27 Nov 2019 21:24:39 +0000 (22:24 +0100)]
read_ilang: do bounds checking on bit indices
Eddie Hung [Wed, 27 Nov 2019 16:00:22 +0000 (08:00 -0800)]
Merge pull request #1536 from YosysHQ/eddie/xilinx_dsp_muladd
xilinx_dsp: consider sign and zero-extension when packing post-multiplier adder
Clifford Wolf [Wed, 27 Nov 2019 10:25:23 +0000 (11:25 +0100)]
Merge pull request #1501 from YosysHQ/dave/mem_copy_attr
memory_collect: Copy attr from RTLIL::Memory to cell
Clifford Wolf [Wed, 27 Nov 2019 10:23:16 +0000 (11:23 +0100)]
Merge pull request #1534 from YosysHQ/mwk/opt_share-fix
opt_share: Fix handling of fine cells.
Eddie Hung [Wed, 27 Nov 2019 09:04:29 +0000 (01:04 -0800)]
Merge pull request #1535 from YosysHQ/eddie/write_xaiger_improve
write_xaiger improvements
Eddie Hung [Wed, 27 Nov 2019 07:08:14 +0000 (23:08 -0800)]
No need for -abc9
Marcin Kościelnicki [Tue, 26 Nov 2019 23:46:21 +0000 (00:46 +0100)]
opt_share: Fix handling of fine cells.
Fixes #1525.
Eddie Hung [Wed, 27 Nov 2019 06:59:05 +0000 (22:59 -0800)]
latch -> box
Eddie Hung [Wed, 27 Nov 2019 06:51:16 +0000 (22:51 -0800)]
Add citation
Eddie Hung [Wed, 27 Nov 2019 05:26:53 +0000 (21:26 -0800)]
Check for either sign or zero extension for postAdd packing
Eddie Hung [Wed, 27 Nov 2019 06:41:35 +0000 (22:41 -0800)]
Remove notes
Eddie Hung [Mon, 25 Nov 2019 23:43:37 +0000 (15:43 -0800)]
Fold loop
Eddie Hung [Mon, 25 Nov 2019 23:42:07 +0000 (15:42 -0800)]
Do not sigmap keep bits inside write_xaiger
Eddie Hung [Wed, 27 Nov 2019 03:03:02 +0000 (19:03 -0800)]
xaiger: do not promote output wires
Eddie Hung [Wed, 27 Nov 2019 05:26:30 +0000 (21:26 -0800)]
Add testcase derived from fastfir_dynamictaps benchmark
Marcin Kościelnicki [Tue, 26 Nov 2019 04:04:28 +0000 (05:04 +0100)]
xilinx: Add simulation models for IOBUF and OBUFT.
Marcin Kościelnicki [Sun, 24 Nov 2019 15:05:45 +0000 (16:05 +0100)]
clkbufmap: Add support for inverters in clock path.
Marcin Kościelnicki [Sun, 24 Nov 2019 13:17:46 +0000 (14:17 +0100)]
xilinx: Use INV instead of LUT1 when applicable
Pepijn de Vos [Mon, 25 Nov 2019 13:50:34 +0000 (14:50 +0100)]
attempt to fix formatting
Pepijn de Vos [Mon, 25 Nov 2019 13:33:21 +0000 (14:33 +0100)]
gowin: add and test dff init values
Eddie Hung [Sat, 23 Nov 2019 06:45:40 +0000 (22:45 -0800)]
Merge pull request #1520 from pietrmar/fix-1463
coolrunner2: remove spurious log_pop() call, fixes #1463
Martin Pietryka [Sat, 23 Nov 2019 05:18:23 +0000 (06:18 +0100)]
coolrunner2: remove spurious log_pop() call, fixes #1463
This was causing a segmentation fault because there is no accompanying
log_push() call so header_count.size() became -1.
Signed-off-by: Martin Pietryka <martin@pietryka.at>
Clifford Wolf [Fri, 22 Nov 2019 17:11:58 +0000 (18:11 +0100)]
Merge pull request #1517 from YosysHQ/clifford/optmem
Add "opt_mem" pass
Clifford Wolf [Fri, 22 Nov 2019 17:10:34 +0000 (18:10 +0100)]
Merge pull request #1515 from YosysHQ/clifford/svastuff
Add Verific/SVA support for "always" and "nexttime" properties
Clifford Wolf [Fri, 22 Nov 2019 15:58:49 +0000 (16:58 +0100)]
Add "opt_mem" pass
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Fri, 22 Nov 2019 15:11:56 +0000 (16:11 +0100)]
Add Verific support for SVA nexttime properties
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Fri, 22 Nov 2019 15:00:07 +0000 (16:00 +0100)]
Improve handling of verific primitives in "verific -import -V" mode
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Fri, 22 Nov 2019 14:52:21 +0000 (15:52 +0100)]
Add Verific SVA support for "always" properties
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Fri, 22 Nov 2019 14:32:29 +0000 (15:32 +0100)]
Merge pull request #1511 from YosysHQ/dave/always
sv: Error checking for always_comb, always_latch and always_ff
Marcin Kościelnicki [Fri, 22 Nov 2019 11:15:33 +0000 (12:15 +0100)]
gowin: Remove show command from tests.
Marcin Kościelnicki [Fri, 22 Nov 2019 11:10:57 +0000 (12:10 +0100)]
gowin: Add missing .gitignore entries
David Shah [Fri, 22 Nov 2019 12:46:19 +0000 (12:46 +0000)]
Update CHANGELOG and README
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Thu, 21 Nov 2019 21:06:28 +0000 (21:06 +0000)]
sv: Add tests for SV always types
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Thu, 21 Nov 2019 20:46:41 +0000 (20:46 +0000)]
proc_dlatch: Add error handling for incorrect always_(ff|latch|comb) usage
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Thu, 21 Nov 2019 20:27:19 +0000 (20:27 +0000)]
sv: Correct parsing of always_comb, always_ff and always_latch
Signed-off-by: David Shah <dave@ds0.me>
Clifford Wolf [Wed, 20 Nov 2019 12:49:27 +0000 (13:49 +0100)]
Merge pull request #1507 from YosysHQ/clifford/verificfixes
Some fixes in our Verific integration
Clifford Wolf [Wed, 20 Nov 2019 11:56:31 +0000 (12:56 +0100)]
Correctly treat empty modules as blackboxes in Verific
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Wed, 20 Nov 2019 11:54:10 +0000 (12:54 +0100)]
Do not rename VHDL entities to "entity(impl)" when they are top modules
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Tue, 19 Nov 2019 16:29:27 +0000 (17:29 +0100)]
Merge pull request #1449 from pepijndevos/gowin
Improvements for gowin support
Pepijn de Vos [Tue, 19 Nov 2019 14:53:44 +0000 (15:53 +0100)]
Remove dff init altogether
The hardware does not actually support it.
In reality it is always initialised to its reset value.
Marcin Kościelnicki [Mon, 18 Nov 2019 07:19:53 +0000 (08:19 +0100)]
Fix #1462, #1480.
Marcin Kościelnicki [Mon, 18 Nov 2019 02:47:56 +0000 (03:47 +0100)]
xilinx: Add simulation models for MULT18X18* and DSP48A*.
This adds simulation models for the following primitives:
- MULT18X18 and MULT18X18S (Virtex 2*, Spartan 3)
- MULT18X18SIO (Spartan 3E, Spartan 3A)
- DSP48A (Spartan 3A DSP) — implemented in terms of DSP48A1
- DSP48A1 (Spartan 6)
David Shah [Mon, 18 Nov 2019 13:58:03 +0000 (13:58 +0000)]
memory_collect: Copy attr from RTLIL::Memory to cell
Signed-off-by: David Shah <dave@ds0.me>
Pepijn de Vos [Mon, 18 Nov 2019 13:25:46 +0000 (14:25 +0100)]
add help for nowidelut and abc9 options
Clifford Wolf [Mon, 18 Nov 2019 09:53:14 +0000 (10:53 +0100)]
Merge pull request #1497 from YosysHQ/mwk/extract-fa-fix
Fix #1496.
whitequark [Mon, 18 Nov 2019 09:37:14 +0000 (09:37 +0000)]
Merge pull request #1494 from whitequark/write_verilog-extmem
write_verilog: add -extmem option, to write split memory init files
Marcin Kościelnicki [Mon, 18 Nov 2019 03:16:48 +0000 (04:16 +0100)]
Fix #1496.
whitequark [Fri, 15 Nov 2019 03:11:46 +0000 (03:11 +0000)]
write_verilog: add -extmem option, to write split memory init files.
Some toolchains (in particular Quartus) are pathologically slow if
a large amount of assignments in `initial` blocks are used.
Clifford Wolf [Sun, 17 Nov 2019 09:42:30 +0000 (10:42 +0100)]
Merge pull request #1492 from YosysHQ/dave/wreduce-fix-arst
wreduce: Don't trim zeros or sext when not matching ARST_VALUE
Pepijn de Vos [Sat, 16 Nov 2019 11:43:17 +0000 (12:43 +0100)]
Merge branch 'master' of https://github.com/YosysHQ/yosys into gowin
David Shah [Fri, 15 Nov 2019 21:03:11 +0000 (21:03 +0000)]
ecp5: Use new autoname pass for better cell/net names
Signed-off-by: David Shah <dave@ds0.me>
David Shah [Thu, 14 Nov 2019 18:43:15 +0000 (18:43 +0000)]
wreduce: Don't trim zeros or sext when not matching ARST_VALUE
Signed-off-by: David Shah <dave@ds0.me>
Clifford Wolf [Thu, 14 Nov 2019 17:03:44 +0000 (18:03 +0100)]
Merge pull request #1490 from YosysHQ/clifford/autoname
Add "autoname" pass and use it in "synth_ice40"
Clifford Wolf [Thu, 14 Nov 2019 11:10:12 +0000 (12:10 +0100)]
Merge pull request #1444 from btut/feature/python_wrappers/globals_and_streams
Python Wrappers: Expose global variables and allow logging to python streams
Clifford Wolf [Thu, 14 Nov 2019 11:07:25 +0000 (12:07 +0100)]
Merge pull request #1465 from YosysHQ/dave/ice40_timing_sim
ice40: Support for post-place-and-route timing simulations
Clifford Wolf [Thu, 14 Nov 2019 10:57:53 +0000 (11:57 +0100)]
Merge branch 'makaimann-label-bads-btor'
Clifford Wolf [Thu, 14 Nov 2019 10:57:38 +0000 (11:57 +0100)]
Use cell name for btor bad state props when it is a public name
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Thu, 14 Nov 2019 10:52:41 +0000 (11:52 +0100)]
Merge branch 'label-bads-btor' of https://github.com/makaimann/yosys into makaimann-label-bads-btor
Clifford Wolf [Wed, 13 Nov 2019 12:41:16 +0000 (13:41 +0100)]
Add "autoname" pass and use it in "synth_ice40"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
whitequark [Wed, 13 Nov 2019 11:57:17 +0000 (11:57 +0000)]
Merge pull request #1488 from whitequark/flowmap-fixes
flowmap: fix a few crashes
Clifford Wolf [Wed, 13 Nov 2019 11:34:27 +0000 (12:34 +0100)]
Merge pull request #1486 from YosysHQ/clifford/fsmdetectfix
Bugfix in fsm_detect
Clifford Wolf [Tue, 12 Nov 2019 16:31:30 +0000 (17:31 +0100)]
Update fsm_detect bugfix
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Tue, 12 Nov 2019 13:26:02 +0000 (14:26 +0100)]
Bugfix in fsm_detect
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Tue, 12 Nov 2019 09:24:12 +0000 (10:24 +0100)]
Merge pull request #1484 from YosysHQ/clifford/cmp2luteqne
Do not map $eq and $ne in cmp2lut, only proper arithmetic cmp
Makai Mann [Tue, 12 Nov 2019 00:40:51 +0000 (16:40 -0800)]
Add an info string symbol for bad states in btor backend
whitequark [Tue, 12 Nov 2019 00:15:43 +0000 (00:15 +0000)]
flowmap: when doing mincut, ensure source is always in X, not X̅.
Fixes #1475.
whitequark [Mon, 11 Nov 2019 23:13:00 +0000 (23:13 +0000)]
flowmap: don't break if that creates a k+2 (and larger) LUT either.
Fixes #1405.
Pepijn de Vos [Mon, 11 Nov 2019 16:51:26 +0000 (17:51 +0100)]
fix fsm test with proper clock enable polarity
Pepijn de Vos [Mon, 11 Nov 2019 16:08:40 +0000 (17:08 +0100)]
Merge branch 'master' of https://github.com/YosysHQ/yosys into gowin
Miodrag Milanovic [Mon, 11 Nov 2019 14:41:33 +0000 (15:41 +0100)]
Fixed tests
Clifford Wolf [Mon, 11 Nov 2019 14:07:29 +0000 (15:07 +0100)]
Do not map $eq and $ne in cmp2lut, only proper arithmetic cmp
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Sun, 10 Nov 2019 10:00:38 +0000 (11:00 +0100)]
Merge pull request #1470 from YosysHQ/clifford/subpassdoc
Add CodingReadme section on script passes
Clifford Wolf [Thu, 7 Nov 2019 12:30:03 +0000 (13:30 +0100)]
Add check for valid macro names in macro definitions
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Pepijn de Vos [Wed, 6 Nov 2019 18:48:18 +0000 (19:48 +0100)]
fix wide luts
Marcin Kościelnicki [Fri, 1 Nov 2019 14:00:15 +0000 (14:00 +0000)]
synth_xilinx: Merge blackbox primitive libraries.
First, there are no longer separate cell libraries for xc6s/xc7/xcu.
Manually instantiating a primitive for a "wrong" family will result
in yosys passing it straight through to the output, and it will be
either upgraded or rejected by the P&R tool.
Second, the blackbox library is expanded to cover many more families:
everything from Spartan 3 up is included. Primitives for Virtex and
Virtex 2 are listed in the Python file as well if we ever want to
include them, but that would require having two different ISE versions
(10.1 and 14.7) available when running cells_xtra.py, and so is probably
more trouble than it's worth.
Third, the blockram blackboxes are no longer in separate files — there
is no practical reason to do so (from synthesis PoV, they are no
different from any other cells_xtra blackbox), and they needlessly
complicated the flow (among other things, merging them allows the user
to use eg. Series 7 primitives and have them auto-upgraded to
Ultrascale).
Last, since xc5v logic synthesis appears to work reasonably well
(the only major problem is lack of blockram inference support), xc5v is
now an accepted setting for the -family option.
Clifford Wolf [Mon, 4 Nov 2019 13:25:13 +0000 (14:25 +0100)]
Fix write_aiger bug added in
524af21
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Clifford Wolf [Thu, 31 Oct 2019 09:46:20 +0000 (10:46 +0100)]
Add CodingReadme section on script passes
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Pepijn de Vos [Wed, 30 Oct 2019 13:58:25 +0000 (14:58 +0100)]
don't cound exact luts in big muxes; futile and fragile
Pepijn de Vos [Mon, 28 Oct 2019 14:33:05 +0000 (15:33 +0100)]
add IOBUF
Pepijn de Vos [Mon, 28 Oct 2019 14:18:01 +0000 (15:18 +0100)]
add tristate buffer and test
Pepijn de Vos [Mon, 28 Oct 2019 13:40:12 +0000 (14:40 +0100)]
do not use wide luts in testcase
Pepijn de Vos [Mon, 28 Oct 2019 13:28:03 +0000 (14:28 +0100)]
actually run the gowin tests
Pepijn de Vos [Mon, 28 Oct 2019 12:10:12 +0000 (13:10 +0100)]
More formatting