module mem_try (clk, // управляющий сигнал для создания оперативной памяти addr, // адрес, из которого необходимо извлечь данные data_in, // входные данные rd, wr, // запись управляющего сигнала на высоком уровне, чтение на низком уровне;// rst, // вводим управляющий сигнал // rd_count, // wr_count, 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
я написал этот код для 32x32 оперативной памяти и былнадеясь, что в конструкции будет выведен блок памяти, однако вивадо рассматривает его как распределенную память