Replies: 2 comments 1 reply
-
|
Very close to this topic is: How does it work with the signals and the JIT code-gen ? I would assume, that code for all signals (drivers, hierarchies, resolution), is actually generated at elaboration time, correct ? |
Beta Was this translation helpful? Give feedback.
-
|
I'm not sure how useful add coverage support to the Verilog backed is at this point given how limited it is.
No, it's always been possible to grow the backing array after elaboration since I added the lazy code generation stuff. There should be some tests that hit this. Although it's quite hacky and was only supposed to be temporary. I rewrote it this weekend so there's a separate array per code generation unit.
I don't think it matters. The content of the counters is the same regardless of the order.
Then doesn't have any coverage information. That could probably fixed with another pass that forces code generation for user subprograms when coverage is enabled.
All that code gets called at elaboration time (by |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi @nickg ,
I am tinkering with the code coverage, and I would like to try to implement basic support for statement coverage in Verilog.
I am looking at how does the "cover scopes" work currently in
lower.cfor VHDL. The "lower scopes" do implement some sortof lazy code-gen (JIT). How does that work with the coverage though ? I thought the "coverage counters" are pre-allocated
at elaboration time (there needs to be known the total number of coverage bins within the simulated design). Is this not true ?
In other words, e.g. if you have a
procedurethat is local to a process (in architecture, not package), and such procedure isnever called during elaboration, then:
ncdbwill contain also the coverage data for the newly generated code.Is this correct ?
If, so I have couple of questions:
ncdb), they are uniquely distinguished by their hierarchical path. Thus, scopes will never mess-up when merging the code coverage. Correct ?covdb(and the coverage report too), will simply not contain coverage data for such procedure ?Any tips or explanations are appreciated.
PS: Big thumbs-up to the work you are doing on the Verilog these days.
Beta Was this translation helpful? Give feedback.
All reactions