Цитата(Veg@ @ Jul 30 2010, 19:51)

В смысле в одном блоке толкать данные в очередь, а в другом извлекать? Не могли бы Вы привести конкретный пример для пояснения?
Код
reg [1:0] wraddr,rdaddr;
reg [3:0] data_fifo [0:1];
always @(posedge clk_0)
if (rst) wraddr<=2'd0;
else wraddr<=wraddr+1;
always @(posedge clk_1)
if (rst) rdaddr<=2'd2;
else rdaddr<=rdaddr+1;
always @(posedge clk_0)
case (wraddr)
2'd0:begin
data_fifo[0]<=input_data;
data_fifo[1]<=data_fifo[0];
data_fifo[2]<=data_fifo[1];
data_fifo[3]<=data_fifo[2];
end
2'd1:......................
default: begin .....................
dada_fifo[3]<=input_data;
end
endcase
wire [3:0] output_data=dada_fifo[rdaddr];
Как-то так...
есть 4 элемента по 4 разряда, адрес записи также как и данные меняются на частоте clk_0, адрес чтения на частоте clk_1 и выходные данные на частоте clk_1. Естественно это просто пример, можно тут накрутить переполнение, опустошение, реализовать все на памяти и т.д. Факт в том, что данные записываются в регистр на одной частоте, а считываются на другой.
Я просто пытаюсь понять, что Вам требуется - пересинхронизация или буфер какой?