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

Subversion Repositories or1k

[/] [or1k/] [tags/] [rel_26/] [or1200/] [rtl/] [verilog/] [or1200_genpc.v] - Diff between revs 617 and 660

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

Rev 617 Rev 660
Line 42... Line 42...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.4  2002/01/28 01:16:00  lampret
 
// Changed 'void' nop-ops instead of insn[0] to use insn[16]. Debug unit stalls the tick timer. Prepared new flag generation for add and and insns. Blocked DC/IC while they are turned off. Fixed I/D MMU SPRs layout except WAYs. TODO: smart IC invalidate, l.j 2 and TLB ways.
 
//
// Revision 1.3  2002/01/18 07:56:00  lampret
// Revision 1.3  2002/01/18 07:56:00  lampret
// No more low/high priority interrupts (PICPR removed). Added tick timer exception. Added exception prefix (SR[EPH]). Fixed single-step bug whenreading NPC.
// No more low/high priority interrupts (PICPR removed). Added tick timer exception. Added exception prefix (SR[EPH]). Fixed single-step bug whenreading NPC.
//
//
// Revision 1.2  2002/01/14 06:18:22  lampret
// 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.
// Fixed mem2reg bug in FAST implementation. Updated debug unit to work with new genpc/if.
Line 84... Line 87...
module or1200_genpc(
module or1200_genpc(
        // Clock and reset
        // Clock and reset
        clk, rst,
        clk, rst,
 
 
        // External i/f to IC
        // External i/f to IC
        icpu_adr_o, icpu_cyc_o, icpu_stb_o, icpu_sel_o, icpu_tag_o,
        icpu_adr_o, icpu_cycstb_o, icpu_sel_o, icpu_tag_o,
        icpu_ack_i, icpu_rty_i, icpu_err_i, icpu_adr_i,
        icpu_ack_i, icpu_rty_i, icpu_err_i, icpu_adr_i,
 
 
        // Internal i/f
        // Internal i/f
        branch_op, except_type, except_prefix,
        branch_op, except_type, except_prefix,
        branch_addrofs, lr_restor, flag, taken, except_start,
        branch_addrofs, lr_restor, flag, taken, except_start,
Line 108... Line 111...
 
 
//
//
// External i/f to IC
// External i/f to IC
//
//
output  [31:0]                   icpu_adr_o;
output  [31:0]                   icpu_adr_o;
output                          icpu_cyc_o;
output                          icpu_cycstb_o;
output                          icpu_stb_o;
 
output  [3:0]                    icpu_sel_o;
output  [3:0]                    icpu_sel_o;
output  [3:0]                    icpu_tag_o;
output  [3:0]                    icpu_tag_o;
input                           icpu_ack_i;
input                           icpu_ack_i;
input                           icpu_rty_i;
input                           icpu_rty_i;
input                           icpu_err_i;
input                           icpu_err_i;
Line 155... Line 157...
// assign icpu_adr_o = !except_start & !spr_pc_we & (icpu_rty_i | genpc_refetch) ? icpu_adr_i : pc;
// assign icpu_adr_o = !except_start & !spr_pc_we & (icpu_rty_i | genpc_refetch) ? icpu_adr_i : pc;
 
 
//
//
// Control access to IC subsystem
// Control access to IC subsystem
//
//
// assign icpu_cyc_o = !genpc_freeze & !no_more_dslot;
// assign icpu_cycstb_o = !genpc_freeze & !no_more_dslot;
assign icpu_cyc_o = !genpc_freeze;
assign icpu_cycstb_o = !genpc_freeze;
assign icpu_stb_o = icpu_cyc_o;
 
assign icpu_sel_o = 4'b1111;
assign icpu_sel_o = 4'b1111;
assign icpu_tag_o = `OR1200_ITAG_NI;
assign icpu_tag_o = `OR1200_ITAG_NI;
 
 
//
//
// Async calculation of new PC value. This value is used for addressing the IC.
// Async calculation of new PC value. This value is used for addressing the IC.

powered by: WebSVN 2.1.0

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