From 05f0c507504710bd5b3e99a394e525283067ea28 Mon Sep 17 00:00:00 2001 From: Matteo Perotti Date: Tue, 3 Dec 2024 19:39:20 +0100 Subject: [PATCH] [hardware] Solve type conv warnings --- hardware/src/ara_dispatcher.sv | 5 +++ hardware/src/lane/lane_sequencer.sv | 52 +++++++++++++++++++------- hardware/src/lane/operand_requester.sv | 5 +++ 3 files changed, 48 insertions(+), 14 deletions(-) diff --git a/hardware/src/ara_dispatcher.sv b/hardware/src/ara_dispatcher.sv index 47b8e4cdb..27877dda4 100644 --- a/hardware/src/ara_dispatcher.sv +++ b/hardware/src/ara_dispatcher.sv @@ -362,10 +362,15 @@ module ara_dispatcher import ara_pkg::*; import rvv_pkg::*; #( vtype : csr_vtype_q, emul : csr_vtype_q.vlmul, eew_vs1 : csr_vtype_q.vsew, + old_eew_vs1 : csr_vtype_q.vsew, eew_vs2 : csr_vtype_q.vsew, eew_vd_op : csr_vtype_q.vsew, eew_vmask : eew_q[VMASK], cvt_resize : CVT_SAME, + fp_rm : fpnew_pkg::RNE, + op : VADD, + conversion_vs1 : OpQueueConversionNone, + conversion_vs2 : OpQueueConversionNone, default : '0 }; ara_req_valid = 1'b0; diff --git a/hardware/src/lane/lane_sequencer.sv b/hardware/src/lane/lane_sequencer.sv index f3c95147b..95dbe5caf 100644 --- a/hardware/src/lane/lane_sequencer.sv +++ b/hardware/src/lane/lane_sequencer.sv @@ -414,6 +414,8 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, default: '0 }; // Since this request goes outside of the lane, we might need to request an @@ -495,9 +497,11 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: eew : EW64, vtype : pe_req.vtype, vl : pe_req.vl / NrLanes / ELEN, - cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default: '0 }; // Since this request goes outside of the lane, we might need to request an @@ -514,9 +518,11 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: eew : EW64, vtype : pe_req.vtype, vl : pe_req.vl / NrLanes / ELEN, - cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default: '0 }; // Since this request goes outside of the lane, we might need to request an @@ -534,10 +540,10 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: target_fu: MFPU_ADDRGEN, vl : pe_req_i.vl / NrLanes, scale_vl : pe_req_i.scale_vl, - cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, vtype : pe_req_i.vtype, hazard : pe_req_i.hazard_vs2 | pe_req_i.hazard_vd, + cvt_resize: CVT_SAME, default : '0 }; // Since this request goes outside of the lane, we might need to request an @@ -555,11 +561,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: eew : pe_req.old_eew_vs1, conv : pe_req.conversion_vs1, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vl : vfu_operation_d.vl, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs1 | pe_req.hazard_vd, + target_fu : ALU_SLDU, + cvt_resize: CVT_SAME, default : '0 }; // Since this request goes outside of the lane, we might need to request an @@ -577,9 +584,11 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: eew : EW64, vtype : pe_req.vtype, vl : pe_req.vl / NrLanes / ELEN, - cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default: '0 }; // Since this request goes outside of the lane, we might need to request an @@ -598,10 +607,10 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: target_fu: MFPU_ADDRGEN, vl : pe_req_i.vl / NrLanes, scale_vl : pe_req_i.scale_vl, - cvt_resize : pe_req.cvt_resize, vstart : vfu_operation_d.vstart, vtype : pe_req_i.vtype, hazard : pe_req_i.hazard_vs2 | pe_req_i.hazard_vd, + cvt_resize: CVT_SAME, default : '0 }; // Since this request goes outside of the lane, we might need to request an @@ -620,10 +629,10 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: target_fu: ALU_SLDU, is_slide : 1'b1, scale_vl : pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs2 | pe_req.hazard_vd, + cvt_resize: CVT_SAME, default : '0 }; operand_request_push[SlideAddrGenA] = pe_req.use_vs2; @@ -680,10 +689,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vs : VMASK, eew : EW64, is_slide: 1'b1, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; operand_request_push[MaskM] = !pe_req.vm; @@ -722,10 +733,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: id : pe_req.id, vs : pe_req.vs1, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs1 | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; // Since this request goes outside of the lane, we might need to request an @@ -753,10 +766,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vs : pe_req.vs2, eew : pe_req.eew_vs2, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs2 | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; // Since this request goes outside of the lane, we might need to request an @@ -784,11 +799,13 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vs : pe_req.vs1, eew : pe_req.eew_vs1, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vl : pe_req.vl / NrLanes, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs1 | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; // This is an operation that runs normally on the VMFPU, and then gets *condensed* and @@ -806,11 +823,13 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vs : pe_req.vs2, eew : pe_req.eew_vs2, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vl : pe_req.vl / NrLanes, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs2 | pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; // This is an operation that runs normally on the VMFPU, and then gets *condensed* and @@ -828,10 +847,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: id : pe_req.id, vs : pe_req.vd, scale_vl: pe_req.scale_vl, - cvt_resize : pe_req.cvt_resize, vtype : pe_req.vtype, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vd, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default : '0 }; // vl and eew depend on the real eew on which we are working on @@ -863,10 +884,12 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vs : VMASK, eew : EW64, vtype : pe_req.vtype, - cvt_resize : pe_req.cvt_resize, vl : (pe_req.vl / NrLanes / ELEN), vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vm, + target_fu : ALU_SLDU, + conv : OpQueueConversionNone, + cvt_resize: CVT_SAME, default: '0 }; // Request a balanced load from every lane despite it being active or not. @@ -888,6 +911,7 @@ module lane_sequencer import ara_pkg::*; import rvv_pkg::*; import cf_math_pkg:: vl : vfu_operation_d.vl, vstart : vfu_operation_d.vstart, hazard : pe_req.hazard_vs2, + target_fu : ALU_SLDU, default : '0 }; operand_request_push[MaskB] = 1'b1; diff --git a/hardware/src/lane/operand_requester.sv b/hardware/src/lane/operand_requester.sv index f085d8471..3d37d6fb0 100644 --- a/hardware/src/lane/operand_requester.sv +++ b/hardware/src/lane/operand_requester.sv @@ -506,6 +506,7 @@ module operand_requester import ara_pkg::*; import rvv_pkg::*; #( wen : 1'b1, wdata : alu_result_wdata_i, be : alu_result_be_i, + opqueue: AluA, default: '0 }; operand_payload[NrOperandQueues + VFU_MFpu] = '{ @@ -513,6 +514,7 @@ module operand_requester import ara_pkg::*; import rvv_pkg::*; #( wen : 1'b1, wdata : mfpu_result_wdata_i, be : mfpu_result_be_i, + opqueue: AluA, default: '0 }; operand_payload[NrOperandQueues + VFU_MaskUnit] = '{ @@ -520,6 +522,7 @@ module operand_requester import ara_pkg::*; import rvv_pkg::*; #( wen : 1'b1, wdata : masku_result_wdata, be : masku_result_be, + opqueue: AluA, default: '0 }; operand_payload[NrOperandQueues + VFU_SlideUnit] = '{ @@ -527,6 +530,7 @@ module operand_requester import ara_pkg::*; import rvv_pkg::*; #( wen : 1'b1, wdata : sldu_result_wdata, be : sldu_result_be, + opqueue: AluA, default: '0 }; operand_payload[NrOperandQueues + VFU_LoadUnit] = '{ @@ -534,6 +538,7 @@ module operand_requester import ara_pkg::*; import rvv_pkg::*; #( wen : 1'b1, wdata : ldu_result_wdata, be : ldu_result_be, + opqueue: AluA, default: '0 };