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

Subversion Repositories s1_core

[/] [s1_core/] [trunk/] [hdl/] [rtl/] [sparc_core/] [sparc_ifu_imd.v] - Diff between revs 105 and 113

Show entire file | Details | Blame | View Log

Rev 105 Rev 113
Line 16... Line 16...
// You should have received a copy of the GNU General Public
// You should have received a copy of the GNU General Public
// License along with this work; if not, write to the Free Software
// License along with this work; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
// 
// 
// ========== Copyright Header End ============================================
// ========== Copyright Header End ============================================
 
`ifdef SIMPLY_RISC_TWEAKS
 
`define SIMPLY_RISC_SCANIN .si(0)
 
`else
 
`define SIMPLY_RISC_SCANIN .si()
 
`endif
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/*
/*
//  Module Name: sparc_ifu_imd
//  Module Name: sparc_ifu_imd
//  Description:
//  Description:
//  Contains the immediate operand datapath.  Has two outputs:  The
//  Contains the immediate operand datapath.  Has two outputs:  The
Line 138... Line 143...
   //--------
   //--------
   // D stage
   // D stage
   // Contains the immediate data and branch offset muxes
   // Contains the immediate data and branch offset muxes
   //--------
   //--------
 
 
   dff #(32) inst_d_reg(.din  (fdp_dtu_inst_s),
   dff_s #(32) inst_d_reg(.din  (fdp_dtu_inst_s),
                      .clk  (clk),
                      .clk  (clk),
                      .q    (dtu_inst_d),
                      .q    (dtu_inst_d),
                      .se   (se), .si(), .so());
                      .se   (se), `SIMPLY_RISC_SCANIN, .so());
 
 
   dff #(1) ifu_lsu_imm_asi_inst(.din  (fdp_dtu_inst_s[13]),
   dff_s #(1) ifu_lsu_imm_asi_inst(.din  (fdp_dtu_inst_s[13]),
                      .clk  (clk),
                      .clk  (clk),
                      .q    (ifu_lsu_imm_asi_vld_f),
                      .q    (ifu_lsu_imm_asi_vld_f),
                      .se   (se), .si(), .so());
                      .se   (se), `SIMPLY_RISC_SCANIN, .so());
 
 
   assign imd_dcl_abit_d = dtu_inst_d[29];
   assign imd_dcl_abit_d = dtu_inst_d[29];
 
 
   // imm data select
   // imm data select
   // sext12:0 -- add/sub/and/or/xor/taggedOP/jmpl/ld/store/atomic/div/mul/popc
   // sext12:0 -- add/sub/and/or/xor/taggedOP/jmpl/ld/store/atomic/div/mul/popc
Line 206... Line 211...
   // if call instruction set rd = 0f (15)
   // if call instruction set rd = 0f (15)
   assign ifu_exu_rd_d[3:0] = dtu_inst_d[28:25] | {4{dcl_imd_call_inst_d}};
   assign ifu_exu_rd_d[3:0] = dtu_inst_d[28:25] | {4{dcl_imd_call_inst_d}};
   assign ifu_exu_rd_d[4] = (dtu_inst_d[29] & ~dcl_imd_call_inst_d) ^
   assign ifu_exu_rd_d[4] = (dtu_inst_d[29] & ~dcl_imd_call_inst_d) ^
                              (ifu_exu_rd_d[3] & fcl_imd_oddwin_d);
                              (ifu_exu_rd_d[3] & fcl_imd_oddwin_d);
 
 
   dff #(5) rde_ff(.din (ifu_exu_rd_d[4:0]),
   dff_s #(5) rde_ff(.din (ifu_exu_rd_d[4:0]),
                 .clk (clk),
                 .clk (clk),
                 .q   (ifu_lsu_rd_e[4:0]),
                 .q   (ifu_lsu_rd_e[4:0]),
                 .se  (se), .si(), .so());
                 .se  (se), `SIMPLY_RISC_SCANIN, .so());
 
 
   // read/write pr and read/write sr
   // read/write pr and read/write sr
   dp_mux2es #(5)  sraddr_mux(.dout (sraddr5[4:0]),
   dp_mux2es #(5)  sraddr_mux(.dout (sraddr5[4:0]),
                            .in0  (dtu_inst_d[18:14]),  // rs1 for rdpr
                            .in0  (dtu_inst_d[18:14]),  // rs1 for rdpr
                            .in1  (dtu_inst_d[29:25]),  // rd  for wrpr
                            .in1  (dtu_inst_d[29:25]),  // rd  for wrpr

powered by: WebSVN 2.1.0

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