csr_en not suppressed for killed instructions
Created by: Silabs-ArjanB
In the ID stage csr_en is not suppressed for nullified instructions. This leads to the possibility that csr_en in ID is 1 while alu_en in ID is 0, such that the ALU operands into EX will not get updated (these are also used for CSR instructions). This doesn't cause a functional issue, but it causes different stall cycles and therefore SEC issues. It would be best to suppress csr_en (similar to how alu_en is suppressed) (a first attempt however led to timing issues).
The following line https://github.com/openhwgroup/cv32e40x/blob/e4b1032774b5269f93e0b6912ff1d6cf11b2ef24/rtl/cv32e40x_id_stage.sv#L529 is temporarily changed in https://github.com/openhwgroup/cv32e40x/pull/155. The change from that PR should be undone together with this fix. It should also be checked that replacing 'if (alu_en || div_en)' by 'if (1)' is SEC equivalent.