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

Subversion Repositories mips789

[/] [mips789/] [branches/] [avendor/] [rtl/] [verilog/] [altera/] [ram_module.v] - Blame information for rev 55

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 mcupro
 
2
module mem_array
3
    (
4
        input clk,
5
        input [31:0] pc_i,
6
        output [31:0] ins_o,
7
        input [3:0] wren,
8
        input [31:0]din,
9
        input [31:0]wr_addr_i,
10
        input [31:0]rd_addr_i,
11
        output [31:0]dout
12
    );
13
    wire [31:0] rd_addr,pc,wr_addr;
14
    wire [31:0]dout_w;
15
    assign dout = dout_w;
16
    assign rd_addr=rd_addr_i[31:2];
17
    assign wr_addr=wr_addr_i[31:2];
18
    assign pc= pc_i[31:2];
19
 
20
    ram2048x8_3 ram3(
21
                    .data_a(32'b0),
22
                    .wren_a(1'b0),
23
                    .address_a(pc),
24
                    .data_b(din[31:24]),
25
                    .address_b(wr_addr),
26
                    .wren_b(wren[3]),
27
                    .clock(clk),
28
                    .q_a(ins_o[31:24]),
29
                    .q_b(dout_w[31:24])
30
                );
31
 
32
    ram2048x8_2 ram2(
33
                    .data_a(32'b0),
34
                    .wren_a(1'b0),
35
                    .address_a(pc),
36
                    .data_b(din[23:16]),
37
                    .address_b(wr_addr),
38
                    .wren_b(wren[2]),
39
                    .clock(clk),
40
                    .q_a(ins_o[23:16]),
41
                    .q_b(dout_w[23:16])
42
                );
43
 
44
    ram2048x8_1 ram1(
45
                    .data_a(32'b0),
46
                    .wren_a(1'b0),
47
                    .address_a(pc),
48
                    .data_b(din[15:8]),
49
                    .address_b(wr_addr),
50
                    .wren_b(wren[1]),
51
                    .clock(clk),
52
                    .q_a(ins_o[15:8]),
53
                    .q_b(dout_w[15:8])
54
                );
55
 
56
    ram2048x8_0 ram0(
57
                    .data_a(32'b0),
58
                    .wren_a(1'b0),
59
                    .address_a(pc),
60
                    .data_b(din[7:0]),
61
                    .address_b(wr_addr),
62
                    .wren_b(wren[0]),
63
                    .clock(clk),
64
                    .q_a(ins_o[7:0]),
65
                    .q_b(dout_w[7:0])
66
                );
67
 
68
endmodule

powered by: WebSVN 2.1.0

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