Revision 6,
1.5 KB
checked in by pntsvt00, 14 years ago
(diff) |
versione iniziale opensparc
|
Line | |
---|
1 | module regfile_1w_4r( |
---|
2 | input clk, |
---|
3 | |
---|
4 | input [71:0] din, |
---|
5 | input [ 7:0] wraddr, |
---|
6 | input wren, |
---|
7 | input [ 7:0] rdaddr0, |
---|
8 | input [ 7:0] rdaddr1, |
---|
9 | input [ 7:0] rdaddr2, |
---|
10 | input [ 7:0] rdaddr3, |
---|
11 | input rd0, |
---|
12 | input rd1, |
---|
13 | input rd2, |
---|
14 | input rd3, |
---|
15 | |
---|
16 | output [71:0] dout0, |
---|
17 | output [71:0] dout1, |
---|
18 | output [71:0] dout2, |
---|
19 | output [71:0] dout3 |
---|
20 | ); |
---|
21 | |
---|
22 | reg [7:0] rdaddr0_d; |
---|
23 | reg [7:0] rdaddr1_d; |
---|
24 | reg [7:0] rdaddr2_d; |
---|
25 | reg [7:0] rdaddr3_d; |
---|
26 | reg rd0_d; |
---|
27 | reg rd1_d; |
---|
28 | reg rd2_d; |
---|
29 | reg rd3_d; |
---|
30 | |
---|
31 | always @(posedge clk) |
---|
32 | begin |
---|
33 | rdaddr0_d<=rdaddr0; |
---|
34 | rdaddr1_d<=rdaddr1; |
---|
35 | rdaddr2_d<=rdaddr2; |
---|
36 | rdaddr3_d<=rdaddr3; |
---|
37 | rd0_d<=rd0; |
---|
38 | rd1_d<=rd1; |
---|
39 | rd2_d<=rd2; |
---|
40 | rd3_d<=rd3; |
---|
41 | end |
---|
42 | |
---|
43 | regfile1 regfile_inst0( |
---|
44 | .wrclock(clk), |
---|
45 | .rdclock(~clk), |
---|
46 | |
---|
47 | .data(din), |
---|
48 | .rdaddress(rdaddr0_d), |
---|
49 | .rden(rd0_d), |
---|
50 | .wraddress(wraddr), |
---|
51 | .wren(wren), |
---|
52 | .q(dout0) |
---|
53 | ); |
---|
54 | |
---|
55 | regfile1 regfile_inst1( |
---|
56 | .wrclock(clk), |
---|
57 | .rdclock(~clk), |
---|
58 | |
---|
59 | .data(din), |
---|
60 | .rdaddress(rdaddr1_d), |
---|
61 | .rden(rd1_d), |
---|
62 | .wraddress(wraddr), |
---|
63 | .wren(wren), |
---|
64 | .q(dout1) |
---|
65 | ); |
---|
66 | |
---|
67 | regfile1 regfile_inst2( |
---|
68 | .wrclock(clk), |
---|
69 | .rdclock(~clk), |
---|
70 | |
---|
71 | .data(din), |
---|
72 | .rdaddress(rdaddr2_d), |
---|
73 | .rden(rd2_d), |
---|
74 | .wraddress(wraddr), |
---|
75 | .wren(wren), |
---|
76 | .q(dout2) |
---|
77 | ); |
---|
78 | |
---|
79 | regfile1 regfile_inst3( |
---|
80 | .wrclock(clk), |
---|
81 | .rdclock(~clk), |
---|
82 | |
---|
83 | .data(din), |
---|
84 | .rdaddress(rdaddr3_d), |
---|
85 | .rden(rd3_d), |
---|
86 | .wraddress(wraddr), |
---|
87 | .wren(wren), |
---|
88 | .q(dout3) |
---|
89 | ); |
---|
90 | |
---|
91 | endmodule |
---|
Note: See
TracBrowser
for help on using the repository browser.