yosys.git
4 years agoAdd a quick testcase for unknown modules as inout
Eddie Hung [Mon, 9 Dec 2019 21:14:46 +0000 (13:14 -0800)]
Add a quick testcase for unknown modules as inout

4 years agoUse pool instead of std::set for determinism
Eddie Hung [Mon, 2 Dec 2019 07:26:17 +0000 (23:26 -0800)]
Use pool instead of std::set for determinism

4 years agoMove \init signal for non-port signals as long as internally driven
Eddie Hung [Thu, 28 Nov 2019 20:57:36 +0000 (12:57 -0800)]
Move \init signal for non-port signals as long as internally driven

4 years agoFix multiple driver issue
Eddie Hung [Wed, 27 Nov 2019 21:21:59 +0000 (13:21 -0800)]
Fix multiple driver issue

4 years agoAdd multiple driver testcase
Eddie Hung [Wed, 27 Nov 2019 21:22:26 +0000 (13:22 -0800)]
Add multiple driver testcase

4 years agoDo not replace constants with same wire
Eddie Hung [Wed, 27 Nov 2019 16:18:41 +0000 (08:18 -0800)]
Do not replace constants with same wire

4 years agoCleanup
Eddie Hung [Wed, 27 Nov 2019 09:01:24 +0000 (01:01 -0800)]
Cleanup

4 years agoCheck for nullptr
Eddie Hung [Wed, 27 Nov 2019 08:51:39 +0000 (00:51 -0800)]
Check for nullptr

4 years agoStray log_dump
Eddie Hung [Wed, 27 Nov 2019 08:50:25 +0000 (00:50 -0800)]
Stray log_dump

4 years agoRevert "submod to bitty rather bussy, for bussy wires used as input and output"
Eddie Hung [Wed, 27 Nov 2019 08:48:22 +0000 (00:48 -0800)]
Revert "submod to bitty rather bussy, for bussy wires used as input and output"

This reverts commit cba3073026711e7683c46ba091c56a5c5a041a45.

4 years agoPromote output wires in sigmap so that can be detected
Eddie Hung [Wed, 27 Nov 2019 07:39:14 +0000 (23:39 -0800)]
Promote output wires in sigmap so that can be detected

4 years agoFix wire width
Eddie Hung [Wed, 27 Nov 2019 07:38:49 +0000 (23:38 -0800)]
Fix wire width

4 years agoFix submod -hidden
Eddie Hung [Tue, 26 Nov 2019 19:57:26 +0000 (11:57 -0800)]
Fix submod -hidden

4 years agoAdd -hidden option to submod
Eddie Hung [Tue, 26 Nov 2019 19:35:15 +0000 (11:35 -0800)]
Add -hidden option to submod

4 years agoUpdate docs with bullet points
Eddie Hung [Tue, 26 Nov 2019 19:12:58 +0000 (11:12 -0800)]
Update docs with bullet points

4 years agoMove \init from source wire to submod if output port
Eddie Hung [Tue, 26 Nov 2019 00:07:47 +0000 (16:07 -0800)]
Move \init from source wire to submod if output port

4 years agoAdd testcase where \init is copied
Eddie Hung [Tue, 26 Nov 2019 00:07:35 +0000 (16:07 -0800)]
Add testcase where \init is copied

5 years agoRemove redundant flatten
Eddie Hung [Sat, 23 Nov 2019 06:22:56 +0000 (22:22 -0800)]
Remove redundant flatten

5 years agosubmod to bitty rather bussy, for bussy wires used as input and output
Eddie Hung [Sat, 23 Nov 2019 04:53:58 +0000 (20:53 -0800)]
submod to bitty rather bussy, for bussy wires used as input and output

5 years agoStray dump
Eddie Hung [Sat, 23 Nov 2019 04:53:48 +0000 (20:53 -0800)]
Stray dump

5 years agoConstant driven signals are also an input to submodules
Eddie Hung [Sat, 23 Nov 2019 01:23:51 +0000 (17:23 -0800)]
Constant driven signals are also an input to submodules

5 years agoAdd another test with constant driver
Eddie Hung [Sat, 23 Nov 2019 01:23:34 +0000 (17:23 -0800)]
Add another test with constant driver

5 years agoOops
Eddie Hung [Sat, 23 Nov 2019 01:03:30 +0000 (17:03 -0800)]
Oops

5 years agoCleanup spacing
Eddie Hung [Sat, 23 Nov 2019 00:50:09 +0000 (16:50 -0800)]
Cleanup spacing

5 years agosigmap(wire) should inherit port_output status of POs
Eddie Hung [Sat, 23 Nov 2019 00:46:26 +0000 (16:46 -0800)]
sigmap(wire) should inherit port_output status of POs

5 years agoAdd testcase
Eddie Hung [Sat, 23 Nov 2019 00:41:05 +0000 (16:41 -0800)]
Add testcase

5 years agoMerge pull request #1517 from YosysHQ/clifford/optmem
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

5 years agoMerge pull request #1515 from YosysHQ/clifford/svastuff
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

5 years agoAdd "opt_mem" pass
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>
5 years agoAdd Verific support for SVA nexttime properties
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>
5 years agoImprove handling of verific primitives in "verific -import -V" mode
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>
5 years agoAdd Verific SVA support for "always" properties
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>
5 years agoMerge pull request #1511 from YosysHQ/dave/always
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

5 years agogowin: Remove show command from tests.
Marcin Kościelnicki [Fri, 22 Nov 2019 11:15:33 +0000 (12:15 +0100)]
gowin: Remove show command from tests.

5 years agogowin: Add missing .gitignore entries
Marcin Kościelnicki [Fri, 22 Nov 2019 11:10:57 +0000 (12:10 +0100)]
gowin: Add missing .gitignore entries

5 years agoUpdate CHANGELOG and README
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>
5 years agosv: Add tests for SV always types
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>
5 years agoproc_dlatch: Add error handling for incorrect always_(ff|latch|comb) usage
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>
5 years agosv: Correct parsing of always_comb, always_ff and always_latch
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>
5 years agoMerge pull request #1507 from YosysHQ/clifford/verificfixes
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

5 years agoCorrectly treat empty modules as blackboxes in Verific
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>
5 years agoDo not rename VHDL entities to "entity(impl)" when they are top modules
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>
5 years agoMerge pull request #1449 from pepijndevos/gowin
Clifford Wolf [Tue, 19 Nov 2019 16:29:27 +0000 (17:29 +0100)]
Merge pull request #1449 from pepijndevos/gowin

Improvements for gowin support

5 years agoRemove dff init altogether
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.

5 years agoFix #1462, #1480.
Marcin Kościelnicki [Mon, 18 Nov 2019 07:19:53 +0000 (08:19 +0100)]
Fix #1462, #1480.

5 years agoxilinx: Add simulation models for MULT18X18* and DSP48A*.
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)

5 years agoadd help for nowidelut and abc9 options
Pepijn de Vos [Mon, 18 Nov 2019 13:25:46 +0000 (14:25 +0100)]
add help for nowidelut and abc9 options

5 years agoMerge pull request #1497 from YosysHQ/mwk/extract-fa-fix
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.

5 years agoMerge pull request #1494 from whitequark/write_verilog-extmem
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

5 years agoFix #1496.
Marcin Kościelnicki [Mon, 18 Nov 2019 03:16:48 +0000 (04:16 +0100)]
Fix #1496.

5 years agowrite_verilog: add -extmem option, to write split memory init files.
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.

5 years agoMerge pull request #1492 from YosysHQ/dave/wreduce-fix-arst
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

5 years agoMerge branch 'master' of https://github.com/YosysHQ/yosys into gowin
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

5 years agoecp5: Use new autoname pass for better cell/net names
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>
5 years agowreduce: Don't trim zeros or sext when not matching ARST_VALUE
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>
5 years agoMerge pull request #1490 from YosysHQ/clifford/autoname
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"

5 years agoMerge pull request #1444 from btut/feature/python_wrappers/globals_and_streams
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

5 years agoMerge pull request #1465 from YosysHQ/dave/ice40_timing_sim
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

5 years agoMerge branch 'makaimann-label-bads-btor'
Clifford Wolf [Thu, 14 Nov 2019 10:57:53 +0000 (11:57 +0100)]
Merge branch 'makaimann-label-bads-btor'

5 years agoUse cell name for btor bad state props when it is a public name
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>
5 years agoMerge branch 'label-bads-btor' of https://github.com/makaimann/yosys into makaimann...
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

5 years agoAdd "autoname" pass and use it in "synth_ice40"
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>
5 years agoMerge pull request #1488 from whitequark/flowmap-fixes
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

5 years agoMerge pull request #1486 from YosysHQ/clifford/fsmdetectfix
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

5 years agoUpdate fsm_detect bugfix
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>
5 years agoBugfix in fsm_detect
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>
5 years agoMerge pull request #1484 from YosysHQ/clifford/cmp2luteqne
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

5 years agoAdd an info string symbol for bad states in btor backend
Makai Mann [Tue, 12 Nov 2019 00:40:51 +0000 (16:40 -0800)]
Add an info string symbol for bad states in btor backend

5 years agoflowmap: when doing mincut, ensure source is always in X, not X̅.
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.

5 years agoflowmap: don't break if that creates a k+2 (and larger) LUT either.
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.

5 years agofix fsm test with proper clock enable polarity
Pepijn de Vos [Mon, 11 Nov 2019 16:51:26 +0000 (17:51 +0100)]
fix fsm test with proper clock enable polarity

5 years agoMerge branch 'master' of https://github.com/YosysHQ/yosys into gowin
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

5 years agoFixed tests
Miodrag Milanovic [Mon, 11 Nov 2019 14:41:33 +0000 (15:41 +0100)]
Fixed tests

