yosys.git
3 years agosv: improve support for wire and var with user-defined types
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

3 years agoBump version
github-actions[bot] [Fri, 13 Aug 2021 00:50:48 +0000 (00:50 +0000)]
Bump version

3 years agomemory_share: Pass addresses through sigmap_xmux everywhere.
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.

3 years agoBump version
github-actions[bot] [Thu, 12 Aug 2021 00:49:51 +0000 (00:49 +0000)]
Bump version

3 years agotest/arch/{ecp5,ice40}/memories.ys: Use read_verilog -defer.
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.

3 years agomemory_dff: Recognize read ports with reset / initial value.
Marcelina Kościelnicka [Thu, 27 May 2021 19:08:11 +0000 (21:08 +0200)]
memory_dff: Recognize read ports with reset / initial value.

3 years agoproc_memwr: Use the v2 memwr cell.
Marcelina Kościelnicka [Thu, 27 May 2021 18:55:09 +0000 (20:55 +0200)]
proc_memwr: Use the v2 memwr cell.

3 years agoAdd v2 memory cells.
Marcelina Kościelnicka [Thu, 27 May 2021 18:54:29 +0000 (20:54 +0200)]
Add v2 memory cells.

3 years agoBump version
github-actions[bot] [Wed, 11 Aug 2021 00:52:20 +0000 (00:52 +0000)]
Bump version

3 years agokernel/mem: Introduce transparency masks.
Marcelina Kościelnicka [Sat, 31 Jul 2021 21:21:37 +0000 (23:21 +0200)]
kernel/mem: Introduce transparency masks.

3 years agoAllow optional comma after last entry in enum
Michael Singer [Thu, 5 Aug 2021 19:02:35 +0000 (21:02 +0200)]
Allow optional comma after last entry in enum

3 years agoBump version
github-actions[bot] [Tue, 10 Aug 2021 00:52:49 +0000 (00:52 +0000)]
Bump version

3 years agoRefactor common parts of SAT-using optimizations into a helper.
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

3 years agoBump version
github-actions[bot] [Sun, 8 Aug 2021 00:50:48 +0000 (00:50 +0000)]
Bump version

3 years agoopt_merge: Use FfInitVals.
Marcelina Kościelnicka [Sat, 7 Aug 2021 22:33:31 +0000 (00:33 +0200)]
opt_merge: Use FfInitVals.

Partial #2920 fix.

3 years agoBump version
github-actions[bot] [Sat, 7 Aug 2021 00:45:55 +0000 (00:45 +0000)]
Bump version

3 years agoverilog: Support tri/triand/trior wire types.
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.

3 years agoBump version
github-actions[bot] [Thu, 5 Aug 2021 00:51:08 +0000 (00:51 +0000)]
Bump version

3 years agomemory_share: Don't skip ports with EN wired to input for SAT sharing.
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.

3 years agoBump version
github-actions[bot] [Wed, 4 Aug 2021 00:49:53 +0000 (00:49 +0000)]
Bump version

3 years agomemory_bram: Move init data swizzling before other swizzling.
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.

3 years agoBump version
github-actions[bot] [Tue, 3 Aug 2021 00:55:22 +0000 (00:55 +0000)]
Bump version

3 years agoRequire latest verific
Miodrag Milanovic [Mon, 2 Aug 2021 08:29:16 +0000 (10:29 +0200)]
Require latest verific

3 years agoBump version
github-actions[bot] [Mon, 2 Aug 2021 00:50:24 +0000 (00:50 +0000)]
Bump version

3 years agobackend/verilog: Add alternate mode for transparent read port output.
Marcelina Kościelnicka [Tue, 25 May 2021 21:42:58 +0000 (23:42 +0200)]
backend/verilog: Add alternate mode for transparent read port output.

This mode will be used whenever read port cannot be handled in the
"extract address register" way, ie. whenever it has enable, reset,
init functionality or (in the future) mixed transparency mask.

3 years agomemory_bram: Some refactoring
Marcelina Kościelnicka [Sat, 31 Jul 2021 23:29:49 +0000 (01:29 +0200)]
memory_bram: Some refactoring

This will make more sense when the new transparency masks land.

Fixes #2902.

3 years agoBump version
github-actions[bot] [Sat, 31 Jul 2021 00:50:30 +0000 (00:50 +0000)]
Bump version

3 years agoUpdate version.yml
Miodrag Milanović [Fri, 30 Jul 2021 17:50:02 +0000 (19:50 +0200)]
Update version.yml

3 years agoFixes xc7 BRAM36s
Maciej Dudek [Thu, 29 Jul 2021 19:10:02 +0000 (21:10 +0200)]
Fixes xc7 BRAM36s

UG473 from Xilinx states that 15 bit should always be set if RAMB isn't in cascade mode.

Signed-off-by: Maciej Dudek <mdudek@antmicro.com>
3 years agoproc_rmdead: use explicit pattern set when there are no wildcards
Zachary Snow [Wed, 28 Jul 2021 21:34:24 +0000 (17:34 -0400)]
proc_rmdead: use explicit pattern set when there are no wildcards

If width of a case expression was large, explicit patterns could cause
the existing logic to take an extremely long time, or exhaust the
maximum size of the underlying set. For cases where all of the patterns
are fully defined and there are no constants in the case expression,
this change uses a simple set to track which patterns have been seen.

3 years agogenrtlil: add width detection for AST_PREFIX nodes
Zachary Snow [Thu, 29 Jul 2021 16:35:22 +0000 (12:35 -0400)]
genrtlil: add width detection for AST_PREFIX nodes

3 years agoBump version
github-actions[bot] [Fri, 30 Jul 2021 00:52:33 +0000 (00:52 +0000)]
Bump version

3 years agoopt_lut: Allow more than one -dlogic per cell type.
Marcelina Kościelnicka [Thu, 29 Jul 2021 14:55:15 +0000 (16:55 +0200)]
opt_lut: Allow more than one -dlogic per cell type.

Fixes #2061.

3 years agoverilog: save and restore overwritten macro arguments
Zachary Snow [Thu, 15 Jul 2021 14:36:50 +0000 (10:36 -0400)]
verilog: save and restore overwritten macro arguments

3 years agoBump version
github-actions[bot] [Thu, 29 Jul 2021 00:49:14 +0000 (00:49 +0000)]
Bump version

3 years agoverilog: Emit $meminit_v2 cell.
Marcelina Kościelnicka [Fri, 21 May 2021 00:27:06 +0000 (02:27 +0200)]
verilog: Emit $meminit_v2 cell.

Fixes #2447.

3 years agobackends/verilog: Support meminit with mask.
Marcelina Kościelnicka [Mon, 12 Jul 2021 18:43:09 +0000 (20:43 +0200)]
backends/verilog: Support meminit with mask.

3 years agomemory: Introduce $meminit_v2 cell, with EN input.
Marcelina Kościelnicka [Fri, 21 May 2021 00:26:52 +0000 (02:26 +0200)]
memory: Introduce $meminit_v2 cell, with EN input.

3 years agoBump version
github-actions[bot] [Wed, 28 Jul 2021 00:52:46 +0000 (00:52 +0000)]
Bump version

3 years agoproc: Run opt_expr at the end
Marcelina Kościelnicka [Tue, 27 Jul 2021 13:43:36 +0000 (15:43 +0200)]
proc: Run opt_expr at the end

3 years agoopt_expr: Propagate constants to port connections.
Marcelina Kościelnicka [Tue, 27 Jul 2021 13:24:48 +0000 (15:24 +0200)]
opt_expr: Propagate constants to port connections.

This adds one simple piece of functionality to opt_expr: when a cell
port is connected to a fully-constant signal (as determined by sigmap),
the port is reconnected directly to the constant value.  This is just
enough optimization to fix the "non-constant $meminit input" problem
without requiring a full opt_clean or a separate pass.

3 years agoBump version
github-actions[bot] [Tue, 27 Jul 2021 00:52:14 +0000 (00:52 +0000)]
Bump version

3 years agoAdd version bump workflow
Miodrag Milanovic [Mon, 26 Jul 2021 09:25:32 +0000 (11:25 +0200)]
Add version bump workflow

3 years agoUpdate to latest verific
Miodrag Milanovic [Wed, 21 Jul 2021 07:46:53 +0000 (09:46 +0200)]
Update to latest verific

3 years agoUse new read_id_num helper function elsewhere in hierarchy.cc
Rupert Swarbrick [Mon, 19 Jul 2021 08:23:41 +0000 (09:23 +0100)]
Use new read_id_num helper function elsewhere in hierarchy.cc

3 years agoExtract connection checking logic from expand_module in hierarchy.cc
Rupert Swarbrick [Wed, 27 May 2020 14:54:42 +0000 (15:54 +0100)]
Extract connection checking logic from expand_module in hierarchy.cc

