en el código verilog a continuación:
module mem_try(
clk,
addr,
data_in,
rd,
wr,
data_out
);
parameter addr_length=32,data_width=32,ram_depth= 1 << addr_length;
input [data_width-1:0]data_in;
input clk,rd,wr;
input [addr_length-1:0]addr;
output reg [data_width-1:0]data_out;
reg[data_width-1:0]ram[ram_depth-1:0];//ram variable decalaration
assign write_only =wr&~rd ;
assign read_only =~wr&rd ;
always@(posedge clk) begin
if(write_only) begin
ram[addr]<=data_in;
end
if(read_only) begin
data_out<=ram[addr];
end
end
endmodule
Después de la síntesis obtengo el siguiente error:
[Synth 8-3331] design mem_try has unconnected port addr[31](30 more like this)
y se forma un ram de distribución.
¿Alguien puede señalar el error y cómo se puede inferir un bram
?