1 |
121 |
ultro |
module datacache (A,D,Q,M,WEN,clk);
|
2 |
|
|
input [9:0] A;
|
3 |
|
|
input [128+22-1:0] D;
|
4 |
|
|
output reg [128+22-1:0] Q;
|
5 |
|
|
input clk;
|
6 |
|
|
input WEN;
|
7 |
|
|
input [15:0] M;
|
8 |
|
|
|
9 |
|
|
reg [21:0] MemU [1023:0];
|
10 |
|
|
reg [7:0] Mem1 [1023:0];
|
11 |
|
|
reg [7:0] Mem2 [1023:0];
|
12 |
|
|
reg [7:0] Mem3 [1023:0];
|
13 |
|
|
reg [7:0] Mem4 [1023:0];
|
14 |
|
|
reg [7:0] Mem5 [1023:0];
|
15 |
|
|
reg [7:0] Mem6 [1023:0];
|
16 |
|
|
reg [7:0] Mem7 [1023:0];
|
17 |
|
|
reg [7:0] Mem8 [1023:0];
|
18 |
|
|
reg [7:0] Mem9 [1023:0];
|
19 |
|
|
reg [7:0] Mem10 [1023:0];
|
20 |
|
|
reg [7:0] Mem11 [1023:0];
|
21 |
|
|
reg [7:0] Mem12 [1023:0];
|
22 |
|
|
reg [7:0] Mem13 [1023:0];
|
23 |
|
|
reg [7:0] Mem14 [1023:0];
|
24 |
|
|
reg [7:0] Mem15 [1023:0];
|
25 |
|
|
reg [7:0] Mem16 [1023:0];
|
26 |
|
|
|
27 |
|
|
always @(posedge clk) Q <= {MemU[A],
|
28 |
|
|
Mem16[A],Mem15[A],Mem14[A],Mem13[A],Mem12[A],Mem11[A],Mem10[A],Mem9[A],
|
29 |
|
|
Mem8[A],Mem7[A],Mem6[A],Mem5[A],Mem4[A],Mem3[A],Mem2[A],Mem1[A]};
|
30 |
|
|
|
31 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 0]==1'b1)) Mem1[A] <= D[ 7: 0];
|
32 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 1]==1'b1)) Mem2[A] <= D[ 15: 8];
|
33 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 2]==1'b1)) Mem3[A] <= D[ 23: 16];
|
34 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 3]==1'b1)) Mem4[A] <= D[ 31: 24];
|
35 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 4]==1'b1)) Mem5[A] <= D[ 39: 32];
|
36 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 5]==1'b1)) Mem6[A] <= D[ 47: 40];
|
37 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 6]==1'b1)) Mem7[A] <= D[ 55: 48];
|
38 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 7]==1'b1)) Mem8[A] <= D[ 63: 56];
|
39 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 8]==1'b1)) Mem9[A] <= D[ 71: 64];
|
40 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[ 9]==1'b1)) Mem10[A] <= D[ 79: 72];
|
41 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[10]==1'b1)) Mem11[A] <= D[ 87: 80];
|
42 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[11]==1'b1)) Mem12[A] <= D[ 95: 88];
|
43 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[12]==1'b1)) Mem13[A] <= D[103: 96];
|
44 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[13]==1'b1)) Mem14[A] <= D[111:104];
|
45 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[14]==1'b1)) Mem15[A] <= D[119:112];
|
46 |
|
|
always @(posedge clk) if ((WEN ==0)&&(M[15]==1'b1)) Mem16[A] <= D[127:120];
|
47 |
|
|
always @(posedge clk) if (WEN ==0) MemU[A] <= D[149:128];
|
48 |
|
|
|
49 |
|
|
endmodule
|