diff --git a/Changes b/Changes index cdd1875b9..dbe8b8b17 100644 --- a/Changes +++ b/Changes @@ -22,8 +22,10 @@ Verilator 5.049 devel * Support randsequence production function ports (#7522). [Yilou Wang] * Support followed-by operators `#-#` and `#=#` in properties (#7523). [Yilou Wang] * Support TERMUX (#7559). [Laurent CHARRIER] +* Support SVA goto repetition with range `[->M:N]` (#7569). [Yilou Wang] * Add peak memory usage to `--stats`. [Geza Lore, Testorrent USA, Inc.] -* Improve `--coverage-fsm` (#7490) (#7529). [Yogish Sekhar] +* Add error on mixed-initialization (#7352) (#7357). +* Improve `--coverage-fsm` (#7490) (#7529) (#7561). [Yogish Sekhar] * Change `+verilator+seed` to default to 1, and 0 to randomly select (#7325) (#7516). [Miguel] * Change JSON to include parameter constant mnemonics for FSM Coverage (#7531). [Yogish Sekhar] * Optimize additional DFG peephole cases (#7553). [Varun Koyyalagunta, Testorrent USA, Inc.] diff --git a/docs/guide/simulating.rst b/docs/guide/simulating.rst index 0943665cf..86dafb87d 100644 --- a/docs/guide/simulating.rst +++ b/docs/guide/simulating.rst @@ -238,8 +238,8 @@ encodings in these common forms: Simple input guards are supported when they appear inside a recognized state branch, or as a top-level conjunction containing exactly one state comparison, such as ``(state_q == IDLE) && ready``. Directly traceable -predecoded state aliases, such as ``assign idle_state = (state_q == IDLE)``, -may also be used in these guarded predicates. +pre-decoded state aliases, such as ``assign idle_state = (state_q == +IDLE)``, may also be used in these guarded predicates. Verilator does not claim broad support for arbitrary predicate decomposition, one-hot inference, helper-function next-state recovery, diff --git a/docs/spelling.txt b/docs/spelling.txt index b8d97087a..9bf2e627c 100644 --- a/docs/spelling.txt +++ b/docs/spelling.txt @@ -579,6 +579,7 @@ Yujia Yurii Zaruba Zhang +Zhi abirkmanis accessor accessors diff --git a/test_regress/t/t_fuzz_mixed_initialization.out b/test_regress/t/t_fuzz_mixed_initialization.out deleted file mode 100644 index 07ade6597..000000000 --- a/test_regress/t/t_fuzz_mixed_initialization.out +++ /dev/null @@ -1,10 +0,0 @@ -%Error-CONTASSINIT: t/t_fuzz_mixed_initialization.v:11:15: Continuous assignment to variable with initial value: 'a' - : ... note: In instance 't' - : ... Location of variable initialization - 11 | logic a = 1'b0; - | ^~~~ - t/t_fuzz_mixed_initialization.v:12:12: ... Location of continuous assignment - 12 | assign a = 1'b1; - | ^ - ... For error description see https://verilator.org/warn/CONTASSINIT?v=latest -%Error: Exiting due to diff --git a/test_regress/t/t_var_mixed_initialization_bad.out b/test_regress/t/t_var_mixed_initialization_bad.out new file mode 100644 index 000000000..11470c7d1 --- /dev/null +++ b/test_regress/t/t_var_mixed_initialization_bad.out @@ -0,0 +1,10 @@ +%Error-CONTASSINIT: t/t_var_mixed_initialization_bad.v:11:13: Continuous assignment to variable with initial value: 'a' + : ... note: In instance 't' + : ... Location of variable initialization + 11 | logic a = 1'b0; + | ^~~~ + t/t_var_mixed_initialization_bad.v:12:10: ... Location of continuous assignment + 12 | assign a = 1'b1; + | ^ + ... For error description see https://verilator.org/warn/CONTASSINIT?v=latest +%Error: Exiting due to diff --git a/test_regress/t/t_fuzz_mixed_initialization.py b/test_regress/t/t_var_mixed_initialization_bad.py similarity index 100% rename from test_regress/t/t_fuzz_mixed_initialization.py rename to test_regress/t/t_var_mixed_initialization_bad.py diff --git a/test_regress/t/t_fuzz_mixed_initialization.v b/test_regress/t/t_var_mixed_initialization_bad.v similarity index 67% rename from test_regress/t/t_fuzz_mixed_initialization.v rename to test_regress/t/t_var_mixed_initialization_bad.v index 071bd4101..5471ae43b 100644 --- a/test_regress/t/t_fuzz_mixed_initialization.v +++ b/test_regress/t/t_var_mixed_initialization_bad.v @@ -8,9 +8,9 @@ module t ( output wire out ); - logic a = 1'b0; // declaration initialization - assign a = 1'b1; // continuous assignment + logic a = 1'b0; // declaration initialization + assign a = 1'b1; // continuous assignment - assign out = a; + assign out = a; endmodule