diff --git a/bin/verilator b/bin/verilator index 17ead560f..bb2d1042a 100755 --- a/bin/verilator +++ b/bin/verilator @@ -1343,6 +1343,26 @@ List of all warnings: =over 4 +=item BLKANDNBLK + +Error that a variable comes from a mix of blocked and non-blocking +assignments. Generally, this is caused by a register driven by both combo +logic and a flop: + + always @ (posedge clk) foo[0] <= ... + always @* foo[1] = ... + +Simply use a different register for the flop: + + always @ (posedge clk) foo_flopped[0] <= ... + always @* foo[0] = foo_flopped[0]; + always @* foo[1] = ... + +This is good coding practice anyways. + +It is also possible to disable this error when one of the assignments is +inside a public task. + =item CASEINCOMPLETE Warns that inside a case statement there is a stimulus pattern for which