File tree Expand file tree Collapse file tree 4 files changed +26
-1
lines changed Expand file tree Collapse file tree 4 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -703,6 +703,8 @@ package riscv_instr;
703
703
localparam logic [31 : 0 ] VFCPKB_B_D = 32'b1011010??????????111?????0110011 ;
704
704
localparam logic [31 : 0 ] VFCPKC_B_D = 32'b1011011??????????011?????0110011 ;
705
705
localparam logic [31 : 0 ] VFCPKD_B_D = 32'b1011011??????????111?????0110011 ;
706
+ localparam logic [31 : 0 ] VFCVT_D_S = 32'b100110000100?????001?????0110011 ;
707
+ localparam logic [31 : 0 ] VFCVTU_D_S = 32'b100110000100?????101?????0110011 ;
706
708
localparam logic [31 : 0 ] VFCVT_S_B = 32'b100110000111?????000?????0110011 ;
707
709
localparam logic [31 : 0 ] VFCVTU_S_B = 32'b100110000111?????100?????0110011 ;
708
710
localparam logic [31 : 0 ] VFCVT_B_S = 32'b100110000100?????011?????0110011 ;
Original file line number Diff line number Diff line change @@ -1349,6 +1349,19 @@ module snitch import snitch_pkg::*; import riscv_instr::*; #(
1349
1349
illegal_inst = 1'b1 ;
1350
1350
end
1351
1351
end
1352
+ VFCVT_D_S ,
1353
+ VFCVTU_D_S : begin
1354
+ if (FP_EN && XFVEC && RVF && FLEN >= 32 ) begin
1355
+ if (RVF && RVD ) begin
1356
+ write_rd = 1'b0 ;
1357
+ acc_qvalid_o = valid_instr;
1358
+ end else begin
1359
+ illegal_inst = 1'b1 ;
1360
+ end
1361
+ end else begin
1362
+ illegal_inst = 1'b1 ;
1363
+ end
1364
+ end
1352
1365
VFCPKA_H_S ,
1353
1366
VFCPKB_H_S ,
1354
1367
VFCVT_H_S ,
Original file line number Diff line number Diff line change @@ -561,6 +561,16 @@ module snitch_fp_ss import snitch_pkg::*; #(
561
561
vectorial_op = 1'b1 ;
562
562
set_dyn_rm = 1'b1 ;
563
563
end
564
+ riscv_instr :: VFCVT_D_S ,
565
+ riscv_instr :: VFCVTU_D_S : begin
566
+ fpu_op = fpnew_pkg :: F2F ;
567
+ op_select[0 ] = RegA;
568
+ src_fmt = fpnew_pkg :: FP32 ;
569
+ dst_fmt = fpnew_pkg :: FP64 ;
570
+ vectorial_op = 1'b1 ;
571
+ set_dyn_rm = 1'b1 ;
572
+ if (acc_req_q.data_op inside { riscv_instr :: VFCVTU_D_S } ) op_mode = 1'b1 ;
573
+ end
564
574
// Double Precision
565
575
riscv_instr :: FADD_D : begin
566
576
fpu_op = fpnew_pkg :: ADD ;
You can’t perform that action at this time.
0 commit comments