Skip to content

Commit bf05ff7

Browse files
authored
Merge pull request #26 from YosysHQ/main
bump fork for version 0.48
2 parents bb0b63c + e91e95f commit bf05ff7

File tree

179 files changed

+18184
-8193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+18184
-8193
lines changed

Diff for: .github/workflows/test-compile.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ jobs:
3232
# oldest supported
3333
- 'clang-14'
3434
- 'gcc-10'
35-
# newest
36-
- 'clang'
37-
- 'gcc'
35+
# newest, make sure to update maximum standard step to match
36+
- 'clang-18'
37+
- 'gcc-13'
3838
include:
3939
# macOS
4040
- os: macos-13
@@ -72,7 +72,7 @@ jobs:
7272
7373
# maximum standard, only on newest compilers
7474
- name: Build C++20
75-
if: ${{ matrix.compiler == 'clang' || matrix.compiler == 'gcc'}}
75+
if: ${{ matrix.compiler == 'clang-18' || matrix.compiler == 'gcc-13' }}
7676
shell: bash
7777
run: |
7878
make config-$CC_SHORT

Diff for: CHANGELOG

+28-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,36 @@
22
List of major changes and improvements between releases
33
=======================================================
44

5-
Yosys 0.47 .. Yosys 0.48-dev
5+
Yosys 0.48 .. Yosys 0.49-dev
66
--------------------------
77

8+
Yosys 0.47 .. Yosys 0.48
9+
--------------------------
10+
* Various
11+
- Removed "read_ilang" deprecated pass.
12+
- Enhanced boxing features in the experimental "abc_new" command.
13+
- Added new Tcl methods for design inspection.
14+
- Added clock enable inference to "dfflibmap".
15+
- Added a Han-Carlson and Sklansky option for $lcu mapping.
16+
17+
* New commands and options
18+
- Added "-nopeepopt" option to "clk2fflogic" pass.
19+
- Added "-liberty" and "-dont_use" options to "clockgate" pass.
20+
- Added "-ignore_buses" option to "read_liberty" pass.
21+
- Added "-dont_map" option to "techmap" pass.
22+
- Added "-selected" option to "write_json" pass.
23+
- Added "wrapcell" command for creating wrapper modules
24+
around selected cells.
25+
- Added "portarcs" command for deriving propagation timing arcs.
26+
- Added "setenv" command for setting environment variables.
27+
28+
* Gowin support
29+
- Added "-family" option to "synth_gowin" pass.
30+
- Cell definitions split by family.
31+
32+
* Verific support
33+
- Improved blackbox support.
34+
835
Yosys 0.46 .. Yosys 0.47
936
--------------------------
1037
* Various

Diff for: CODE_OF_CONDUCT.md

+128
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, religion, or sexual identity
10+
and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the
26+
overall community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or
31+
advances of any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email
35+
address, without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported by contacting the project team at [email protected] and/or
63+
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series
86+
of actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or
93+
permanent ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within
113+
the community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.0, available at
119+
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
120+
121+
Community Impact Guidelines were inspired by [Mozilla's code of conduct
122+
enforcement ladder](https://github.com/mozilla/diversity).
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
126+
For answers to common questions about this code of conduct, see the FAQ at
127+
https://www.contributor-covenant.org/faq. Translations are available at
128+
https://www.contributor-covenant.org/translations.

Diff for: Makefile

+14-13
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ AWK ?= awk
118118

119119
ifeq ($(OS), Darwin)
120120
PLUGIN_LINKFLAGS += -undefined dynamic_lookup
121+
LINKFLAGS += -rdynamic
121122

122123
# homebrew search paths
123124
ifneq ($(shell :; command -v brew),)
@@ -154,7 +155,7 @@ ifeq ($(OS), Haiku)
154155
CXXFLAGS += -D_DEFAULT_SOURCE
155156
endif
156157

157-
YOSYS_VER := 0.47+0
158+
YOSYS_VER := 0.48+0
158159

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

172173
bumpversion:
173-
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 647d61d.. | wc -l`/;" Makefile
174+
sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline aaa5347.. | wc -l`/;" Makefile
174175

175176
ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 ABC_USE_NAMESPACE=abc VERBOSE=$(Q)
176177

@@ -304,7 +305,7 @@ endif
304305
else ifeq ($(CONFIG),mxe)
305306
PKG_CONFIG = /usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-pkg-config
306307
CXX = /usr/local/src/mxe/usr/bin/i686-w64-mingw32.static-g++
307-
CXXFLAGS += -std=$(CXXSTD) $(OPT_LEVEL) -D_POSIX_SOURCE -DYOSYS_MXE_HACKS -Wno-attributes
308+
CXXFLAGS += -std=$(CXXSTD) $(OPT_LEVEL) -D_POSIX_SOURCE -Wno-attributes
308309
CXXFLAGS := $(filter-out -fPIC,$(CXXFLAGS))
309310
LINKFLAGS := $(filter-out -rdynamic,$(LINKFLAGS)) -s
310311
LIBS := $(filter-out -lrt,$(LIBS))
@@ -397,10 +398,9 @@ endif
397398
else
398399
ifeq ($(ENABLE_EDITLINE),1)
399400
CXXFLAGS += -DYOSYS_ENABLE_EDITLINE
400-
LIBS += -ledit -ltinfo -lbsd
401-
else
402-
ABCMKARGS += "ABC_USE_NO_READLINE=1"
401+
LIBS += -ledit
403402
endif
403+
ABCMKARGS += "ABC_USE_NO_READLINE=1"
404404
endif
405405

406406
ifeq ($(DISABLE_ABC_THREADS),1)
@@ -449,6 +449,9 @@ LIBS += -ltcl86 -lwsock32 -lws2_32 -lnetapi32 -lz -luserenv
449449
else
450450
CXXFLAGS += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --silence-errors --cflags tcl || echo -I$(TCL_INCLUDE)) -DYOSYS_ENABLE_TCL
451451
LIBS += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --silence-errors --libs tcl || echo $(TCL_LIBS))
452+
ifneq (,$(findstring TCL_WITH_EXTERNAL_TOMMATH,$(CXXFLAGS)))
453+
LIBS += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH) $(PKG_CONFIG) --silence-errors --libs libtommath || echo)
454+
endif
452455
endif
453456
endif
454457

@@ -639,7 +642,7 @@ $(eval $(call add_include_file,frontends/blif/blifparse.h))
639642
$(eval $(call add_include_file,backends/rtlil/rtlil_backend.h))
640643

641644
OBJS += kernel/driver.o kernel/register.o kernel/rtlil.o kernel/log.o kernel/calc.o kernel/yosys.o
642-
OBJS += kernel/binding.o
645+
OBJS += kernel/binding.o kernel/tclapi.o
643646
OBJS += kernel/cellaigs.o kernel/celledges.o kernel/cost.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 kernel/sexpr.o
644647
OBJS += kernel/drivertools.o kernel/functional.o
645648
ifeq ($(ENABLE_ZLIB),1)
@@ -996,15 +999,12 @@ docs/source/cell/word_add.rst: $(TARGETS) $(EXTRA_TARGETS)
996999
docs/source/generated/cells.json: docs/source/generated $(TARGETS) $(EXTRA_TARGETS)
9971000
$(Q) ./$(PROGRAM_PREFIX)yosys -p 'help -dump-cells-json $@'
9981001

999-
PHONY: docs/gen docs/guidelines docs/usage docs/reqs
1002+
PHONY: docs/gen docs/usage docs/reqs
10001003
docs/gen: $(TARGETS)
10011004
$(Q) $(MAKE) -C docs gen
10021005

1003-
DOCS_GUIDELINE_FILES := GettingStarted CodingStyle
1004-
DOCS_GUIDELINE_SOURCE := $(addprefix guidelines/,$(DOCS_GUIDELINE_FILES))
1005-
docs/guidelines docs/source/generated: $(DOCS_GUIDELINE_SOURCE)
1006+
docs/source/generated:
10061007
$(Q) mkdir -p docs/source/generated
1007-
$(Q) cp -f $(DOCS_GUIDELINE_SOURCE) docs/source/generated
10081008

10091009
# some commands return an error and print the usage text to stderr
10101010
define DOC_USAGE_STDERR
@@ -1034,7 +1034,7 @@ docs/reqs:
10341034
$(Q) $(MAKE) -C docs reqs
10351035

10361036
.PHONY: docs/prep
1037-
docs/prep: docs/source/cmd/abc.rst docs/source/generated/cells.json docs/gen docs/guidelines docs/usage
1037+
docs/prep: docs/source/cmd/abc.rst docs/source/generated/cells.json docs/gen docs/usage
10381038

10391039
DOC_TARGET ?= html
10401040
docs: docs/prep
@@ -1094,6 +1094,7 @@ vcxsrc: $(GENFILES) $(EXTRA_TARGETS)
10941094
rm -rf yosys-win32-vcxsrc-$(YOSYS_VER){,.zip}
10951095
set -e; for f in `ls $(filter %.cc %.cpp,$(GENFILES)) $(addsuffix .cc,$(basename $(OBJS))) $(addsuffix .cpp,$(basename $(OBJS))) 2> /dev/null`; do \
10961096
echo "Analyse: $$f" >&2; cpp -std=c++17 -MM -I. -D_YOSYS_ $$f; done | sed 's,.*:,,; s,//*,/,g; s,/[^/]*/\.\./,/,g; y, \\,\n\n,;' | grep '^[^/]' | sort -u | grep -v kernel/version_ > srcfiles.txt
1097+
echo "libs/fst/fst_win_unistd.h" >> srcfiles.txt
10971098
bash misc/create_vcxsrc.sh yosys-win32-vcxsrc $(YOSYS_VER) $(GIT_REV)
10981099
echo "namespace Yosys { extern const char *yosys_version_str; const char *yosys_version_str=\"Yosys (Version Information Unavailable)\"; }" > kernel/version.cc
10991100
zip yosys-win32-vcxsrc-$(YOSYS_VER)/genfiles.zip $(GENFILES) kernel/version.cc

0 commit comments

Comments
 (0)