yosys.git
3 years agosynth_ice40: Use opt_dff.
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.

3 years agosynth_xilinx: Use opt_dff.
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.

3 years agoasync2sync: Support all FF types.
Marcelina Kościelnicka [Fri, 24 Jul 2020 15:01:26 +0000 (17:01 +0200)]
async2sync: Support all FF types.

3 years agoAdd opt_dff pass.
Marcelina Kościelnicka [Tue, 14 Jul 2020 22:58:07 +0000 (00:58 +0200)]
Add opt_dff pass.

3 years agoverilog_backend: Add handling for all FF types.
Marcelina Kościelnicka [Tue, 23 Jun 2020 21:46:00 +0000 (23:46 +0200)]
verilog_backend: Add handling for all FF types.

3 years agoMerge pull request #2314 from YosysHQ/verifix_errorfix
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

3 years agoClear last error message
Miodrag Milanovic [Wed, 29 Jul 2020 13:28:33 +0000 (15:28 +0200)]
Clear last error message

3 years agoopt_expr: Fix handling of $_XNOR_ cells with A = B.
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.

3 years agoffinit: Fortify the code a bit.
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.

3 years agoMerge pull request #2301 from zachjs/for-loop-errors
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

3 years agoMerge pull request #2306 from YosysHQ/mwk/equiv_induct-undef
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.

3 years agoequiv_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

3 years agointel_alm: direct M10K instantiation
Dan Ravensloft [Sun, 26 Jul 2020 18:28:10 +0000 (19:28 +0100)]
intel_alm: direct M10K instantiation

This reverts commit a3a90f6377f251d3b6c5898eb1543f8832493bb8.

3 years agointel_alm: increase abc9 -W
Dan Ravensloft [Sun, 26 Jul 2020 18:11:55 +0000 (19:11 +0100)]
intel_alm: increase abc9 -W

3 years agoMerge pull request #2299 from zachjs/arg-loop
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

3 years agoClearer for loop error messages
Zachary Snow [Sat, 25 Jul 2020 16:35:03 +0000 (10:35 -0600)]
Clearer for loop error messages

3 years agoAvoid generating wires for function args which are constant
Zachary Snow [Sat, 25 Jul 2020 03:18:24 +0000 (21:18 -0600)]
Avoid generating wires for function args which are constant

3 years agoasync2sync: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:25:30 +0000 (03:25 +0200)]
async2sync: Refactor to use FfInitVals.

3 years agomemory_dff: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:28:55 +0000 (02:28 +0200)]
memory_dff: Refactor to use FfInitVals.

3 years agoproc_dlatch: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:25:32 +0000 (02:25 +0200)]
proc_dlatch: Refactor to use FfInitVals.

3 years agopmux2shift: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:19:38 +0000 (02:19 +0200)]
pmux2shift: Refactor to use FfInitVals.

3 years agowreduce: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:19:23 +0000 (02:19 +0200)]
wreduce: Refactor to use FfInitVals.

3 years agotechmap: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:17:31 +0000 (02:17 +0200)]
techmap: Refactor to use FfInitVals.

3 years agoshregmap: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:14:15 +0000 (02:14 +0200)]
shregmap: Refactor to use FfInitVals.

3 years agoabc: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:07:24 +0000 (02:07 +0200)]
abc: Refactor to use FfInitVals.

3 years agodffinit: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:06:25 +0000 (02:06 +0200)]
dffinit: Refactor to use FfInitVals.

3 years agozinit: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:05:32 +0000 (02:05 +0200)]
zinit: Refactor to use FfInitVals.

3 years agodfflegalize: Refactor to use FfInitVals.
Marcelina Kościelnicka [Sun, 19 Jul 2020 00:04:38 +0000 (02:04 +0200)]
dfflegalize: Refactor to use FfInitVals.

3 years agoclk2fflogic: Support all FF types.
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:25:41 +0000 (03:25 +0200)]
clk2fflogic: Support all FF types.

3 years agosatgen: Add support for dffe, sdff, sdffe, sdffce cells.
Marcelina Kościelnicka [Mon, 20 Jul 2020 20:49:30 +0000 (22:49 +0200)]
satgen: Add support for dffe, sdff, sdffe, sdffce cells.

3 years agoAdd utility module for representing flip-flops.
Marcelina Kościelnicka [Sun, 19 Jul 2020 01:51:05 +0000 (03:51 +0200)]
Add utility module for representing flip-flops.

3 years agomemory_dff: recognize more dff cells
Marcelina Kościelnicka [Mon, 20 Jul 2020 21:58:00 +0000 (23:58 +0200)]
memory_dff: recognize more dff cells

3 years agoAdd utility module for dealing with init attributes.
Marcelina Kościelnicka [Sat, 18 Jul 2020 23:59:47 +0000 (01:59 +0200)]
Add utility module for dealing with init attributes.

3 years agoMerge pull request #2285 from YosysHQ/mwk/techmap-cellname
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.

3 years agoMerge pull request #2294 from Ravenslofty/intel_alm_timings
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

3 years agointel_alm: add additional ABC9 timings
Dan Ravensloft [Tue, 21 Jul 2020 12:58:38 +0000 (13:58 +0100)]
intel_alm: add additional ABC9 timings

3 years agoRemove EXPLICIT_CARRY logic.
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>
3 years agotechmap: Add _TECHMAP_CELLNAME_ special parameter.
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.

3 years agoMerge pull request #2215 from boqwxp/qbfsat-solver-options
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

3 years agosmtio: Emit `mode: start` options before `set-logic` command and any other options...
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.

3 years agosmtio: Add support for parsing `yosys-smt2-solver-option` info statements.
Alberto Gonzalez [Wed, 1 Jul 2020 20:04:56 +0000 (20:04 +0000)]
smtio: Add support for parsing `yosys-smt2-solver-option` info statements.

3 years agoqbfsat: Add `-solver-option` option.
Alberto Gonzalez [Mon, 29 Jun 2020 04:41:18 +0000 (04:41 +0000)]
qbfsat: Add `-solver-option` option.

3 years agosmt2: Add `-solver-option` option.
Alberto Gonzalez [Wed, 1 Jul 2020 20:51:14 +0000 (20:51 +0000)]
smt2: Add `-solver-option` option.

3 years agoMerge pull request #2282 from YosysHQ/claire/satunsat
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

3 years agocelltypes: Fix EN port name for some FF types.
Marcelina Kościelnicka [Mon, 20 Jul 2020 19:43:05 +0000 (21:43 +0200)]
celltypes: Fix EN port name for some FF types.

3 years agoOnly allow "sat" and "unsat" smt solver responses in yosys-smtbmc
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>
4 years agoMerge pull request #2276 from YosysHQ/mwk/satgen-cc
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.

4 years agosatgen: Move importCell out of the header.
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%.

4 years agoMerge pull request #2275 from YosysHQ/mwk/sf2-clkint-fix
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

4 years agosf2: Emit CLKINT even if -clkbuf not passed
Marcelina Kościelnicka [Fri, 17 Jul 2020 13:01:45 +0000 (15:01 +0200)]
sf2: Emit CLKINT even if -clkbuf not passed

This restores pre #2229 behavior.

4 years agoMerge pull request #2274 from YosysHQ/mwk/anlogic-ff-fix
Miodrag Milanović [Fri, 17 Jul 2020 12:39:31 +0000 (14:39 +0200)]
Merge pull request #2274 from YosysHQ/mwk/anlogic-ff-fix

anlogic: Fix FF mapping.

4 years agoanlogic: Fix FF mapping.
Marcelina Kościelnicka [Fri, 17 Jul 2020 12:03:21 +0000 (14:03 +0200)]
anlogic: Fix FF mapping.

4 years agoMerge pull request #2229 from Ravenslofty/sf2_remove_sf2_iobs
clairexen [Thu, 16 Jul 2020 16:33:56 +0000 (18:33 +0200)]
Merge pull request #2229 from Ravenslofty/sf2_remove_sf2_iobs

sf2: replace sf2_iobs with {clkbuf,iopad}map

4 years agoMerge pull request #2273 from whitequark/write-verilog-always-star-initial
clairexen [Thu, 16 Jul 2020 16:30:50 +0000 (18:30 +0200)]
Merge pull request #2273 from whitequark/write-verilog-always-star-initial

verilog_backend: in non-SV mode, add a trigger for `always @*`

4 years agoMerge pull request #2272 from whitequark/write-verilog-sv
clairexen [Thu, 16 Jul 2020 16:28:24 +0000 (18:28 +0200)]
Merge pull request #2272 from whitequark/write-verilog-sv

verilog_backend: add `-sv` option, make `-o <filename>.sv` work

4 years agoMerge pull request #2238 from YosysHQ/mwk/dfflegalize-anlogic
Miodrag Milanović [Thu, 16 Jul 2020 16:07:58 +0000 (18:07 +0200)]
Merge pull request #2238 from YosysHQ/mwk/dfflegalize-anlogic

anlogic: Use dfflegalize.

4 years agoMerge pull request #2226 from YosysHQ/mwk/nuke-efinix-gbuf
Miodrag Milanović [Thu, 16 Jul 2020 16:07:41 +0000 (18:07 +0200)]
Merge pull request #2226 from YosysHQ/mwk/nuke-efinix-gbuf

efinix: Nuke efinix_gbuf in favor of clkbufmap.

4 years agoverilog_backend: in non-SV mode, add a trigger for `always @*`.
whitequark [Thu, 16 Jul 2020 11:26:31 +0000 (11:26 +0000)]
verilog_backend: in non-SV mode, add a trigger for `always @*`.

This commit only affects translation of RTLIL processes (for which
there is limited support).

Due to the event-driven nature of Verilog, processes like

    reg x;
    always @*
        x <= 1;

may never execute. This can be fixed in SystemVerilog code by using
`always_comb` instead of `always @*`, but in Verilog-2001 the options
are limited. This commit implements the following workaround:

    reg init = 0;
    reg x;
    always @* begin
        if (init) begin end
        x <= 1;
    end

Fixes #2271.

4 years agoverilog_backend: add `-sv` option, make `-o <filename>.sv` work.
whitequark [Thu, 16 Jul 2020 10:34:21 +0000 (10:34 +0000)]
verilog_backend: add `-sv` option, make `-o <filename>.sv` work.

See #2271.

4 years agoMerge pull request #2270 from whitequark/cxxrtl-fix-typo
whitequark [Thu, 16 Jul 2020 09:48:10 +0000 (09:48 +0000)]
Merge pull request #2270 from whitequark/cxxrtl-fix-typo

cxxrtl: fix typo

4 years agoMerge pull request #2269 from YosysHQ/claire/bisonwall
whitequark [Wed, 15 Jul 2020 19:20:33 +0000 (19:20 +0000)]
Merge pull request #2269 from YosysHQ/claire/bisonwall

Use "bison -Wall -Werror" for verilog front-end

4 years agoTreat all bison warnings as errors in verilog front-end
Claire Wolf [Wed, 15 Jul 2020 09:57:31 +0000 (11:57 +0200)]
Treat all bison warnings as errors in verilog front-end

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoUse %precedence in verilog_parser.y
Claire Wolf [Wed, 15 Jul 2020 09:54:28 +0000 (11:54 +0200)]
Use %precedence in verilog_parser.y

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoFix bison warnings for missing %empty
Claire Wolf [Tue, 14 Jul 2020 22:04:23 +0000 (00:04 +0200)]
Fix bison warnings for missing %empty

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoRun bison with -Wall for verilog front-end
Claire Wolf [Tue, 14 Jul 2020 22:04:04 +0000 (00:04 +0200)]
Run bison with -Wall for verilog front-end

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoMerge pull request #2257 from antmicro/fix-conflicts
clairexen [Wed, 15 Jul 2020 09:49:09 +0000 (11:49 +0200)]
Merge pull request #2257 from antmicro/fix-conflicts

Restore #2203 and #2244 and fix parser conflicts

4 years agoAdd missing semicolons
Kamil Rakoczy [Wed, 15 Jul 2020 08:15:13 +0000 (10:15 +0200)]
Add missing semicolons

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
4 years agoopt_merge: Dedup one more use of FF cell type list.
Marcelina Kościelnicka [Wed, 15 Jul 2020 00:30:25 +0000 (02:30 +0200)]
opt_merge: Dedup one more use of FF cell type list.

4 years agoachronix: Use dfflegalize.
Marcelina Kościelnicka [Thu, 2 Jul 2020 22:22:28 +0000 (00:22 +0200)]
achronix: Use dfflegalize.

4 years agocxxrtl: fix typo. NFC.
whitequark [Tue, 14 Jul 2020 16:10:30 +0000 (16:10 +0000)]
cxxrtl: fix typo. NFC.

4 years agoanlogic: Use dfflegalize.
Marcelina Kościelnicka [Thu, 2 Jul 2020 22:22:44 +0000 (00:22 +0200)]
anlogic: Use dfflegalize.

4 years agointel: Use dfflegalize.
Marcelina Kościelnicka [Sun, 5 Jul 2020 02:02:42 +0000 (04:02 +0200)]
intel: Use dfflegalize.

4 years agoRevert "intel_alm: direct M10K instantiation"
Lofty [Mon, 13 Jul 2020 13:08:52 +0000 (14:08 +0100)]
Revert "intel_alm: direct M10K instantiation"

This reverts commit 09ecb9b2cf3ab76841d30712bf70dafc6d47ef67.

4 years agoMerge pull request #2263 from whitequark/cxxrtl-capi-eval-commit
whitequark [Mon, 13 Jul 2020 02:44:36 +0000 (02:44 +0000)]
Merge pull request #2263 from whitequark/cxxrtl-capi-eval-commit

cxxrtl: expose eval() and commit() via the C API

4 years agocxxrtl: expose eval() and commit() via the C API.
whitequark [Sun, 12 Jul 2020 23:34:18 +0000 (23:34 +0000)]
cxxrtl: expose eval() and commit() via the C API.

4 years agoxilinx: Fix srl regression.
Marcelina Kościelnicka [Sun, 12 Jul 2020 15:54:07 +0000 (17:54 +0200)]
xilinx: Fix srl regression.

Of standard yosys cells, xilinx_srl only works on $_DFF_?_ and
$_DFFE_?P_, which get upgraded to $_SDFFE_?P?P_ by dfflegalize at the
point where xilinx_srl is called for non-abc9.  Fix this by running
ff_map.v first, resulting in FDRE cells, which are handled correctly.

4 years agoproc_dlatch: Remove init values for combinatorial processes.
Marcelina Kościelnicka [Sun, 12 Jul 2020 13:38:51 +0000 (15:38 +0200)]
proc_dlatch: Remove init values for combinatorial processes.

Fixes #2258.

4 years agodfflegalize: Gather init values from all wires.
Marcelina Kościelnicka [Sun, 12 Jul 2020 13:39:40 +0000 (15:39 +0200)]
dfflegalize: Gather init values from all wires.

Skipping non-selected wires is unsound in an obvious way.

4 years agoMerge pull request #2256 from YosysHQ/claire/fix2241
clairexen [Fri, 10 Jul 2020 17:07:50 +0000 (19:07 +0200)]
Merge pull request #2256 from YosysHQ/claire/fix2241

Add AST_EDGE support to AstNode::detect_latch()

4 years agoAdd AST_EDGE support to AstNode::detect_latch(), fixes #2241
Claire Wolf [Fri, 10 Jul 2020 16:41:13 +0000 (18:41 +0200)]
Add AST_EDGE support to AstNode::detect_latch(), fixes #2241

Signed-off-by: Claire Wolf <claire@symbioticeda.com>
4 years agoFix S/R conflicts
Kamil Rakoczy [Fri, 10 Jul 2020 12:56:14 +0000 (14:56 +0200)]
Fix S/R conflicts

This commit fixes S/R conflicts introduced by commit 6f9be93.

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
4 years agoFix R/R conflicts
Kamil Rakoczy [Fri, 10 Jul 2020 08:14:31 +0000 (10:14 +0200)]
Fix R/R conflicts

This commit fixes R/R conflicts introduced by commit 7e83a51.
Parameter logic is already defined as part of `param_range_type` rule.

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
4 years agoRevert "Revert PRs #2203 and #2244."
Kamil Rakoczy [Fri, 10 Jul 2020 07:59:48 +0000 (09:59 +0200)]
Revert "Revert PRs #2203 and #2244."

This reverts commit 9c120b89ace6c111aa4677616947d18d980b9c1a.

4 years agosf2: replace sf2_iobs with {clkbuf,iopad}map
Dan Ravensloft [Sat, 4 Jul 2020 20:20:26 +0000 (21:20 +0100)]
sf2: replace sf2_iobs with {clkbuf,iopad}map

4 years agoMerge pull request #2255 from whitequark/bison-Werror-conflicts
whitequark [Thu, 9 Jul 2020 20:17:19 +0000 (20:17 +0000)]
Merge pull request #2255 from whitequark/bison-Werror-conflicts

verilog_parser: turn S/R and R/R conflicts into hard errors

4 years agoMerge pull request #2254 from whitequark/cxxrtl-extern-c
whitequark [Thu, 9 Jul 2020 20:17:12 +0000 (20:17 +0000)]
Merge pull request #2254 from whitequark/cxxrtl-extern-c

cxxrtl: add missing extern "C"

4 years agosf2: Use dfflegalize.
Marcelina Kościelnicka [Thu, 2 Jul 2020 16:22:29 +0000 (18:22 +0200)]
sf2: Use dfflegalize.

4 years agoverilog_parser: turn S/R and R/R conflicts into hard errors.
whitequark [Thu, 9 Jul 2020 19:36:39 +0000 (19:36 +0000)]
verilog_parser: turn S/R and R/R conflicts into hard errors.

Fixes #2253.

4 years agoRevert PRs #2203 and #2244.
whitequark [Thu, 9 Jul 2020 18:13:04 +0000 (18:13 +0000)]
Revert PRs #2203 and #2244.

This reverts commit 7e83a51fc96495c558a31fc3ca6c1a5ba4764f15.
This reverts commit b422f2e4d0b8d5bfa97913d6b9dee488b59fc405.
This reverts commit 7cb56f34b06de666935fbda315ce7c7bd45048b3.
This reverts commit 6f9be939bd7653b0bdcae93a1033a086a4561b68.
This reverts commit 76a34dc5f3a60c89efeaa3378ca0e2700a8aebd2.

4 years agocxxrtl: add missing extern "C".
whitequark [Thu, 9 Jul 2020 17:52:52 +0000 (17:52 +0000)]
cxxrtl: add missing extern "C".

This bug was hidden if a header was generated.

4 years agoxilinx: Use dfflegalize.
Marcelina Kościelnicka [Tue, 23 Jun 2020 16:51:51 +0000 (18:51 +0200)]
xilinx: Use dfflegalize.

4 years agodfflibmap: Refactor to use dfflegalize internally.
Marcelina Kościelnicka [Thu, 2 Jul 2020 16:22:43 +0000 (18:22 +0200)]
dfflibmap: Refactor to use dfflegalize internally.

4 years agoFix issue #2251 (#2252)
Lucas Castro [Thu, 9 Jul 2020 16:50:26 +0000 (13:50 -0300)]
Fix issue #2251 (#2252)

* Fix #2251 - YosysJS ReferenceError: _memset is not defined.
Add '_memset' in emcc EXPORTED_FUNCTIONS in Makefile.

4 years agoclkbufmap: improve input pad handling.
Marcelina Kościelnicka [Sat, 4 Jul 2020 21:09:00 +0000 (23:09 +0200)]
clkbufmap: improve input pad handling.

- allow inserting only the input pad cell
- do not insert the usual buffer if the input pad already acts as a
  buffer

4 years agoMerge pull request #2244 from antmicro/logic
clairexen [Thu, 9 Jul 2020 16:39:30 +0000 (18:39 +0200)]
Merge pull request #2244 from antmicro/logic

Add logic type support to parameters

4 years agoclk2fflogic: Consistently treat async control signals as negative hold.
Marcelina Kościelnicka [Tue, 7 Jul 2020 12:22:04 +0000 (14:22 +0200)]
clk2fflogic: Consistently treat async control signals as negative hold.

This fixes some dfflegalize equivalence checks, and breaks others — and
I strongly suspect the others are due to bad support for multiple
async inputs in `proc` (in particular, lack of proper support for
dlatchsr and sketchy circuits on dffsr control inputs).

4 years agodfflegalize: Add special support for const-D latches.
Marcelina Kościelnicka [Mon, 6 Jul 2020 20:52:05 +0000 (22:52 +0200)]
dfflegalize: Add special support for const-D latches.

Those can be created by `opt_dff` when optimizing `$adff` with const
clock, or with D == Q.  Make dfflegalize do the opposite transform
when such dlatches would be otherwise unimplementable.

4 years agoMerge pull request #2246 from YosysHQ/mwk/dfflegalize-typo
whitequark [Tue, 7 Jul 2020 22:46:37 +0000 (22:46 +0000)]
Merge pull request #2246 from YosysHQ/mwk/dfflegalize-typo

dfflegalize: typo fix

4 years agodfflegalize: typo fix
Marcelina Kościelnicka [Tue, 7 Jul 2020 13:00:52 +0000 (15:00 +0200)]
dfflegalize: typo fix

4 years agoefinix: Use dfflegalize.
Marcelina Kościelnicka [Thu, 2 Jul 2020 22:23:32 +0000 (00:23 +0200)]
efinix: Use dfflegalize.