Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump fork for version 0.38 #17

Merged
merged 140 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
f50e8a3
Follow the XDG Base Directory Specification
hakan-demirli Dec 21, 2023
bcf1c7b
Merge branch 'YosysHQ:master' into master
hakan-demirli Jan 7, 2024
31b45c9
fix: xdg spec for hist
hakan-demirli Jan 7, 2024
54c3b63
fix: third time is the charm
hakan-demirli Jan 7, 2024
e093f57
fix: fail if neither HOME nor XDG_STATE_HOME are set
hakan-demirli Jan 8, 2024
1a4bea8
Merge branch 'YosysHQ:master' into master
hakan-demirli Jan 11, 2024
ac6fcb2
write_aiger: Detect and error out on combinational loops
jix Jan 19, 2024
b11449b
Make small build links, and support verific small build
mmicko Jan 19, 2024
ddfd867
hardcode iverilog version so it works on forkes and in PRs
mmicko Jan 23, 2024
c634d59
Issue a warning instead of a syntax error for blif delay constraints
Coloquinte Jan 23, 2024
3c3788e
Bump version
github-actions[bot] Jan 24, 2024
b841d1b
cxxrtl: fix typo in codegen for async set/clear.
whitequark Jan 24, 2024
9cbfad2
write_verilog: don't emit code with dangling else related to wrong co…
whitequark Jan 23, 2024
08fd47e
Test roundtripping some processes to Verilog and back
povik Jan 24, 2024
6707db9
Merge pull request #4157 from whitequark/cxxrtl-fix-4144
povik Jan 24, 2024
80511ce
Bump version
github-actions[bot] Jan 25, 2024
efe4d6d
SigSpec/SigChunk::extract(): assert offset/length are not out of range
nakengelhardt Jan 25, 2024
7c818d3
sim: Bring $print trigger/sampling semantics in line with FFs
jix Jan 25, 2024
d2a04cc
write_verilog: Making sure BUF cells are converted to expressions.
QuantamHD Jan 25, 2024
33fe2e4
fixes char* to string conversion issue
QuantamHD Jan 25, 2024
68a9aa7
peepopt: handle offset too large in `shiftadd`
Jan 26, 2024
7e524e0
Update workflows to Node.js 20
KrystalDelusion Jan 26, 2024
a5fdf3f
gowin: Change BYTE ENABLE handling.
yrabbit Jan 27, 2024
54c5431
Merge pull request #4167 from yrabbit/wip-byte-enable
mmicko Jan 27, 2024
887c905
Merge pull request #4166 from YosysHQ/update-workflows
mmicko Jan 27, 2024
4585d60
Bump version
github-actions[bot] Jan 28, 2024
d6600fb
rtlil: Fix handling of connections on wire deletion
povik Jan 8, 2024
c035289
rtlil: Do not create dummy wires when deleting wires in connections
povik Jan 9, 2024
ea3dc7c
rtlil: Add wire deletion test
povik Jan 22, 2024
ec06518
opt_clean: Add commentary around wire cleaning, NFC
povik Jan 9, 2024
7afc069
opt_clean: Assert an impossible path isn't taken
povik Jan 9, 2024
2282351
Merge pull request #4118 from povik/fix-conn-on-wire-delete
nakengelhardt Jan 29, 2024
fd838a9
Merge pull request #4140 from jix/writer_aiger_sccs
jix Jan 29, 2024
a9fe85c
Merge pull request #4141 from YosysHQ/small_build
nakengelhardt Jan 29, 2024
2f4dd99
Merge pull request #4162 from jix/sim-print-sampling
povik Jan 29, 2024
027cb31
Merge pull request #4161 from YosysHQ/nak/add_sig_extract_asserts
nakengelhardt Jan 29, 2024
112bcb0
Bump version
github-actions[bot] Jan 30, 2024
3076875
removing call to dump_attributes to remove possibility of generating …
QuantamHD Jan 30, 2024
79c5a06
gowin: Fix SDP write enable port.
yrabbit Jan 30, 2024
b572e1a
Merge pull request #4171 from yrabbit/sdp-wre
mmicko Jan 30, 2024
7f8b6dd
peepopt: delete unnecessary comment in shiftadd
Jan 30, 2024
3537976
Merge pull request #4163 from QuantamHD/fix_write_verilog
povik Jan 30, 2024
db1de5f
verific: add option to skip simplifying complex ports
mmicko Jan 30, 2024
4fa314c
Add API to overwrite existing pass from plugin
clairexen Jan 30, 2024
039634d
feat: mkdir with tree
hakan-demirli Jan 30, 2024
8c73165
Merge branch 'YosysHQ:master' into master
hakan-demirli Jan 30, 2024
3bc83c6
Bump version
github-actions[bot] Jan 31, 2024
cbdf9b2
peepopt: handle empty src-attribute in shiftadd
Jan 31, 2024
6c4bc5a
Merge pull request #4165 from phsauter/shiftadd-offset-fix
povik Jan 31, 2024
820232e
fix: function naming and locations
hakan-demirli Jan 31, 2024
dd5dc06
fix: save history file on windows
hakan-demirli Jan 31, 2024
bbb8ad5
Bump version
github-actions[bot] Feb 1, 2024
9f27923
Merge pull request #4173 from YosysHQ/verific_complex
nakengelhardt Feb 1, 2024
2baa578
Remove too fragile smtlib2_module test
jix Jan 22, 2024
331ac52
tests: Run async2sync before sat and/or sim to handle $check cells
jix Jan 22, 2024
6c49023
chformal: Support $check cells and add chformal -lower
jix Jan 22, 2024
e1a59ba
async2sync, clk2fflogic: Add support for $check and $print cells
jix Jan 22, 2024
c7bf0e3
Add new `$check` cell to represent assertions with a message.
whitequark Jan 11, 2024
c1d3288
chore: use similar variable/function names
hakan-demirli Feb 1, 2024
7dbe288
fix: descriptive logs
hakan-demirli Feb 1, 2024
ffb82df
Additional tests for FV $check compatibility
jix Feb 1, 2024
3caac53
Merge pull request #4128 from whitequark/check-cell
whitequark Feb 3, 2024
f5420d7
Bump version
github-actions[bot] Feb 4, 2024
3f457f2
ci: Fix CXXSTD typo
povik Feb 4, 2024
97b8ee5
ci: Get a dump of yosys-config into the build log
povik Feb 4, 2024
0cdd427
ci: ignore yosys-config return code
KrystalDelusion Feb 5, 2024
bc66dfd
verific: Fixes incorrect aldff inference in verific importer
QuantamHD Feb 5, 2024
ff578ec
fix formatting
QuantamHD Feb 5, 2024
f96e27a
Merge pull request #4123 from povik/clean-opt_clean
nakengelhardt Feb 5, 2024
2422dd6
Merge pull request #4153 from Coloquinte/blif_delay_constraints
nakengelhardt Feb 5, 2024
57db87c
py_wrap_generator: Handle const-qualified callbacks
povik Feb 5, 2024
1b73b5b
Merge pull request #4174 from YosysHQ/claire/overwrite
clairexen Feb 5, 2024
1df2a20
Bump version
github-actions[bot] Feb 6, 2024
5d3e4c5
Merge pull request #4182 from QuantamHD/fix_aldff
mmicko Feb 6, 2024
0470cbb
hierarchy: Without a known top module, derive all deferred modules
jix Jan 12, 2024
d00843d
Add -nordff to test
mmicko Feb 6, 2024
269c50f
Merge pull request #4130 from jix/hierarchy-defer-notop
mmicko Feb 6, 2024
f728927
Add builtin celltype $scopeinfo
jix Dec 19, 2023
8902fc9
Suport $scopeinfo in flatten and opt_clean
jix Dec 19, 2023
9288107
Test flatten and opt_clean's $scopeinfo handling
jix Dec 19, 2023
bfd9cf6
Ignore $scopeinfo in opt_merge
jix Jan 11, 2024
10d5d35
Ignore $scopeinfo in write_aiger
jix Jan 11, 2024
5cfbc16
Ignore $scopeinfo in write_edif
jix Jan 11, 2024
59a60c7
Ignore $scopeinfo in write_blif
jix Jan 11, 2024
55d8425
Ignore $scopeinfo in write_firrtl
jix Jan 11, 2024
418bf61
Ignore $scopeinfo in write_smv
jix Jan 11, 2024
5ee8beb
Ignore $scopeinfo in write_spice
jix Jan 11, 2024
f31fb95
Ignore $scopeinfo in write_verilog
jix Jan 11, 2024
bbe3976
Ignore $scopeinfo in write_json
jix Jan 12, 2024
0d5b48d
Add scopeinfo index/lookup utils
jix Jan 29, 2024
364bcfb
Example pass for the scopeinfo index/lookup utils
jix Jan 29, 2024
16ff3e0
Bump version
github-actions[bot] Feb 7, 2024
a98d363
synth: Run script in full in help mode
povik Feb 7, 2024
7a3316d
synth: Tweak phrasing of `-booth` help
povik Feb 7, 2024
f785eef
Merge branch 'master' of github.com:hakan-demirli/yosys into xdg
mmicko Feb 8, 2024
2797d67
Move block and change message to debug
mmicko Feb 8, 2024
a1824ba
Merge pull request #4187 from povik/synth-help
povik Feb 8, 2024
a38273c
add log_suppressed and fixed formatting
mmicko Feb 8, 2024
675b8a7
Merge pull request #4190 from YosysHQ/xdg
mmicko Feb 8, 2024
1236bb6
read_verilog: don't include empty `opt_sva_label` in span.
whitequark Feb 8, 2024
66479a2
hashlib: Add missing `stdint.h` include
povik Feb 8, 2024
af1a5cf
Address `SigBit`/`SigSpec` confusion issues under c++20
povik Feb 8, 2024
043f1e2
opt_lut: Remove leftover `-dlogic` help
povik Feb 8, 2024
d808258
Merge pull request #4193 from povik/opt_lut-help
mmicko Feb 8, 2024
2f4c917
Merge pull request #4181 from povik/ci-cxxstd-fix
mmicko Feb 8, 2024
8e3a718
Bump version
github-actions[bot] Feb 9, 2024
543faed
Release version 0.38
mmicko Feb 9, 2024
4683817
Next dev cycle
mmicko Feb 9, 2024
31dbd91
Bump version
github-actions[bot] Feb 10, 2024
2b89a5c
Update CHAPTER_Basics.rst
passingglance Feb 10, 2024
b1f8308
tests/various/clk2fflogic_effects.sh: fix tail invocation
tpwrules Feb 10, 2024
10e06f9
tests/various/clk2fflogic_effects.sh: remove /tmp use
tpwrules Feb 10, 2024
c46ebf2
Merge pull request #4198 from passingglance/patch-1
povik Feb 10, 2024
0b835f2
Bump version
github-actions[bot] Feb 11, 2024
ac0fb2e
Merge pull request #4199 from tpwrules/test-fix
jix Feb 11, 2024
39fea32
Add support for packed multidimensional arrays
daglem Jan 25, 2024
a32d9b6
Fix test of memory vs. memory converted to registers
daglem Jan 25, 2024
88d9e21
Decoding of a few more AST nodes in dumpVlog
daglem Dec 27, 2023
2125357
Add support for $increment
daglem Dec 27, 2023
e0d3977
Add support for $dimensions and $unpacked_dimensions
daglem Dec 27, 2023
03f35c3
Resolve multiple dimensions defined in stages with typedef
daglem Jan 1, 2024
a4ae773
Added test for multidimensional packed arrays
daglem Jan 1, 2024
fab326d
Add multidimensional arrays to SystemVerilog features in README
daglem Jan 4, 2024
f09ea16
Resolve struct member multiple dimensions defined in stages with typedef
daglem Jan 5, 2024
cd8e6cb
Bump version
github-actions[bot] Feb 12, 2024
1029712
fix test for verific
mmicko Feb 12, 2024
edb95c6
Merge pull request #4084 from jix/scopeinfo
mmicko Feb 12, 2024
ae7daf9
Verific: Add attributes to module instantiation
mmicko Feb 12, 2024
54a97f8
driver: Fix crashes on missing cli arguments
povik Feb 12, 2024
3473b6d
Merge pull request #4206 from povik/cli-crashes
jix Feb 12, 2024
606bbef
Bump version
github-actions[bot] Feb 13, 2024
ae1a67b
cxxrtl: fix debug information for zero-width items.
whitequark Feb 13, 2024
c3c4422
cxxrtl: document some `module` invariants. NFC
whitequark Feb 13, 2024
42920c9
cxxrtl: rationalize `debug_items` accessors.
whitequark Feb 13, 2024
9168535
Bump version
github-actions[bot] Feb 14, 2024
bbdfcfd
clk2fflogic: Fix handling of $check cells
jix Feb 14, 2024
149c1a7
tests: Support running `make test` with YOSYS_NOVERIFIC=1
jix Feb 14, 2024
18a5989
Merge pull request #4211 from jix/fix-check-clk2fflogic
povik Feb 14, 2024
f04bb10
Merge pull request #4212 from jix/make-test-noverific
mmicko Feb 14, 2024
074b50e
Bump version
github-actions[bot] Feb 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ jobs:
run: sudo apt-get install bison flex libreadline-dev tcl-dev libffi-dev

- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: cpp
queries: security-extended,security-and-quality
Expand All @@ -26,4 +26,4 @@ jobs:
run: make yosys -j6

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
6 changes: 3 additions & 3 deletions .github/workflows/emcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ jobs:
emcc:
runs-on: ubuntu-latest
steps:
- uses: mymindstorm/setup-emsdk@v11
- uses: actions/checkout@v3
- uses: mymindstorm/setup-emsdk@v14
- uses: actions/checkout@v4
- name: Build
run: |
make config-emcc
make YOSYS_VER=latest
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: yosysjs
path: yosysjs-latest.zip
12 changes: 8 additions & 4 deletions .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,19 +79,19 @@ jobs:
$CXX --version

- name: Checkout Yosys
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Get iverilog
shell: bash
run: |
git clone https://github.com/steveicarus/iverilog.git
cd iverilog
git checkout ${{ vars.IVERILOG_VERSION }}
git checkout 192b6aec96fde982e6ddcb28b346d5893aa8e874
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_ENV

- name: Cache iverilog
id: cache-iverilog
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: .local/
key: ${{ matrix.os.id }}-${{ env.IVERILOG_GIT }}
Expand All @@ -111,10 +111,14 @@ jobs:
shell: bash
run: |
make config-${CC%%-*}
make -j${{ env.procs }} CCXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC
make -j${{ env.procs }} CXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC

- name: Run tests
if: (matrix.cpp_std == 'c++11') && (matrix.compiler == 'gcc-11')
shell: bash
run: |
make -j${{ env.procs }} test CXXSTD=${{ matrix.cpp_std }} CC=$CC CXX=$CC LD=$CC

- name: Log yosys-config output
run: |
./yosys-config || true
6 changes: 3 additions & 3 deletions .github/workflows/test-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,19 @@ jobs:
cc --version

- name: Checkout Yosys
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Get iverilog
shell: bash
run: |
git clone https://github.com/steveicarus/iverilog.git
cd iverilog
git checkout ${{ vars.IVERILOG_VERSION }}
git checkout 192b6aec96fde982e6ddcb28b346d5893aa8e874
echo "IVERILOG_GIT=$(git rev-parse HEAD)" >> $GITHUB_ENV

- name: Cache iverilog
id: cache-iverilog
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: .local/
key: ${{ matrix.os.id }}-${{ env.IVERILOG_GIT }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/version.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Take last commit
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/vs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ jobs:
yosys-vcxsrc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build
run: make vcxsrc YOSYS_VER=latest
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: vcxsrc
path: yosys-win32-vcxsrc-latest.zip
Expand All @@ -18,7 +18,7 @@ jobs:
runs-on: windows-2019
needs: yosys-vcxsrc
steps:
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: vcxsrc
path: .
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/wasi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
wasi:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Build
run: |
WASI_SDK=wasi-sdk-19.0
Expand Down
21 changes: 20 additions & 1 deletion CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,28 @@
List of major changes and improvements between releases
=======================================================

Yosys 0.37 .. Yosys 0.38-dev
Yosys 0.38 .. Yosys 0.39-dev
--------------------------

Yosys 0.37 .. Yosys 0.38
--------------------------
* New commands and options
- Added option "-tech" to "opt_lut" pass.
- Added option "-nokeep_prints" to "hierarchy" pass.
- Added option "-nolower" to "async2sync" and "clk2fflogic" pass.
- Added option "-lower" to "chformal" pass.

* Various
- Added $check cell to represent assertions with messages.
- Allow capturing $print cell output in CXXRTL.
- Added API to overwrite existing pass from plugin.
- Follow the XDG Base Directory Specification for storing history files.
- Without a known top module, derive all deferred modules (hierarchy pass).
- Detect and error out on combinational loops in write_aiger.

* Verific support
- Added option "-no-split-complex-ports" to "verific -import".

Yosys 0.36 .. Yosys 0.37
--------------------------
* New commands and options
Expand Down
31 changes: 24 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ LDLIBS += -lrt
endif
endif

YOSYS_VER := 0.37+27
YOSYS_VER := 0.38+46

# Note: We arrange for .gitcommit to contain the (short) commit hash in
# tarballs generated with git-archive(1) using .gitattributes. The git repo
Expand All @@ -157,7 +157,7 @@ endif
OBJS = kernel/version_$(GIT_REV).o

bumpversion:
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline a5c7f69.. | wc -l`/;" Makefile
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 543faed.. | wc -l`/;" Makefile

# set 'ABCREV = default' to use abc/ as it is
#
Expand Down Expand Up @@ -630,6 +630,7 @@ $(eval $(call add_include_file,kernel/qcsat.h))
$(eval $(call add_include_file,kernel/register.h))
$(eval $(call add_include_file,kernel/rtlil.h))
$(eval $(call add_include_file,kernel/satgen.h))
$(eval $(call add_include_file,kernel/scopeinfo.h))
$(eval $(call add_include_file,kernel/sigtools.h))
$(eval $(call add_include_file,kernel/timinginfo.h))
$(eval $(call add_include_file,kernel/utils.h))
Expand All @@ -656,7 +657,7 @@ $(eval $(call add_include_file,backends/cxxrtl/runtime/cxxrtl/capi/cxxrtl_capi_v

OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o kernel/yosys.o
OBJS += kernel/binding.o
OBJS += kernel/cellaigs.o kernel/celledges.o kernel/satgen.o kernel/qcsat.o kernel/mem.o kernel/ffmerge.o kernel/ff.o kernel/yw.o kernel/json.o kernel/fmt.o
OBJS += kernel/cellaigs.o kernel/celledges.o kernel/satgen.o kernel/scopeinfo.o kernel/qcsat.o kernel/mem.o kernel/ffmerge.o kernel/ff.o kernel/yw.o kernel/json.o kernel/fmt.o
ifeq ($(ENABLE_ZLIB),1)
OBJS += kernel/fstdata.o
endif
Expand All @@ -679,12 +680,8 @@ OBJS += libs/bigint/BigUnsigned.o libs/bigint/BigUnsignedInABase.o

OBJS += libs/sha1/sha1.o

ifneq ($(SMALL),1)

OBJS += libs/json11/json11.o

OBJS += libs/subcircuit/subcircuit.o

OBJS += libs/ezsat/ezsat.o
OBJS += libs/ezsat/ezminisat.o

Expand All @@ -699,6 +696,10 @@ OBJS += libs/fst/fastlz.o
OBJS += libs/fst/lz4.o
endif

ifneq ($(SMALL),1)

OBJS += libs/subcircuit/subcircuit.o

include $(YOSYS_SRC)/frontends/*/Makefile.inc
include $(YOSYS_SRC)/passes/*/Makefile.inc
include $(YOSYS_SRC)/backends/*/Makefile.inc
Expand All @@ -707,6 +708,9 @@ include $(YOSYS_SRC)/techlibs/*/Makefile.inc
else

include $(YOSYS_SRC)/frontends/verilog/Makefile.inc
ifeq ($(ENABLE_VERIFIC),1)
include $(YOSYS_SRC)/frontends/verific/Makefile.inc
endif
include $(YOSYS_SRC)/frontends/rtlil/Makefile.inc
include $(YOSYS_SRC)/frontends/ast/Makefile.inc
include $(YOSYS_SRC)/frontends/blif/Makefile.inc
Expand Down Expand Up @@ -844,9 +848,22 @@ else
ABCOPT=""
endif

# When YOSYS_NOVERIFIC is set as a make variable, also export it to the
# enviornment, so that `YOSYS_NOVERIFIC=1 make test` _and_
# `make test YOSYS_NOVERIFIC=1` will run with verific disabled.
ifeq ($(YOSYS_NOVERIFIC),1)
export YOSYS_NOVERIFIC
endif

test: $(TARGETS) $(EXTRA_TARGETS)
ifeq ($(ENABLE_VERIFIC),1)
ifeq ($(YOSYS_NOVERIFIC),1)
@echo
@echo "Running tests without verific support due to YOSYS_NOVERIFIC=1"
@echo
else
+cd tests/verific && bash run-test.sh $(SEEDOPT)
endif
endif
+cd tests/simple && bash run-test.sh $(SEEDOPT)
+cd tests/simple_abc9 && bash run-test.sh $(SEEDOPT)
Expand Down
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,13 @@ from SystemVerilog:
- enums are supported (including inside packages)
- but are currently not strongly typed

- packed structs and unions are supported.
- packed structs and unions are supported
- arrays of packed structs/unions are currently not supported
- structure literals are currently not supported

- multidimensional arrays are supported
- array assignment of unpacked arrays is currently not supported
- array literals are currently not supported

- SystemVerilog interfaces (SVIs) are supported. Modports for specifying whether
ports are inputs or outputs are supported.
Expand Down
24 changes: 24 additions & 0 deletions backends/aiger/aiger.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ struct AigerWriter

vector<pair<int, int>> aig_gates;
vector<int> aig_latchin, aig_latchinit, aig_outputs;
vector<SigBit> bit2aig_stack;
size_t next_loop_check = 1024;
int aig_m = 0, aig_i = 0, aig_l = 0, aig_o = 0, aig_a = 0;
int aig_b = 0, aig_c = 0, aig_j = 0, aig_f = 0;

Expand Down Expand Up @@ -81,6 +83,23 @@ struct AigerWriter
return it->second;
}

if (bit2aig_stack.size() == next_loop_check) {
for (size_t i = 0; i < next_loop_check; ++i)
{
SigBit report_bit = bit2aig_stack[i];
if (report_bit != bit)
continue;
for (size_t j = i; j < next_loop_check; ++j) {
report_bit = bit2aig_stack[j];
if (report_bit.is_wire() && report_bit.wire->name.isPublic())
break;
}
log_error("Found combinational logic loop while processing signal %s.\n", log_signal(report_bit));
}
next_loop_check *= 2;
}
bit2aig_stack.push_back(bit);

// NB: Cannot use iterator returned from aig_map.insert()
// since this function is called recursively

Expand All @@ -101,6 +120,8 @@ struct AigerWriter
a = initstate_ff;
}

bit2aig_stack.pop_back();

if (bit == State::Sx || bit == State::Sz)
log_error("Design contains 'x' or 'z' bits. Use 'setundef' to replace those constants.\n");

Expand Down Expand Up @@ -299,6 +320,9 @@ struct AigerWriter
continue;
}

if (cell->type == ID($scopeinfo))
continue;

log_error("Unsupported cell type: %s (%s)\n", log_id(cell->type), log_id(cell));
}

Expand Down
3 changes: 3 additions & 0 deletions backends/blif/blif.cc
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,9 @@ struct BlifDumper

for (auto cell : module->cells())
{
if (cell->type == ID($scopeinfo))
continue;

if (config->unbuf_types.count(cell->type)) {
auto portnames = config->unbuf_types.at(cell->type);
f << stringf(".names %s %s\n1 1\n",
Expand Down
Loading
Loading