Skip to content

Commit 130d5e2

Browse files
authored
Merge branch 'YosysHQ:main' into master
2 parents e793a19 + 8af60b7 commit 130d5e2

File tree

26 files changed

+948
-78
lines changed

26 files changed

+948
-78
lines changed

.github/workflows/extra-builds.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
vs-build:
3838
name: Visual Studio build
39-
runs-on: windows-2019
39+
runs-on: windows-latest
4040
needs: [vs-prep, pre_job]
4141
if: needs.pre_job.outputs.should_skip != 'true'
4242
steps:

.github/workflows/test-build.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ jobs:
4040
strategy:
4141
matrix:
4242
os: [ubuntu-latest, macos-latest]
43+
sanitizer: [undefined, address]
4344
fail-fast: false
4445
steps:
4546
- name: Checkout Yosys
@@ -57,7 +58,7 @@ jobs:
5758
mkdir build
5859
cd build
5960
make -f ../Makefile config-$CC
60-
echo 'SANITIZER = undefined' >> Makefile.conf
61+
echo 'SANITIZER = ${{ matrix.sanitizer }}' >> Makefile.conf
6162
make -f ../Makefile -j$procs ENABLE_LTO=1
6263
6364
- name: Log yosys-config output
@@ -73,7 +74,7 @@ jobs:
7374
- name: Store build artifact
7475
uses: actions/upload-artifact@v4
7576
with:
76-
name: build-${{ matrix.os }}
77+
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
7778
path: build.tar
7879
retention-days: 1
7980

@@ -84,10 +85,12 @@ jobs:
8485
if: needs.pre_job.outputs.should_skip != 'true'
8586
env:
8687
CC: clang
88+
ASAN_OPTIONS: halt_on_error=1
8789
UBSAN_OPTIONS: halt_on_error=1
8890
strategy:
8991
matrix:
9092
os: [ubuntu-latest, macos-latest]
93+
sanitizer: [undefined, address]
9194
fail-fast: false
9295
steps:
9396
- name: Checkout Yosys
@@ -136,7 +139,7 @@ jobs:
136139
- name: Download build artifact
137140
uses: actions/download-artifact@v4
138141
with:
139-
name: build-${{ matrix.os }}
142+
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
140143

141144
- name: Uncompress build
142145
shell: bash
@@ -168,6 +171,7 @@ jobs:
168171
strategy:
169172
matrix:
170173
os: [ubuntu-latest]
174+
sanitizer: [undefined, address]
171175
fail-fast: false
172176
steps:
173177
- name: Checkout Yosys
@@ -181,7 +185,7 @@ jobs:
181185
- name: Download build artifact
182186
uses: actions/download-artifact@v4
183187
with:
184-
name: build-${{ matrix.os }}
188+
name: build-${{ matrix.os }}-${{ matrix.sanitizer }}
185189

186190
- name: Uncompress build
187191
shell: bash

CHANGELOG

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,16 @@
22
List of major changes and improvements between releases
33
=======================================================
44

5-
Yosys 0.54 .. Yosys 0.55-dev
5+
Yosys 0.55 .. Yosys 0.56-dev
66
--------------------------
77

8+
Yosys 0.54 .. Yosys 0.55
9+
--------------------------
10+
* Various
11+
- read_verilog: Implemented SystemVerilog unique/priority if.
12+
- "attrmap" pass is able to alter memory attributes.
13+
- verific: Support SVA followed-by operator in cover mode.
14+
815
Yosys 0.53 .. Yosys 0.54
916
--------------------------
1017
* New commands and options

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ ifeq ($(OS), Haiku)
160160
CXXFLAGS += -D_DEFAULT_SOURCE
161161
endif
162162

163-
YOSYS_VER := 0.54+0
163+
YOSYS_VER := 0.55+0
164164
YOSYS_MAJOR := $(shell echo $(YOSYS_VER) | cut -d'.' -f1)
165165
YOSYS_MINOR := $(shell echo $(YOSYS_VER) | cut -d'.' -f2 | cut -d'+' -f1)
166166
YOSYS_COMMIT := $(shell echo $(YOSYS_VER) | cut -d'+' -f2)
@@ -183,7 +183,7 @@ endif
183183
OBJS = kernel/version_$(GIT_REV).o
184184

185185
bumpversion:
186-
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline db72ec3.. | wc -l`/;" Makefile
186+
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 60f126c.. | wc -l`/;" Makefile
187187

188188
ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 ABC_USE_NAMESPACE=abc VERBOSE=$(Q)
189189

