DmitryR, cпасибо за ответ.
Что вы думаете о такой реализации:
Два процесса от клоков одной частоты (от PLL), сдвинутых по фазе.
Один процесс ставит адрес, другой читает данные.
Тогда задержки как бы компенсируются.
Подбирая фазу, я смогу читать (после доработки и писать) на нужной мне частоте (в данном случае 75 МГц).
Код
type tTakt is (t0,t1,t2);
signal sTakt : tTakt;
process ( clk )
begin
case sTakt is
when t2 => -- takt 0
sTakt <= t0;
--
oMA <= sAdr0;
when t0 => -- takt 1
sTakt <= t1;
--
oMA <= sAdr1;
when t1 => -- takt 2
sTakt <= t2;
--
oMA <= sAdr2;
end case;
end if;
end process;
process ( clk2 )
begin
case sTakt is
when t2 => -- takt 0
sData0 <= ioMD;
when t0 => -- takt 1
sData1 <= ioMD;
when t1 => -- takt 2
sData2 <= ioMD;
end case;
end if;
end process;
oWE <= '1';
oOE <= '0';
ioMD <= (others => 'Z');
Сообщение отредактировал IanPo - Oct 27 2010, 12:44