Issue #478
%Error: ...: Internal: Blocking <= assignment in non-clocked block, should have converted in V3Active
| Status: | Closed | Start date: | 04/05/2012 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | Wilson Snyder | % Done: | 0% |
|
| Category: | Unsupported | |||
| Target version: | - |
Description
Source code looks like:
initial
begin
...
a1 <= 1'b0;
a2 <= 0;
a3 <= 0;
a4 <= 0;
a5 <= 1'b0;
a6 <= 1'b1;
a7 <= 1'b1;
a8 <= 1'b1;
a9 <= 1'b0;
a10 <= 1'b0;
a11 <= 0;
verilator complains about these assignments.
History
Updated by Alex Solomatnikov about 1 year ago
There is also an error message in the same initial block about non-blocking assignment to an array
%Error-BLKLOOPINIT: ...: Unsupported: Delayed assignment to array inside for loops (non-delayed is ok - see docs)
Updated by Alex Solomatnikov about 1 year ago
After I tried to convert non-blocking assignments <= to blocking =, I get:
%Error-BLKANDNBLK: ...: Unsupported: Blocked and non-blocking assignments to same variable: ...
Apparently, in this behavioral model some state registers are initialized using initial block. There is no way to compile this model with verilator because non-blocking assignment in initial block causes internal error and blocking assignment in initial block causes this error.
Updated by Wilson Snyder about 1 year ago
In the BLKANDNBLK case, even though these are errors you can turn them off like you would a warning; this is because Verilator won't be modeling them as would be a normal simulator that honors the <= delays. Probably both <= and = should be allowed in initial blocks without warnings.
Updated by Alex Solomatnikov about 1 year ago
My last message was wrong and should be disregarded: in fact Error-BLKANDNBLK is related to different module.
Updated by Wilson Snyder about 1 year ago
- Category set to Unsupported
- Status changed from New to Resolved
- Assignee set to Wilson Snyder
Added a new INITIALDLY warning you can suppress if you wish.
Fixed in git towards 3.840++.
Also available in: Atom
![[logo]](/img/veripool_small.png)