| module RAM512 #( |
| parameter BITS=9, |
| parameter FILENAME="firmware.hex" |
| ) ( |
| `ifdef USE_POWER_PINS |
| inout VPWR, |
| inout VGND, |
| `endif |
| input CLK, |
| input [7:0] WE0, |
| input EN0, |
| input [63:0] Di0, |
| output reg [63:0] Do0, |
| input [BITS-1:0] A0 |
| ); |
| |
| reg [63:0] RAM[2**BITS-1:0]; |
| |
| always @(posedge CLK) begin |
| if (EN0) |
| Do0 <= RAM[A0]; |
| else |
| Do0 <= 64'b0; |
| end |
| |
| generate |
| genvar i; |
| for (i=0; i<8; i=i+1) begin: BYTE |
| always @(posedge CLK) begin |
| if (EN0) begin |
| if (WE0[i]) |
| RAM[A0][i*8+7:i*8] <= Di0[i*8+7:i*8]; |
| end |
| end |
| end |
| endgenerate |
| |
| //initial begin |
| //$readmemh(FILENAME, RAM); |
| //end |
| |
| endmodule |