Поделюсь опытом
ПЛИС в основном рассчитаны на построение тактируемых устройств. Для этого они содержат специализированные средства для клоков (выделенные контакты, синтезаторы частот, специально проложенные в кристалле пути с малыми задержками для разводки клоков и т.п.) и соответствующее размещение логики. В таких случаях используется внешний тактовый сигнал нужной частоты от генератора, микропроцессора или других устройств размещенных на плате или подключенных к ней. Но бывают случаи, когда в устройстве в основном распределенная логика или/и счетчики, регистры и т.п. внешних сигналов, а машины состояний если и нужны, то не большие и не критичные к временным разбросам. И, если на плате только одна микросхема ПЛИС, то добавление генератора делает существенную прибавку к стоимости устройства.
В таких случаях я делаю машины состояний на линиях задержки с отводами. А эти линии задержки - это последовательно соединенные не подключенные к ногам ПЛИС блоки ввода/вывода (unbonded I/O pad - UPAD). Обычно их довольно много на кристалле и чем меньше ног у корпуса, тем больше количество UPAD. Сама задержка в основном определяется задаваемым выходным током UPAD - чем меньше ток, тем больше задержка. Например, для Spartan2 при заданном выходном токе в 2мА (минимальный) задержка на UPAD составляет около 25нс.
|