Skip to content

Instantly share code, notes, and snippets.

@jblang
Created December 21, 2017 03:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jblang/febdcc0b6987ff5d52e60e40f35fdfc0 to your computer and use it in GitHub Desktop.
Save jblang/febdcc0b6987ff5d52e60e40f35fdfc0 to your computer and use it in GitHub Desktop.
New block ram
module ram(clk, addr, data_in, data_out, cs, we);
parameter ADDR_WIDTH = 11;
parameter DATA_WIDTH = 8;
parameter INIT_FILE = "";
input clk;
input [ADDR_WIDTH-1:0] addr;
input [DATA_WIDTH-1:0] data_in;
output reg [DATA_WIDTH-1:0] data_out;
input cs;
input we;
reg [DATA_WIDTH-1:0] mem[(1 << ADDR_WIDTH)-1:0];
initial
begin
if (INIT_FILE != "") begin
$readmemh(INIT_FILE, mem);
end
end
reg [ADDR_WIDTH-1:0] addr_reg;
always @(posedge clk)
begin
if (cs)
if (we)
mem[addr] <= data_in;
else
data_out <= mem[addr];
else
data_out <= 8'bz;
//addr_reg <= addr;
end
//assign data_out = (cs && !we) ? mem[addr_reg] : 8'bz;
endmodule
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment