yosys.git
3 years agoBump version
Yosys Bot [Wed, 27 Jan 2021 00:10:04 +0000 (00:10 +0000)]
Bump version

3 years agoxilinx_dffopt: Don't crash on missing IS_*_INVERTED.
Marcelina Kościelnicka [Mon, 25 Jan 2021 12:01:18 +0000 (13:01 +0100)]
xilinx_dffopt: Don't crash on missing IS_*_INVERTED.

The presence of IS_*_INVERTED on FD* cells follows Vivado, which
apparently has been decided by a dice roll.  Just assume false if the
parameter doesn't exist.

Fixes #2559.

3 years agoxilinx: Add FDRSE_1, FDCPE_1.
Marcelina Kościelnicka [Mon, 25 Jan 2021 12:01:24 +0000 (13:01 +0100)]
xilinx: Add FDRSE_1, FDCPE_1.

3 years agoMerge pull request #2563 from whitequark/cxxrtl-msvc
whitequark [Tue, 26 Jan 2021 21:55:12 +0000 (21:55 +0000)]
Merge pull request #2563 from whitequark/cxxrtl-msvc

cxxrtl: do not use `->template` for non-dependent names

3 years agoMerge pull request #2544 from modwizcode/fix-clock
whitequark [Tue, 26 Jan 2021 21:18:06 +0000 (21:18 +0000)]
Merge pull request #2544 from modwizcode/fix-clock

CXXRTL: Fix sliced bits as clock inputs

3 years agocxxrtl: do not use `->template` for non-dependent names.
whitequark [Tue, 26 Jan 2021 17:42:23 +0000 (17:42 +0000)]
cxxrtl: do not use `->template` for non-dependent names.

This breaks build on MSVC but not GCC/Clang.

3 years agoBump version
Yosys Bot [Tue, 26 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2549 from pgadfort/support-multiple-libs
whitequark [Mon, 25 Jan 2021 10:36:14 +0000 (10:36 +0000)]
Merge pull request #2549 from pgadfort/support-multiple-libs

adding support for passing multiple liberty files to abc

3 years agoMerge pull request #2550 from zachjs/macro-arg-spaces
whitequark [Mon, 25 Jan 2021 10:36:07 +0000 (10:36 +0000)]
Merge pull request #2550 from zachjs/macro-arg-spaces

verilog: allow spaces in macro arguments

3 years agoBump version
Yosys Bot [Mon, 25 Jan 2021 00:10:07 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2558 from YosysHQ/dave/chandle-dpi
Claire Xen [Sun, 24 Jan 2021 01:45:08 +0000 (02:45 +0100)]
Merge pull request #2558 from YosysHQ/dave/chandle-dpi

dpi: Support for chandle type

3 years agodpi: Support for chandle type
David Shah [Sat, 23 Jan 2021 22:24:31 +0000 (22:24 +0000)]
dpi: Support for chandle type

Signed-off-by: David Shah <dave@ds0.me>
3 years agoBump version
Yosys Bot [Fri, 22 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2553 from zachjs/rand-const-modifiers
Miodrag Milanović [Thu, 21 Jan 2021 15:56:19 +0000 (16:56 +0100)]
Merge pull request #2553 from zachjs/rand-const-modifiers

Allow combination of rand and const modifiers

3 years agoAllow combination of rand and const modifiers
Zachary Snow [Thu, 21 Jan 2021 15:30:55 +0000 (08:30 -0700)]
Allow combination of rand and const modifiers

3 years agoBump version
Yosys Bot [Thu, 21 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2552 from YosysHQ/claire/yosyshq
Claire Xen [Wed, 20 Jan 2021 23:54:45 +0000 (00:54 +0100)]
Merge pull request #2552 from YosysHQ/claire/yosyshq

Switch verific bindings from Symbiotic EDA flavored Verific to YosysHQ flavored Verific

3 years agoSwitch verific bindings from Symbiotic EDA flavored Verific to YosysHQ flavored Verific
Claire Xenia Wolf [Wed, 20 Jan 2021 19:48:10 +0000 (20:48 +0100)]
Switch verific bindings from Symbiotic EDA flavored Verific to YosysHQ flavored Verific

Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
3 years agoMerge pull request #2536 from TobiasFaller/master
Miodrag Milanović [Wed, 20 Jan 2021 19:42:02 +0000 (20:42 +0100)]
Merge pull request #2536 from TobiasFaller/master

Fixed missing goto statement in passes/techmap/abc.cc

3 years agoMerge pull request #2551 from zachjs/wire-logic
Miodrag Milanović [Wed, 20 Jan 2021 17:31:49 +0000 (18:31 +0100)]
Merge pull request #2551 from zachjs/wire-logic

sv: fix support wire and var data type modifiers

3 years agosv: fix support wire and var data type modifiers
Zachary Snow [Wed, 20 Jan 2021 16:15:48 +0000 (09:15 -0700)]
sv: fix support wire and var data type modifiers

3 years agoverilog: allow spaces in macro arguments
Zachary Snow [Wed, 20 Jan 2021 15:49:32 +0000 (08:49 -0700)]
verilog: allow spaces in macro arguments

3 years agoBump version
Yosys Bot [Tue, 19 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoadding support for passing multiple liberty files to abc
Peter Gadfort [Mon, 18 Jan 2021 21:47:49 +0000 (16:47 -0500)]
adding support for passing multiple liberty files to abc

3 years agoMerge pull request #2547 from zachjs/plugin-so-dsym
whitequark [Mon, 18 Jan 2021 20:21:20 +0000 (20:21 +0000)]
Merge pull request #2547 from zachjs/plugin-so-dsym

Add plugin.so.dSYM to .gitignore

3 years agoMerge pull request #2312 from antmicro/typedef-inout
whitequark [Mon, 18 Jan 2021 20:20:52 +0000 (20:20 +0000)]
Merge pull request #2312 from antmicro/typedef-inout

Add support for user types in IOs

3 years agoAdd plugin.so.dSYM to .gitignore
Zachary Snow [Mon, 18 Jan 2021 18:13:21 +0000 (11:13 -0700)]
Add plugin.so.dSYM to .gitignore

This artifact is automatically generated by the builtin clang on macOS
when -g is used.

3 years agoAdd typedef input/output test
Kamil Rakoczy [Wed, 8 Jul 2020 11:44:03 +0000 (13:44 +0200)]
Add typedef input/output test

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
3 years agoFix input/output attributes when resolving typedef of wire
Kamil Rakoczy [Tue, 9 Jun 2020 07:53:00 +0000 (09:53 +0200)]
Fix input/output attributes when resolving typedef of wire

Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
3 years agoParse package user type in module port list
Lukasz Dalek [Tue, 19 May 2020 15:13:04 +0000 (17:13 +0200)]
Parse package user type in module port list

Signed-off-by: Lukasz Dalek <ldalek@antmicro.com>
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
3 years agoImproves the previous commit with a more complete coverage of the cases
Iris Johnson [Fri, 15 Jan 2021 19:59:20 +0000 (13:59 -0600)]
Improves the previous commit with a more complete coverage of the cases

3 years agoBump version
Yosys Bot [Fri, 15 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoHandle sliced bits as clock inputs (fixes #2542)
Iris Johnson [Thu, 14 Jan 2021 22:26:20 +0000 (16:26 -0600)]
Handle sliced bits as clock inputs (fixes #2542)

3 years agoopt_share: Fix X and CO signal width for shifted $alu in opt_share.
Marcelina Kościelnicka [Thu, 14 Jan 2021 08:58:33 +0000 (09:58 +0100)]
opt_share: Fix X and CO signal width for shifted $alu in opt_share.

These need to be the same length as actual Y, not visible part of Y.

Fixes #2538.

3 years agoBump version
Yosys Bot [Thu, 14 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2537 from pepijndevos/spice
Claire Xen [Wed, 13 Jan 2021 18:08:25 +0000 (19:08 +0100)]
Merge pull request #2537 from pepijndevos/spice

Add buffer option to spice backend

3 years agoadd buffer option to spice backend
Pepijn de Vos [Wed, 13 Jan 2021 16:24:28 +0000 (17:24 +0100)]
add buffer option to spice backend

3 years agoFixed missing goto statement in passes/techmap/abc.cc
Tobias Faller [Tue, 12 Jan 2021 15:17:51 +0000 (16:17 +0100)]
Fixed missing goto statement in passes/techmap/abc.cc

3 years agoBump version
Yosys Bot [Tue, 5 Jan 2021 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2522 from tomverbeure/simlib_typos2
whitequark [Mon, 4 Jan 2021 14:04:17 +0000 (14:04 +0000)]
Merge pull request #2522 from tomverbeure/simlib_typos2

Fix some trivial typos.

3 years agoFix some trivial typos.
Tom Verbeure [Mon, 4 Jan 2021 07:52:59 +0000 (23:52 -0800)]
Fix some trivial typos.

3 years agoBump version
Yosys Bot [Sat, 2 Jan 2021 00:10:04 +0000 (00:10 +0000)]
Bump version

3 years agoMerge pull request #2480 from YosysHQ/dave/nexus-lram
whitequark [Fri, 1 Jan 2021 09:49:00 +0000 (09:49 +0000)]
Merge pull request #2480 from YosysHQ/dave/nexus-lram

nexus: Add LRAM inference

3 years agoMerge pull request #2512 from umarcor/plugin-err
whitequark [Fri, 1 Jan 2021 09:39:17 +0000 (09:39 +0000)]
Merge pull request #2512 from umarcor/plugin-err

plugin: enhance no-plugin error

3 years agoMerge pull request #2515 from umarcor/fix/ghdl
whitequark [Fri, 1 Jan 2021 09:37:12 +0000 (09:37 +0000)]
Merge pull request #2515 from umarcor/fix/ghdl

makefile: fix GHDL vars, replace GHDL_DIR with GHDL_PREFIX

3 years agoMerge pull request #2518 from zachjs/recursion
whitequark [Fri, 1 Jan 2021 09:32:26 +0000 (09:32 +0000)]
Merge pull request #2518 from zachjs/recursion

verilog: improved support for recursive functions

3 years agoMerge pull request #2517 from zachjs/sv-tf-implied-direction
whitequark [Fri, 1 Jan 2021 09:31:49 +0000 (09:31 +0000)]
Merge pull request #2517 from zachjs/sv-tf-implied-direction

sv: complete support for implied task/function port directions

3 years agoverilog: improved support for recursive functions
Zachary Snow [Fri, 1 Jan 2021 00:23:36 +0000 (17:23 -0700)]
verilog: improved support for recursive functions

3 years agosv: complete support for implied task/function port directions
Zachary Snow [Thu, 31 Dec 2020 23:14:35 +0000 (16:14 -0700)]
sv: complete support for implied task/function port directions

3 years agomakefile: fix GHDL vars, replace GHDL_DIR with GHDL_PREFIX
umarcor [Wed, 30 Dec 2020 06:06:52 +0000 (07:06 +0100)]
makefile: fix GHDL vars, replace GHDL_DIR with GHDL_PREFIX

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

3 years agoplugin: enhance no-plugin error
umarcor [Mon, 28 Dec 2020 03:30:57 +0000 (04:30 +0100)]
plugin: enhance no-plugin error

3 years agoMerge pull request #2509 from zachjs/issue-2427
whitequark [Tue, 29 Dec 2020 02:59:09 +0000 (02:59 +0000)]
Merge pull request #2509 from zachjs/issue-2427

Fix elaboration of whole memory words used as indices

3 years agoMerge pull request #2514 from umarcor/feat/ghdl
whitequark [Tue, 29 Dec 2020 02:58:41 +0000 (02:58 +0000)]
Merge pull request #2514 from umarcor/feat/ghdl

makefile: add support for built-in ghdl-yosys-plugin

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

3 years agomakefile: add support for built-in ghdl-yosys-plugin
umarcor [Mon, 28 Dec 2020 01:24:41 +0000 (02:24 +0100)]
makefile: add support for built-in ghdl-yosys-plugin

Co-authored-by: Tristan Gingold <tgingold@free.fr>
Co-authored-by: whitequark <whitequark@whitequark.org>
3 years agoMerge pull request #2511 from umarcor/feat/msys2-32
whitequark [Mon, 28 Dec 2020 02:33:58 +0000 (02:33 +0000)]
Merge pull request #2511 from umarcor/feat/msys2-32

Update MSYS2 build system

3 years agoMerge pull request #2507 from umarcor/fix/msys2
whitequark [Mon, 28 Dec 2020 02:33:30 +0000 (02:33 +0000)]
Merge pull request #2507 from umarcor/fix/msys2

kernel/yosys.h: undef CONST on WIN32

3 years agomakefile: rename msys2 to msys2-32, config PREFIX
umarcor [Sun, 27 Dec 2020 04:37:46 +0000 (05:37 +0100)]
makefile: rename msys2 to msys2-32, config PREFIX

3 years agokernel/yosys.h: undef CONST on WIN32
umarcor [Sat, 26 Dec 2020 22:21:30 +0000 (23:21 +0100)]
kernel/yosys.h: undef CONST on WIN32

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

3 years agoMerge pull request #2510 from YosysHQ/whitequark/CODEOWNERS-verilog-ast
Claire Xen [Sun, 27 Dec 2020 15:33:58 +0000 (16:33 +0100)]
Merge pull request #2510 from YosysHQ/whitequark/CODEOWNERS-verilog-ast

CODEOWNERS: add @zachjs as Verilog/AST frontend owner

3 years agoCODEOWNERS: add @zachjs as Verilog/AST frontend owner
whitequark [Sun, 27 Dec 2020 05:00:04 +0000 (05:00 +0000)]
CODEOWNERS: add @zachjs as Verilog/AST frontend owner

3 years agoFix elaboration of whole memory words used as indices
Zachary Snow [Sun, 27 Dec 2020 04:38:13 +0000 (21:38 -0700)]
Fix elaboration of whole memory words used as indices

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

3 years agoMerge pull request #2506 from zachjs/const-arg-redeclare
Miodrag Milanović [Sat, 26 Dec 2020 17:59:06 +0000 (18:59 +0100)]
Merge pull request #2506 from zachjs/const-arg-redeclare

Fix constants bound to redeclared function args

3 years agoFix constants bound to redeclared function args
Zachary Snow [Sat, 26 Dec 2020 15:39:57 +0000 (08:39 -0700)]
Fix constants bound to redeclared function args

The changes in #2476 ensured that function inputs like `input x;`
retained their single-bit size when instantiated with a constant
argument and turned into a localparam. That change did not handle the
possibility for an input to be redeclared later on with an explicit
width, such as `integer x;`.

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

3 years agoMerge pull request #2502 from ldoolitt/master
whitequark [Wed, 23 Dec 2020 23:36:13 +0000 (23:36 +0000)]
Merge pull request #2502 from ldoolitt/master

passes/pmgen/pmgen.py: trivial change to remove C++ compiler warnings

3 years agoMerge pull request #2501 from zachjs/genrtlil-tern-sign
whitequark [Wed, 23 Dec 2020 23:15:56 +0000 (23:15 +0000)]
Merge pull request #2501 from zachjs/genrtlil-tern-sign

genrtlil: fix mux2rtlil generated wire signedness

3 years agoMerge pull request #2476 from zachjs/const-arg-width
whitequark [Wed, 23 Dec 2020 23:15:30 +0000 (23:15 +0000)]
Merge pull request #2476 from zachjs/const-arg-width

Fix constants bound to single bit arguments (fixes #2383)

3 years agopasses/pmgen/pmgen.py: trivial change to remove C++ compiler warnings
Larry Doolittle [Wed, 23 Dec 2020 22:38:25 +0000 (14:38 -0800)]
passes/pmgen/pmgen.py: trivial change to remove C++ compiler warnings

Verified that the result still builds and passes self-tests

3 years agogenrtlil: fix mux2rtlil generated wire signedness
Zachary Snow [Wed, 23 Dec 2020 00:38:51 +0000 (17:38 -0700)]
genrtlil: fix mux2rtlil generated wire signedness

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

3 years agoFix constants bound to single bit arguments (fixes #2383)
Zachary Snow [Sun, 6 Dec 2020 01:56:18 +0000 (18:56 -0700)]
Fix constants bound to single bit arguments (fixes #2383)

3 years agoMerge pull request #2499 from whitequark/cxxrtl-fixes
whitequark [Tue, 22 Dec 2020 12:00:38 +0000 (12:00 +0000)]
Merge pull request #2499 from whitequark/cxxrtl-fixes

cxxrtl: don't crash generating debug information for unused wires

3 years agocxxrtl: don't crash generating debug information for unused wires.
whitequark [Tue, 22 Dec 2020 06:46:44 +0000 (06:46 +0000)]
cxxrtl: don't crash generating debug information for unused wires.

3 years agoMerge pull request #2498 from StefanBruens/Fix_opt_lut
whitequark [Tue, 22 Dec 2020 06:15:04 +0000 (06:15 +0000)]
Merge pull request #2498 from StefanBruens/Fix_opt_lut

Fix use-after-free in LUT opt pass

3 years agoMerge pull request #2497 from whitequark/cxxrtl-reflow
whitequark [Tue, 22 Dec 2020 06:12:39 +0000 (06:12 +0000)]
Merge pull request #2497 from whitequark/cxxrtl-reflow

cxxrtl: completely rewrite netlist layout code

3 years agocxxrtl: split processes into sync and case nodes.
whitequark [Tue, 22 Dec 2020 00:07:45 +0000 (00:07 +0000)]
cxxrtl: split processes into sync and case nodes.

Similar to the treatment of black boxes, splitting processes into two
scheduling nodes adds sufficient freedom so that netlists with
well-behaved processes (e.g. those emitted by nMigen) can immediately
converge.

Because processes are not emitted into edge-triggered regions, this
approach has comparable performance to -O5 (without -noproc), which
is substantially slower than -O6.

3 years agokernel: undef Tcl macros interfering with cxxrtl.
whitequark [Mon, 21 Dec 2020 21:17:33 +0000 (21:17 +0000)]
kernel: undef Tcl macros interfering with cxxrtl.

3 years agocxxrtl: completely rewrite netlist layout code.
whitequark [Mon, 21 Dec 2020 21:00:46 +0000 (21:00 +0000)]
cxxrtl: completely rewrite netlist layout code.

The exact shape of C++ code emitted by CXXRTL has a critical effect
on performance, both compile-time and runtime. CXXRTL's performance
greatly improved when it started localizing and inlining wires, not
only because this assists the optimizer and register allocator, but
also because inlining code into edge-triggered regions cuts the time
spent in eval() by at least a factor of two.

However, the logic of netlist layout has always been ad-hoc, fragile,
and very hard to understand and modify. After commit ece25a45, which
introduced outlining, the same logic started being applied to two
distinct netlists at once instead of one, which barely worked.

This commit does four major changes:
  * There is now a single unambiguous source of truth (per subgraph)
    for the layout of any emitted wire.
  * Netlist layout is now done entirely during analysis using well
    known graph algorithms; no graph operations happen when emitting.
  * Netlist layout now happens completely separately for eval() and
    debug_eval() subgraphs.
  * Unreachable (within subgraph scope) netlist nodes are now neither
    emitted nor considered for wire inlining decisions.
The netlist layout code should also now closely match the described
semantics.

As a part of this large cleanup, it includes many miscellaneous
improvements:
  * The "bare minimum" debug level introduced in commit dd6a761d was
    split into two levels; -g1 now emits debug information *only* for
    inputs and state wires, and -g2 now emits debug information for
    all public members. The old behavior matches -g2. This is done
    to avoid bloat on low optimization levels.
  * Debug aliases and inlined connections are now handled separately,
    and complex RHS never interferes with inlined connections.
  * Aliases to outlined wires now carry a pointer to the outline.
  * Cell sync outputs can now be emitted in debug_eval().
  * Black box debug information now includes comb/sync driver flags.
  * The comment emitted for inlined cells is now accurate.
  * Debug information statistics now has less noise.
  * Netlist layout code is now much better documented.

Due to more precise inlining decisions, unmodified (i.e. with no
Yosys script being used) netlists now have much more logic inlined
into edge-triggered regions. On Minerva SoC SRAM, this improves
runtime by 20-25% across compilers and optimization levels.

Due to more precise reachability analysis, much less C++ code is now
emitted, especially at the maximum debug level. On Minerva SoC SRAM,
this improves clang compile time by 30-50% depending on options.
gcc is not affected.

3 years agoFix use-after-free in LUT opt pass
StefanBruens [Tue, 22 Dec 2020 02:23:42 +0000 (03:23 +0100)]
Fix use-after-free in LUT opt pass

RTLIL::Module::remove(Cell* cell) calls `delete cell`.

Any subsequent accesses of `cell` then causes undefined behavior.

3 years agoMerge pull request #2479 from zachjs/const-arg-hint
whitequark [Tue, 22 Dec 2020 01:31:25 +0000 (01:31 +0000)]
Merge pull request #2479 from zachjs/const-arg-hint

Allow constant function calls in constant function arguments

3 years agoMerge pull request #2491 from zachjs/port-bind-sign
whitequark [Tue, 22 Dec 2020 01:30:29 +0000 (01:30 +0000)]
Merge pull request #2491 from zachjs/port-bind-sign

Sign extend port connections where necessary

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

3 years agocxxrtl: simplify logic choosing wire type. NFCI.
whitequark [Mon, 21 Dec 2020 06:05:42 +0000 (06:05 +0000)]
cxxrtl: simplify logic choosing wire type. NFCI.

3 years agocxxrtl: clarify node use-def construction. NFCI.
whitequark [Mon, 21 Dec 2020 06:04:10 +0000 (06:04 +0000)]
cxxrtl: clarify node use-def construction. NFCI.

3 years agocxxrtl: fix typo.
whitequark [Mon, 21 Dec 2020 07:24:26 +0000 (07:24 +0000)]
cxxrtl: fix typo.

3 years agoxilinx: Add some missing blackbox cells.
Marcelina Kościelnicka [Sat, 19 Dec 2020 17:14:06 +0000 (18:14 +0100)]
xilinx: Add some missing blackbox cells.

3 years agoxilinx: Regenerate cells_xtra.v using Vivado 2020.2
Marcelina Kościelnicka [Fri, 18 Dec 2020 19:51:26 +0000 (20:51 +0100)]
xilinx: Regenerate cells_xtra.v using Vivado 2020.2

3 years agoMerge pull request #2496 from whitequark/cxxrtl-fixes
whitequark [Mon, 21 Dec 2020 04:32:18 +0000 (04:32 +0000)]
Merge pull request #2496 from whitequark/cxxrtl-fixes

cxxrtl: various improvements

3 years agocxxrtl: speed up bit repeats (sign extends, etc).
whitequark [Mon, 21 Dec 2020 02:15:55 +0000 (02:15 +0000)]
cxxrtl: speed up bit repeats (sign extends, etc).

On Minerva SoC SRAM, depending on the compiler, this change improves
overall time by 4-7%.

3 years agocxxrtl: speed up commits on clang.
whitequark [Mon, 21 Dec 2020 00:22:50 +0000 (00:22 +0000)]
cxxrtl: speed up commits on clang.

On Minerva SoC SRAM compiled with clang-11, this change cuts commit
time in half (!) and overall time by 20%. When compiled with gcc-10,
there is no difference.

3 years agocxxrtl: use `static inline` instead of `inline` in the C API.
whitequark [Sun, 20 Dec 2020 14:48:16 +0000 (14:48 +0000)]
cxxrtl: use `static inline` instead of `inline` in the C API.

In C, non-static inline functions require an implementation elsewhere
(even though the body is right there in the header). It is basically
never desirable to use those as opposed to static inline ones.

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

3 years agoMerge pull request #2487 from whitequark/cxxrtl-outlining
whitequark [Sat, 19 Dec 2020 04:14:31 +0000 (04:14 +0000)]
Merge pull request #2487 from whitequark/cxxrtl-outlining

CXXRTL: implement zero-cost full coverage debug information through the magic✨ of outlining🪄🎀🧹

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 [Fri, 18 Dec 2020 00:10:05 +0000 (00:10 +0000)]
Bump version

3 years agoxilinx: Add FDDRCPE and FDDRRSE blackbox cells.
Marcelina Kościelnicka [Wed, 16 Dec 2020 23:24:48 +0000 (00:24 +0100)]
xilinx: Add FDDRCPE and FDDRRSE blackbox cells.

These are necessary primitives for proper DDR support on Virtex 2 and
Spartan 3.