Цитата(tvv @ Jul 6 2005, 17:57)
Может я что-то не заметил, но - делаю пустой проект, MegaWizard'ом рожаю двух клоковое fifo, делаю vwf с повторением примера от Wizard и, с удивлением, вижу в симуляторе смещение q от фронта rdreq не на 2 клока, а на 4!

Quartus 5.0 не web. Для меня эти два клока ой как не лишнии! Может кто с этим dcfifo боролся? Или надо забыть об использовании данной мега и все писать ручками?
fifo160.rar ( 3.27 килобайт )
Кол-во скачиваний: 122Все просто: вы подали сигнал rdreq во время того, как rdempty был '1'. FIFO игнорирует rdreq если rdempty='1'. Я обычно ползуюсь следующей логикой:
signal q_ready: boolean;
process(clk, resetN)
begin
if resetN='0' then
q_ready<= false;
elsif rising_edge(clk) then
if rdempty='0' and rdreq='1' then
q_ready <= true;
else
q_ready <= false;
end if;
end if;
end process;
.............................
Далее:
if q_ready then
sampled_q <= q;
end if;