| Revision 6,
1.5 KB
checked in by pntsvt00, 15 years ago
(diff) |
|
versione iniziale opensparc
|
| Rev | Line | |
|---|
| [6] | 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.