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

Subversion Repositories or1k

[/] [or1k/] [branches/] [mp3_stable/] [or1200/] [rtl/] [verilog/] [rf.v] - Diff between revs 203 and 205

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

Rev 203 Rev 205
Line 66... Line 66...
 
 
        // Write i/f
        // Write i/f
        addrw, dataw, we,
        addrw, dataw, we,
 
 
        // Read i/f
        // Read i/f
        pipeline_freeze, addra, addrb, dataa, datab,
        id_freeze, addra, addrb, dataa, datab,
 
 
        // Debug
        // Debug
        rfa_tqa, rfb_tqa, rfa_tmuxed, rfb_tmuxed, tp1w
        rfa_tqa, rfb_tqa, rfa_tmuxed, rfb_tmuxed, tp1w
);
);
 
 
Line 95... Line 95...
input                           we;
input                           we;
 
 
//
//
// Read i/f
// Read i/f
//
//
input                           pipeline_freeze;
input                           id_freeze;
input   [aw-1:0]         addra;
input   [aw-1:0]         addra;
input   [aw-1:0]         addrb;
input   [aw-1:0]         addrb;
output  [dw-1:0]         dataa;
output  [dw-1:0]         dataa;
output  [dw-1:0]         datab;
output  [dw-1:0]         datab;
 
 
Line 147... Line 147...
//
//
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
        if (rst) begin
        if (rst) begin
                dataa_saved <= #1 33'b0;
                dataa_saved <= #1 33'b0;
        end
        end
        else if (pipeline_freeze & !dataa_saved[32]) begin
        else if (id_freeze & !dataa_saved[32]) begin
                dataa_saved <= #1 {1'b1, from_rfa};
                dataa_saved <= #1 {1'b1, from_rfa};
        end
        end
        else if (!pipeline_freeze)
        else if (!id_freeze)
                dataa_saved[32] <= #1 1'b0;
                dataa_saved <= #1 33'b0;
 
 
//
//
// Stores operand from RF_B into temp reg when pipeline is frozen
// Stores operand from RF_B into temp reg when pipeline is frozen
//
//
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
        if (rst) begin
        if (rst) begin
                datab_saved <= #1 33'b0;
                datab_saved <= #1 33'b0;
        end
        end
        else if (pipeline_freeze & !datab_saved[32]) begin
        else if (id_freeze & !datab_saved[32]) begin
                datab_saved <= #1 {1'b1, from_rfb};
                datab_saved <= #1 {1'b1, from_rfb};
        end
        end
        else if (!pipeline_freeze)
        else if (!id_freeze)
                datab_saved[32] <= #1 1'b0;
                datab_saved <= #1 33'b0;
 
 
//
//
// Instantiation of register file two-port RAM A
// Instantiation of register file two-port RAM A
//
//
generic_tpram_32x32 rf_a(
generic_tpram_32x32 rf_a(

powered by: WebSVN 2.1.0

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