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

Subversion Repositories or1k

[/] [or1k/] [tags/] [asyst_3/] [or1200/] [rtl/] [verilog/] [or1200_rfram_generic.v] - Diff between revs 871 and 1022

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

Rev 871 Rev 1022
Line 41... Line 41...
////                                                              ////
////                                                              ////
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.1  2002/06/08 16:23:30  lampret
 
// Generic flip-flop based memory macro for register file.
 
//
//
//
 
 
// synopsys translate_off
// synopsys translate_off
`include "timescale.v"
`include "timescale.v"
// synopsys translate_on
// synopsys translate_on
Line 114... Line 117...
always @(posedge clk or posedge rst)
always @(posedge clk or posedge rst)
        if (rst) begin
        if (rst) begin
                mem <= #1 1024'h0;
                mem <= #1 1024'h0;
        end
        end
        else if (ce_w & we_w)
        else if (ce_w & we_w)
                case (addr_w)   // synopsys parallel_case full_case
                case (addr_w)   // synopsys parallel_case
                        5'd00: mem[32*0+31:32*0] <= #1 di_w;
                        5'd00: mem[32*0+31:32*0] <= #1 di_w;
                        5'd01: mem[32*1+31:32*1] <= #1 di_w;
                        5'd01: mem[32*1+31:32*1] <= #1 di_w;
                        5'd02: mem[32*2+31:32*2] <= #1 di_w;
                        5'd02: mem[32*2+31:32*2] <= #1 di_w;
                        5'd03: mem[32*3+31:32*3] <= #1 di_w;
                        5'd03: mem[32*3+31:32*3] <= #1 di_w;
                        5'd04: mem[32*4+31:32*4] <= #1 di_w;
                        5'd04: mem[32*4+31:32*4] <= #1 di_w;
Line 146... Line 149...
                        5'd26: mem[32*26+31:32*26] <= #1 di_w;
                        5'd26: mem[32*26+31:32*26] <= #1 di_w;
                        5'd27: mem[32*27+31:32*27] <= #1 di_w;
                        5'd27: mem[32*27+31:32*27] <= #1 di_w;
                        5'd28: mem[32*28+31:32*28] <= #1 di_w;
                        5'd28: mem[32*28+31:32*28] <= #1 di_w;
                        5'd29: mem[32*29+31:32*29] <= #1 di_w;
                        5'd29: mem[32*29+31:32*29] <= #1 di_w;
                        5'd30: mem[32*30+31:32*30] <= #1 di_w;
                        5'd30: mem[32*30+31:32*30] <= #1 di_w;
                        5'd31: mem[32*31+31:32*31] <= #1 di_w;
                        default: mem[32*31+31:32*31] <= #1 di_w;
                endcase
                endcase
 
 
//
//
// Read port A
// Read port A
//
//
Line 160... Line 163...
        end
        end
        else if (ce_a)
        else if (ce_a)
                intaddr_a <= #1 addr_a;
                intaddr_a <= #1 addr_a;
 
 
always @(mem or intaddr_a)
always @(mem or intaddr_a)
        case (intaddr_a)        // synopsys parallel_case full_case
        case (intaddr_a)        // synopsys parallel_case
                5'd00: do_a = mem[32*0+31:32*0];
                5'd00: do_a = mem[32*0+31:32*0];
                5'd01: do_a = mem[32*1+31:32*1];
                5'd01: do_a = mem[32*1+31:32*1];
                5'd02: do_a = mem[32*2+31:32*2];
                5'd02: do_a = mem[32*2+31:32*2];
                5'd03: do_a = mem[32*3+31:32*3];
                5'd03: do_a = mem[32*3+31:32*3];
                5'd04: do_a = mem[32*4+31:32*4];
                5'd04: do_a = mem[32*4+31:32*4];
Line 192... Line 195...
                5'd26: do_a = mem[32*26+31:32*26];
                5'd26: do_a = mem[32*26+31:32*26];
                5'd27: do_a = mem[32*27+31:32*27];
                5'd27: do_a = mem[32*27+31:32*27];
                5'd28: do_a = mem[32*28+31:32*28];
                5'd28: do_a = mem[32*28+31:32*28];
                5'd29: do_a = mem[32*29+31:32*29];
                5'd29: do_a = mem[32*29+31:32*29];
                5'd30: do_a = mem[32*30+31:32*30];
                5'd30: do_a = mem[32*30+31:32*30];
                5'd31: do_a = mem[32*31+31:32*31];
                default: do_a = mem[32*31+31:32*31];
        endcase
        endcase
 
 
//
//
// Read port B
// Read port B
//
//
Line 206... Line 209...
        end
        end
        else if (ce_b)
        else if (ce_b)
                intaddr_b <= #1 addr_b;
                intaddr_b <= #1 addr_b;
 
 
always @(mem or intaddr_b)
always @(mem or intaddr_b)
        case (intaddr_b)        // synopsys parallel_case full_case
        case (intaddr_b)        // synopsys parallel_case
                5'd00: do_b = mem[32*0+31:32*0];
                5'd00: do_b = mem[32*0+31:32*0];
                5'd01: do_b = mem[32*1+31:32*1];
                5'd01: do_b = mem[32*1+31:32*1];
                5'd02: do_b = mem[32*2+31:32*2];
                5'd02: do_b = mem[32*2+31:32*2];
                5'd03: do_b = mem[32*3+31:32*3];
                5'd03: do_b = mem[32*3+31:32*3];
                5'd04: do_b = mem[32*4+31:32*4];
                5'd04: do_b = mem[32*4+31:32*4];
Line 238... Line 241...
                5'd26: do_b = mem[32*26+31:32*26];
                5'd26: do_b = mem[32*26+31:32*26];
                5'd27: do_b = mem[32*27+31:32*27];
                5'd27: do_b = mem[32*27+31:32*27];
                5'd28: do_b = mem[32*28+31:32*28];
                5'd28: do_b = mem[32*28+31:32*28];
                5'd29: do_b = mem[32*29+31:32*29];
                5'd29: do_b = mem[32*29+31:32*29];
                5'd30: do_b = mem[32*30+31:32*30];
                5'd30: do_b = mem[32*30+31:32*30];
                5'd31: do_b = mem[32*31+31:32*31];
                default: do_b = mem[32*31+31:32*31];
        endcase
        endcase
 
 
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.