No functional change, but pulls more logic out of the expand_module
function.

3 years agoMerge pull request #2885 from whitequark/cxxrtl-fix-2883
whitequark [Tue, 20 Jul 2021 13:12:11 +0000 (13:12 +0000)]
Merge pull request #2885 from whitequark/cxxrtl-fix-2883

cxxrtl: treat wires with multiple defs as not inlinable

3 years agoMerge pull request #2884 from whitequark/cxxrtl-fix-2882
whitequark [Tue, 20 Jul 2021 13:12:03 +0000 (13:12 +0000)]
Merge pull request #2884 from whitequark/cxxrtl-fix-2882

cxxrtl: treat assignable internal wires used only for debug as locals

3 years agocxxrtl: treat wires with multiple defs as not inlinable.
whitequark [Tue, 20 Jul 2021 10:30:39 +0000 (10:30 +0000)]
cxxrtl: treat wires with multiple defs as not inlinable.

Fixes #2883.

3 years agocxxrtl: treat assignable internal wires used only for debug as locals.
whitequark [Tue, 20 Jul 2021 10:10:42 +0000 (10:10 +0000)]
cxxrtl: treat assignable internal wires used only for debug as locals.

This issue was introduced in commit 4aa65f40 while fixing #2739.

Fixes #2882.

3 years agoMerge pull request #2881 from whitequark/cxxrtl-sideways-colon
whitequark [Tue, 20 Jul 2021 09:30:08 +0000 (09:30 +0000)]
Merge pull request #2881 from whitequark/cxxrtl-sideways-colon

cxxrtl: escape colon in variable names in VCD writer

3 years agocxxrtl: escape colon in variable names in VCD writer.
whitequark [Mon, 19 Jul 2021 16:20:49 +0000 (16:20 +0000)]
cxxrtl: escape colon in variable names in VCD writer.

The following VCD file crashes GTKWave's VCD loader:

    $var wire 1 ! x:1 $end
    $enddefinitions $end

In practice, a colon can be a part of a variable name that is
translated from a Verilog function, something like:

    update$func$.../hdl/hazard3_csr.v:350$2534.$result

3 years agoMerge pull request #2880 from whitequark/cxxrtl-fix-2877
whitequark [Sun, 18 Jul 2021 07:35:23 +0000 (07:35 +0000)]
Merge pull request #2880 from whitequark/cxxrtl-fix-2877

cxxrtl: add debug_item::{get,set}

3 years agocxxrtl: add debug_item::{get,set}.
whitequark [Sun, 18 Jul 2021 06:07:27 +0000 (06:07 +0000)]
cxxrtl: add debug_item::{get,set}.

Fixes #2877.

3 years agoMerge pull request #2879 from whitequark/cxxrtl-fix-2739-again
whitequark [Sat, 17 Jul 2021 17:22:15 +0000 (17:22 +0000)]
Merge pull request #2879 from whitequark/cxxrtl-fix-2739-again

cxxrtl: treat internal wires used only for debug as constants

3 years agocxxrtl: treat internal wires used only for debug as constants.
whitequark [Sat, 17 Jul 2021 14:23:57 +0000 (14:23 +0000)]
cxxrtl: treat internal wires used only for debug as constants.

Fixes #2739 (again).

3 years agoAdd support for parsing the SystemVerilog 'bind' construct
Rupert Swarbrick [Thu, 21 May 2020 16:36:29 +0000 (17:36 +0100)]
Add support for parsing the SystemVerilog 'bind' construct

This doesn't do anything useful yet: the patch just adds support for
the syntax to the lexer and parser and adds some tests to check the
syntax parses properly. This generates AST nodes, but doesn't yet
generate RTLIL.

