3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-24 01:25:33 +00:00
Commit graph

13946 commits

Author SHA1 Message Date
Krystine Sherwin
8bc206928f
ci: split test build from matrix
Allow test suite to run if, for example, the C++20 builds are failing but C++11 are fine.
2024-05-10 09:45:03 +12:00
Krystine Sherwin
f408b4de05
ci: fix compiler setup
`os_name` in include section needs to be explicit (putting it at the end doesn't
apply to the extra jobs).

Move macOS test to extra job instead of doing all gcc/clang (which isn't setup
for mac anyway).

Also adds name to build-yosys task.
2024-05-10 09:43:56 +12:00
Krystine Sherwin
aa470ccb47
ci: Unify test-*.yml
Also rename `build-artifact` to use `matrix.os` for compatibility with testing across OS.
2024-05-10 09:43:17 +12:00
Krystine Sherwin
e3f77ff11f
ci: Add error reporting 2024-05-10 09:40:12 +12:00
Krystine Sherwin
5ceafea0ec
ci: Default clang build
Switch build artifact to a default clang build.

Testing with the build artifact locally, `make test` is failing with `/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.29' not found`.  Using the gcc-11 build (might be?) installing GLIBCXX_3.4.29 but not linking it into the build.  Rather than trying to get it to link, just use the pre-installed `clang` instead.
2024-05-10 09:40:12 +12:00
Krystine Sherwin
93bee0fc3b
ci: more context var use
Also reduce `${{}}` expansion in `run` blocks.
2024-05-10 09:38:49 +12:00
Krystine Sherwin
1ef21efe3f
ci: working on test setup 2024-05-10 09:38:49 +12:00
Krystine Sherwin
2bec6e3e0a
ci: Move iverilog from build to test 2024-05-10 09:38:49 +12:00
Krystine Sherwin
8e2dae21ad
ci: Checkout Yosys 2024-05-10 09:35:04 +12:00
Krystine Sherwin
7873fe791e
Makefile: ignore missing docs
e.g. when calling `make clean` out-of-tree
2024-05-10 09:35:04 +12:00
Krystine Sherwin
69eb39582b
ci: Introduce artifacts
Separates `test-linux` into `build-linux` and `test-linux`, wherein `build-` builds out of tree, and uploading the build for the `test-` job.
Tar compression is done to retain execution permissions when downloading build artifact.
When calling `make test`, override `TARGETS` and `EXTRA_TARGETS` to prevent rebuild.
2024-05-10 09:33:49 +12:00
Emil J. Tywoniak
fd84a3378e docs: Document $lut and $sop 2024-05-09 18:31:18 +02:00
Akash Levy
c7f66737aa Fix Yosys to allow SV again 2024-05-09 06:36:02 -07:00
Akash Levy
2a79db111b Merge remote-tracking branch 'upstream/main' 2024-05-09 05:15:02 -07:00
Akash Levy
da8c1955af Updates from YosysHQ 2024-05-09 05:10:44 -07:00
Akash Levy
8841cc4d76 Copy all info from .f file to hdl_file_sort for better auto-discovery 2024-05-09 04:54:57 -07:00
Akash Levy
b5af9b9a8a Fix SystemVerilog support for .v files 2024-05-09 04:54:00 -07:00
Miodrag Milanović
1a54e8d47b
Merge pull request #4379 from QuantamHD/fix_verific
frontend: Fixes verific import around range order
2024-05-09 11:52:34 +02:00
Miodrag Milanović
bdce7fac66
Merge pull request #4386 from YosysHQ/micko/check_abc
Modify abc directory content check
2024-05-09 09:44:23 +02:00
Miodrag Milanovic
93148a87df Modify abc directory content check 2024-05-09 09:22:48 +02:00
Miodrag Milanović
514852ae71
Merge pull request #4364 from YosysHQ/krys/skip-duplicate-actions
Reduce action spam when a PR source branch is on YosysHQ/yosys
2024-05-09 08:48:03 +02:00
Krystine Sherwin
b9b1da8260
extra-builds.yml: Add skip check to vs-prep 2024-05-09 18:17:04 +12:00
Krystine Sherwin
6df1337d71
ci: Update to Node.JS 20 2024-05-09 18:16:05 +12:00
github-actions[bot]
10686cd2df Bump version 2024-05-09 00:16:31 +00:00
Krystine Sherwin
878ac02179
ci: Add skip check to test-verific 2024-05-09 09:39:27 +12:00
Krystine Sherwin
a9eca9072e
ci: Drop emcc 2024-05-09 09:26:43 +12:00
Krystine Sherwin
cdce505f82
ci: Add skip check to other actions 2024-05-09 09:26:18 +12:00
Krystine Sherwin
174c7ebf17
extra-builds.yml: Add concurrent_skipping 2024-05-09 09:26:18 +12:00
Krystine Sherwin
7bcef637a4
extra-builds.yml: Fix prereq list 2024-05-09 09:26:17 +12:00
Krystine Sherwin
699049b218
ci: Combine extra build flow yml
Currently only vs.yml and wasi.yml since emscripten is on the chopping block.
Use fkirc/skip-duplicate-actions to skip duplicate action runs.
2024-05-09 09:26:12 +12:00
Ethan Mahintorabi
82a4a87c97
Fixes error with vector indicies of the form [2:7] [-12:7]
Make sure that we correctly adjust the value to align it to a zero
indexed list with lsb = 0

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 20:29:47 +00:00
Miodrag Milanović
b37e8d52ec
Merge pull request #4243 from RCoeurjoly/submodule_abc
Add YosysHQ/abc as a submodule located in abc.
2024-05-08 14:56:05 +02:00
Akash Levy
9b66cb015b Update Verific 2024-05-08 05:16:11 -07:00
Miodrag Milanović
77dff5a293
Merge pull request #4382 from YosysHQ/micko/pr_template
Add PR template
2024-05-08 13:46:10 +02:00
Akash Levy
47b6738124 Add -auto_discover to import 2024-05-08 04:21:30 -07:00
Miodrag Milanovic
f806987d58 Add PR template 2024-05-08 12:00:18 +02:00
Akash Levy
818fd2e0fa
Merge branch 'YosysHQ:main' into master 2024-05-08 02:23:09 -07:00
Miodrag Milanovic
561618002a Next dev cycle 2024-05-08 09:02:50 +02:00
Miodrag Milanovic
c1ad37779e Release version 0.41 2024-05-08 08:52:10 +02:00
Miodrag Milanovic
7ab43dc1b7 Update ABC with Windows fixes 2024-05-08 08:30:30 +02:00
Catherine
1ac00088a6
Merge pull request #4380 from whitequark/cxxrtl-metadata-compression
cxxrtl: reduce stack space used by the `debug_info()` function
2024-05-08 05:48:29 +01:00
Catherine
6e003e1af6 cxxrtl: minimize stack space consumed by debug_info().
This commit uses parameter packs to sink `debug_item()` construction
into the `debug_info()`-specific `add()` overload. This makes the stack
space use sub-linear in typical case rather than linear (which is still
the worst case). Oddly, the stack slots that get allocated now are all
for the `0` literal for `lsb_offset`. This could be fixed by allocating
numbers statically but the existing reduction in stack use of ~98% for
a representative example (Minerva SoC) should be enough.
2024-05-08 03:37:14 +00:00
Catherine
80798daf53 cxxrtl: reduce stack space consumed by debug_info() further.
Before this commit, this function would create a temporary `std::string`
per debug item (and scope). After this commit, an additional overload is
used to push that down the call stack. This reduces stack usage by
about 50% more on top of the previous commit.
2024-05-08 02:55:17 +00:00
Catherine
9134cd1928 cxxrtl: reduce stack space consumed by debug_info().
Before this commit, the creation of (constant) attribute maps caused
`debug_info()` (which is built with `__attribute__((optnone))`) to
consume large amounts of stack space; up to tens of megabytes. This
caused problems particularly on macOS, where the default stack size
is 512 KiB.

After this commit, `std::map` objects are no longer created inline in
the `debug_info()` function, but are compiled to and then expanded from
a string literal in a subroutine call. This reduces stack space usage
by about 50%.
2024-05-08 02:55:17 +00:00
Catherine
43ddd89ba5 cxxrtl: fix escape_c_string hex literal fiasco.
In C and C++, a `\x` escape sequence consumes as many hexadecimal digits
as there are available, so it is not composable with arbitrary alnum
characters afterwards. An octal escape sequence like `\000` always has
fixed width, avoiding an issue where `\x01c` and `\x1c` produce the same
string.
2024-05-08 02:55:17 +00:00
Roland Coeurjoly
6f9507a16f Add pkg-config 2024-05-08 04:47:40 +02:00
Roland Coeurjoly
1c89e2ab92 Add nix flake and lock file. Add nix build step. Pending nix flake update step 2024-05-08 03:52:12 +02:00
Akash Levy
2e21078a83
Merge branch 'YosysHQ:main' into master 2024-05-07 18:21:19 -07:00
Ethan Mahintorabi
c039da2ec1
renames variables for more code clairty
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 01:09:52 +00:00
Ethan Mahintorabi
a2c1b268d9
frontend: Fixes verific import around range order
Test Case
```
module packed_dimensions_range_ordering (
    input  wire [0:4-1] in,
    output wire [4-1:0] out
);
  assign out = in;
endmodule : packed_dimensions_range_ordering

module instanciates_packed_dimensions_range_ordering (
    input  wire [4-1:0] in,
    output wire [4-1:0] out
);
  packed_dimensions_range_ordering U0 (
      .in (in),
      .out(out)
  );
endmodule : instanciates_packed_dimensions_range_ordering
```

```
// with verific, does not pass formal
module instanciates_packed_dimensions_range_ordering(in, out);
  input [3:0] in;
  wire [3:0] in;
  output [3:0] out;
  wire [3:0] out;

  assign out = { in[0], in[1], in[2], in[3] };
endmodule

// with surelog, passes formal
module instanciates_packed_dimensions_range_ordering(in, out);
  input [3:0] in;
  wire [3:0] in;
  output [3:0] out;
  wire [3:0] out;

  assign out = in;
endmodule
```

Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2024-05-08 01:00:06 +00:00