SI-RISCV / e200_opensource

Deprecated, please go to next generation Ultra-Low Power RISC-V Core https://github.com/riscv-mcu/e203_hbirdv2
https://github.com/riscv-mcu/e203_hbirdv2
Apache License 2.0
2.6k stars 1k forks source link

Fix combination loop in icb_claim_irq and icb_complete_irq. #28

Open xxqfhj opened 5 years ago

xxqfhj commented 5 years ago

There is combination loop in icb_claim_irq and icb_complete_irq assign logic. This loop will make the simulation tool time stuck(the tool is ncsim), and lint/synthesize can't found this loop. After analysis, I think lint tool treat the logic "a=0; a=a|b;" same as "a=b;" in function, so lint and synthesize tool don't report this loop because it optimize this logic. After change this logic to "a=b;" directly, simulation could runs to final.

Signed-off-by: xxqfhj xxqfhj@github.com