Since our existing hierarchical_identifier parser doesn't allow bit
selects (so you can't do something like foo[1].bar[2].baz), I've also
not added support for a trailing bit select (the "constant_bit_select"
non-terminal in "bind_target_instance" in the spec). If we turn out to
need this in future, we'll want to augment hierarchical_identifier and
its other users too.

Note that you can't easily use the BNF from the spec:

    bind_directive ::=
        "bind" bind_target_scope [ : bind_target_instance_list]
               bind_instantiation ;
      | "bind" bind_target_instance bind_instantiation ;

even if you fix the lookahead problem, because code like this matches
both branches in the BNF:

    bind a b b_i (.*);

The problem is that 'a' could either be a module name or a degenerate
hierarchical reference. This seems to be a genuine syntactic
ambiguity, which the spec resolves (p739) by saying that we have to
wait until resolution time (the hierarchy pass) and take whatever is
defined, treating 'a' as an instance name if it names both an instance
and a module.

To keep the parser simple, it currently accepts this invalid syntax:

    bind a.b : c d e (.*);

This is invalid because we're in the first branch of the BNF above, so
the "a.b" term should match bind_target_scope: a module or interface
identifier, not an arbitrary hierarchical identifier.

This will fail in the hierarchy pass (when it's implemented in a
future patch).

3 years agoMerge pull request #2874 from whitequark/cxxrtl-fix-2589
whitequark [Fri, 16 Jul 2021 11:12:19 +0000 (11:12 +0000)]
Merge pull request #2874 from whitequark/cxxrtl-fix-2589

cxxrtl: run hierarchy pass regardless of (*top*) attribute presence

3 years agoMerge pull request #2873 from whitequark/cxxrtl-fix-2500
whitequark [Fri, 16 Jul 2021 11:01:10 +0000 (11:01 +0000)]
Merge pull request #2873 from whitequark/cxxrtl-fix-2500

cxxrtl: emit debug items for unused public wires

3 years agoMerge pull request #2872 from whitequark/cxxrtl-fix-2521
whitequark [Fri, 16 Jul 2021 10:34:30 +0000 (10:34 +0000)]
Merge pull request #2872 from whitequark/cxxrtl-fix-2521

cxxrtl: don't expect user cell inputs to be wires

3 years agocxxrtl: run hierarchy pass regardless of (*top*) attribute presence.
whitequark [Fri, 16 Jul 2021 10:27:47 +0000 (10:27 +0000)]
cxxrtl: run hierarchy pass regardless of (*top*) attribute presence.

The hierarchy pass does a lot more than just finding the top module,
mainly resolving implicit (positional, wildcard) module connections.

Fixes #2589.

3 years agocxxrtl: emit debug items for unused public wires.
whitequark [Fri, 16 Jul 2021 10:05:24 +0000 (10:05 +0000)]
cxxrtl: emit debug items for unused public wires.

This greatly improves debug information coverage.

Fixes #2500.

3 years agocxxrtl: don't expect user cell inputs to be wires.
whitequark [Fri, 16 Jul 2021 09:51:15 +0000 (09:51 +0000)]
cxxrtl: don't expect user cell inputs to be wires.

Ports can be connected to constants, too. (Usually resets.)

Fixes #2521.

3 years agoMerge pull request #2871 from whitequark/cxxrtl-fix-2540-2841
whitequark [Fri, 16 Jul 2021 08:33:30 +0000 (08:33 +0000)]
Merge pull request #2871 from whitequark/cxxrtl-fix-2540-2841

cxxrtl: don't mark buffered internal wires as UNUSED for debug

3 years agocxxrtl: don't mark buffered internal wires as UNUSED for debug.
whitequark [Fri, 16 Jul 2021 07:36:18 +0000 (07:36 +0000)]
cxxrtl: don't mark buffered internal wires as UNUSED for debug.

Public wires may alias buffered internal wires, so keep BUFFERED
wires in debug information even if they are private. Debug items are
only created for public wires, so this does not otherwise affect how
debug information is emitted.

Fixes #2540.
Fixes #2841.

3 years agoMerge pull request #2870 from whitequark/cxxrtl-fix-2739
whitequark [Fri, 16 Jul 2021 00:13:16 +0000 (00:13 +0000)]
Merge pull request #2870 from whitequark/cxxrtl-fix-2739

cxxrtl: mark dead local wires as unused even with inlining disabled

3 years agocxxrtl: mark dead local wires as unused even with inlining disabled.
whitequark [Thu, 15 Jul 2021 22:27:27 +0000 (22:27 +0000)]
cxxrtl: mark dead local wires as unused even with inlining disabled.

Fixes #2739.

3 years agosv: fix two struct access bugs
Zachary Snow [Tue, 22 Jun 2021 14:39:57 +0000 (10:39 -0400)]
sv: fix two struct access bugs

- preserve signedness of struct members
- fix initial width detection of struct members (e.g., in case expressions)

3 years agoAdd a test for interfaces on modules loaded on-demand
Rupert Swarbrick [Wed, 14 Jul 2021 16:27:13 +0000 (17:27 +0100)]
Add a test for interfaces on modules loaded on-demand

3 years agoExtract missing module support in hierarchy.cc to a helper function
Rupert Swarbrick [Wed, 27 May 2020 09:42:37 +0000 (10:42 +0100)]
Extract missing module support in hierarchy.cc to a helper function

I think the code is now a bit easier to follow (and has lost some
levels of indentation!).

The only non-trivial change is that I removed the check for
cell->type[0] != '$' when deciding whether to complain if we couldn't
find a module. This will always be true because of the early exit
earlier in the function.

3 years agoMerge pull request #2866 from rswarbrick/found-init
whitequark [Wed, 14 Jul 2021 12:00:30 +0000 (12:00 +0000)]
Merge pull request #2866 from rswarbrick/found-init

Delete unused found_init variable

3 years agoDelete unused found_init variable
Rupert Swarbrick [Wed, 14 Jul 2021 09:19:07 +0000 (10:19 +0100)]
Delete unused found_init variable

Spotted during compilation:

    passes/proc/proc_init.cc: In function ‘void {anonymous}::proc_init(Yosys::RTLIL::Module*, Yosys::SigMap&, Yosys::RTLIL::Process*)’:
    passes/proc/proc_init.cc:31:7: warning: variable ‘found_init’ set but not used [-Wunused-but-set-variable]

3 years agokernel/mem: Add a coalesce_inits helper.
Marcelina Kościelnicka [Mon, 12 Jul 2021 18:04:59 +0000 (20:04 +0200)]
kernel/mem: Add a coalesce_inits helper.

While this helper is already useful to squash sequential initializations
into one in cxxrtl, its main purpose is to squash overlapping masked memory
initializations (when they land) and avoid having to deal with them in
cxxrtl runtime.

3 years agoAdd support for the Bitwuzla solver
GCHQDeveloper560 [Wed, 16 Jun 2021 12:19:43 +0000 (13:19 +0100)]
Add support for the Bitwuzla solver

3 years agokernel/mem: Use delayed removal for inits as well.
Marcelina Kościelnicka [Mon, 12 Jul 2021 15:10:40 +0000 (17:10 +0200)]
kernel/mem: Use delayed removal for inits as well.

3 years agokernel/mem: Add documentation for more helper functions.
Marcelina Kościelnicka [Mon, 12 Jul 2021 15:40:12 +0000 (17:40 +0200)]
kernel/mem: Add documentation for more helper functions.

3 years agocxxrtl: Support memory writes in processes.
Marcelina Kościelnicka [Sun, 11 Jul 2021 23:00:57 +0000 (01:00 +0200)]
cxxrtl: Support memory writes in processes.

3 years agocxxrtl: Add support for memory read port reset.
Marcelina Kościelnicka [Sat, 10 Jul 2021 21:47:01 +0000 (23:47 +0200)]
cxxrtl: Add support for memory read port reset.

3 years agocxxrtl: Add support for mem read port initial data.
Marcelina Kościelnicka [Sat, 10 Jul 2021 12:33:16 +0000 (14:33 +0200)]
cxxrtl: Add support for mem read port initial data.

3 years agocxxrtl: Convert to Mem helpers.
Marcelina Kościelnicka [Sat, 10 Jul 2021 01:55:51 +0000 (03:55 +0200)]
cxxrtl: Convert to Mem helpers.

This *only* does conversion, but doesn't add any new functionality —
support for memory read port init/reset is still upcoming.

3 years agokernel/mem: Commit new values of attributes in emit.
Marcelina Kościelnicka [Mon, 12 Jul 2021 04:26:13 +0000 (06:26 +0200)]
kernel/mem: Commit new values of attributes in emit.

3 years agokernel/mem: Make the Mem helpers inherit from AttrObject.
Marcelina Kościelnicka [Mon, 12 Jul 2021 00:11:54 +0000 (02:11 +0200)]
kernel/mem: Make the Mem helpers inherit from AttrObject.

3 years agortlil: Make Process handling more uniform with Cell and Wire.
Marcelina Kościelnicka [Sun, 11 Jul 2021 21:57:53 +0000 (23:57 +0200)]
rtlil: Make Process handling more uniform with Cell and Wire.

- add a backlink to module from Process
- make constructor and destructor protected, expose Module functions
  to add and remove processes

3 years agoice40: Fix LUT input indices in opt_lut -dlogic (again).
Marcelina Kościelnicka [Sat, 10 Jul 2021 18:46:48 +0000 (20:46 +0200)]
ice40: Fix LUT input indices in opt_lut -dlogic (again).

Fixes #2061.

3 years agoUpdate to latest Verific with extensions for initial assertions
Miodrag Milanovic [Fri, 9 Jul 2021 07:02:27 +0000 (09:02 +0200)]
Update to latest Verific with extensions for initial assertions

3 years agosv: fix a few struct and enum memory leaks
Zachary Snow [Thu, 17 Jun 2021 19:59:59 +0000 (15:59 -0400)]
sv: fix a few struct and enum memory leaks

3 years agoecp5: Add DCSC blackbox
gatecat [Tue, 6 Jul 2021 10:46:45 +0000 (11:46 +0100)]
ecp5: Add DCSC blackbox

Signed-off-by: gatecat <gatecat@ds0.me>
3 years agoMerge pull request #2835 from YosysHQ/verific_command
Claire Xen [Mon, 5 Jul 2021 14:59:37 +0000 (16:59 +0200)]
Merge pull request #2835 from YosysHQ/verific_command

Support command files in Verific

3 years agoMakefile: allow running multiple sanitizers at once
Xiretza [Tue, 16 Mar 2021 15:41:31 +0000 (16:41 +0100)]
Makefile: allow running multiple sanitizers at once

3 years agoMakefile: use git/make -C instead of cd
Xiretza [Mon, 14 Jun 2021 11:54:47 +0000 (13:54 +0200)]
Makefile: use git/make -C instead of cd

3 years agoMakefile: pass PRETTY=0 to ABC
Xiretza [Mon, 14 Jun 2021 10:16:19 +0000 (12:16 +0200)]
Makefile: pass PRETTY=0 to ABC

3 years agoMakefile: don't bake DESTDIR into libyosys DT_SONAME
Xiretza [Mon, 14 Jun 2021 09:35:38 +0000 (11:35 +0200)]
Makefile: don't bake DESTDIR into libyosys DT_SONAME

DESTDIR is only used as a temporary destination for installed files
before they are packaged into an archive; the "real" installed location
is determined by PREFIX/{BIN,LIB,DAT}DIR.

3 years agoMakefile: clean up PYOSYS configuration
Xiretza [Mon, 14 Jun 2021 06:55:22 +0000 (08:55 +0200)]
Makefile: clean up PYOSYS configuration

3 years agoAdd additional help
Miodrag Milanovic [Mon, 5 Jul 2021 07:16:54 +0000 (09:16 +0200)]
Add additional help

3 years agoMerge pull request #2842 from whitequark/fix-wasi-build
whitequark [Sat, 19 Jun 2021 12:10:29 +0000 (12:10 +0000)]
Merge pull request #2842 from whitequark/fix-wasi-build

Fix WASI build after commit 1d88bea1

3 years agoFix WASI build after commit 1d88bea1.
whitequark [Sat, 19 Jun 2021 02:59:57 +0000 (02:59 +0000)]
Fix WASI build after commit 1d88bea1.

3 years agoMerge pull request #2836 from YosysHQ/gatecat/pyosys-sigint
Miodrag Milanović [Fri, 18 Jun 2021 10:07:50 +0000 (12:07 +0200)]
Merge pull request #2836 from YosysHQ/gatecat/pyosys-sigint

pyosys: Clear SIGINT handler after Python loads

3 years agoMove interface expansion in hierarchy.cc into a helper class
Rupert Swarbrick [Tue, 26 May 2020 16:46:10 +0000 (17:46 +0100)]
Move interface expansion in hierarchy.cc into a helper class

There should be no functional change, but this splits up the control
flow across functions, using class fields to hold the state that's
being tracked. The result should be a bit easier to read.

This is part of work to add bind support, but I'm doing some
refactoring in the hierarchy pass to make the code a bit easier to
work with. The idea is that (eventually) the IFExpander object will
hold all the logic for expanding interfaces, and then other code can
do bind insertion.

3 years agosv: fix up end label checking
Zachary Snow [Mon, 14 Jun 2021 19:32:01 +0000 (15:32 -0400)]
sv: fix up end label checking

- disallow [gen]blocks with an end label but not begin label
- check validity of module end label
- fix memory leak of package name and end label
- fix memory leak of module end label

3 years agoInclude blif reader header in public facing extension header files.
Ashton Snelgrove [Wed, 16 Jun 2021 19:47:47 +0000 (13:47 -0600)]
Include blif reader header in public facing extension header files.