Using public accessor tasks/functions to read and write registers causes BLKANDNBLK error #449
Labels
area: lint
Issue involves SystemVerilog lint checking
area: scheduling
Issue involves scheduling/ordering of events
effort: days
Expect this issue to require roughly days of invested effort to resolve
Author Name: Jeremy Bennett (@jeremybennett)
Original Redmine Issue: 449 from https://www.veripool.org
I have a register for which we wish to provide a public accessor task and function, to allow it value to be written (via a task) and read (via a function) externally. I can do this either using @/* public verilator */@ on the task and function or by marking them as DPI-C export functions.
However, if I do so, then I get a BLKANDNBLK error. But for this error to occur, the following conditions must be met.
It would be very convenient to be able to write both write and read accessors for registers which are the subject of non-blocking assignment. The fact that either one or the other can be done, suggests it should be possible.
I've attached two tests which demonstrate this problem (one for DPI export, the other for verilator public) as git patches against the current HEAD. I'll investigate further how this might be solved.
The text was updated successfully, but these errors were encountered: