RoaLogic / plic

Platform Level Interrupt Controller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Icarus Verilog Support;

PedroAntunes178 opened this issue · comments

Hi, I'm trying to integrate the PLIC core in a project and would like to simulate with Icarus (although not required).
One of the problems I encountered was that Icarus does not understand the key word always_comb in line 629/636 of the plic_dynamic_registers.sv file.
I have changed always_combalways @(r,s) and it might have solved the problem. Since I am able to run a simulation with verilator and the outcome seems to be the same. What do you think?

Other problems that do not allow running Icarus Verilog simulation are:

../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:608: debug: No generate items found
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:608: debug: No generate items found
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:608: debug: No generate items found
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392: error: Type names are not valid expressions here.
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392: internal error: I do not know how to elaborate this expression. 
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392:               : Expression is: <type>
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392:               : Expression type: 10PETypename
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392: error: Dimensions must be constant.
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:392       : This size expression violates the rule: <type>
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:394: warning: ignoring out of bounds l-value array access name_array[1].
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:395: warning: ignoring out of bounds l-value array access name_array[2].
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:396: warning: ignoring out of bounds l-value array access name_array[3].
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:397: warning: ignoring out of bounds l-value array access name_array[4].
../../../submodules/PLIC/hardware/src/plic_dynamic_registers.sv:398: warning: ignoring out of bounds l-value array access name_array[5].
../../../submodules/PLIC/hardware/src/iob_plic.v:113: assert: elaborate.cc:1652: failed assertion prts[0]->unpacked_dimensions()==0
Aborted