Ruslan (03.04.2010 00:33, просмотров: 252) ответил Ruslan на Ругается то что не может разместить в блочную память. У тебя используется асинхронное чтение. Вот тут:
Вот пример из help-а кварутса. The example below shows ram_dual.v, a Verilog Design File that implements a 128 x 8-bit simple dual-port RAM with separate read and write clocks.
module ram_dual(q, addr_in, addr_out, d, we, clk1, clk2);
output[7:0] q;
input [7:0] d;
input [6:0] addr_in;
input [6:0] addr_out;
input we, clk1, clk2;
reg [6:0] addr_out_reg;
reg [7:0] q;
reg [7:0] mem [127:0];
always @(posedge clk1) begin
if (we)
mem[addr_in] <= d;
end
always @(posedge clk2) begin
q <= mem[addr_out_reg];
addr_out_reg <= addr_out;
end
endmodule
Пишем обертку - добавляем два указателя, получаем кольцевой буфер.