swapforth icon indicating copy to clipboard operation
swapforth copied to clipboard

update Verilator-related files to compile on version 4.228

Open stuij opened this issue 2 years ago • 1 comments

  • Starting from Verilator version 4.210, the model class is an interface object. For reaching Verilog variables internal to a module this means that we need to include an extra header in cpp files that reference them (#include "Vj1a___024root.h"). And they're now part of a rootp class which is a member of the model class; we need to add an extra level of indirection. So 'top->v__DOT__ram_prog[i] = v;' becomes 'top->rootp->v__DOT__ram_prog[i] = v;'. See https://verilator.org/guide/latest/connecting.html for more words.

  • I don't know when these were introduced, but Verilator has become more strict about allowing assignments to wires. So 'insn' has become a reg as we assign to it inside a procedural block. And the 'wire uart0_(wr|rd) = ..' wire declarations on line 60/61 were duplicates of the module port declarations.

stuij avatar Oct 14 '22 12:10 stuij

updated with fixes for J1b

stuij avatar Oct 18 '22 21:10 stuij