OpenCores
URL https://opencores.org/ocsvn/yifive/yifive/trunk

Subversion Repositories yifive

[/] [yifive/] [trunk/] [caravel_yifive/] [verilog/] [rtl/] [syntacore/] [scr1/] [src/] [core/] [pipeline/] [scr1_pipe_idu.sv] - Diff between revs 11 and 21

Show entire file | Details | Blame | View Log

Rev 11 Rev 21
Line 55... Line 55...
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
// Local signals declaration
// Local signals declaration
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
 
 
logic [`SCR1_IMEM_DWIDTH-1:0]       instr;
logic [`SCR1_IMEM_DWIDTH-1:0]       instr;
type_scr1_instr_type_e              instr_type;
logic [1:0]                         instr_type;
type_scr1_rvi_opcode_e              rvi_opcode;
logic [6:2]                         rvi_opcode;
logic                               rvi_illegal;
logic                               rvi_illegal;
logic [2:0]                         funct3;
logic [2:0]                         funct3;
logic [6:0]                         funct7;
logic [6:0]                         funct7;
logic [11:0]                        funct12;
logic [11:0]                        funct12;
logic [4:0]                         shamt;
logic [4:0]                         shamt;
Line 78... Line 78...
assign idu2ifu_rdy_o  = exu2idu_rdy_i;
assign idu2ifu_rdy_o  = exu2idu_rdy_i;
assign idu2exu_req_o  = ifu2idu_vd_i;
assign idu2exu_req_o  = ifu2idu_vd_i;
assign instr          = ifu2idu_instr_i;
assign instr          = ifu2idu_instr_i;
 
 
// RVI / RVC
// RVI / RVC
`ifdef YOSYS
assign instr_type   = instr[1:0];
assign instr_type   = 2'(instr[1:0]);
 
`else
 
 
 
assign instr_type   = type_scr1_instr_type_e'(instr[1:0]);
 
`endif
 
 
 
// RVI / RVC fields
// RVI / RVC fields
`ifdef YOSYS
assign rvi_opcode   = instr[6:2];                          // RVI
assign rvi_opcode   = 5'(instr[6:2]);                          // RVI
 
`else
 
assign rvi_opcode   = type_scr1_rvi_opcode_e'(instr[6:2]);                          // RVI
 
`endif
 
assign funct3       = (instr_type == SCR1_INSTR_RVI) ? instr[14:12] : instr[15:13]; // RVI / RVC
assign funct3       = (instr_type == SCR1_INSTR_RVI) ? instr[14:12] : instr[15:13]; // RVI / RVC
assign funct7       = instr[31:25];                                                 // RVI
assign funct7       = instr[31:25];                                                 // RVI
assign funct12      = instr[31:20];                                                 // RVI (SYSTEM)
assign funct12      = instr[31:20];                                                 // RVI (SYSTEM)
assign shamt        = instr[24:20];                                                 // RVI
assign shamt        = instr[24:20];                                                 // RVI
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.