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

Subversion Repositories or1k

[/] [or1k/] [branches/] [mp3_stable/] [or1200/] [rtl/] [verilog/] [id.v] - Diff between revs 209 and 210

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

Rev 209 Rev 210
Line 61... Line 61...
 
 
        // Internal i/f
        // Internal i/f
        id_freeze, ex_freeze, wb_freeze, except_flushpipe, if_insn, branch_op,
        id_freeze, ex_freeze, wb_freeze, except_flushpipe, if_insn, branch_op,
        rf_addra, rf_addrb, alu_op, shrot_op, comp_op, rf_addrw, rfwb_op,
        rf_addra, rf_addrb, alu_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,
        multicycle, spr_addrimm, wbforw_valid, sig_syscall, sig_trap,
        force_dslot_fetch, id_macrc_op, ex_macrc_op
        force_dslot_fetch, id_macrc_op, ex_macrc_op
);
);
 
 
//
//
// I/O
// I/O
Line 94... Line 94...
output  [`COMPOP_WIDTH-1:0]              comp_op;
output  [`COMPOP_WIDTH-1:0]              comp_op;
output  [`MULTICYCLE_WIDTH-1:0]          multicycle;
output  [`MULTICYCLE_WIDTH-1:0]          multicycle;
output  [15:0]                           spr_addrimm;
output  [15:0]                           spr_addrimm;
input                                   wbforw_valid;
input                                   wbforw_valid;
output                                  sig_syscall;
output                                  sig_syscall;
 
output                                  sig_trap;
output                                  force_dslot_fetch;
output                                  force_dslot_fetch;
output                                  id_macrc_op;
output                                  id_macrc_op;
output                                  ex_macrc_op;
output                                  ex_macrc_op;
 
 
//
//
Line 121... Line 122...
reg     [`COMPOP_WIDTH-1:0]              comp_op;
reg     [`COMPOP_WIDTH-1:0]              comp_op;
reg     [`MULTICYCLE_WIDTH-1:0]          multicycle;
reg     [`MULTICYCLE_WIDTH-1:0]          multicycle;
reg                                     imm_signextend;
reg                                     imm_signextend;
reg     [15:0]                           spr_addrimm;
reg     [15:0]                           spr_addrimm;
reg                                     sig_syscall;
reg                                     sig_syscall;
 
reg                                     sig_trap;
wire                                    rst_or_except_flushpipe;
wire                                    rst_or_except_flushpipe;
reg                                     ex_macrc_op;
reg                                     ex_macrc_op;
 
 
//
//
// Register file read addresses
// Register file read addresses
Line 844... Line 846...
// Decode of l.sys
// Decode of l.sys
//
//
always @(posedge clk or posedge rst) begin
always @(posedge clk or posedge rst) begin
        if (rst)
        if (rst)
                sig_syscall <= #1 1'b0;
                sig_syscall <= #1 1'b0;
        else if (!wb_freeze) begin
        else if (!ex_freeze & id_freeze)
 
                sig_syscall <= #1 1'b0;
 
        else if (!ex_freeze) begin
`ifdef OR1200_VERBOSE
`ifdef OR1200_VERBOSE
// synopsys translate_off
// synopsys translate_off
                if (wb_insn[31:24] == {`OR32_XSYNC, 2'b00})
                if (id_insn[31:23] == {`OR32_XSYNC, 3'b000})
                        $display("Generating sig_syscall");
                        $display("Generating sig_syscall");
// synopsys translate_on
// synopsys translate_on
`endif
`endif
//              sig_syscall <= #1 (wb_insn[31:24] == {`OR32_XSYNC, 2'b00});
//              sig_syscall <= #1 (id_insn[31:23] == {`OR32_XSYNC, 3'b000});
 
        end
 
end
 
 
 
//
 
// Decode of l.trap
 
//
 
always @(posedge clk or posedge rst) begin
 
        if (rst)
 
                sig_trap <= #1 1'b0;
 
        else if (!ex_freeze & id_freeze)
 
                sig_trap <= #1 1'b0;
 
        else if (!ex_freeze) begin
 
`ifdef OR1200_VERBOSE
 
// synopsys translate_off
 
                if (id_insn[31:23] == {`OR32_XSYNC, 3'b010})
 
                        $display("Generating sig_trap");
 
// synopsys translate_on
 
`endif
 
                sig_trap <= #1 (id_insn[31:23] == {`OR32_XSYNC, 3'b010});
        end
        end
end
end
 
 
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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