verilator/test_regress/t/t_lint_unsup_mixed.v
Geza Lore 599d23697d
IEEE compliant scheduler (#3384)
This is a major re-design of the way code is scheduled in Verilator,
with the goal of properly supporting the Active and NBA regions of the
SystemVerilog scheduling model, as defined in IEEE 1800-2017 chapter 4.

With this change, all internally generated clocks should simulate
correctly, and there should be no more need for the `clock_enable` and
`clocker` attributes for correctness in the absence of Verilator
generated library models (`--lib-create`).

Details of the new scheduling model and algorithm are provided in
docs/internals.rst.

Implements #3278
2022-05-15 16:03:32 +01:00

37 lines
661 B
Systemverilog

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2016 by Wilson Snyder.
// SPDX-License-Identifier: CC0-1.0
module t
(
input wire clk,
input wire a,
input wire b
);
integer q;
// bug1120
always @ (a or posedge clk)
begin
if (a)
q = 0;
else
q = q + 1;
end
// bug934
integer qb;
always @((a && b) or posedge clk) begin
if (a)
qb = 0;
else
qb = qb + 1;
end
always @(posedge clk) $display("%d", qb); // So qb is not optimized away
endmodule