The issue is related to irq being undefined till reset, since no signal in the sensitivity list toggles till then. The resulting x-propagation causes downstream issues with some firmware including the test firmware in the firmware directory.
A simple fix is to rewrite the always block as follows:
The following
always
block has incorrect simulation behavior in some commercial simulators.https://github.com/cliffordwolf/picorv32/blob/881f928e05dca9f1e750ff68793e5cc7653d7ccd/testbench.v#L83-L87
The issue is related to
irq
being undefined till reset, since no signal in the sensitivity list toggles till then. The resulting x-propagation causes downstream issues with some firmware including the test firmware in thefirmware
directory.A simple fix is to rewrite the
always
block as follows: