apu_valid_i not memorized causing deadlock condition when both alu and apu write into same register at the same time
Created by: dd-baoshan
Many tests are failing with fpu tests especially in pulp_fpu_zfinx_2cyclat.
- The test hang issue was due to same regfile write by both alu and apu. In this case alu has priority than apu (see M1 marker below).
- The apu_valid is suppressed during writeback from fsub (at marker M1) that due to deadlock and this keep apu_busy_i stuck at high thus hang the test.
- During daily discussion,
@dd-vaibhavjain
stated that the issue is due to recent update at below rtl. - I tried by update to insert condition with data_rvalid_i (line 374) and rerun, the hang test is passing now.
Component
Component:RTL
Steps to Reproduce
Steps to Reproduce
- cv32e40p git hash: 7df7d2df
- core-v-verif git hash: 02ee75284e34acf908dda5344f642a7cb3b0ac0c
- Users need to checkout below core-v-verif to replicate the issue. The reproduce steps as followings.
git clone --branch cv32e40p/dev_dd https://github.com/XavierAubert/core-v-verif.git sandbox
cd sandbox/cv32e40p/sim/uvmt
make gen_corev-dv test TEST=corev_rand_fp_instr_data_fwd_test CFG_PLUSARGS=+UVM_TIMEOUT=1000000 CHECK_SIM_RESULT=YES COMP=1 CV_CORE=cv32e40p COREV=1 CFG=pulp_fpu_zfinx_2cyclat TEST_CFG_FILE=floating_pt_instr_en,floating_pt_zfinx_instr_en SIMULATOR=vsim USE_ISS=yes COV=NO RUN_INDEX=764058775 GEN_START_INDEX=764058775 SEED=764058775 WAVES=1