From 3076803c9e3742859e42a00c62af9441fb8b9339 Mon Sep 17 00:00:00 2001 From: Catherine Date: Thu, 23 Jan 2025 05:17:52 +0000 Subject: [PATCH 01/23] write_json: missing \n in help text. --- backends/json/json.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/json/json.cc b/backends/json/json.cc index 20d42f626..749fe1fc3 100644 --- a/backends/json/json.cc +++ b/backends/json/json.cc @@ -408,7 +408,7 @@ struct JsonBackend : public Backend { log("\n"); log("The \"offset\" and \"upto\" fields are skipped if their value would be 0.\n"); log("They don't affect connection semantics, and are only used to preserve original\n"); - log("HDL bit indexing."); + log("HDL bit indexing.\n"); log("And is:\n"); log("\n"); log(" {\n"); From 3d35f367cfc2c11a477f665c2bbc26eadb6b59ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Jan 2025 00:20:25 +0000 Subject: [PATCH 02/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 896d44203..b11c27597 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+1 +YOSYS_VER := 0.49+3 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From 9d4630484fa117774c307ec19b6cfcf2ccf0863b Mon Sep 17 00:00:00 2001 From: Wanda Date: Wed, 29 Jan 2025 01:39:09 +0100 Subject: [PATCH 03/23] mailmap: fix up some identities. --- .mailmap | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.mailmap b/.mailmap index 78afe1b6c..2d9f424d4 100644 --- a/.mailmap +++ b/.mailmap @@ -1,6 +1,6 @@ -Marcelina Kościelnicka -Marcelina Kościelnicka -Marcelina Kościelnicka +Wanda Phinode +Wanda Phinode +Wanda Phinode Claire Xenia Wolf Claire Xenia Wolf Claire Xenia Wolf From 9534f4ab809babad5f82d66efeba7a2fb633024d Mon Sep 17 00:00:00 2001 From: Peter Gadfort Date: Wed, 29 Jan 2025 15:56:05 -0500 Subject: [PATCH 04/23] check if characters are found and use size if not --- passes/techmap/libparse.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/passes/techmap/libparse.h b/passes/techmap/libparse.h index fef569927..16808fc58 100644 --- a/passes/techmap/libparse.h +++ b/passes/techmap/libparse.h @@ -59,6 +59,10 @@ namespace Yosys std::string pin() { auto length = s.find_first_of("\t()'!^*& +|"); + if (length == std::string::npos) { + // nothing found so use size of s + length = s.size(); + } auto pin = s.substr(0, length); s = s.substr(length, s.size()); return pin; From 954250d1dfa1530cc235aaea3e475cdaac854dcb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 00:20:17 +0000 Subject: [PATCH 05/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index b11c27597..371380cd2 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+3 +YOSYS_VER := 0.49+5 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From c2691207df5c337f08577cd9a4fc50c68f4c7edb Mon Sep 17 00:00:00 2001 From: "Emil J. Tywoniak" Date: Thu, 30 Jan 2025 12:01:30 +0100 Subject: [PATCH 06/23] wreduce: fix warning for deprecated IdString::in(pool) --- passes/opt/wreduce.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/passes/opt/wreduce.cc b/passes/opt/wreduce.cc index 5b3b1edc8..be67d3a7f 100644 --- a/passes/opt/wreduce.cc +++ b/passes/opt/wreduce.cc @@ -280,7 +280,7 @@ struct WreduceWorker { bool did_something = false; - if (!cell->type.in(config->supported_cell_types)) + if (!config->supported_cell_types.count(cell->type)) return; if (cell->type.in(ID($mux), ID($pmux))) From 2f11dc87c987f734009d8171c5f15dc12f85061e Mon Sep 17 00:00:00 2001 From: Robin Ole Heinemann Date: Thu, 30 Jan 2025 10:15:53 +0100 Subject: [PATCH 07/23] write_verilog: emit $check cell names as labels --- backends/verilog/verilog_backend.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc index fa9100635..419f484fa 100644 --- a/backends/verilog/verilog_backend.cc +++ b/backends/verilog/verilog_backend.cc @@ -1044,16 +1044,21 @@ void dump_cell_expr_print(std::ostream &f, std::string indent, const RTLIL::Cell void dump_cell_expr_check(std::ostream &f, std::string indent, const RTLIL::Cell *cell) { std::string flavor = cell->getParam(ID(FLAVOR)).decode_string(); + std::string label = ""; + if (cell->name.isPublic()) { + label = stringf("%s: ", id(cell->name).c_str()); + } + if (flavor == "assert") - f << stringf("%s" "assert (", indent.c_str()); + f << stringf("%s" "%s" "assert (", indent.c_str(), label.c_str()); else if (flavor == "assume") - f << stringf("%s" "assume (", indent.c_str()); + f << stringf("%s" "%s" "assume (", indent.c_str(), label.c_str()); else if (flavor == "live") - f << stringf("%s" "assert (eventually ", indent.c_str()); + f << stringf("%s" "%s" "assert (eventually ", indent.c_str(), label.c_str()); else if (flavor == "fair") - f << stringf("%s" "assume (eventually ", indent.c_str()); + f << stringf("%s" "%s" "assume (eventually ", indent.c_str(), label.c_str()); else if (flavor == "cover") - f << stringf("%s" "cover (", indent.c_str()); + f << stringf("%s" "%s" "cover (", indent.c_str(), label.c_str()); dump_sigspec(f, cell->getPort(ID::A)); f << stringf(");\n"); } From 0ab13924a54fa9db49f52b51b29cee058cc543c4 Mon Sep 17 00:00:00 2001 From: Robin Ole Heinemann Date: Thu, 30 Jan 2025 14:39:09 +0100 Subject: [PATCH 08/23] write_verilog: log_abort on unhandled $check flavor --- backends/verilog/verilog_backend.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backends/verilog/verilog_backend.cc b/backends/verilog/verilog_backend.cc index 419f484fa..2bc6ff3b8 100644 --- a/backends/verilog/verilog_backend.cc +++ b/backends/verilog/verilog_backend.cc @@ -1059,6 +1059,8 @@ void dump_cell_expr_check(std::ostream &f, std::string indent, const RTLIL::Cell f << stringf("%s" "%s" "assume (eventually ", indent.c_str(), label.c_str()); else if (flavor == "cover") f << stringf("%s" "%s" "cover (", indent.c_str(), label.c_str()); + else + log_abort(); dump_sigspec(f, cell->getPort(ID::A)); f << stringf(");\n"); } From 40c690b0305b15e51d7dec2e2b5ca1051c37be95 Mon Sep 17 00:00:00 2001 From: Jannis Harder Date: Wed, 30 Oct 2024 17:30:44 +0100 Subject: [PATCH 09/23] extract_fa: Add test case --- tests/various/bug3879.ys | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/various/bug3879.ys diff --git a/tests/various/bug3879.ys b/tests/various/bug3879.ys new file mode 100644 index 000000000..7163a1f56 --- /dev/null +++ b/tests/various/bug3879.ys @@ -0,0 +1,29 @@ +read_verilog < Date: Wed, 30 Oct 2024 17:30:56 +0100 Subject: [PATCH 10/23] extract_fa: Invert xor3/xnor3 output when inverting majority3 input --- passes/techmap/extract_fa.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/passes/techmap/extract_fa.cc b/passes/techmap/extract_fa.cc index ec1979f3b..1984f82f5 100644 --- a/passes/techmap/extract_fa.cc +++ b/passes/techmap/extract_fa.cc @@ -412,14 +412,15 @@ struct ExtractFaWorker facache[fakey] = make_tuple(X, Y, cell); } + bool invert_y = f3i.inv_a ^ f3i.inv_b ^ f3i.inv_c; if (func3.at(key).count(xor3_func)) { - SigBit YY = invert_xy ? module->NotGate(NEW_ID, Y) : Y; + SigBit YY = invert_xy ^ invert_y ? module->NotGate(NEW_ID, Y) : Y; for (auto bit : func3.at(key).at(xor3_func)) assign_new_driver(bit, YY); } if (func3.at(key).count(xnor3_func)) { - SigBit YY = invert_xy ? Y : module->NotGate(NEW_ID, Y); + SigBit YY = invert_xy ^ invert_y ? Y : module->NotGate(NEW_ID, Y); for (auto bit : func3.at(key).at(xnor3_func)) assign_new_driver(bit, YY); } From 31b00b4c72f89cf7e9e61733141838cf7819f2db Mon Sep 17 00:00:00 2001 From: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com> Date: Fri, 31 Jan 2025 11:03:33 +1300 Subject: [PATCH 11/23] celledges: Use b_width_capped for left shifts `b_width_capped` already exists for preventing arithmetic overflow, limiting the value of `b_width` to 30. This just changes the left shifts to also use it. The caveat of incorrect results for extremely large values of `a_width` still applies, as does the improbability of that actually happening. This fixes #4844 (or at least, the floating point exception; the circuit still isn't valid but I think that's fine). --- kernel/celledges.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/celledges.cc b/kernel/celledges.cc index bad7124d9..68e55db02 100644 --- a/kernel/celledges.cc +++ b/kernel/celledges.cc @@ -253,13 +253,13 @@ void shift_op(AbstractCellEdgesDatabase *db, RTLIL::Cell *cell) if (a_width == 1 && is_signed) { int skip = 1 << (k + 1); int base = skip -1; - if (i % skip != base && i - a_width + 2 < 1 << b_width) + if (i % skip != base && i - a_width + 2 < 1 << b_width_capped) db->add_edge(cell, ID::B, k, ID::Y, i, -1); } else if (is_signed) { - if (i - a_width + 2 < 1 << b_width) + if (i - a_width + 2 < 1 << b_width_capped) db->add_edge(cell, ID::B, k, ID::Y, i, -1); } else { - if (i - a_width + 1 < 1 << b_width) + if (i - a_width + 1 < 1 << b_width_capped) db->add_edge(cell, ID::B, k, ID::Y, i, -1); } // right shifts From cf52cf300916d82eaee0194b29d9ae342c0a6d68 Mon Sep 17 00:00:00 2001 From: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com> Date: Fri, 31 Jan 2025 12:15:53 +1300 Subject: [PATCH 12/23] nowrshmsk: Check for stride==0 log2(0) returns -inf, which gives undefined behaviour when casting to an int. So catch the case when it's 0 just set the width to 0. --- frontends/ast/simplify.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index b00cde28e..d35756d4e 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -2936,7 +2936,10 @@ bool AstNode::simplify(bool const_fold, int stage, int width_hint, bool sign_hin lsb_expr->children[stride_ix]->detectSignWidth(stride_width, stride_sign); max_width = std::max(i_width, stride_width); // Stride width calculated from actual stride value. - stride_width = std::ceil(std::log2(std::abs(stride))); + if (stride == 0) + stride_width = 0; + else + stride_width = std::ceil(std::log2(std::abs(stride))); if (i_width + stride_width > max_width) { // For (truncated) i*stride to be within the range of dst, the following must hold: From 18a7c00382cd64d46b61ff6cafe80851ca29cb77 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 00:20:35 +0000 Subject: [PATCH 13/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 371380cd2..fb3e5654e 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+5 +YOSYS_VER := 0.49+10 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From f5c53a99e76cef918b01e8b1b773c6be7b18e1e0 Mon Sep 17 00:00:00 2001 From: Catherine Date: Tue, 14 Jan 2025 06:11:52 +0000 Subject: [PATCH 14/23] CI: Sanitize for undefined behavior. --- .github/workflows/test-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 95af300c9..6a69caaea 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -56,6 +56,7 @@ jobs: mkdir build cd build make -f ../Makefile config-$CC + echo 'SANITIZER = undefined' >> Makefile.conf make -f ../Makefile -j$procs ENABLE_LTO=1 - name: Log yosys-config output @@ -82,6 +83,7 @@ jobs: if: needs.pre_job.outputs.should_skip != 'true' env: CC: clang + UBSAN_OPTIONS: halt_on_error=1 strategy: matrix: os: [ubuntu-latest, macos-latest] From 212d2a6d6e962606c825a136a34bdee02d0d9c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Povi=C5=A1er?= Date: Mon, 3 Feb 2025 11:13:07 +0100 Subject: [PATCH 15/23] lib/fst: Remove unaligned pointer access --- libs/fst/00_PATCH_strict_alignment.patch | 42 ++++++++++++++++++++++++ libs/fst/00_UPDATE.sh | 1 + libs/fst/fastlz.cc | 21 +----------- 3 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 libs/fst/00_PATCH_strict_alignment.patch diff --git a/libs/fst/00_PATCH_strict_alignment.patch b/libs/fst/00_PATCH_strict_alignment.patch new file mode 100644 index 000000000..77946824d --- /dev/null +++ b/libs/fst/00_PATCH_strict_alignment.patch @@ -0,0 +1,42 @@ +diff --git a/fastlz.cc b/fastlz.cc +index 3272ca7a8..41ea27a16 100644 +--- a/fastlz.cc ++++ b/fastlz.cc +@@ -60,24 +60,9 @@ + #endif + + /* +- * Prevent accessing more than 8-bit at once, except on x86 architectures. ++ * Yosys patch: do not do unaligned accesses on any platform + */ +-#if !defined(FASTLZ_STRICT_ALIGN) + #define FASTLZ_STRICT_ALIGN +-#if defined(__i386__) || defined(__386) /* GNU C, Sun Studio */ +-#undef FASTLZ_STRICT_ALIGN +-#elif defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__amd64) /* GNU C */ +-#undef FASTLZ_STRICT_ALIGN +-#elif defined(_M_IX86) /* Intel, MSVC */ +-#undef FASTLZ_STRICT_ALIGN +-#elif defined(__386) +-#undef FASTLZ_STRICT_ALIGN +-#elif defined(_X86_) /* MinGW */ +-#undef FASTLZ_STRICT_ALIGN +-#elif defined(__I86__) /* Digital Mars */ +-#undef FASTLZ_STRICT_ALIGN +-#endif +-#endif + + /* prototypes */ + int fastlz_compress(const void* input, int length, void* output); +@@ -88,11 +73,7 @@ int fastlz_decompress(const void* input, int length, void* output, int maxout); + #define MAX_LEN 264 /* 256 + 8 */ + #define MAX_DISTANCE 8192 + +-#if !defined(FASTLZ_STRICT_ALIGN) +-#define FASTLZ_READU16(p) *((const flzuint16*)(p)) +-#else + #define FASTLZ_READU16(p) ((p)[0] | (p)[1]<<8) +-#endif + + #define HASH_LOG 13 + #define HASH_SIZE (1<< HASH_LOG) diff --git a/libs/fst/00_UPDATE.sh b/libs/fst/00_UPDATE.sh index aef0e4fe8..7ab74d7cd 100755 --- a/libs/fst/00_UPDATE.sh +++ b/libs/fst/00_UPDATE.sh @@ -17,3 +17,4 @@ sed -i -e 's,"fastlz.c","fastlz.cc",' *.cc *.h patch -p0 < 00_PATCH_win_zlib.patch patch -p0 < 00_PATCH_win_io.patch +patch -p1 < 00_PATCH_strict_alignment.patch diff --git a/libs/fst/fastlz.cc b/libs/fst/fastlz.cc index 3272ca7a8..41ea27a16 100644 --- a/libs/fst/fastlz.cc +++ b/libs/fst/fastlz.cc @@ -60,24 +60,9 @@ #endif /* - * Prevent accessing more than 8-bit at once, except on x86 architectures. + * Yosys patch: do not do unaligned accesses on any platform */ -#if !defined(FASTLZ_STRICT_ALIGN) #define FASTLZ_STRICT_ALIGN -#if defined(__i386__) || defined(__386) /* GNU C, Sun Studio */ -#undef FASTLZ_STRICT_ALIGN -#elif defined(__i486__) || defined(__i586__) || defined(__i686__) || defined(__amd64) /* GNU C */ -#undef FASTLZ_STRICT_ALIGN -#elif defined(_M_IX86) /* Intel, MSVC */ -#undef FASTLZ_STRICT_ALIGN -#elif defined(__386) -#undef FASTLZ_STRICT_ALIGN -#elif defined(_X86_) /* MinGW */ -#undef FASTLZ_STRICT_ALIGN -#elif defined(__I86__) /* Digital Mars */ -#undef FASTLZ_STRICT_ALIGN -#endif -#endif /* prototypes */ int fastlz_compress(const void* input, int length, void* output); @@ -88,11 +73,7 @@ int fastlz_decompress(const void* input, int length, void* output, int maxout); #define MAX_LEN 264 /* 256 + 8 */ #define MAX_DISTANCE 8192 -#if !defined(FASTLZ_STRICT_ALIGN) -#define FASTLZ_READU16(p) *((const flzuint16*)(p)) -#else #define FASTLZ_READU16(p) ((p)[0] | (p)[1]<<8) -#endif #define HASH_LOG 13 #define HASH_SIZE (1<< HASH_LOG) From 77af7962afc53c42738f1fbd6cdad1764f22647c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 00:20:30 +0000 Subject: [PATCH 16/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index fb3e5654e..e45b6abe3 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+10 +YOSYS_VER := 0.49+17 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From 23b3638c1e9a67c49e7e5f1208250c3e786da47a Mon Sep 17 00:00:00 2001 From: Adrian Parvin Ouano Date: Wed, 11 Oct 2023 06:59:04 +0800 Subject: [PATCH 17/23] alumacc: alternative cmp unification implementation --- passes/techmap/alumacc.cc | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/passes/techmap/alumacc.cc b/passes/techmap/alumacc.cc index d89a6fbec..040569745 100644 --- a/passes/techmap/alumacc.cc +++ b/passes/techmap/alumacc.cc @@ -405,11 +405,6 @@ struct AlumaccWorker RTLIL::SigSpec B = sigmap(cell->getPort(ID::B)); RTLIL::SigSpec Y = sigmap(cell->getPort(ID::Y)); - if (B < A && GetSize(B)) { - cmp_less = !cmp_less; - std::swap(A, B); - } - alunode_t *n = nullptr; for (auto node : sig_alu[RTLIL::SigSig(A, B)]) @@ -418,6 +413,16 @@ struct AlumaccWorker break; } + if (n == nullptr) { + for (auto node : sig_alu[RTLIL::SigSig(B, A)]) + if (node->invert_b && node->c == State::S1) { + n = node; + cmp_less = !cmp_less; + std::swap(A, B); + break; + } + } + if (n == nullptr) { n = new alunode_t; n->a = A; @@ -445,9 +450,6 @@ struct AlumaccWorker RTLIL::SigSpec B = sigmap(cell->getPort(ID::B)); RTLIL::SigSpec Y = sigmap(cell->getPort(ID::Y)); - if (B < A && GetSize(B)) - std::swap(A, B); - alunode_t *n = nullptr; for (auto node : sig_alu[RTLIL::SigSig(A, B)]) @@ -456,6 +458,14 @@ struct AlumaccWorker break; } + if (n == nullptr) { + for (auto node : sig_alu[RTLIL::SigSig(B, A)]) + if (node->invert_b && node->c == State::S1) { + n = node; + break; + } + } + if (n != nullptr) { log(" creating $alu model for %s (%s): merged with %s.\n", log_id(cell), log_id(cell->type), log_id(n->cells.front())); n->cells.push_back(cell); From b5752dfe16470acacf28c81a5447f0e2a8488e37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Povi=C5=A1er?= Date: Tue, 4 Feb 2025 13:05:53 +0100 Subject: [PATCH 18/23] alumacc: Fix missing signedness check --- passes/techmap/alumacc.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/passes/techmap/alumacc.cc b/passes/techmap/alumacc.cc index 040569745..591c51c74 100644 --- a/passes/techmap/alumacc.cc +++ b/passes/techmap/alumacc.cc @@ -415,7 +415,7 @@ struct AlumaccWorker if (n == nullptr) { for (auto node : sig_alu[RTLIL::SigSig(B, A)]) - if (node->invert_b && node->c == State::S1) { + if (node->is_signed == is_signed && node->invert_b && node->c == State::S1) { n = node; cmp_less = !cmp_less; std::swap(A, B); @@ -460,7 +460,7 @@ struct AlumaccWorker if (n == nullptr) { for (auto node : sig_alu[RTLIL::SigSig(B, A)]) - if (node->invert_b && node->c == State::S1) { + if (node->is_signed == is_signed && node->invert_b && node->c == State::S1) { n = node; break; } From ed5d9c86878e5b8ed91c05cd0e155001ed353ac8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 5 Feb 2025 00:21:01 +0000 Subject: [PATCH 19/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e45b6abe3..785d21642 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+17 +YOSYS_VER := 0.49+21 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From 333588265c88922cfa6e5336b81d0630e951f9fd Mon Sep 17 00:00:00 2001 From: Jason Xu <40355221+JasonBrave@users.noreply.github.com> Date: Sun, 9 Feb 2025 10:22:35 -0500 Subject: [PATCH 20/23] Remove obsolete Makefile docs/images clean call --- Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/Makefile b/Makefile index 785d21642..ad6f5d64a 100644 --- a/Makefile +++ b/Makefile @@ -1054,7 +1054,6 @@ clean: rm -f tests/svinterfaces/*.log_stdout tests/svinterfaces/*.log_stderr tests/svinterfaces/dut_result.txt tests/svinterfaces/reference_result.txt tests/svinterfaces/a.out tests/svinterfaces/*_syn.v tests/svinterfaces/*.diff rm -f tests/tools/cmp_tbdata -$(MAKE) -C docs clean - -$(MAKE) -C docs/images clean rm -rf docs/source/cmd docs/util/__pycache__ clean-abc: From ce5ad2a554ddaacfe80263383143957f167a119e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 11 Feb 2025 00:20:46 +0000 Subject: [PATCH 21/23] Bump version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ad6f5d64a..c0aa13018 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+21 +YOSYS_VER := 0.49+29 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo From b5170e1394f602c607e75bdbb1a2b637118f2086 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 11 Feb 2025 07:55:17 +0100 Subject: [PATCH 22/23] Release version 0.50 --- CHANGELOG | 4 +++- Makefile | 4 ++-- docs/source/conf.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d1c1f560a..4cc3b16d2 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,8 +2,10 @@ List of major changes and improvements between releases ======================================================= -Yosys 0.49 .. Yosys 0.50-dev +Yosys 0.49 .. Yosys 0.50 -------------------------- + * Various + - "write_verilog" emits "$check" cell names as labels. Yosys 0.48 .. Yosys 0.49 -------------------------- diff --git a/Makefile b/Makefile index c0aa13018..64cb028e9 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.49+29 +YOSYS_VER := 0.50 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo @@ -169,7 +169,7 @@ endif OBJS = kernel/version_$(GIT_REV).o bumpversion: - sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 427b5a2.. | wc -l`/;" Makefile +# sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 427b5a2.. | wc -l`/;" Makefile ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 ABC_USE_NAMESPACE=abc VERBOSE=$(Q) diff --git a/docs/source/conf.py b/docs/source/conf.py index a27b4dc64..f6c4b307a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -6,7 +6,7 @@ import os project = 'YosysHQ Yosys' author = 'YosysHQ GmbH' copyright ='2025 YosysHQ GmbH' -yosys_ver = "0.49" +yosys_ver = "0.50" # select HTML theme html_theme = 'furo-ys' From 6f9c515a222b322d8d3605e09eb69e7023e61e70 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Tue, 11 Feb 2025 08:40:50 +0100 Subject: [PATCH 23/23] Next dev cycle --- CHANGELOG | 3 +++ Makefile | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 4cc3b16d2..6fb7a92e5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -2,6 +2,9 @@ List of major changes and improvements between releases ======================================================= +Yosys 0.50 .. Yosys 0.51-dev +-------------------------- + Yosys 0.49 .. Yosys 0.50 -------------------------- * Various diff --git a/Makefile b/Makefile index 64cb028e9..0f76f4f67 100644 --- a/Makefile +++ b/Makefile @@ -153,7 +153,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.50 +YOSYS_VER := 0.50+0 # Note: We arrange for .gitcommit to contain the (short) commit hash in # tarballs generated with git-archive(1) using .gitattributes. The git repo @@ -169,7 +169,7 @@ endif OBJS = kernel/version_$(GIT_REV).o bumpversion: -# sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline 427b5a2.. | wc -l`/;" Makefile + sed -i "/^YOSYS_VER := / s/+[0-9][0-9]*$$/+`git log --oneline b5170e1.. | wc -l`/;" Makefile ABCMKARGS = CC="$(CXX)" CXX="$(CXX)" ABC_USE_LIBSTDCXX=1 ABC_USE_NAMESPACE=abc VERBOSE=$(Q)