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

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel_20/] [or1200/] [rtl/] [verilog/] [or1200_ctrl.v] - Diff between revs 562 and 595

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 562 Rev 595
Line 42... Line 42...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.2  2002/01/14 06:18:22  lampret
 
// Fixed mem2reg bug in FAST implementation. Updated debug unit to work with new genpc/if.
 
//
// Revision 1.1  2002/01/03 08:16:15  lampret
// Revision 1.1  2002/01/03 08:16:15  lampret
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
//
//
// Revision 1.14  2001/11/30 18:59:17  simons
// Revision 1.14  2001/11/30 18:59:17  simons
// force_dslot_fetch does not work -  allways zero.
// force_dslot_fetch does not work -  allways zero.
Line 94... Line 97...
        // Internal i/f
        // Internal i/f
        id_freeze, ex_freeze, wb_freeze, flushpipe, if_insn, ex_insn, branch_op,
        id_freeze, ex_freeze, wb_freeze, flushpipe, if_insn, ex_insn, branch_op,
        rf_addra, rf_addrb, rf_rda, rf_rdb, alu_op, mac_op, shrot_op, comp_op, rf_addrw, rfwb_op,
        rf_addra, rf_addrb, rf_rda, rf_rdb, alu_op, mac_op, shrot_op, comp_op, rf_addrw, rfwb_op,
        wb_insn, simm, branch_addrofs, lsu_addrofs, sel_a, sel_b, lsu_op,
        wb_insn, simm, branch_addrofs, lsu_addrofs, sel_a, sel_b, lsu_op,
        multicycle, spr_addrimm, wbforw_valid, sig_syscall, sig_trap,
        multicycle, spr_addrimm, wbforw_valid, sig_syscall, sig_trap,
        force_dslot_fetch, has_dslot, id_macrc_op, ex_macrc_op, rfe, except_illegal
        force_dslot_fetch, has_dslot, ex_void, id_macrc_op, ex_macrc_op, rfe, except_illegal
);
);
 
 
//
//
// I/O
// I/O
//
//
Line 133... Line 136...
input                                   wbforw_valid;
input                                   wbforw_valid;
output                                  sig_syscall;
output                                  sig_syscall;
output                                  sig_trap;
output                                  sig_trap;
output                                  force_dslot_fetch;
output                                  force_dslot_fetch;
output                                  has_dslot;
output                                  has_dslot;
 
output                                  ex_void;
output                                  id_macrc_op;
output                                  id_macrc_op;
output                                  ex_macrc_op;
output                                  ex_macrc_op;
output                                  rfe;
output                                  rfe;
output                                  except_illegal;
output                                  except_illegal;
 
 
Line 165... Line 169...
reg     [15:0]                           spr_addrimm;
reg     [15:0]                           spr_addrimm;
reg                                     sig_syscall;
reg                                     sig_syscall;
reg                                     sig_trap;
reg                                     sig_trap;
reg                                     except_illegal;
reg                                     except_illegal;
reg                                     ex_macrc_op;
reg                                     ex_macrc_op;
 
wire                                    id_void;
 
 
//
//
// Register file read addresses
// Register file read addresses
//
//
assign rf_addra = if_insn[20:16];
assign rf_addra = if_insn[20:16];
Line 181... Line 186...
// instructions
// instructions
//
//
// SIMON
// SIMON
// assign force_dslot_fetch = ((|pre_branch_op) & (|lsu_op));
// assign force_dslot_fetch = ((|pre_branch_op) & (|lsu_op));
assign force_dslot_fetch = 1'b0;
assign force_dslot_fetch = 1'b0;
assign has_dslot = |branch_op & ((id_insn[31:26] != `OR1200_OR32_NOP) | !id_insn[0]);
assign has_dslot = |branch_op & !id_void;
 
assign id_void = (id_insn[31:26] == `OR1200_OR32_NOP) & id_insn[0];
 
assign ex_void = (ex_insn[31:26] == `OR1200_OR32_NOP) & ex_insn[0];
 
 
//
//
// Sign/Zero extension of immediates
// Sign/Zero extension of immediates
//
//
assign simm = (imm_signextend == 1'b1) ? {{16{id_insn[15]}}, id_insn[15:0]} : {{16'b0}, id_insn[15:0]};
assign simm = (imm_signextend == 1'b1) ? {{16{id_insn[15]}}, id_insn[15:0]} : {{16'b0}, id_insn[15:0]};

powered by: WebSVN 2.1.0

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