Miodrag Milanovic [Thu, 14 Oct 2021 11:04:32 +0000 (13:04 +0200)]
Support PRIM_BUFIF1 primitive
github-actions[bot] [Tue, 12 Oct 2021 00:57:44 +0000 (00:57 +0000)]
Bump version
Claire Xen [Mon, 11 Oct 2021 08:01:56 +0000 (10:01 +0200)]
Merge pull request #3039 from YosysHQ/claire/verific_aldff
Add support for $aldff flip-flops to verific importer
Claire Xenia Wolf [Mon, 11 Oct 2021 08:00:20 +0000 (10:00 +0200)]
Add Verific adffe/dffsre/aldffe FIXMEs
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Claire Xen [Mon, 11 Oct 2021 07:56:05 +0000 (09:56 +0200)]
Merge pull request #3040 from YosysHQ/micko/split_module_ports
Split module ports, 20 per line
Claire Xen [Mon, 11 Oct 2021 07:54:28 +0000 (09:54 +0200)]
Merge pull request #3041 from YosysHQ/mmicko/module_attr
Import module attributes from Verific
Miodrag Milanovic [Sun, 10 Oct 2021 08:01:45 +0000 (10:01 +0200)]
Import module attributes from Verific
Miodrag Milanovic [Sat, 9 Oct 2021 11:40:55 +0000 (13:40 +0200)]
Split module ports, 20 per line
github-actions[bot] [Sat, 9 Oct 2021 00:51:28 +0000 (00:51 +0000)]
Bump version
Claire Xenia Wolf [Fri, 8 Oct 2021 15:24:45 +0000 (17:24 +0200)]
Fixes and add comments for open FIXME items
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Claire Xenia Wolf [Fri, 8 Oct 2021 14:21:25 +0000 (16:21 +0200)]
Add support for $aldff flip-flops to verific importer
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Marcelina Kościelnicka [Fri, 8 Oct 2021 12:51:57 +0000 (14:51 +0200)]
Fix a regression from #3035.
github-actions[bot] [Fri, 8 Oct 2021 00:57:28 +0000 (00:57 +0000)]
Bump version
Marcelina Kościelnicka [Wed, 6 Oct 2021 20:16:55 +0000 (22:16 +0200)]
FfData: some refactoring.
- FfData now keeps track of the module and underlying cell, if any (so
calling emit on FfData created from a cell will replace the existing cell)
- FfData implementation is split off to its own .cc file for faster
compilation
- the "flip FF data sense by inserting inverters in front and after"
functionality that zinit uses is moved onto FfData class and beefed up
to have dffsr support, to support more use cases
github-actions[bot] [Tue, 5 Oct 2021 00:53:24 +0000 (00:53 +0000)]
Bump version
Miodrag Milanovic [Mon, 4 Oct 2021 14:48:33 +0000 (16:48 +0200)]
verific set db_infer_set_reset_registers
github-actions[bot] [Sun, 3 Oct 2021 00:58:23 +0000 (00:58 +0000)]
Bump version
Marcelina Kościelnicka [Fri, 1 Oct 2021 23:23:43 +0000 (01:23 +0200)]
Hook up $aldff support in various passes.
Marcelina Kościelnicka [Fri, 1 Oct 2021 22:05:22 +0000 (00:05 +0200)]
zinit: Refactor to use FfData.
Marcelina Kościelnicka [Fri, 1 Oct 2021 21:50:48 +0000 (23:50 +0200)]
kernel/ff: Refactor FfData to enable FFs with async load.
- *_en is split into *_ce (clock enable) and *_aload (async load aka
latch gate enable), so both can be present at once
- has_d is removed
- has_gclk is added (to have a clear marker for $ff)
- d_is_const and val_d leftovers are removed
- async2sync, clk2fflogic, opt_dff are updated to operate correctly on
FFs with async load
Marcelina Kościelnicka [Fri, 1 Oct 2021 02:33:00 +0000 (04:33 +0200)]
Add $aldff and $aldffe: flip-flops with async load.
Zachary Snow [Fri, 1 Oct 2021 20:41:11 +0000 (14:41 -0600)]
Specify minimum bison version 3.0+
Yosys works with bison 3.0 (or newer), but not bison 2.7 (the previous
release). Ideally, we would require "3" rather than "3.0" to give a
better error message, but bison 2.3, which still ships with macOS, does
not support major-only version requirements. With this change, building
with an outdated bison yields: `frontends/rtlil/rtlil_parser.y:25.10-14:
require bison 3.0, but have 2.3`.
Marcelina Kościelnicka [Fri, 1 Oct 2021 22:42:36 +0000 (00:42 +0200)]
simplemap: refactor to use FfData.
Miodrag Milanović [Tue, 28 Sep 2021 16:03:14 +0000 (18:03 +0200)]
Merge pull request #3017 from YosysHQ/claire/short_rtlil_x_const
Add optimization to rtlil back-end for all-x parameter values
github-actions[bot] [Tue, 28 Sep 2021 00:53:49 +0000 (00:53 +0000)]
Bump version
Miodrag Milanovic [Mon, 27 Sep 2021 14:24:43 +0000 (16:24 +0200)]
Prepare for next release cycle
Claire Xenia Wolf [Mon, 27 Sep 2021 14:02:20 +0000 (16:02 +0200)]
Add optimization to rtlil back-end for all-x parameter values
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
github-actions[bot] [Sat, 25 Sep 2021 00:51:53 +0000 (00:51 +0000)]
Bump version
Claire Xen [Fri, 24 Sep 2021 15:50:34 +0000 (17:50 +0200)]
Merge pull request #3014 from YosysHQ/claire/fix-vgtest
Fix "make vgtest"
Zachary Snow [Thu, 23 Sep 2021 17:33:55 +0000 (13:33 -0400)]
Fix TOK_ID memory leak in for_initialization
Claire Xenia Wolf [Wed, 22 Sep 2021 15:34:20 +0000 (17:34 +0200)]
Fix "make vgtest" so it runs to the end (but now it fails ;)
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
github-actions[bot] [Wed, 22 Sep 2021 00:54:54 +0000 (00:54 +0000)]
Bump version
Zachary Snow [Sat, 14 Aug 2021 03:51:28 +0000 (20:51 -0700)]
sv: support wand and wor of data types
This enables the usage of declarations of wand or wor with a base type
of logic, integer, or a typename. Note that declarations of nets with
2-state base types is still permitted, in violation of the spec.
Zachary Snow [Tue, 3 Aug 2021 00:42:34 +0000 (18:42 -0600)]
verilog: fix multiple AST_PREFIX scope resolution issues
- Root AST_PREFIX nodes are now subject to genblk expansion to allow
them to refer to a locally-visible generate block
- Part selects on AST_PREFIX member leafs can now refer to generate
block items (previously would not resolve and raise an error)
- Add source location information to AST_PREFIX nodes
github-actions[bot] [Sun, 19 Sep 2021 00:52:56 +0000 (00:52 +0000)]
Bump version
Miodrag Milanović [Sat, 18 Sep 2021 07:16:58 +0000 (09:16 +0200)]
Merge pull request #3010 from the6p4c/master
Fix protobuf backend build dependencies - intermittent build issue due to missing rule
the6p4c [Fri, 17 Sep 2021 03:36:37 +0000 (13:36 +1000)]
Fix protobuf backend build dependencies
backends/protobuf/protobuf.cc depends on the source and header files
generated by protoc, but this dependency wasn't explicitly declared. Add
a rule to the Makefile to fix intermittent build failures when the
protobuf header/source file isn't built before protobuf.cc.
github-actions[bot] [Tue, 14 Sep 2021 00:56:06 +0000 (00:56 +0000)]
Bump version
Marcelina Kościelnicka [Mon, 13 Sep 2021 13:38:54 +0000 (15:38 +0200)]
verilog: Squash flex-triggered warning.
Miodrag Milanović [Mon, 13 Sep 2021 14:25:42 +0000 (16:25 +0200)]
Updates for CHANGELOG (#2997)
Added missing changes from git log and group items
github-actions[bot] [Sat, 11 Sep 2021 00:50:11 +0000 (00:50 +0000)]
Bump version
Miodrag Milanović [Fri, 10 Sep 2021 15:32:04 +0000 (17:32 +0200)]
Merge pull request #3001 from YosysHQ/claire/sigcheck
Add additional check to SigSpec
Claire Xenia Wolf [Fri, 10 Sep 2021 14:51:34 +0000 (16:51 +0200)]
Add additional check to SigSpec
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Marcelina Kościelnicka [Fri, 10 Sep 2021 02:55:48 +0000 (04:55 +0200)]
yosys-smtbmc: Fix reused loop variable.
Fixes #2999.
github-actions[bot] [Fri, 10 Sep 2021 00:55:14 +0000 (00:55 +0000)]
Bump version
Eddie Hung [Thu, 9 Sep 2021 17:06:31 +0000 (10:06 -0700)]
abc9: make re-entrant (#2993)
* Add testcase
* Cleanup some state at end of abc9
* Re-assign abc9_box_id from scratch
* Suppress delete unless prep_bypass did something
Eddie Hung [Thu, 9 Sep 2021 17:06:20 +0000 (10:06 -0700)]
abc9: holes module to instantiate cells with NEW_ID (#2992)
* Add testcase
* holes module to instantiate cells with NEW_ID
Eddie Hung [Thu, 9 Sep 2021 17:05:55 +0000 (10:05 -0700)]
abc9: replace cell type/parameters if derived type already processed (#2991)
* Add close bracket
* Add testcase
* Replace cell type/param if in unmap_design
* Improve abc9_box error message too
* Update comment as per review
github-actions[bot] [Fri, 3 Sep 2021 00:50:30 +0000 (00:50 +0000)]
Bump version
Miodrag Milanovic [Thu, 2 Sep 2021 12:59:16 +0000 (14:59 +0200)]
update required verific version
github-actions[bot] [Wed, 1 Sep 2021 00:55:51 +0000 (00:55 +0000)]
Bump version
Zachary Snow [Tue, 31 Aug 2021 17:45:02 +0000 (11:45 -0600)]
sv: support declaration in generate for initialization
This is accomplished by generating a unique name for the genvar,
renaming references to the genvar only in the loop's initialization,
guard, and incrementation, and finally adding a localparam inside the
loop body with the original name so that the genvar can be shadowed as
expected.
github-actions[bot] [Tue, 31 Aug 2021 00:51:55 +0000 (00:51 +0000)]
Bump version
Zachary Snow [Mon, 30 Aug 2021 17:35:36 +0000 (11:35 -0600)]
sv: support declaration in procedural for initialization
In line with other tools, this adds an extra wrapping block around such
for loops to appropriately scope the variable.
github-actions[bot] [Mon, 30 Aug 2021 00:49:03 +0000 (00:49 +0000)]
Bump version
kittennbfive [Sun, 29 Aug 2021 09:45:23 +0000 (09:45 +0000)]
[ECP5] fix wrong link for syn_* attributes description (#2984)
github-actions[bot] [Mon, 23 Aug 2021 00:46:01 +0000 (00:46 +0000)]
Bump version
ECP5-PCIe [Sun, 22 Aug 2021 16:08:04 +0000 (18:08 +0200)]
Add DLLDELD
Marcelina Kościelnicka [Sun, 22 Aug 2021 15:01:58 +0000 (17:01 +0200)]
opt_merge: Remove and reinsert init when connecting nets.
Mutating the SigMap by adding a new connection will throw off FfInitVals
index. Work around this by removing the relevant init values from index
whenever we connect nets, then re-add the new init value.
Should fix #2920.
Marcelina Kościelnicka [Sat, 21 Aug 2021 21:36:00 +0000 (23:36 +0200)]
opt_clean: Make the init attribute follow the FF's Q.
Previously, opt_clean would reconnect all ports (including FF Q ports)
to a "canonical" SigBit chosen by complex rules, but would leave the
init attribute on the old wire. This change applies the same
canonicalization rules to the init attributes, ensuring that init moves
to wherever the Q port moved.
Part of another jab at #2920.
github-actions[bot] [Sat, 21 Aug 2021 00:48:23 +0000 (00:48 +0000)]
Bump version
Pepijn de Vos [Fri, 20 Aug 2021 19:21:06 +0000 (21:21 +0200)]
Gowin: deal with active-low tristate (#2971)
* deal with active-low tristate
* remove empty port
* update sim models
* add expected lut1 to tests
Miodrag Milanović [Fri, 20 Aug 2021 14:09:55 +0000 (16:09 +0200)]
Merge pull request #2973 from YosysHQ/micko/optional_extensions
Make Verific extensions optional
Miodrag Milanovic [Fri, 20 Aug 2021 08:19:04 +0000 (10:19 +0200)]
Make Verific extensions optional
github-actions[bot] [Wed, 18 Aug 2021 00:51:20 +0000 (00:51 +0000)]
Bump version
Sylvain Munaut [Tue, 17 Aug 2021 08:21:04 +0000 (10:21 +0200)]
ice40: Fix typo in SB_CARRY specify for LP/UltraPlus
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
github-actions[bot] [Tue, 17 Aug 2021 00:49:33 +0000 (00:49 +0000)]
Bump version
Marcelina Kościelnicka [Mon, 16 Aug 2021 10:31:01 +0000 (12:31 +0200)]
kernel/mem: Remove old parameter when upgrading $mem to $mem_v2.
Fixes #2967.
github-actions[bot] [Sun, 15 Aug 2021 00:50:04 +0000 (00:50 +0000)]
Bump version
Marcelina Kościelnicka [Sat, 14 Aug 2021 12:23:12 +0000 (14:23 +0200)]
proc_prune: Make assign removal and promotion per-bit, remember promoted bits.
Fixes #2962.
github-actions[bot] [Sat, 14 Aug 2021 00:46:42 +0000 (00:46 +0000)]
Bump version
Rupert Swarbrick [Mon, 20 Apr 2020 15:06:53 +0000 (16:06 +0100)]
Generate an RTLIL representation of bind constructs
This code now takes the AST nodes of type AST_BIND and generates a
representation in the RTLIL for them.
This is a little tricky, because a binding of the form:
bind baz foo_t foo_i (.arg (1 + bar));
means "make an instance of foo_t called foo_i, instantiate it inside
baz and connect the port arg to the result of the expression 1+bar".
Of course, 1+bar needs a cell for the addition. Where should that cell
live?
With this patch, the Binding structure that represents the construct
is itself an AST::AstModule module. This lets us put the adder cell
inside it. We'll pull the contents out and plonk them into 'baz' when
we actually do the binding operation as part of the hierarchy pass.
Of course, we don't want RTLIL::Binding to contain an
AST::AstModule (since kernel code shouldn't depend on a frontend), so
we define RTLIL::Binding as an abstract base class and put the
AST-specific code into an AST::Binding subclass. This is analogous to
the AST::AstModule class.
Marcelina Kościelnicka [Thu, 12 Aug 2021 22:43:15 +0000 (00:43 +0200)]
Add opt_mem_widen pass.
If all of us are wide, then none of us are!
Marcelina Kościelnicka [Sat, 29 May 2021 15:45:05 +0000 (17:45 +0200)]
memory_share: Add -nosat and -nowiden options.
This unlocks wide port recognition by default.
Marcelina Kościelnicka [Tue, 10 Aug 2021 17:42:10 +0000 (19:42 +0200)]
memory_dff: Recognize soft transparency logic.
Marcelina Kościelnicka [Thu, 12 Aug 2021 01:31:56 +0000 (03:31 +0200)]
Add new opt_mem_priority pass.
Miodrag Milanović [Fri, 13 Aug 2021 09:45:20 +0000 (11:45 +0200)]
Merge pull request #2932 from YosysHQ/mwk/logger-check-expected
logger: Add -check-expected subcommand.
Brett Witherspoon [Tue, 22 Jun 2021 14:51:41 +0000 (09:51 -0500)]
sv: improve support for wire and var with user-defined types
- User-defined types must be data types. Using a net type (e.g. wire) is
a syntax error.
- User-defined types without a net type are always variables (i.e.
logic).
- Nets and variables can now be explicitly declared using user-defined
types:
typedef logic [1:0] W;
wire W w;
typedef logic [1:0] V;
var V v;
Fixes #2846
github-actions[bot] [Fri, 13 Aug 2021 00:50:48 +0000 (00:50 +0000)]
Bump version
Marcelina Kościelnicka [Thu, 12 Aug 2021 21:06:51 +0000 (23:06 +0200)]
memory_share: Pass addresses through sigmap_xmux everywhere.
This fixes wide port recognition in some cases.
Marcelina Kościelnicka [Thu, 12 Aug 2021 15:36:03 +0000 (17:36 +0200)]
logger: Add -check-expected subcommand.
This allows us to have multiple "expect this warning" calls in a single
long script, covering only as many passes as necessary.
github-actions[bot] [Thu, 12 Aug 2021 00:49:51 +0000 (00:49 +0000)]
Bump version
Marcelina Kościelnicka [Wed, 11 Aug 2021 12:14:45 +0000 (14:14 +0200)]
test/arch/{ecp5,ice40}/memories.ys: Use read_verilog -defer.
These parts keep rereading a Verilog module, then using chparam
to test it with various parameter combinations. Since the default
parameters are on the large side, this spends a lot of time
needlessly elaborating the default parametrization that will then
be discarded. Fix it with -deref and manual hierarchy call.
Shaves 30s off the test time on my machine.
Marcelina Kościelnicka [Thu, 27 May 2021 19:08:11 +0000 (21:08 +0200)]
memory_dff: Recognize read ports with reset / initial value.
Marcelina Kościelnicka [Thu, 27 May 2021 18:55:09 +0000 (20:55 +0200)]
proc_memwr: Use the v2 memwr cell.
Marcelina Kościelnicka [Thu, 27 May 2021 18:54:29 +0000 (20:54 +0200)]
Add v2 memory cells.
github-actions[bot] [Wed, 11 Aug 2021 00:52:20 +0000 (00:52 +0000)]
Bump version
Marcelina Kościelnicka [Sat, 31 Jul 2021 21:21:37 +0000 (23:21 +0200)]
kernel/mem: Introduce transparency masks.
Michael Singer [Thu, 5 Aug 2021 19:02:35 +0000 (21:02 +0200)]
Allow optional comma after last entry in enum
github-actions[bot] [Tue, 10 Aug 2021 00:52:49 +0000 (00:52 +0000)]
Bump version
Marcelina Kościelnicka [Tue, 3 Aug 2021 22:02:16 +0000 (00:02 +0200)]
Refactor common parts of SAT-using optimizations into a helper.
This also aligns the functionality:
- in all cases, the onehot attribute is used to create appropriate
constraints (previously, opt_dff didn't do it at all, and share
created one-hot constraints based on $pmux presence alone, which
is unsound)
- in all cases, shift and mul/div/pow cells are now skipped when
importing the SAT problem (previously only memory_share did this)
— this avoids creating clauses for hard cells that are unlikely
to help with proving the UNSATness needed for optimization
github-actions[bot] [Sun, 8 Aug 2021 00:50:48 +0000 (00:50 +0000)]
Bump version
Marcelina Kościelnicka [Sat, 7 Aug 2021 22:33:31 +0000 (00:33 +0200)]
opt_merge: Use FfInitVals.
Partial #2920 fix.
github-actions[bot] [Sat, 7 Aug 2021 00:45:55 +0000 (00:45 +0000)]
Bump version
Marcelina Kościelnicka [Fri, 6 Aug 2021 18:49:41 +0000 (20:49 +0200)]
verilog: Support tri/triand/trior wire types.
These are, by the standard, just aliases for wire/wand/wor.
Fixes #2918.
github-actions[bot] [Thu, 5 Aug 2021 00:51:08 +0000 (00:51 +0000)]
Bump version
Marcelina Kościelnicka [Wed, 4 Aug 2021 01:33:41 +0000 (03:33 +0200)]
memory_share: Don't skip ports with EN wired to input for SAT sharing.
Fixes #2912.
github-actions[bot] [Wed, 4 Aug 2021 00:49:53 +0000 (00:49 +0000)]
Bump version
Marcelina Kościelnicka [Tue, 3 Aug 2021 12:28:10 +0000 (14:28 +0200)]
memory_bram: Move init data swizzling before other swizzling.
Fixes #2907.
github-actions[bot] [Tue, 3 Aug 2021 00:55:22 +0000 (00:55 +0000)]
Bump version