32 lines
634 B
Systemverilog
32 lines
634 B
Systemverilog
module bram(
|
|
input clk,
|
|
input re,
|
|
input we,
|
|
input [DEPTH-1:0] addr_rd,
|
|
input [DEPTH-1:0] addr_wr,
|
|
output logic [WIDTH-1:0] data_rd,
|
|
input [WIDTH-1:0] data_wr
|
|
);
|
|
|
|
parameter WIDTH=8;
|
|
parameter DEPTH=8;
|
|
parameter SIZE=(1<<DEPTH);
|
|
|
|
logic [WIDTH-1:0] ram [0:SIZE-1];
|
|
initial begin
|
|
$readmemh("data.bin", ram);
|
|
end
|
|
|
|
always @(posedge clk) begin
|
|
if (we) begin
|
|
ram[addr_wr] <= data_wr;
|
|
end
|
|
end
|
|
|
|
always @(posedge clk) begin
|
|
if (re) begin
|
|
data_rd <= ram[addr_rd];
|
|
end
|
|
end
|
|
endmodule
|