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

Subversion Repositories raptor64

[/] [raptor64/] [trunk/] [rtl/] [verilog/] [Raptor64_dcache_ram.v] - Blame information for rev 3

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

Line No. Rev Author Line
1 3 robfinch
// ============================================================================
2
// (C) 2012 Robert Finch
3
// All Rights Reserved.
4
// robfinch<remove>@opencores.org
5
//
6
// Raptor64.v - dcache_ram
7
//  - 64 bit CPU data cache ram
8
//
9
// This source file is free software: you can redistribute it and/or modify 
10
// it under the terms of the GNU Lesser General Public License as published 
11
// by the Free Software Foundation, either version 3 of the License, or     
12
// (at your option) any later version.                                      
13
//                                                                          
14
// This source file is distributed in the hope that it will be useful,      
15
// but WITHOUT ANY WARRANTY; without even the implied warranty of           
16
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            
17
// GNU General Public License for more details.                             
18
//                                                                          
19
// You should have received a copy of the GNU General Public License        
20
// along with this program.  If not, see <http://www.gnu.org/licenses/>.    
21
//                                                                          
22
// ============================================================================
23
//
24
module Raptor64_dcache_ram(clk,wr,sel,wadr,i,radr,o);
25
input clk;
26
input wr;
27
input [3:0] sel;
28
input [13:2] wadr;
29
input [31:0] i;
30
input [13:3] radr;
31
output [63:0] o;
32
 
33
reg [7:0] mem0 [2047:0];
34
reg [31:0] memH [2047:0];
35
 
36
syncRam2kx8_1rw1r u1
37
(
38
        .wrst(1'b0),
39
        .wclk(clk),
40
        .wce(sel[0] && !wadr[2]),
41
        .we(wr),
42
        .wadr(wadr[13:3]),
43
        .i(i[7:0]),
44
        .wo(),
45
        .rrst(1'b0),
46
        .rclk(~clk),
47
        .rce(1'b1),
48
        .radr(radr[13:3]),
49
        .o(o[7:0])
50
);
51
 
52
syncRam2kx8_1rw1r u2
53
(
54
        .wrst(1'b0),
55
        .wclk(clk),
56
        .wce(sel[1] && !wadr[2]),
57
        .we(wr),
58
        .wadr(wadr[13:3]),
59
        .i(i[15:8]),
60
        .wo(),
61
        .rrst(1'b0),
62
        .rclk(~clk),
63
        .rce(1'b1),
64
        .radr(radr[13:3]),
65
        .o(o[15:8])
66
);
67
 
68
syncRam2kx8_1rw1r u3
69
(
70
        .wrst(1'b0),
71
        .wclk(clk),
72
        .wce(sel[2] && !wadr[2]),
73
        .we(wr),
74
        .wadr(wadr[13:3]),
75
        .i(i[23:16]),
76
        .wo(),
77
        .rrst(1'b0),
78
        .rclk(~clk),
79
        .rce(1'b1),
80
        .radr(radr[13:3]),
81
        .o(o[23:16])
82
);
83
 
84
syncRam2kx8_1rw1r u4
85
(
86
        .wrst(1'b0),
87
        .wclk(clk),
88
        .wce(sel[3] && !wadr[2]),
89
        .we(wr),
90
        .wadr(wadr[13:3]),
91
        .i(i[31:24]),
92
        .wo(),
93
        .rrst(1'b0),
94
        .rclk(~clk),
95
        .rce(1'b1),
96
        .radr(radr[13:3]),
97
        .o(o[31:24])
98
);
99
 
100
syncRam2kx8_1rw1r u5
101
(
102
        .wrst(1'b0),
103
        .wclk(clk),
104
        .wce(sel[0] && wadr[2]),
105
        .we(wr),
106
        .wadr(wadr[13:3]),
107
        .i(i[7:0]),
108
        .wo(),
109
        .rrst(1'b0),
110
        .rclk(~clk),
111
        .rce(1'b1),
112
        .radr(radr[13:3]),
113
        .o(o[39:32])
114
);
115
 
116
syncRam2kx8_1rw1r u6
117
(
118
        .wrst(1'b0),
119
        .wclk(clk),
120
        .wce(sel[1] && wadr[2]),
121
        .we(wr),
122
        .wadr(wadr[13:3]),
123
        .i(i[15:8]),
124
        .wo(),
125
        .rrst(1'b0),
126
        .rclk(~clk),
127
        .rce(1'b1),
128
        .radr(radr[13:3]),
129
        .o(o[47:40])
130
);
131
 
132
syncRam2kx8_1rw1r u7
133
(
134
        .wrst(1'b0),
135
        .wclk(clk),
136
        .wce(sel[2] && wadr[2]),
137
        .we(wr),
138
        .wadr(wadr[13:3]),
139
        .i(i[23:16]),
140
        .wo(),
141
        .rrst(1'b0),
142
        .rclk(~clk),
143
        .rce(1'b1),
144
        .radr(radr[13:3]),
145
        .o(o[55:48])
146
);
147
 
148
syncRam2kx8_1rw1r u8
149
(
150
        .wrst(1'b0),
151
        .wclk(clk),
152
        .wce(sel[3] && wadr[2]),
153
        .we(wr),
154
        .wadr(wadr[13:3]),
155
        .i(i[31:24]),
156
        .wo(),
157
        .rrst(1'b0),
158
        .rclk(~clk),
159
        .rce(1'b1),
160
        .radr(radr[13:3]),
161
        .o(o[63:56])
162
);
163
 
164
endmodule
165
 

powered by: WebSVN 2.1.0

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