mirror of https://github.com/YosysHQ/yosys.git
23 lines
540 B
Verilog
23 lines
540 B
Verilog
module top (clk, write_enable, read_enable, write_data, addr, read_data);
|
|
parameter DATA_WIDTH = 8;
|
|
parameter ADDR_WIDTH = 8;
|
|
parameter SKIP_RDEN = 1;
|
|
|
|
input clk;
|
|
input write_enable, read_enable;
|
|
input [DATA_WIDTH - 1 : 0] write_data;
|
|
input [ADDR_WIDTH - 1 : 0] addr;
|
|
output [DATA_WIDTH - 1 : 0] read_data;
|
|
|
|
(* ram_style = "huge" *)
|
|
reg [DATA_WIDTH - 1 : 0] mem [2**ADDR_WIDTH - 1 : 0];
|
|
|
|
always @(posedge clk) begin
|
|
if (write_enable)
|
|
mem[addr] <= write_data;
|
|
else if (SKIP_RDEN || read_enable)
|
|
read_data <= mem[addr];
|
|
end
|
|
|
|
endmodule
|