David Shah [Tue, 14 Apr 2020 19:39:13 +0000 (20:39 +0100)]
cxxrtl: Fix handling of unclocked memory read ports
Signed-off-by: David Shah <dave@ds0.me>
Marcelina Kościelnicka [Tue, 14 Apr 2020 14:33:09 +0000 (16:33 +0200)]
dffinit: Avoid setting init parameter to zero-length value.
Fixes #1704.
Eddie Hung [Tue, 14 Apr 2020 14:54:11 +0000 (07:54 -0700)]
abc9_exe: verify -> &verify -s
Eddie Hung [Thu, 9 Apr 2020 21:31:59 +0000 (14:31 -0700)]
techmap: fix error message
whitequark [Tue, 14 Apr 2020 14:37:48 +0000 (14:37 +0000)]
Merge pull request #1922 from whitequark/write_cxxrtl-disconnected-outputs
write_cxxrtl: ignore disconnected module ports
whitequark [Tue, 14 Apr 2020 13:53:52 +0000 (13:53 +0000)]
Merge pull request #1921 from whitequark/write_cxxrtl-separate-compilation
write_cxxrtl: enable separate compilation
Eddie Hung [Tue, 14 Apr 2020 13:01:55 +0000 (06:01 -0700)]
Merge pull request #1917 from YosysHQ/eddie/abc9_delay_check
xaiger: add check for $__ABC9_DELAY model
whitequark [Tue, 14 Apr 2020 12:40:00 +0000 (12:40 +0000)]
Merge pull request #1879 from jjj11x/jjj11x/package_decl
support using previously declared types/localparams/parameters in package
whitequark [Tue, 14 Apr 2020 12:39:28 +0000 (12:39 +0000)]
Merge pull request #1880 from jjj11x/duplicate_enum
duplicated enum item names should result in an error
whitequark [Tue, 14 Apr 2020 12:34:35 +0000 (12:34 +0000)]
write_cxxrtl: ignore disconnected module ports.
E.g. port `q` in `submod x(.p(p), .q());`.
Fixes #1920.
whitequark [Tue, 14 Apr 2020 12:12:50 +0000 (12:12 +0000)]
write_verilog: fix precondition check.
whitequark [Tue, 14 Apr 2020 12:07:58 +0000 (12:07 +0000)]
write_cxxrtl: enable separate compilation.
This commit makes it possible to use several cxxrtl-generated files
in one application, as well as compiling cxxrtl-generated code as
a separate compilation unit.
Eddie Hung [Thu, 26 Mar 2020 16:22:27 +0000 (09:22 -0700)]
xaiger: add check for $__ABC9_DELAY model
Eddie Hung [Tue, 14 Apr 2020 01:33:42 +0000 (18:33 -0700)]
Merge pull request #1568 from YosysHQ/eddie/fix_zinit
zinit: fixes for $_DFF_[NP][NP][01]_and $adff cells with init = 1'b1
Eddie Hung [Mon, 13 Apr 2020 22:25:37 +0000 (15:25 -0700)]
zinit: resolve one more comment by @mwkmwkmwk
Eddie Hung [Mon, 13 Apr 2020 22:16:51 +0000 (15:16 -0700)]
zinit: fix review comments from @mwkmwkmwk
Eddie Hung [Mon, 13 Apr 2020 21:29:44 +0000 (14:29 -0700)]
tests: zinit on $adff
Eddie Hung [Mon, 13 Apr 2020 21:28:53 +0000 (14:28 -0700)]
zinit: operate on $adff, erase (* init *) entries on consumption
Eddie Hung [Wed, 11 Dec 2019 22:31:23 +0000 (14:31 -0800)]
Fix S/R comment; thanks @mwkmwkmwk
Eddie Hung [Wed, 11 Dec 2019 20:17:01 +0000 (12:17 -0800)]
zinit to transform set/reset value of $_DFF_[NP][NP][01]_
Eddie Hung [Wed, 11 Dec 2019 20:10:30 +0000 (12:10 -0800)]
Add testcase for $_DFF_[NP][NP][01]_
Eddie Hung [Wed, 11 Dec 2019 19:49:13 +0000 (11:49 -0800)]
Supress error for unhandled \init if whole module selected
Marcelina Kościelnicka [Sun, 12 Apr 2020 20:37:44 +0000 (22:37 +0200)]
opt_expr: Optimize multiplications with low 0 bits in operands.
Fixes #1500.
whitequark [Mon, 13 Apr 2020 08:40:45 +0000 (08:40 +0000)]
Merge pull request #1910 from boqwxp/cleanup_ilang_parser
Clean up pseudo-private member usage in `frontends/ilang/ilang_parser.y`.
Alberto Gonzalez [Mon, 13 Apr 2020 04:22:00 +0000 (04:22 +0000)]
Clean up pseudo-private member usage in `frontends/ilang/ilang_parser.y`.
Xiretza [Sat, 11 Apr 2020 09:49:01 +0000 (11:49 +0200)]
Add .gitignore to tests/select/
David Shah [Sun, 12 Apr 2020 20:08:02 +0000 (21:08 +0100)]
Merge pull request #1907 from YosysHQ/dave/fix-1906
verilog: Fix write to deleted object
David Shah [Sun, 12 Apr 2020 17:49:09 +0000 (18:49 +0100)]
verilog: Fix write to deleted object
Signed-off-by: David Shah <dave@ds0.me>
whitequark [Fri, 10 Apr 2020 14:51:01 +0000 (14:51 +0000)]
Merge pull request #1603 from whitequark/ice40-ram_style
ice40/ecp5: add support for both 1364.1 and Synplify/LSE RAM/ROM attributes
Miodrag Milanović [Fri, 10 Apr 2020 14:33:01 +0000 (16:33 +0200)]
Merge pull request #1893 from mmicko/program_prefix
Support custom PROGRAM_PREFIX
Miodrag Milanovic [Fri, 10 Apr 2020 13:02:48 +0000 (15:02 +0200)]
Keep libyosys name same as befire, but put it in directory
Miodrag Milanovic [Fri, 10 Apr 2020 08:38:40 +0000 (10:38 +0200)]
Support custom PROGRAM_PREFIX
whitequark [Fri, 10 Apr 2020 01:24:31 +0000 (01:24 +0000)]
Merge pull request #1562 from whitequark/write_cxxrtl
write_cxxrtl: new backend
Eddie Hung [Thu, 9 Apr 2020 21:23:47 +0000 (14:23 -0700)]
Merge pull request #1858 from YosysHQ/eddie/fix1856
kernel: include "kernel/constids.inc"
Eddie Hung [Thu, 9 Apr 2020 16:45:20 +0000 (09:45 -0700)]
tests: add a quick plugin test
Eddie Hung [Thu, 9 Apr 2020 16:14:03 +0000 (09:14 -0700)]
kernel: include "kernel/constids.inc" instead of "constids.inc"
Marcelina Kościelnicka [Wed, 8 Apr 2020 15:36:12 +0000 (17:36 +0200)]
[NFCI] Deduplicate builtin FF cell types list
A few passes included the same list of FF cell types. Make it a global
const instead.
The zinit pass also seems to include a list like that, but given that
it seems to be completely broken at the time (see #1568 discussion),
I'm going to pretend I didn't see that.
N. Engelhardt [Thu, 9 Apr 2020 12:01:29 +0000 (14:01 +0200)]
Merge pull request #1890 from boqwxp/cleanup_memory_collect
Clean up `passes/memory/memory_collect.cc`.
N. Engelhardt [Thu, 9 Apr 2020 12:00:44 +0000 (14:00 +0200)]
Merge pull request #1889 from boqwxp/cleanup_memory_unpack
Clean up `passes/memory/memory_unpack.cc`.
N. Engelhardt [Thu, 9 Apr 2020 10:09:44 +0000 (12:09 +0200)]
Merge pull request #1887 from boqwxp/cleanup_hilomap
Clean up `passes/techmap/hilomap.cc`.
Alberto Gonzalez [Thu, 9 Apr 2020 05:43:05 +0000 (05:43 +0000)]
Clean up `passes/memory/memory_collect.cc`.
Alberto Gonzalez [Thu, 9 Apr 2020 05:38:36 +0000 (05:38 +0000)]
Clean up `passes/memory/memory_unpack.cc`.
Alberto Gonzalez [Thu, 9 Apr 2020 05:24:37 +0000 (05:24 +0000)]
Clean up `passes/techmap/hilomap.cc`.
whitequark [Sun, 5 Apr 2020 10:03:23 +0000 (10:03 +0000)]
write_cxxrtl: add basic documentation.
whitequark [Sun, 5 Apr 2020 09:27:55 +0000 (09:27 +0000)]
write_cxxrtl: add support for $dlatch and $dlatchsr cells.
Also, fix codegen for $dffe and $adff.
whitequark [Sun, 5 Apr 2020 09:13:13 +0000 (09:13 +0000)]
write_cxxrtl: add support for $sr cell.
Also, fix the semantics of SET/CLR inputs of the $dffsr cell, and
fix the scheduling of async FF cells to consider ARST/SET/CLR->Q
as a forward combinatorial arc.
whitequark [Sun, 5 Apr 2020 07:46:42 +0000 (07:46 +0000)]
write_cxxrtl: add support for $slice and $concat cells.
whitequark [Sun, 5 Apr 2020 02:06:26 +0000 (02:06 +0000)]
write_cxxrtl: improve writable memory handling.
This commit reduces space and time overhead for writable memories
to O(write port count) in both cases; implements handling for write
port priorities; and simplifies runtime representation of memories.
whitequark [Fri, 3 Apr 2020 16:07:43 +0000 (16:07 +0000)]
write_cxxrtl: add support for hierarchical designs.
Hierarchical design simulations are generally much slower, but this
comes with a major increase in flexibility:
1. Since the `flatten` pass currently does not support flattening
of designs with processes, this is the only way to simulate such
designs with cxxrtl.
2. Support for hierarchy paves way for simulation black boxes,
which are necessary for e.g. replacing PHYs with C++ code that
integrates with the host system.
whitequark [Sat, 4 Apr 2020 22:53:46 +0000 (22:53 +0000)]
write_cxxrtl: avoid undefined behavior on out-of-bounds memory access.
After this commit, if NDEBUG is not defined, out-of-bounds accesses
cause assertion failures for reads and writes. If NDEBUG is defined,
out-of-bounds reads return zeroes, and out-of-bounds writes are
ignored.
This commit also adds support for memories that start with a non-zero
index (`Memory::start_offset` in RTLIL).
whitequark [Tue, 10 Dec 2019 20:09:24 +0000 (20:09 +0000)]
write_cxxrtl: statically schedule comb logic and localize wires.
This results in further massive gains in performance, modest decrease
in compile time, and, for designs without feedback arcs, makes it
possible to run eval() once per clock edge in certain conditions.
whitequark [Mon, 9 Dec 2019 19:05:52 +0000 (19:05 +0000)]
write_cxxrtl: elide wires for results of comb cells used once.
This results in massive gains in performance, equally massive
reduction in compile time, and improved readability.
whitequark [Sun, 1 Dec 2019 01:51:16 +0000 (01:51 +0000)]
write_cxxrtl: new backend.
This commit adds a basic implementation that isn't very performant
but implements most of the planned features.
whitequark [Thu, 9 Apr 2020 04:03:30 +0000 (04:03 +0000)]
Merge pull request #1857 from whitequark/splitnets-skip-processes
splitnets: skip modules with processes
whitequark [Thu, 9 Apr 2020 04:02:57 +0000 (04:02 +0000)]
Merge pull request #1875 from whitequark/read_ilang-int_overflow
Improve handling of integer literals in RTLIL frontend
whitequark [Thu, 9 Apr 2020 03:58:07 +0000 (03:58 +0000)]
Merge pull request #1886 from boqwxp/cleanup_connect
Clean up `passes/cmds/connect.cc`.
Alberto Gonzalez [Wed, 8 Apr 2020 22:11:06 +0000 (22:11 +0000)]
Clean up `passes/cmds/connect.cc`.
Xiretza [Wed, 8 Apr 2020 13:25:16 +0000 (15:25 +0200)]
Add constids.inc to final install
If this is not present in the install, #include-ing most yosys
headers will fail in rtlil.h:380.
Eddie Hung [Tue, 7 Apr 2020 20:56:40 +0000 (13:56 -0700)]
Merge pull request #1881 from hzeller/only-define-stdc-format-macros-if-not-already
aigerparse: only define __STDC_FORMAT_MACROS it not already before.
Henner Zeller [Tue, 7 Apr 2020 19:50:31 +0000 (12:50 -0700)]
aigerparse: only define __STDC_FORMAT_MACROS it not already before.
Claire Wolf [Tue, 7 Apr 2020 15:06:47 +0000 (17:06 +0200)]
Merge pull request #1814 from YosysHQ/mmicko/pyosys_makefile
Enable ENABLE_LIBYOSYS when ENABLE_PYOSYS is set (closes #1813)
Jeff Wang [Tue, 7 Apr 2020 06:30:11 +0000 (02:30 -0400)]
duplicated enum item names should result in an error
Jeff Wang [Tue, 7 Apr 2020 04:37:44 +0000 (00:37 -0400)]
support using previously declared types/localparams/params in package
(parameters in systemverilog packages can't actually be overridden, so
allowing parameters in addition to localparams doesn't actually add any
new functionality, but it's useful to be able to use the parameter
keyword also)
whitequark [Mon, 6 Apr 2020 18:32:20 +0000 (18:32 +0000)]
Merge pull request #1874 from boqwxp/cleanup_show
Clean up `passes/cmds/show.cc`.
whitequark [Mon, 6 Apr 2020 18:32:10 +0000 (18:32 +0000)]
Merge pull request #1861 from boqwxp/cleanup_hierarchy_submod
Clean up `passes/hierarchy/submod.cc`.
whitequark [Mon, 6 Apr 2020 18:31:15 +0000 (18:31 +0000)]
read_ilang: improve style. NFC.
Co-Authored-By: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
Alberto Gonzalez [Mon, 6 Apr 2020 14:48:27 +0000 (14:48 +0000)]
Use more descriptive variable name.
Co-Authored-By: whitequark <whitequark@whitequark.org>
Alberto Gonzalez [Mon, 6 Apr 2020 14:37:07 +0000 (14:37 +0000)]
Use more descriptive variable name.
Co-Authored-By: whitequark <whitequark@whitequark.org>
whitequark [Mon, 6 Apr 2020 11:04:49 +0000 (11:04 +0000)]
Merge pull request #1870 from boqwxp/cleanup_setattr
Clean up `passes/cmds/setattr.cc`.
whitequark [Mon, 6 Apr 2020 11:03:46 +0000 (11:03 +0000)]
Merge pull request #1872 from boqwxp/cleanup_copy
Clean up private member usage in `passes/cmds/copy.cc`.
whitequark [Mon, 6 Apr 2020 11:03:34 +0000 (11:03 +0000)]
Merge pull request #1871 from boqwxp/cleanup_splice
Clean up `passes/cmds/splice.cc`.
whitequark [Mon, 6 Apr 2020 11:01:44 +0000 (11:01 +0000)]
Merge pull request #1869 from boqwxp/cleanup_connwrappers
Clean up `passes/cmds/connwrappers.cc`.
whitequark [Mon, 6 Apr 2020 10:58:38 +0000 (10:58 +0000)]
Merge pull request #1868 from boqwxp/cleanup_delete
Clean up `passes/cmds/delete.cc`.
whitequark [Mon, 6 Apr 2020 10:58:02 +0000 (10:58 +0000)]
Merge pull request #1867 from boqwxp/cleanup_stat
Clean up `passes/cmds/stat.cc`.
whitequark [Mon, 6 Apr 2020 10:56:45 +0000 (10:56 +0000)]
Merge pull request #1866 from boqwxp/cleanup_test_autotb
Clean up `passes/tests/test_autotb.cc`.
whitequark [Mon, 6 Apr 2020 10:56:22 +0000 (10:56 +0000)]
Merge pull request #1865 from boqwxp/cleanup_dfflibmap
Clean up `passes/techmap/dfflibmap.cc`.
whitequark [Mon, 6 Apr 2020 10:55:50 +0000 (10:55 +0000)]
Merge pull request #1863 from boqwxp/cleanup_techmap_extract
Clean up `passes/techmap/extract.cc`.
whitequark [Mon, 6 Apr 2020 10:39:26 +0000 (10:39 +0000)]
Merge pull request #1859 from boqwxp/design_duplicate
Add `-push-copy` option to the `design` command.
whitequark [Mon, 6 Apr 2020 10:32:50 +0000 (10:32 +0000)]
read_ilang: improve error message for overly long wires.
Fixes #1838.
whitequark [Mon, 6 Apr 2020 10:32:02 +0000 (10:32 +0000)]
read_ilang: detect overflow of integer literals.
whitequark [Mon, 6 Apr 2020 10:13:06 +0000 (10:13 +0000)]
Merge pull request #1873 from boqwxp/cleanup_bugpoint
Clean up private member usage in `passes/cmds/bugpoint.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 08:51:25 +0000 (08:51 +0000)]
Clean up `passes/cmds/show.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 08:35:09 +0000 (08:35 +0000)]
Clean up private member usage in `passes/cmds/bugpoint.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 08:26:10 +0000 (08:26 +0000)]
Clean up private member usage in `passes/cmds/copy.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 07:42:46 +0000 (07:42 +0000)]
Clean up `passes/cmds/splice.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 06:52:18 +0000 (06:52 +0000)]
Clean up `passes/cmds/setattr.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 06:08:11 +0000 (06:08 +0000)]
Clean up `passes/cmds/connwrappers.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 05:06:48 +0000 (05:06 +0000)]
Clean up `passes/cmds/delete.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 04:36:41 +0000 (04:36 +0000)]
Clean up `passes/cmds/stat.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 04:25:21 +0000 (04:25 +0000)]
Clean up `passes/tests/test_autotb.cc`.
Alberto Gonzalez [Mon, 6 Apr 2020 03:02:40 +0000 (03:02 +0000)]
Clean up `passes/techmap/dfflibmap.cc`.
Alberto Gonzalez [Sun, 5 Apr 2020 19:36:23 +0000 (19:36 +0000)]
Clean up `passes/techmap/extract.cc`.
Alberto Gonzalez [Sun, 5 Apr 2020 04:39:54 +0000 (04:39 +0000)]
Clean up `passes/hierarchy/submod.cc`.
Alberto Gonzalez [Sat, 4 Apr 2020 21:26:11 +0000 (21:26 +0000)]
Rename `-duplicate` to `-push-copy`.
Co-Authored-By: whitequark <whitequark@whitequark.org>
Eddie Hung [Fri, 3 Apr 2020 23:28:25 +0000 (16:28 -0700)]
Merge pull request #1648 from YosysHQ/eddie/cmp2lcu
"techmap -map +/cmp2lcu.v" for decomposing arithmetic compares to $lcu
Eddie Hung [Fri, 3 Apr 2020 21:25:04 +0000 (14:25 -0700)]
cmp2lcu: rename _90_lcu_cmp -> _80_lcu_cmp
Eddie Hung [Thu, 6 Feb 2020 16:46:38 +0000 (08:46 -0800)]
cmp2lcu: fail if `LUT_WIDTH < 2
Eddie Hung [Thu, 6 Feb 2020 16:46:11 +0000 (08:46 -0800)]
synth: only techmap cmp2{lut,lcu} if -lut
Eddie Hung [Wed, 5 Feb 2020 22:31:51 +0000 (14:31 -0800)]
synth: use +/cmp2lcu.v in generic 'synth' too
Eddie Hung [Tue, 21 Jan 2020 17:14:03 +0000 (09:14 -0800)]
Cleanup +/cmp2lut.v