blob: d2ff46605bed2827c8cafa44c256d7c9ddf3dc4f [file] [log] [blame] [edit]
module RAM256X8(B1ADDR, B1DATA, CLK3, A1ADDR, A1DATA, A1EN, CLK2);
parameter CLKPOL2 = 1;
parameter CLKPOL3 = 1;
parameter TRANSP3 = 1;
input CLK2;
input CLK3;
input [7:0] A1ADDR;
input [7:0] A1DATA;
input A1EN;
input [7:0] B1ADDR;
output [7:0] B1DATA;
wire c2 = CLK2 == CLKPOL2;
wire c3 = CLK3 == CLKPOL3;
reg [7:0] memory [0:255];
reg [7:0] b1_buffer;
always @(posedge c2)
if (A1EN) memory[A1ADDR] <= A1DATA;
always @(posedge c3)
b1_buffer <= TRANSP3 ? B1ADDR : memory[B1ADDR];
assign B1DATA = TRANSP3 ? memory[b1_buffer] : b1_buffer;
endmodule