Since you have not shown sufficient code for anyone to reproduce your problem, nor have you revealed any details regarding your problem, all we can do is guess.
My guess is that nc1_cp_checkpoint
is declared as a reg
inside your cca3_cpu
instance. You can not assign a value to a reg
using a continuous assignment. Try to use a procedural assignment (inside an initial
or always
block), for example:
initial begin
cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end
If this doesn t solve your problem:
- Show more relevant code
- Elaborate on "doesn t work". Show your error message, if any.
Update: Another potential issue arises if nc1_cp_checkpoint
is a continuously-driven wire
inside your cca3_cpu
instance. In that case, your second assign
might cause contention, which would make the value go unknown (x
). You might be able to avoid that issue using force
and release
.