Zachary Snow [Sat, 29 Aug 2020 17:33:31 +0000 (13:33 -0400)]
Simple support for %l format specifier
Yosys doesn't support libraries, so this provides the same behavior as
%m, as some other tools have opted to do.
Marcelina Kościelnicka [Thu, 20 Aug 2020 19:59:37 +0000 (21:59 +0200)]
synth_intel: Remove incomplete Arria 10 GX support.
The techmap rules for this target do not work in the first place (note
lack of >2-input LUT mappings), and if proper support is ever added,
it'd be better placed in the synth_intel_alm backend.
Dan Ravensloft [Mon, 27 Jul 2020 13:21:05 +0000 (14:21 +0100)]
intel: move Cyclone V support to intel_alm
clairexen [Thu, 20 Aug 2020 14:25:56 +0000 (16:25 +0200)]
Merge pull request #2347 from YosysHQ/mwk/techmap-shift-fixes
techmap/shift_shiftx: Remove the "shiftx2mux" special path.
clairexen [Thu, 20 Aug 2020 14:24:53 +0000 (16:24 +0200)]
Merge pull request #2344 from YosysHQ/mwk/opt_share-fixes
opt_share: Refactor, fix some bugs.
clairexen [Thu, 20 Aug 2020 14:23:55 +0000 (16:23 +0200)]
Merge pull request #2337 from YosysHQ/mwk/clean-keep-wire
opt_clean: Fix module keep rules.
clairexen [Thu, 20 Aug 2020 14:23:07 +0000 (16:23 +0200)]
Merge pull request #2333 from YosysHQ/mwk/peepopt-shiftmul-signed
peeopt.shiftmul: Add a signedness check.
clairexen [Thu, 20 Aug 2020 14:21:58 +0000 (16:21 +0200)]
Merge pull request #2328 from YosysHQ/mwk/opt_dff-cleanup
Remove passes redundant with opt_dff
clairexen [Thu, 20 Aug 2020 14:21:09 +0000 (16:21 +0200)]
Merge pull request #2327 from YosysHQ/mwk/techmap-constmap-fix
techmap.CONSTMAP: Handle outputs before inputs.
clairexen [Thu, 20 Aug 2020 14:19:37 +0000 (16:19 +0200)]
Merge pull request #2326 from YosysHQ/mwk/peeopt-muldiv-sign
peepopt.muldiv: Add a signedness check.
clairexen [Thu, 20 Aug 2020 14:18:40 +0000 (16:18 +0200)]
Merge pull request #2319 from YosysHQ/mwk/techmap-celltype-pattern
techmap: Add support for [] wildcards in techmap_celltype.
Marcelina Kościelnicka [Wed, 19 Aug 2020 11:59:59 +0000 (13:59 +0200)]
techmap/shift_shiftx: Remove the "shiftx2mux" special path.
Our techmap rules for $shift and $shiftx cells contained a special path
that aimed to decompose the shift LSB-first instead of MSB-first in
select cases that come up in pmux lowering. This path was needlessly
overcomplicated and contained bugs.
Instead of doing that, just switch over the main path to iterate
LSB-first (except for the specially-handled MSB for signed shifts
and overflow handling). This also makes the code consistent with
shl/shr/sshl/sshr cells, which are already decomposed LSB-first.
Fixes #2346.
Yosys Bot [Thu, 20 Aug 2020 00:10:07 +0000 (00:10 +0000)]
Bump version
clairexen [Wed, 19 Aug 2020 15:58:37 +0000 (17:58 +0200)]
Merge pull request #2122 from PeterCrozier/struct_array2
Support 2D bit arrays in structures. Optimise array indexing.
Yosys Bot [Wed, 19 Aug 2020 00:10:09 +0000 (00:10 +0000)]
Bump version
Xiretza [Fri, 3 Jul 2020 11:13:21 +0000 (13:13 +0200)]
Ensure \A_SIGNED is never used with $shiftx
It has no effect on the output ($shiftx doesn't perform any sign
extension whatsoever), so an attempt to use it should be caught early.
Xiretza [Fri, 3 Jul 2020 11:13:21 +0000 (13:13 +0200)]
Respect \A_SIGNED for $shift
This reflects the behaviour of $shr/$shl, which sign-extend their A
operands to the size of their output, then do a logical shift (shift in
0-bits).
N. Engelhardt [Tue, 18 Aug 2020 16:54:22 +0000 (18:54 +0200)]
include both power-of-two and non-power-of-two testcases
clairexen [Tue, 18 Aug 2020 15:39:01 +0000 (17:39 +0200)]
Merge pull request #2339 from zachjs/display-format-0s
Allow %0s $display format specifier
clairexen [Tue, 18 Aug 2020 15:38:07 +0000 (17:38 +0200)]
Merge pull request #2338 from zachjs/const-branch-finish
Propagate const_fold through generate blocks and branches
clairexen [Tue, 18 Aug 2020 15:37:11 +0000 (17:37 +0200)]
Merge pull request #2317 from zachjs/expand-genblock
Fix generate scoping issues
Claire Wolf [Tue, 18 Aug 2020 15:32:00 +0000 (17:32 +0200)]
Merge branch 'zachjs-const-func-block-var'
Claire Wolf [Tue, 18 Aug 2020 15:27:51 +0000 (17:27 +0200)]
Merge branch 'const-func-block-var' of https://github.com/zachjs/yosys into zachjs-const-func-block-var
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
clairexen [Tue, 18 Aug 2020 15:22:20 +0000 (17:22 +0200)]
Merge pull request #2281 from zachjs/const-real
Allow reals as constant function parameters
Marcelina Kościelnicka [Mon, 17 Aug 2020 15:13:17 +0000 (17:13 +0200)]
opt_share: Refactor, fix some bugs.
Fixes #2334.
Fixes #2335.
Fixes #2336.
Yosys Bot [Fri, 14 Aug 2020 00:10:13 +0000 (00:10 +0000)]
Bump version
Dan Ravensloft [Thu, 13 Aug 2020 14:30:03 +0000 (15:30 +0100)]
intel_alm: fix typo in MISTRAL_MUL27X27 cell name
Yosys Bot [Thu, 13 Aug 2020 00:10:08 +0000 (00:10 +0000)]
Bump version
whitequark [Wed, 12 Aug 2020 20:02:18 +0000 (20:02 +0000)]
Merge pull request #2340 from andy-knowles/cxxrtl-fix-alu-carryout
cxxrtl.h: Fix incorrect CarryOut in alu when Bits % 32 != 0 && Invert == False
Andy Knowles [Wed, 12 Aug 2020 19:04:34 +0000 (21:04 +0200)]
cxxrtl.h: Fix incorrect CarryOut in alu()
Dan Ravensloft [Wed, 12 Aug 2020 13:55:42 +0000 (14:55 +0100)]
intel_alm: add more megafunctions. NFC.
Andy Knowles [Wed, 12 Aug 2020 09:32:57 +0000 (11:32 +0200)]
cxxrtl.h: Fix incorrect CarryOut in alu when Bits % 32 != 0 && Invert == False
Yosys Bot [Mon, 10 Aug 2020 09:30:51 +0000 (09:30 +0000)]
Bump version
Zachary Snow [Sun, 9 Aug 2020 15:52:55 +0000 (09:52 -0600)]
Propagate const_fold through generate blocks and branches
Zachary Snow [Sun, 9 Aug 2020 15:31:57 +0000 (09:31 -0600)]
Allow %0s $display format specifier
Marcelina Kościelnicka [Sun, 9 Aug 2020 11:53:01 +0000 (13:53 +0200)]
opt_clean: Fix module keep rules.
- wires with keep attribute now force a module to be kept
- presence of $memwr and $meminit cells no longer forces a module to be
kept
Marcelina Kościelnicka [Tue, 21 Jul 2020 17:24:09 +0000 (19:24 +0200)]
Remove now-redundant
dff2dffe pass.
Marcelina Kościelnicka [Tue, 21 Jul 2020 14:41:26 +0000 (16:41 +0200)]
Remove now-redundant dff2dffs pass.
Marcelina Kościelnicka [Wed, 15 Jul 2020 00:37:43 +0000 (02:37 +0200)]
peepopt: Remove now-redundant dffmux pattern.
Marcelina Kościelnicka [Wed, 15 Jul 2020 00:54:40 +0000 (02:54 +0200)]
Remove now-redundant opt_rmdff pass.
Marcelina Kościelnicka [Mon, 20 Jul 2020 21:19:51 +0000 (23:19 +0200)]
Replace opt_rmdff with opt_dff.
Marcelina Kościelnicka [Wed, 5 Aug 2020 19:01:20 +0000 (21:01 +0200)]
peeopt.shiftmul: Add a signedness check.
Fixes #2332.
Marcelina Kościelnicka [Wed, 5 Aug 2020 10:28:18 +0000 (12:28 +0200)]
techmap.CONSTMAP: Handle outputs before inputs.
Fixes #2321.
Marcelina Kościelnicka [Tue, 4 Aug 2020 14:30:24 +0000 (16:30 +0200)]
peepopt.muldiv: Add a signedness check.
Fixes #2318.
Marcelina Kościelnicka [Sun, 2 Aug 2020 10:31:25 +0000 (12:31 +0200)]
techmap: Add support for [] wildcards in techmap_celltype.
Fixes #1826.
Zachary Snow [Sat, 1 Aug 2020 02:13:05 +0000 (20:13 -0600)]
Fix generate scoping issues
- expand_genblock defers prefixing of items within named sub-blocks
- Allow partially-qualified references to local scopes
- Handle shadowing within generate blocks
- Resolve generate scope references within tasks and functions
- Apply generate scoping to genvars
- Resolves #2214, resolves #1456
Claire Wolf [Fri, 31 Jul 2020 18:57:41 +0000 (20:57 +0200)]
Bump YOSYS_VER
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
Marcelina Kościelnicka [Mon, 27 Jul 2020 13:24:57 +0000 (15:24 +0200)]
Add dffunmap pass.
To be used with backends that cannot deal with fancy FF types (like blif
or smt).
Marcelina Kościelnicka [Fri, 24 Jul 2020 11:08:54 +0000 (13:08 +0200)]
opt_expr: Remove -clkinv option, make it the default.
Adds -noclkinv option just in case the old behavior was actually useful
to someone.
Marcelina Kościelnicka [Wed, 22 Jul 2020 11:34:11 +0000 (13:34 +0200)]
synth_ice40: Use opt_dff.
The main part is converting ice40_dsp to recognize the new FF types
created in opt_dff instead of trying to recognize the mux patterns on
its own.
The fsm call has been moved upwards because the passes cannot deal with
$dffe/$sdff*, and other optimizations don't help it much anyway.
Marcelina Kościelnicka [Wed, 22 Jul 2020 10:27:15 +0000 (12:27 +0200)]
synth_xilinx: Use opt_dff.
The main part is converting xilinx_dsp to recognize the new FF types
created in opt_dff instead of trying to recognize the patterns on its
own.
The fsm call has been moved upwards because the passes cannot deal with
$dffe/$sdff*, and other optimizations don't help it much anyway.
Marcelina Kościelnicka [Fri, 24 Jul 2020 15:01:26 +0000 (17:01 +0200)]
async2sync: Support all FF types.
Marcelina Kościelnicka [Tue, 14 Jul 2020 22:58:07 +0000 (00:58 +0200)]
Add opt_dff pass.
Marcelina Kościelnicka [Tue, 23 Jun 2020 21:46:00 +0000 (23:46 +0200)]
verilog_backend: Add handling for all FF types.
Miodrag Milanović [Wed, 29 Jul 2020 13:41:26 +0000 (15:41 +0200)]
Merge pull request #2314 from YosysHQ/verifix_errorfix
Verific - prevent exit yosys due to stored error
Miodrag Milanovic [Wed, 29 Jul 2020 13:28:33 +0000 (15:28 +0200)]
Clear last error message
Marcelina Kościelnicka [Wed, 29 Jul 2020 08:00:01 +0000 (10:00 +0200)]
opt_expr: Fix handling of $_XNOR_ cells with A = B.
Fixes #2311.
Marcelina Kościelnicka [Tue, 28 Jul 2020 00:11:29 +0000 (02:11 +0200)]
ffinit: Fortify the code a bit.
This fixes handling of messy cases involving repeatedly setting and
removing the same init bit.
clairexen [Tue, 28 Jul 2020 12:07:26 +0000 (14:07 +0200)]
Merge pull request #2301 from zachjs/for-loop-errors
Clearer for loop error messages
clairexen [Tue, 28 Jul 2020 10:56:22 +0000 (12:56 +0200)]
Merge pull request #2306 from YosysHQ/mwk/equiv_induct-undef
equiv_induct: Fix up assumption for $equiv cells in -undef mode.
Marcelina Kościelnicka [Mon, 27 Jul 2020 16:28:01 +0000 (18:28 +0200)]
equiv_induct: Fix up assumption for $equiv cells in -undef mode.
Before this fix, equiv_induct only assumed that one of the following is
true:
- defined value of A is equal to defined value of B
- A is undefined
This lets through valuations where A is defined, B is undefined, and
the defined (meaningless) value of B happens to match the defined value
of A. Instead, tighten this up to OR of the following:
- defined value of A is equal to defined value of B, and B is not
undefined
- A is undefined
Dan Ravensloft [Sun, 26 Jul 2020 18:28:10 +0000 (19:28 +0100)]
intel_alm: direct M10K instantiation
This reverts commit
a3a90f6377f251d3b6c5898eb1543f8832493bb8.
Dan Ravensloft [Sun, 26 Jul 2020 18:11:55 +0000 (19:11 +0100)]
intel_alm: increase abc9 -W
clairexen [Sun, 26 Jul 2020 19:34:55 +0000 (21:34 +0200)]
Merge pull request #2299 from zachjs/arg-loop
Avoid generating wires for function args which are constant
Zachary Snow [Sat, 25 Jul 2020 16:35:03 +0000 (10:35 -0600)]
Clearer for loop error messages
Zachary Snow [Sat, 25 Jul 2020 16:16:12 +0000 (10:16 -0600)]
Allow blocks with declarations within constant functions
Zachary Snow [Sat, 25 Jul 2020 03:18:24 +0000 (21:18 -0600)]
Avoid generating wires for function args which are constant
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:25:30 +0000 (03:25 +0200)]
async2sync: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:28:55 +0000 (02:28 +0200)]
memory_dff: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:25:32 +0000 (02:25 +0200)]
proc_dlatch: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:19:38 +0000 (02:19 +0200)]
pmux2shift: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:19:23 +0000 (02:19 +0200)]
wreduce: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:17:31 +0000 (02:17 +0200)]
techmap: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:14:15 +0000 (02:14 +0200)]
shregmap: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:07:24 +0000 (02:07 +0200)]
abc: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:06:25 +0000 (02:06 +0200)]
dffinit: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:05:32 +0000 (02:05 +0200)]
zinit: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:04:38 +0000 (02:04 +0200)]
dfflegalize: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:25:41 +0000 (03:25 +0200)]
clk2fflogic: Support all FF types.
Marcelina Kościelnicka [Mon, 20 Jul 2020 20:49:30 +0000 (22:49 +0200)]
satgen: Add support for dffe, sdff, sdffe, sdffce cells.
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:51:05 +0000 (03:51 +0200)]
Add utility module for representing flip-flops.
Marcelina Kościelnicka [Mon, 20 Jul 2020 21:58:00 +0000 (23:58 +0200)]
memory_dff: recognize more dff cells
Marcelina Kościelnicka [Sat, 18 Jul 2020 23:59:47 +0000 (01:59 +0200)]
Add utility module for dealing with init attributes.
clairexen [Thu, 23 Jul 2020 16:39:42 +0000 (18:39 +0200)]
Merge pull request #2285 from YosysHQ/mwk/techmap-cellname
techmap: Add _TECHMAP_CELLNAME_ special parameter.
clairexen [Thu, 23 Jul 2020 16:21:20 +0000 (18:21 +0200)]
Merge pull request #2294 from Ravenslofty/intel_alm_timings
intel_alm: add additional ABC9 timings
Dan Ravensloft [Tue, 21 Jul 2020 12:58:38 +0000 (13:58 +0100)]
intel_alm: add additional ABC9 timings
Keith Rothman [Mon, 19 Aug 2019 15:42:09 +0000 (08:42 -0700)]
Remove EXPLICIT_CARRY logic.
The symbiflow-arch-defs tool chain no longer needs the EXPLICIT_CARRY
within yosys itself.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
Marcelina Kościelnicka [Tue, 21 Jul 2020 13:00:54 +0000 (15:00 +0200)]
techmap: Add _TECHMAP_CELLNAME_ special parameter.
This parameter will resolve to the name of the cell being mapped. The
first user of this parameter will be synth_intel_alm's Quartus output,
which requires a unique (and preferably descriptive) name passed as
a cell parameter for the memory cells.
clairexen [Tue, 21 Jul 2020 12:43:33 +0000 (14:43 +0200)]
Merge pull request #2215 from boqwxp/qbfsat-solver-options
qbfsat, smt2, smtio: Add `-solver-option` to allow specifying SMT-LIBv2 `(set-option ...)` commands
Alberto Gonzalez [Mon, 20 Jul 2020 22:09:44 +0000 (22:09 +0000)]
smtio: Emit `mode: start` options before `set-logic` command and any other options after it.
Refer to the SMT-LIB specification, section 4.1.7. According to the spec, some options can only be specified in `start` mode. Once the solver sees `set-logic`, it moves to `assert` mode.
Alberto Gonzalez [Wed, 1 Jul 2020 20:04:56 +0000 (20:04 +0000)]
smtio: Add support for parsing `yosys-smt2-solver-option` info statements.
Alberto Gonzalez [Mon, 29 Jun 2020 04:41:18 +0000 (04:41 +0000)]
qbfsat: Add `-solver-option` option.
Alberto Gonzalez [Wed, 1 Jul 2020 20:51:14 +0000 (20:51 +0000)]
smt2: Add `-solver-option` option.
clairexen [Mon, 20 Jul 2020 21:06:36 +0000 (23:06 +0200)]
Merge pull request #2282 from YosysHQ/claire/satunsat
Only allow "sat" and "unsat" smt solver responses in yosys-smtbmc
Marcelina Kościelnicka [Mon, 20 Jul 2020 19:43:05 +0000 (21:43 +0200)]
celltypes: Fix EN port name for some FF types.
Claire Wolf [Mon, 20 Jul 2020 17:35:32 +0000 (19:35 +0200)]
Only allow "sat" and "unsat" smt solver responses in yosys-smtbmc
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
clairexen [Mon, 20 Jul 2020 13:23:14 +0000 (15:23 +0200)]
Merge pull request #2276 from YosysHQ/mwk/satgen-cc
satgen: Move importCell out of the header.
Zachary Snow [Mon, 20 Jul 2020 02:27:09 +0000 (20:27 -0600)]
Allow reals as constant function parameters
Marcelina Kościelnicka [Sat, 18 Jul 2020 22:17:02 +0000 (00:17 +0200)]
satgen: Move importCell out of the header.
This function has no hope of ever getting inlined anyway, and it speeds
up yosys compile time by 7%.
Miodrag Milanović [Fri, 17 Jul 2020 13:05:46 +0000 (15:05 +0200)]
Merge pull request #2275 from YosysHQ/mwk/sf2-clkint-fix
sf2: Emit CLKINT even if -clkbuf not passed