Closed amb5l closed 5 months ago
Note that there was a problem with my external names (ModelSim showed me this), fixed in this commit. This change doesn't affect the crash.
It happens any time there is a force
(or release
) in a process (all)
. E.g.
INJECT: process(all)
begin
dut_csr_rdata <= force csr_rdata;
end process INJECT;
Now I get:
** Error: external name CSR_EN not found
> /home/nick/src/jarv/src/rtl/test/tb_mcu3.vhd:60
|
60 | alias dut_csr_en is << signal DUT.csr_en : std_ulogic >>;
| ^^^ name DUT not found inside TB_MCU3
|
= Note: an object cannot be referenced by an external name until it has been elaborated
Which is presumably the Modelsim error you fixed above.
Now I get:
** Error: external name CSR_EN not found > /home/nick/src/jarv/src/rtl/test/tb_mcu3.vhd:60 | 60 | alias dut_csr_en is << signal DUT.csr_en : std_ulogic >>; | ^^^ name DUT not found inside TB_MCU3 | = Note: an object cannot be referenced by an external name until it has been elaborated
Which is presumably the Modelsim error you fixed above.
Correct. Can confirm that this issue is fixed for me - thankyou.
I'm seeing a crash during analysis of a testbench that is attempting to force internal signals (using aliases for external names) in the DUT (see transcript below). My NVC binary is compiled for Windows MSYS2 MINGW64 from this commit of NVC.
You can reproduce this with this commit from my repo by running
make
insim/tb_mcu3/sim_nvc
.