You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am currently looking into coupling cocotb and Verilator and stumbled over one major issue, that can be solved in a couple of ways. I am wondering what you think about it and suggest as most acceptable solution.
Everything that has public access currently becomes accessible by its scope. But the naming at runtime always involves the toplevel wrapper name (TOP by default), while cocotb operates on the full names in the actual verilog hierarchy. So, there are a couple of options:
Push it to cocotb and prepend the top name. This is not overly complex, but a bit cumbersome.
Change the hierarchy naming in Verilator entirely. This is a mess as it will break a lot of existing code.
Follow Verilog hierarchy naming in VPI. This seems to be the right place and has the least impact.
So, my proposal is to implement 3. I can do it as part of my effort and send as the first patch.
What do you think?
Cheers,
Stefan
The text was updated successfully, but these errors were encountered:
Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-04-29T09:36:51Z
I agree 3 makes the most sense. Perhaps the TOP should also be suppressed in %m messages, that is it will look to run time as if TOP doesn't exist for VPI and output messages.
Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2019-06-22T21:04:36Z
Stumbled into some other code related to handling TOP, note the existing code allows passing "" when constructing a model and the "TOP" prefix (from the user's model instantiation) will no longer appear in %m messages.
Author Name: Stefan Wallentowitz (@wallento)
Original Redmine Issue: 1422 from https://www.veripool.org
Original Assignee: Wilson Snyder (@wsnyder)
Hi,
I am currently looking into coupling cocotb and Verilator and stumbled over one major issue, that can be solved in a couple of ways. I am wondering what you think about it and suggest as most acceptable solution.
Everything that has public access currently becomes accessible by its scope. But the naming at runtime always involves the toplevel wrapper name (TOP by default), while cocotb operates on the full names in the actual verilog hierarchy. So, there are a couple of options:
Push it to cocotb and prepend the top name. This is not overly complex, but a bit cumbersome.
Change the hierarchy naming in Verilator entirely. This is a mess as it will break a lot of existing code.
Follow Verilog hierarchy naming in VPI. This seems to be the right place and has the least impact.
So, my proposal is to implement 3. I can do it as part of my effort and send as the first patch.
What do you think?
Cheers,
Stefan
The text was updated successfully, but these errors were encountered: