1/ написал прошивку для CPLD XC9500XL -10
т.е. сигнал от ноги до ноги доходит за время >=10ns
2/ нажал Generate post-fit simulation model
3/ полученный файл добавил в проект и написал модель сигналов на входе:
-- Wait 100 ns for global reset to finish
wait for 100 ns ;
-----------------------------------------------------------------------------
CLK <= '0' ;
TOP <= '1' ;
LLD <= '1' ;
BUSY <= '0' ;
D <= "000000000000" ;
wait for 100 ns ;
-----------------------------------------------------------------------------
CLK <= '1' ;
LLD <= transport '0' after 40 ns ;
wait for 100 ns ;
-----------------------------------------------------------------------------
CLK <= '0' ;
TOP <= transport '0' after 40 ns ;
wait for 100 ns ;
-----------------------------------------------------------------------------
CLK <= '1' ;
wait for 100 ns ;
-----------------------------------------------------------------------------
CLK <= '0' ;
wait for 100 ns ;
.... и т.п.
4/ Запусил симуляцию
вижу на временной диаграмме что входной сигнал TOP оказался на выходе CONV
через 0.1 ns..... Хотя минимальная задержка - 10 ns!!!!!!!!!
Вот код, который я моделировал:
process ( TOP, LLD, BUSY )
begin
if LLD = '1' or BUSY = '1' then
CONV <= '1' ;
elsif TOP'event and TOP = '0' then
CONV <= '0' ;
end if ;
end process ;
Почему так получилось?