docs/source/cell/word_mux.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ are zero, the value from ``A`` input is sent to the output. If the :math:`n`\
2424
'th bit from ``S`` is set, the value :math:`n`\ 'th ``WIDTH`` bits wide slice of
2525
the ``B`` input is sent to the output. When more than one bit from ``S`` is set
2626
the output is undefined. Cells of this type are used to model "parallel cases"
27-
(defined by using the ``parallel_case`` attribute or detected by an
28-
optimization).
27+
(defined by using the ``parallel_case`` attribute, the ``unique`` or ``unique0``
28+
SystemVerilog keywords, or detected by an optimization).
2929

3030
The `$tribuf` cell is used to implement tristate logic. Cells of this type have
3131
a ``WIDTH`` parameter and inputs ``A`` and ``EN`` and an output ``Y``. The ``A``

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
project = 'YosysHQ Yosys'
77
author = 'YosysHQ GmbH'
88
copyright ='2025 YosysHQ GmbH'
9-
yosys_ver = "0.54"
9+
yosys_ver = "0.55"
1010

1111
# select HTML theme
1212
html_theme = 'furo-ys'

docs/source/yosys_internals/verilog.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ from SystemVerilog:
377377
- Assignments within expressions are supported.
378378

379379
- The ``unique``, ``unique0``, and ``priority`` SystemVerilog keywords are
380-
accepted on ``if`` and ``case`` conditionals. (Those keywords are currently
381-
handled in the same way as their equivalent ``full_case`` and
382-
``parallel_case`` attributes on ``case`` statements, and checked
383-
for syntactic validity but otherwise ignored on ``if`` statements.)
380+
supported on ``if`` and ``case`` conditionals. (The Verilog frontend
381+
will process conditionals using these keywords by annotating their
382+
representation with the appropriate ``full_case`` and/or ``parallel_case``
383+
attributes, which are described above.)

frontends/verific/verific.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3465,11 +3465,13 @@ struct VerificPass : public Pass {
34653465
RuntimeFlags::SetVar("veri_extract_dualport_rams", 0);
34663466
RuntimeFlags::SetVar("veri_extract_multiport_rams", 1);
34673467
RuntimeFlags::SetVar("veri_allow_any_ram_in_loop", 1);
3468+
RuntimeFlags::SetVar("veri_replace_const_exprs", 1);
34683469
#endif
34693470
#ifdef VERIFIC_VHDL_SUPPORT
34703471
RuntimeFlags::SetVar("vhdl_extract_dualport_rams", 0);
34713472
RuntimeFlags::SetVar("vhdl_extract_multiport_rams", 1);
34723473
RuntimeFlags::SetVar("vhdl_allow_any_ram_in_loop", 1);
3474+
RuntimeFlags::SetVar("vhdl_replace_const_exprs", 1);
34733475

34743476
RuntimeFlags::SetVar("vhdl_support_variable_slice", 1);
34753477
RuntimeFlags::SetVar("vhdl_ignore_assertion_statements", 0);

frontends/verific/verificsva.cc

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,15 +1613,18 @@ struct VerificSvaImporter
16131613
}
16141614
else
16151615
if (inst->Type() == PRIM_SVA_OVERLAPPED_IMPLICATION ||
1616-
inst->Type() == PRIM_SVA_NON_OVERLAPPED_IMPLICATION)
1616+
inst->Type() == PRIM_SVA_NON_OVERLAPPED_IMPLICATION ||
1617+
(mode_cover && (
1618+
inst->Type() == PRIM_SVA_OVERLAPPED_FOLLOWED_BY ||
1619+
inst->Type() == PRIM_SVA_NON_OVERLAPPED_IMPLICATION)))
16171620
{
16181621
Net *antecedent_net = inst->GetInput1();
16191622
Net *consequent_net = inst->GetInput2();
16201623
int node;
16211624

16221625
SvaFsm antecedent_fsm(clocking, trig);
16231626
node = parse_sequence(antecedent_fsm, antecedent_fsm.createStartNode(), antecedent_net);
1624-
if (inst->Type() == PRIM_SVA_NON_OVERLAPPED_IMPLICATION) {
1627+
if (inst->Type() == PRIM_SVA_NON_OVERLAPPED_IMPLICATION || inst->Type() == PRIM_SVA_NON_OVERLAPPED_FOLLOWED_BY) {
16251628
int next_node = antecedent_fsm.createNode();
16261629
antecedent_fsm.createEdge(node, next_node);
16271630
node = next_node;

frontends/verilog/verilog_frontend.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ struct VerilogFileList : public Pass {
753753
break;
754754
}
755755

756-
extra_args(args, argidx, design);
756+
extra_args(args, argidx, design, false);
757757
}
758758
} VerilogFilelist;
759759

0 commit comments

Comments
 (0)