yosys.git
3 years agoSign extend port connections where necessary
Zachary Snow [Fri, 18 Dec 2020 19:59:08 +0000 (12:59 -0700)]
Sign extend port connections where necessary

- Signed cell outputs are sign extended when bound to larger wires
- Signed connections are sign extended when bound to larger cell inputs
- Sign extension is performed in hierarchy and flatten phases
- genrtlil indirects signed constants through signed wires
- Other phases producing RTLIL may need to be updated to preserve
  signedness information
- Resolves #1418
- Resolves #2265

3 years agoBump version
Yosys Bot [Tue, 15 Dec 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agotiminginfo: Error instead of segfault on const signals.
Marcelina Kościelnicka [Mon, 14 Dec 2020 17:14:42 +0000 (18:14 +0100)]
timinginfo: Error instead of segfault on const signals.

Reported by @Ravenslofty

3 years agoBump version
Yosys Bot [Sun, 13 Dec 2020 00:10:07 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2485 from whitequark/cxxrtl-cell-input-buffering
whitequark [Sat, 12 Dec 2020 19:55:57 +0000 (19:55 +0000)]
Merge pull request #2485 from whitequark/cxxrtl-cell-input-buffering

cxxrtl: don't overwrite buffered inputs

3 years agocxxrtl: don't overwrite buffered inputs.
whitequark [Fri, 11 Dec 2020 23:30:32 +0000 (23:30 +0000)]
cxxrtl: don't overwrite buffered inputs.

Before this commit, a cell's input was always assigned like:

    p_cell.p_input = (value...);

If `p_input` is buffered (e.g. if the design is built at -O0), this
is not correct. (In practice, this breaks clocking.) Unfortunately,
the incorrect design was compiled without diagnostics because wire<>
was move-assignable and also implicitly constructible from value<>.

After this commit, cell inputs are no longer incorrectly assumed to
always be unbuffered, and wires are not assignable from values.

3 years agoBump version
Yosys Bot [Thu, 10 Dec 2020 00:10:10 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2483 from YosysHQ/pmgen_nice_error
Miodrag Milanović [Wed, 9 Dec 2020 10:19:30 +0000 (11:19 +0100)]
Merge pull request #2483 from YosysHQ/pmgen_nice_error

Return nice error in pmgen generated code, fixes #2482

3 years agoReturn nice error in pmgen generated code, fixes #2482
Miodrag Milanovic [Wed, 9 Dec 2020 10:06:22 +0000 (11:06 +0100)]
Return nice error in pmgen generated code, fixes #2482

3 years agoBump version
Yosys Bot [Wed, 9 Dec 2020 00:10:04 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2478 from whitequark/improve-bugpoint
whitequark [Tue, 8 Dec 2020 07:32:11 +0000 (07:32 +0000)]
Merge pull request #2478 from whitequark/improve-bugpoint

bugpoint: various improvements

3 years agobugpoint: add -wires option.
whitequark [Mon, 7 Dec 2020 09:24:35 +0000 (09:24 +0000)]
bugpoint: add -wires option.

3 years agobugpoint: try to remove whole processes first.
whitequark [Mon, 7 Dec 2020 08:27:25 +0000 (08:27 +0000)]
bugpoint: try to remove whole processes first.

3 years agobugpoint: accept quoted strings in -grep.
whitequark [Mon, 7 Dec 2020 08:23:32 +0000 (08:23 +0000)]
bugpoint: accept quoted strings in -grep.

3 years agobugpoint: add -command option.
whitequark [Mon, 7 Dec 2020 08:42:45 +0000 (08:42 +0000)]
bugpoint: add -command option.

3 years agoBump version
Yosys Bot [Fri, 4 Dec 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2470 from whitequark/cxxrtl-create_at
whitequark [Thu, 3 Dec 2020 02:35:23 +0000 (02:35 +0000)]
Merge pull request #2470 from whitequark/cxxrtl-create_at

cxxrtl: allow customizing the root module path in the C API

3 years agocxxrtl: allow customizing the root module path in the C API.
whitequark [Thu, 3 Dec 2020 01:58:02 +0000 (01:58 +0000)]
cxxrtl: allow customizing the root module path in the C API.

3 years agoBump version
Yosys Bot [Thu, 3 Dec 2020 00:10:09 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2468 from whitequark/cxxrtl-assert
whitequark [Wed, 2 Dec 2020 23:36:22 +0000 (23:36 +0000)]
Merge pull request #2468 from whitequark/cxxrtl-assert

cxxrtl: use CXXRTL_ASSERT for RTL contract violations instead of assert

3 years agoMerge pull request #2469 from whitequark/cxxrtl-no-clk
whitequark [Wed, 2 Dec 2020 23:36:03 +0000 (23:36 +0000)]
Merge pull request #2469 from whitequark/cxxrtl-no-clk

cxxrtl: fix crashes caused by a floating or constant clock input

3 years agoMerge pull request #2466 from whitequark/cxxrtl-reset
whitequark [Wed, 2 Dec 2020 23:35:54 +0000 (23:35 +0000)]
Merge pull request #2466 from whitequark/cxxrtl-reset

cxxrtl: provide a way to perform unobtrusive power-on reset

3 years agoMerge pull request #2456 from Zottel/master
whitequark [Wed, 2 Dec 2020 22:20:02 +0000 (22:20 +0000)]
Merge pull request #2456 from Zottel/master

Return correct modname when found in cache.

3 years agoMerge pull request #2455 from gsomlo/gls-fedpkg-fixes
whitequark [Wed, 2 Dec 2020 22:19:52 +0000 (22:19 +0000)]
Merge pull request #2455 from gsomlo/gls-fedpkg-fixes

Fixes for building Fedora distro RPMs of yosys

3 years agoMerge pull request #2467 from YosysHQ/dave/nexus-carry-fix
David Shah [Wed, 2 Dec 2020 22:07:25 +0000 (22:07 +0000)]
Merge pull request #2467 from YosysHQ/dave/nexus-carry-fix

nexus: More efficient CO mapping

3 years agocxxrtl: fix crashes caused by a floating or constant clock input.
whitequark [Wed, 2 Dec 2020 21:39:25 +0000 (21:39 +0000)]
cxxrtl: fix crashes caused by a floating or constant clock input.

E.g. in:

    module test;
        wire clk = 0;
        reg data;
        always @(posedge clk)
            data <= 0;
    endmodule

3 years agoMerge pull request #2446 from RobertBaruch/rtlil_format
whitequark [Wed, 2 Dec 2020 19:50:51 +0000 (19:50 +0000)]
Merge pull request #2446 from RobertBaruch/rtlil_format

Adds appendix on RTLIL text format

3 years agocxxrtl: use CXXRTL_ASSERT for RTL contract violations instead of assert.
whitequark [Wed, 2 Dec 2020 19:41:00 +0000 (19:41 +0000)]
cxxrtl: use CXXRTL_ASSERT for RTL contract violations instead of assert.

RTL contract violations and C++ contract violations are different:
the former depend on the netlist and will never violate memory safety
whereas the latter may. When loading a CXXRTL simulation into another
process, RTL contract violations should generally not crash it, while
C++ contract violations should.

3 years agonexus: More efficient CO mapping
David Shah [Wed, 2 Dec 2020 17:08:39 +0000 (17:08 +0000)]
nexus: More efficient CO mapping

Signed-off-by: David Shah <dave@ds0.me>
3 years agoBump required Verific version
Miodrag Milanovic [Wed, 2 Dec 2020 14:18:04 +0000 (15:18 +0100)]
Bump required Verific version

3 years agocxxrtl: provide a way to perform unobtrusive power-on reset.
whitequark [Wed, 2 Dec 2020 08:25:27 +0000 (08:25 +0000)]
cxxrtl: provide a way to perform unobtrusive power-on reset.

Although it is always possible to destroy and recreate the design to
simulate a power-on reset, this has two drawbacks:
  * Black boxes are also destroyed and recreated, which causes them
    to reacquire their resources, which might be costly and/or erase
    important state.
  * Pointers into the design are invalidated and have to be acquired
    again, which is costly and might be very inconvenient if they are
    captured elsewhere (especially through the C API).

3 years agoBump version
Yosys Bot [Wed, 2 Dec 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2463 from georgerennie/fix_verilog_frontend_auto_defines
Claire Xen [Tue, 1 Dec 2020 11:31:34 +0000 (12:31 +0100)]
Merge pull request #2463 from georgerennie/fix_verilog_frontend_auto_defines

Fix SYNTHESIS always being defined in Verilog frontend

3 years agoMerge pull request #2460 from pepijndevos/simple-gowin
Miodrag Milanović [Tue, 1 Dec 2020 08:18:37 +0000 (09:18 +0100)]
Merge pull request #2460 from pepijndevos/simple-gowin

add -noalu and -json option for apicula

3 years agoFix SYNTHESIS always being defined in Verilog frontend
georgerennie [Tue, 1 Dec 2020 01:37:19 +0000 (01:37 +0000)]
Fix SYNTHESIS always being defined in Verilog frontend

3 years agoadd -noalu and -json option for apicula
Pepijn de Vos [Mon, 30 Nov 2020 10:43:12 +0000 (11:43 +0100)]
add -noalu and -json option for apicula

3 years agoReturn correct modname when found in cache.
Julius Roob [Thu, 26 Nov 2020 12:28:28 +0000 (13:28 +0100)]
Return correct modname when found in cache.

3 years agofixup over commit 829b5cca to re-enable ABCEXTERNAL support
Gabriel Somlo [Wed, 25 Nov 2020 17:29:59 +0000 (12:29 -0500)]
fixup over commit 829b5cca to re-enable ABCEXTERNAL support

3 years agoAdd #include needed to build with gcc-11
Gabriel Somlo [Wed, 25 Nov 2020 13:46:26 +0000 (08:46 -0500)]
Add #include needed to build with gcc-11

Suggested by Jeff Law <law@redhat.com>

3 years agoBump version
Yosys Bot [Thu, 26 Nov 2020 00:10:09 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2452 from whitequark/rtlil-remove-dot-identifiers
whitequark [Wed, 25 Nov 2020 21:22:14 +0000 (21:22 +0000)]
Merge pull request #2452 from whitequark/rtlil-remove-dot-identifiers

rtlil: remove dotted identifiers

3 years agoFurther juggles the wording of "character".
Robert Baruch [Wed, 25 Nov 2020 20:02:35 +0000 (12:02 -0800)]
Further juggles the wording of "character".

3 years agoClarifies how character encodings work.
Robert Baruch [Wed, 25 Nov 2020 19:57:17 +0000 (11:57 -0800)]
Clarifies how character encodings work.

3 years agoMerge pull request #2453 from YosysHQ/mmicko/verilog_assignments
Miodrag Milanović [Wed, 25 Nov 2020 18:15:11 +0000 (19:15 +0100)]
Merge pull request #2453 from YosysHQ/mmicko/verilog_assignments

Generate only simple assignments in verilog backend

3 years agoClarifies whitespace and eol.
Robert Baruch [Wed, 25 Nov 2020 18:06:22 +0000 (10:06 -0800)]
Clarifies whitespace and eol.

3 years agoCleans up doublequotes
Robert Baruch [Wed, 25 Nov 2020 17:58:36 +0000 (09:58 -0800)]
Cleans up doublequotes

3 years agoClarifies use of integers, and character set.
Robert Baruch [Wed, 25 Nov 2020 17:53:39 +0000 (09:53 -0800)]
Clarifies use of integers, and character set.

3 years agoAdd verilog backend option for simple_lhs
Miodrag Milanovic [Wed, 25 Nov 2020 17:21:41 +0000 (18:21 +0100)]
Add verilog backend option for simple_lhs

3 years agoClarifies processes, corrects some attributes
Robert Baruch [Wed, 25 Nov 2020 16:59:25 +0000 (08:59 -0800)]
Clarifies processes, corrects some attributes

3 years agortlil: remove dotted identifiers.
whitequark [Wed, 25 Nov 2020 16:47:20 +0000 (16:47 +0000)]
rtlil: remove dotted identifiers.

No one knows where they came from and they never did anything useful.

3 years agogenerate only simple assignments in verilog backend
Miodrag Milanovic [Wed, 25 Nov 2020 16:43:28 +0000 (17:43 +0100)]
generate only simple assignments in verilog backend

3 years agoMerge pull request #2133 from dh73/nodev_head
Claire Xen [Wed, 25 Nov 2020 08:44:23 +0000 (09:44 +0100)]
Merge pull request #2133 from dh73/nodev_head

Adding latch tests for shift&mask AST dynamic part-select enhancements

3 years agoRefactors for attributes.
Robert Baruch [Wed, 25 Nov 2020 05:59:53 +0000 (21:59 -0800)]
Refactors for attributes.

3 years agoMerge pull request #2442 from cr1901/sccache
whitequark [Wed, 25 Nov 2020 02:48:39 +0000 (02:48 +0000)]
Merge pull request #2442 from cr1901/sccache

Makefile: Add disabled-by-default ENABLE_SCCACHE config option.

3 years agoMerge pull request #2450 from nitz/sim-vcd-filename
whitequark [Wed, 25 Nov 2020 02:48:10 +0000 (02:48 +0000)]
Merge pull request #2450 from nitz/sim-vcd-filename

Add rewrite_filename for sim -vcd argument.

3 years agoMakefile: Update ABCREV to bring in sccache fixes.
William D. Jones [Wed, 25 Nov 2020 02:32:27 +0000 (21:32 -0500)]
Makefile: Update ABCREV to bring in sccache fixes.

3 years agoBump version
Yosys Bot [Wed, 25 Nov 2020 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoCleans up some descriptions and syntax
Robert Baruch [Tue, 24 Nov 2020 23:27:30 +0000 (15:27 -0800)]
Cleans up some descriptions and syntax

Now all rules ending in "-stmt" end in eol.

3 years agoAdd rewrite_filename for sim -vcd argument.
Chris Dailey [Tue, 24 Nov 2020 20:17:16 +0000 (15:17 -0500)]
Add rewrite_filename for sim -vcd argument.

3 years agoMerge pull request #2428 from whitequark/check-processes
whitequark [Tue, 24 Nov 2020 15:04:42 +0000 (15:04 +0000)]
Merge pull request #2428 from whitequark/check-processes

check: add support for processes

3 years agoMerge pull request #2448 from nitz/tcl-script-documentation-fixes
Miodrag Milanović [Tue, 24 Nov 2020 06:51:56 +0000 (07:51 +0100)]
Merge pull request #2448 from nitz/tcl-script-documentation-fixes

Tcl script documentation fixes

3 years agoMerge pull request #2295 from epfl-vlsc/firrtl_blackbox_generic_parameters
Miodrag Milanović [Tue, 24 Nov 2020 06:50:17 +0000 (07:50 +0100)]
Merge pull request #2295 from epfl-vlsc/firrtl_blackbox_generic_parameters

Add firrtl backend support for generic parameters in blackbox components

3 years agotcl -h message only if YOSYS_ENABLE_TCL defined.
nitz [Tue, 24 Nov 2020 02:48:44 +0000 (21:48 -0500)]
tcl -h message only if YOSYS_ENABLE_TCL defined.

3 years agoFormatting fixes
Sahand Kashani [Mon, 23 Nov 2020 09:43:59 +0000 (10:43 +0100)]
Formatting fixes

3 years agoAdds missing "end" and eol to module.
Robert Baruch [Mon, 23 Nov 2020 05:08:58 +0000 (21:08 -0800)]
Adds missing "end" and eol to module.

3 years agoUpdate to Values #2
Robert Baruch [Mon, 23 Nov 2020 02:50:41 +0000 (18:50 -0800)]
Update to Values #2

3 years agoUpdate to Values section
Robert Baruch [Mon, 23 Nov 2020 02:48:21 +0000 (18:48 -0800)]
Update to Values section

3 years agoAdds appendix on RTLIL text format
Robert Baruch [Sun, 22 Nov 2020 20:56:29 +0000 (12:56 -0800)]
Adds appendix on RTLIL text format

3 years agoBump version
Yosys Bot [Sat, 21 Nov 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2443 from YosysHQ/dave/nexus-mult-infer
Miodrag Milanović [Fri, 20 Nov 2020 09:30:56 +0000 (10:30 +0100)]
Merge pull request #2443 from YosysHQ/dave/nexus-mult-infer

nexus: Multiplier inference support

3 years agonexus: DSP inference support
David Shah [Fri, 20 Nov 2020 08:26:58 +0000 (08:26 +0000)]
nexus: DSP inference support

Signed-off-by: David Shah <dave@ds0.me>
3 years agoMakefile: Add disabled-by-default ENABLE_SCCACHE config option.
William D. Jones [Thu, 19 Nov 2020 18:23:54 +0000 (13:23 -0500)]
Makefile: Add disabled-by-default ENABLE_SCCACHE config option.

3 years agoBump version
Yosys Bot [Thu, 19 Nov 2020 00:10:10 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2441 from YosysHQ/dave/nexus_dsp_sim
Miodrag Milanović [Wed, 18 Nov 2020 11:22:05 +0000 (12:22 +0100)]
Merge pull request #2441 from YosysHQ/dave/nexus_dsp_sim

nexus: Add DSP simulation model

3 years agonexus: Add DSP simulation model
David Shah [Tue, 17 Nov 2020 11:56:18 +0000 (11:56 +0000)]
nexus: Add DSP simulation model

Signed-off-by: David Shah <dave@ds0.me>
3 years agoFix duplicated parameter name typo
Miodrag Milanovic [Wed, 18 Nov 2020 09:03:57 +0000 (10:03 +0100)]
Fix duplicated parameter name typo

3 years agoBump version
Yosys Bot [Tue, 17 Nov 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agobackends/blif: Remove unused vector of strings (#2420)
William Woodruff [Mon, 16 Nov 2020 08:31:48 +0000 (03:31 -0500)]
backends/blif: Remove unused vector of strings (#2420)

* backends/blif: Remove unused vector of strings

For reasons that are unclear to me, this was being used to store every
result of `cstr` before returning them. The vector was never accessed otherwise,
resulting in a huge unnecessary memory sink when emitting to BLIF.

* backends/blif: Remove CSTR macro

* backends/blif: Actually call str()

3 years agoMerge pull request #2438 from kbeckmann/gowin_rpll
Miodrag Milanović [Mon, 16 Nov 2020 08:30:54 +0000 (09:30 +0100)]
Merge pull request #2438 from kbeckmann/gowin_rpll

synth_gowin: Add rPLL blackbox

3 years agosynth_gowin: Add rPLL blackbox
Konrad Beckmann [Wed, 11 Nov 2020 16:01:50 +0000 (17:01 +0100)]
synth_gowin: Add rPLL blackbox

3 years agoBump version
Yosys Bot [Wed, 11 Nov 2020 00:10:17 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2433 from YosysHQ/paths_as_globals
Miodrag Milanović [Tue, 10 Nov 2020 07:05:42 +0000 (08:05 +0100)]
Merge pull request #2433 from YosysHQ/paths_as_globals

Expose abc and data paths as globals for pyosys

3 years agoBump version
Yosys Bot [Sun, 8 Nov 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2414 from zeldin/abc-depend-clang-fix
whitequark [Sat, 7 Nov 2020 18:48:03 +0000 (18:48 +0000)]
Merge pull request #2414 from zeldin/abc-depend-clang-fix

Prevent CXXFLAGS from leaking to abc Makefile

3 years agoPrevent CXXFLAGS from leaking to abc Makefile
Marcus Comstedt [Tue, 27 Oct 2020 13:04:28 +0000 (14:04 +0100)]
Prevent CXXFLAGS from leaking to abc Makefile

This fixes an issue with abc/depends.sh when the compiler is clang.

3 years agoMerge pull request #2432 from Xiretza/nexus-tests
Miodrag Milanović [Sat, 7 Nov 2020 14:07:45 +0000 (15:07 +0100)]
Merge pull request #2432 from Xiretza/nexus-tests

Update nexus arch tests to new harness

3 years agoExpose abc and data paths as globals
Miodrag Milanovic [Fri, 6 Nov 2020 13:17:15 +0000 (14:17 +0100)]
Expose abc and data paths as globals

3 years agocheck: add support for processes.
whitequark [Tue, 3 Nov 2020 15:36:27 +0000 (15:36 +0000)]
check: add support for processes.

3 years agocheck: reformat log/help text to match most other passes
whitequark [Mon, 2 Nov 2020 06:33:03 +0000 (06:33 +0000)]
check: reformat log/help text to match most other passes

3 years agoBump version
Yosys Bot [Tue, 3 Nov 2020 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2426 from whitequark/cxxrtl-auto-top
whitequark [Mon, 2 Nov 2020 20:58:10 +0000 (20:58 +0000)]
Merge pull request #2426 from whitequark/cxxrtl-auto-top

cxxrtl: run `hierarchy -auto-top` if no top module is present

3 years agocxxrtl: run `hierarchy -auto-top` if no top module is present.
whitequark [Mon, 2 Nov 2020 19:18:56 +0000 (19:18 +0000)]
cxxrtl: run `hierarchy -auto-top` if no top module is present.

In most cases, a CXXRTL simulation would use a top module, either
because this module serves as an entry point to the CXXRTL C API,
or because the outputs of a top module are unbuffered, improving
performance. Taking this into account, the CXXRTL backend now runs
`hierarchy -auto-top` if there is no top module. For the few cases
where this behavior is unwanted, it now accepts a `-nohierarchy`
option.

Fixes #2373.

3 years agoBump version
Yosys Bot [Mon, 2 Nov 2020 00:10:06 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2425 from whitequark/cxxrtl-meminit-constness
whitequark [Sun, 1 Nov 2020 17:08:42 +0000 (17:08 +0000)]
Merge pull request #2425 from whitequark/cxxrtl-meminit-constness

cxxrtl: don't assert on non-constant $meminit inputs

3 years agocxxrtl: don't assert on non-constant $meminit inputs.
whitequark [Sun, 1 Nov 2020 15:25:55 +0000 (15:25 +0000)]
cxxrtl: don't assert on non-constant $meminit inputs.

Fixes #2129.

3 years agoMerge pull request #2424 from whitequark/cxxrtl-multiple-drivers
whitequark [Sun, 1 Nov 2020 13:52:59 +0000 (13:52 +0000)]
Merge pull request #2424 from whitequark/cxxrtl-multiple-drivers

cxxrtl: don't assert on wires with multiple drivers

3 years agocxxrtl: don't assert on wires with multiple drivers.
whitequark [Sun, 1 Nov 2020 12:49:20 +0000 (12:49 +0000)]
cxxrtl: don't assert on wires with multiple drivers.

Fixes #2374.

3 years agoBump version
Yosys Bot [Sun, 1 Nov 2020 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2416 from QuantamHD/master
whitequark [Sat, 31 Oct 2020 07:59:44 +0000 (07:59 +0000)]
Merge pull request #2416 from QuantamHD/master

Adds support for defining abc location at runtime

3 years agoBump version
Yosys Bot [Sat, 31 Oct 2020 00:10:15 +0000 (00:10 +0000)]
Bump version