5 years agoDo not map $eq and $ne in cmp2lut, only proper arithmetic cmp
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>
5 years agoMerge pull request #1470 from YosysHQ/clifford/subpassdoc
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

5 years agoAdd check for valid macro names in macro definitions
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>
5 years agofix wide luts
Pepijn de Vos [Wed, 6 Nov 2019 18:48:18 +0000 (19:48 +0100)]
fix wide luts

5 years agosynth_xilinx: Merge blackbox primitive libraries.
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.

5 years agoFix write_aiger bug added in 524af21
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>
5 years agoAdd CodingReadme section on script passes
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>
5 years agodon't cound exact luts in big muxes; futile and fragile
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

5 years agoadd IOBUF
Pepijn de Vos [Mon, 28 Oct 2019 14:33:05 +0000 (15:33 +0100)]
add IOBUF

5 years agoadd tristate buffer and test
Pepijn de Vos [Mon, 28 Oct 2019 14:18:01 +0000 (15:18 +0100)]
add tristate buffer and test

5 years agodo not use wide luts in testcase
Pepijn de Vos [Mon, 28 Oct 2019 13:40:12 +0000 (14:40 +0100)]
do not use wide luts in testcase

5 years agoactually run the gowin tests
Pepijn de Vos [Mon, 28 Oct 2019 13:28:03 +0000 (14:28 +0100)]
actually run the gowin tests

5 years agoMore formatting
Pepijn de Vos [Mon, 28 Oct 2019 12:10:12 +0000 (13:10 +0100)]
More formatting

5 years agoreally really fix formatting maybe
Pepijn de Vos [Mon, 28 Oct 2019 12:01:20 +0000 (13:01 +0100)]
really really fix formatting maybe

5 years agoundo formatting fuckup
Pepijn de Vos [Mon, 28 Oct 2019 11:57:12 +0000 (12:57 +0100)]
undo formatting fuckup

5 years agoadd wide luts
Pepijn de Vos [Mon, 28 Oct 2019 11:49:08 +0000 (12:49 +0100)]
add wide luts

5 years agoadd 32-bit BRAM and byte-enables
Pepijn de Vos [Mon, 28 Oct 2019 09:33:27 +0000 (10:33 +0100)]
add 32-bit BRAM and byte-enables

5 years agoMerge pull request #1393 from whitequark/write_verilog-avoid-init
Clifford Wolf [Sun, 27 Oct 2019 09:25:01 +0000 (10:25 +0100)]
Merge pull request #1393 from whitequark/write_verilog-avoid-init

write_verilog: do not print (*init*) attributes on regs

5 years agoALU sim tweaks
Pepijn de Vos [Thu, 24 Oct 2019 11:39:43 +0000 (13:39 +0200)]
ALU sim tweaks

5 years agoImprove naming scheme for (VHDL) modules imported from Verific
Clifford Wolf [Thu, 24 Oct 2019 10:13:37 +0000 (12:13 +0200)]
Improve naming scheme for (VHDL) modules imported from Verific

Signed-off-by: Clifford Wolf <clifford@clifford.at>
5 years agoMerge pull request #1455 from YosysHQ/dave/ultrascaleplus
David Shah [Thu, 24 Oct 2019 07:14:20 +0000 (08:14 +0100)]
Merge pull request #1455 from YosysHQ/dave/ultrascaleplus

Add BRAM and URAM mapping for UltraScale[+]

5 years agoAdd "verific -L"
Clifford Wolf [Thu, 24 Oct 2019 07:14:03 +0000 (09:14 +0200)]
Add "verific -L"

Signed-off-by: Clifford Wolf <clifford@clifford.at>
5 years agoice40: Add post-pnr ICESTORM_RAM model and fix FFs
David Shah [Wed, 23 Oct 2019 17:44:34 +0000 (18:44 +0100)]
ice40: Add post-pnr ICESTORM_RAM model and fix FFs

Signed-off-by: David Shah <dave@ds0.me>
5 years agoice40: Support for post-pnr timing simulation
David Shah [Sun, 20 Oct 2019 09:24:47 +0000 (10:24 +0100)]
ice40: Support for post-pnr timing simulation

Signed-off-by: David Shah <dave@ds0.me>
5 years agoxilinx: Add URAM288 mapping for xcup
David Shah [Fri, 18 Oct 2019 13:02:57 +0000 (14:02 +0100)]
xilinx: Add URAM288 mapping for xcup

Signed-off-by: David Shah <dave@ds0.me>
5 years agoxilinx: Add support for UltraScale[+] BRAM mapping
David Shah [Fri, 18 Oct 2019 12:24:19 +0000 (13:24 +0100)]
xilinx: Add support for UltraScale[+] BRAM mapping

Signed-off-by: David Shah <dave@ds0.me>
5 years agoBugfix in smtio vcd handling of $-identifiers
Clifford Wolf [Tue, 22 Oct 2019 22:04:34 +0000 (00:04 +0200)]
Bugfix in smtio vcd handling of $-identifiers

Signed-off-by: Clifford Wolf <clifford@clifford.at>