[an error occurred while processing this directive]
|
Очень не рекомендую использовать асинхронные схемы со многими клоками, т.к. все фпга сконструированы как синхронные устройства с одним или несколькими (до кажется 8 в виртексе) клоками, которые имеют пренебрежимо малую задержку распространения в кристалле.
Правильный подход imho таков:
1. Использовать только один глобальный клок с частотой выше, чем входная частота счетчиков.
2. Вместо фронта асинхронного внешнего сигнала (клоки на счетчики и строб чтения) формировать сигнал длительностью 1 такт глобального клока (и, естественно, синхронизированного с ним), который использовать, как clock enable. Пара clock/clock_enable аппаратно поддерживается фпга.
3. Счетчики считают глобальный клок по разрешению соответствующего clock enable.
4. Опять таки глобальным клоком (по clock enable, сформированного из сигнала чтения), щелкать данные из счетчика в буфер, из которого уже асинхронно читать атмегой.
Если это не подходит, то корректировать программно.
ps Вроде как actel fpga имеют очень много независимых клоков на кристалле.
E-mail: info@telesys.ru