19

С чего начать изучение FPGA. Часть 2. Детекторы фронта.

Приветствую уважаемые подписчики. Данный пост будет небольшой, но очень полезный. Сегодня я хочу познакомить вас с тремя маленькими, но архиважными схемами, которые достаточно часто применяются разработчиками. Данные схемы носят название детекторы фронта и применяются, как ни странно, для того, чтобы детектировать фронт импульса.


Например: есть какой-то длинный сигнал, и наша задача показать, что у нас сигнал изменился с 0 --> 1 или же с 1 --> 0.


Для этого давайте попробуем пропустить наш длинный сигнал через двух-разрядный сдвиговый регистр с параллельным выходом.


Опишем наш сдвиговый регистр на VHDL:

Вот как он у нас выглядит в RTL:

Надеюсь, вы представляете себе, как работает наш сдвиговый регистр? Если не представляете, то вот его временные диаграммы:

А теперь обратите внимание на места, выделенные красным:

Заметьте, каждый раз как у нас входной сигнал становиться равным логической единице, у нас в младший разряд записывается этот сигнал, а в старшем разряде в это время у нас записано прошлое состояние младшего разряда, т.е. лог.0.

Почему бы нам теперь не выдавать логическую единичку, если у нас в старшем разряде записан лог.0 , а в младшем лог.1 ?


Вот так вот будет выглядеть наша новая схема:

Вот её RTL представление:

А вот временные диаграммы её работы:

Как видите – это то, что нам и было надо с самого начала!


А если нам необходимо детектировать изменение сигнала с 1 --> 0 ?


То тут вообще все просто, нам достаточно немного переписать 21 строчку кода:

Вот так теперь будет выглядеть наша схема в RTL:

Ну и конечно вот наши времянки:

Последняя схема, сигнализирует о переднем и заднем фронте сигнала. Применяется не так часто, но для полноты картины я вам всё же её покажу.

Последняя схема получается, если поксорить наши регистры (от английского слова XOR, сложение по модулю 2):

Вот так вот она выглядит в RTL:

Ну и как всегда временные диаграммы:

Вот я вам и рассказал про три важные схемы, которые применяются для детектирования фронтов сигнала.

Но у этих трех схем есть один недостаток – это 3 разных файла, что очень неудобно.

Можно ли их как-то объединить в один ?

Кончено же можно !

Наши три файла легко описать в виде одного файла с параметрами, что, кстати говоря, является хорошим тоном при описании схем на HDL языках :

Теперь достаточно указать в параметрах тип детектируемого фронта, и схема автоматически будет выбираться та, которая нам нужна.

На сегодня это все. Спасибо за прочтение



P.S. Стоит ли мне дальше продолжать писать посты про основы работы с ПЛИС. У меня возникло ощущение, что никому кроме меня это нафиг не надо…

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества