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)
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
Eddie Hung [Tue, 21 Jan 2020 01:05:49 +0000 (17:05 -0800)]
synth_xilinx: techmap +/cmp2lut.v and +/cmp2lcu.v in 'coarse'
Eddie Hung [Tue, 21 Jan 2020 01:00:35 +0000 (17:00 -0800)]
+/cmp2lcu.v to work efficiently for fully/partially constant inputs
Eddie Hung [Tue, 21 Jan 2020 00:42:17 +0000 (16:42 -0800)]
+/cmp2lcu.v to work efficiently for fully/partially constant inputs
Eddie Hung [Tue, 21 Jan 2020 00:42:08 +0000 (16:42 -0800)]
Refactor +/cmp2lcu.v into recursive techmap
Eddie Hung [Mon, 20 Jan 2020 23:06:50 +0000 (15:06 -0800)]
Cleanup
Eddie Hung [Mon, 20 Jan 2020 20:52:47 +0000 (12:52 -0800)]
Cleanup cmp2lcu.v
Eddie Hung [Fri, 17 Jan 2020 18:51:27 +0000 (10:51 -0800)]
techmap +/cmp2lcu.v for decomposing arithmetic compares to $lcu
Eddie Hung [Fri, 17 Jan 2020 18:21:22 +0000 (10:21 -0800)]
cmp2lut: comment out unused since
362f4f9
Alberto Gonzalez [Fri, 27 Mar 2020 22:36:27 +0000 (22:36 +0000)]
Add `-duplicate` option to the `design` command.
whitequark [Wed, 11 Dec 2019 02:14:23 +0000 (02:14 +0000)]
splitnets: skip modules with processes.
Eddie Hung [Thu, 2 Apr 2020 19:27:10 +0000 (12:27 -0700)]
Merge pull request #1853 from YosysHQ/eddie/fix_dynslice
ast: cap dynamic range select to size of signal, suppresses warnings
Eddie Hung [Thu, 2 Apr 2020 18:47:25 +0000 (11:47 -0700)]
Merge pull request #1767 from YosysHQ/eddie/idstrings
IdString: use more ID::*, make them easier to use, speed up IdString::in()
Eddie Hung [Thu, 2 Apr 2020 16:51:32 +0000 (09:51 -0700)]
kernel: big fat patch to use more ID::*, otherwise ID(*)
Marcin Kościelnicki [Thu, 26 Mar 2020 20:15:28 +0000 (21:15 +0100)]
simcells.v: Generate the fine FF cell types by a python script.
This makes adding more FF types in the future much more manageable.
Fixes #1824.
Claire Wolf [Thu, 2 Apr 2020 16:15:15 +0000 (18:15 +0200)]
Merge pull request #1846 from dh73/ast_fe
Adding error message for when size (width) of number literal is zero
Marcin Kościelnicki [Mon, 30 Mar 2020 13:35:31 +0000 (15:35 +0200)]
iopadmap: Fix z assignment to inout port
Fixes #1841.
Claire Wolf [Thu, 2 Apr 2020 16:14:34 +0000 (18:14 +0200)]
Merge pull request #1842 from YosysHQ/mwk/fix-deminout-xz
deminout: prevent any constant assignment from demoting to input
Eddie Hung [Wed, 1 Apr 2020 21:10:24 +0000 (14:10 -0700)]
kernel: IdString::in(const IdString &) as per @Tjoppen
Eddie Hung [Mon, 16 Mar 2020 19:58:55 +0000 (12:58 -0700)]
kernel: fix formatting (thanks @boqwxp)
Eddie Hung [Sun, 15 Mar 2020 16:47:20 +0000 (09:47 -0700)]
kernel: use C++11 fold hack to prevent recursion
Eddie Hung [Sun, 15 Mar 2020 16:11:44 +0000 (09:11 -0700)]
Revert "kernel: IdString:in() to use perfect forwarding"
This reverts commit
7b2a85aedf24affc2e1202c78e70e6a317f5bf29.
Eddie Hung [Sun, 15 Mar 2020 16:09:35 +0000 (09:09 -0700)]
Update backends/btor/btor.cc; credit @boqwxp
Co-Authored-By: Alberto Gonzalez <61295559+boqwxp@users.noreply.github.com>
Eddie Hung [Thu, 12 Mar 2020 21:42:07 +0000 (14:42 -0700)]
kernel: separate IdString::put_reference() out to help inlining
Eddie Hung [Thu, 12 Mar 2020 21:41:27 +0000 (14:41 -0700)]
kernel: IdString:in() to use perfect forwarding
Eddie Hung [Thu, 12 Mar 2020 19:57:01 +0000 (12:57 -0700)]
kernel: use more ID::*
Eddie Hung [Thu, 12 Mar 2020 19:54:30 +0000 (12:54 -0700)]
kernel: Use constids.inc for global/constant IdStrings
Eddie Hung [Thu, 2 Apr 2020 14:13:33 +0000 (07:13 -0700)]
Merge pull request #1845 from YosysHQ/eddie/kernel_speedup
kernel: speedup by using more pass-by-const-ref
Claire Wolf [Thu, 2 Apr 2020 13:40:00 +0000 (15:40 +0200)]
Bump YOSYS_VER
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
Claire Wolf [Thu, 2 Apr 2020 13:38:47 +0000 (15:38 +0200)]
Merge pull request #1770 from YosysHQ/claire/btor_symbols
Improve write_btor symbol handling
Claire Wolf [Thu, 2 Apr 2020 13:38:27 +0000 (15:38 +0200)]
Merge pull request #1765 from YosysHQ/claire/btor_info
Add info-file and cover features to write_btor
Claire Wolf [Thu, 2 Apr 2020 12:31:33 +0000 (14:31 +0200)]
Merge pull request #1777 from YosysHQ/claire/manyhot
Using LFSR counter for ezSAT::manyhot()
Claire Wolf [Thu, 2 Apr 2020 10:22:28 +0000 (12:22 +0200)]
Improve ezsat onehot encoding scheme
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
Claire Wolf [Tue, 17 Mar 2020 13:15:08 +0000 (14:15 +0100)]
Using LFSR counter for ezSAT::manyhot()
The only user of this API right now is the puzzle3d benchmark and
it sees a slight reduction in CNF size from this, but the performance
difference is within the noise of measurement on my system.
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
Eddie Hung [Wed, 1 Apr 2020 21:17:45 +0000 (14:17 -0700)]
Merge pull request #1828 from YosysHQ/eddie/celltypes_speedup
kernel: share a single CellTypes within a pass
Eddie Hung [Wed, 1 Apr 2020 21:17:01 +0000 (14:17 -0700)]
Merge pull request #1790 from YosysHQ/eddie/opt_expr_xor
opt_expr: optimise $xor/$xnor/$_XOR_/$_XNOR_ -s with constant inputs
Eddie Hung [Wed, 1 Apr 2020 21:11:09 +0000 (14:11 -0700)]
Merge pull request #1789 from YosysHQ/eddie/opt_expr_alu
opt_expr: improve performance on $alu and $sub
David Shah [Wed, 1 Apr 2020 19:55:24 +0000 (20:55 +0100)]
Merge pull request #1844 from YosysHQ/dave/gen-source-loc
verilog: Add location info for generate constructs
Eddie Hung [Wed, 1 Apr 2020 18:18:38 +0000 (11:18 -0700)]
Merge pull request #1852 from boqwxp/cleanup_synth_ice40
Fix indentation in `techlibs/ice40/synth_ice40.cc`.
David Shah [Mon, 30 Mar 2020 20:14:51 +0000 (21:14 +0100)]
verilog: Add location info for generate constructs
Signed-off-by: David Shah <dave@ds0.me>
Eddie Hung [Wed, 1 Apr 2020 16:59:23 +0000 (09:59 -0700)]
ast: cap dynamic range select to size of signal, suppresses warnings
Eddie Hung [Wed, 1 Apr 2020 16:35:35 +0000 (09:35 -0700)]
Merge pull request #1849 from boqwxp/cleanup_kernel_yosys
Clean up pseudo-private member usage in `kernel/yosys.cc`.
Eddie Hung [Wed, 1 Apr 2020 16:34:02 +0000 (09:34 -0700)]
Merge pull request #1850 from boqwxp/cleanup_backends
Cleanup pseudo-private member usage and outdated `RTLIL::id2cstr()` in backends
Alberto Gonzalez [Wed, 1 Apr 2020 16:29:56 +0000 (16:29 +0000)]
Fix indentation in `techlibs/ice40/synth_ice40.cc`.
Alberto Gonzalez [Wed, 1 Apr 2020 06:53:28 +0000 (06:53 +0000)]
Update `RTLIL::id2cstr()` usage to `log_id`.
Claire Wolf [Wed, 1 Apr 2020 06:38:14 +0000 (08:38 +0200)]
Merge pull request #1848 from YosysHQ/eddie/fix_dynslice
ast: simplify to fully populate dynamic slicing case transformation
Alberto Gonzalez [Wed, 1 Apr 2020 06:32:09 +0000 (06:32 +0000)]
Clean up pseudo-private member usage in `backends/intersynth/intersynth.cc`.
Alberto Gonzalez [Wed, 1 Apr 2020 05:50:48 +0000 (05:50 +0000)]
Clean up pseudo-private member usage in `backends/blif/blif.cc`.
Alberto Gonzalez [Wed, 1 Apr 2020 05:25:10 +0000 (05:25 +0000)]
Clean up pseudo-private member usage in `backends/verilog/verilog_backend.cc`.