Оглавление:

Секундомер VHDL: 8 шагов (с изображениями)
Секундомер VHDL: 8 шагов (с изображениями)

Видео: Секундомер VHDL: 8 шагов (с изображениями)

Видео: Секундомер VHDL: 8 шагов (с изображениями)
Видео: 5. Цифровые часы на ПЛИС с выводом на 7-сегментный индикатор 2024, Июль
Anonim
Секундомер VHDL
Секундомер VHDL

Это руководство о том, как сделать секундомер с использованием VHDL и печатной платы FPGA, например платы Basys3 Atrix-7. Секундомер может отсчитывать от 00,00 секунд до 99,99 секунд. Он использует две кнопки, одну для кнопки запуска / остановки, а другую для кнопки сброса. Цифры отображаются на семисегментном дисплее платы с использованием анодов и катодов. Для работы секундомера необходимы три разных файла.

Шаг 1. Аппаратное / программное обеспечение

  • Плата Basys3 Atrix-7 FPGA
  • Vivado Design Suite от Xilinx
  • USB 2.0 мужчина к мужчине Micro-B

Шаг 2: блок-схема

Блок-схема
Блок-схема

Общий секундомер имеет три входа и два выхода. Три входа - это пуск / останов, сброс и часы. Старт / стоп и сброс - это кнопки, а часы - это тактовая частота платы 100 МГц. Два выхода - это аноды и катоды для семисегментного дисплея.

Первый модуль (делитель тактовой частоты) имеет один вход и два выхода. Вход - это тактовая частота платы 100 МГц, а выходы - два отдельных тактовых сигнала, один с частотой 480 Гц, а другой с частотой 0,5 МГц.

Второй модуль (дисплей) имеет пять входов и два выхода. Входами являются частота 100 МГц платы, две тактовые частоты модуля делителя тактовой частоты, а также кнопки запуска / остановки и сброса. Выходы - аноды и катоды.

Последний модуль (смоделированный всей блок-схемой) имеет три входа и два выхода. Это файл, который объединяет все воедино. Входами являются 100 МГц платы и кнопки запуска / остановки и сброса. Выходами являются аноды и катоды, управляющие семисегментным дисплеем. Все входы и выходы физически находятся на плате последнего модуля.

Шаг 3: Диаграмма состояний

Диаграмма состояния
Диаграмма состояния

На изображении выше показана диаграмма состояний работы секундомера. Нажатие кнопки сброса не влияет на состояние секундомера. Следующее состояние определяется кнопкой старт / стоп. Пуск / останов - «ВЫСОКИЙ» при нажатии, но не «ВЫСОКИЙ», когда он удерживается, и «НИЗКИЙ», когда кнопка отскакивает назад или удерживается в нажатом состоянии после того, как на мгновение находится «ВЫСОКИЙ».

Если секундомер ведет отсчет, а кнопка пуска / остановки показывает «ВЫСОКИЙ», то отсчет прекращается. Если секундомер остановлен, а кнопка пуска / останова переходит в положение «ВЫСОКИЙ», отсчет начинается снова. Для обоих состояний, если кнопка пуска / останова находится в положении «НИЗКИЙ», то она останется в том состоянии, в котором находится в данный момент.

Шаг 4: модуль делителя тактовой частоты

Модуль тактового делителя имеет один вход, тактовая частота платы 100 МГц, и два выхода, тактовая частота 480 Гц и 0,5 МГц. Тактовая частота 480 Гц используется для одновременного включения всех светодиодов на семисегментном дисплее путем быстрого переключения между четырьмя. Часы 0,5 МГц используются для того, чтобы секундомер фактически считал сантиметры.

Шаг 5: модуль дисплея

Этот дисплейный модуль имеет пять входов, тактовую частоту платы 100 МГц, две тактовые частоты модуля синхронизации, кнопки пуска / остановки и сброса, а также два выхода, аноды и катоды. Этот модуль также имеет "логику" подсчета секундомером и включает в себя конечный автомат.

Шаг 6: модуль привязки

Этот последний модуль объединяет два других модуля. Он имеет три входа, тактовые частоты платы 100 МГц и кнопки запуска / остановки и сброса, и два выхода, аноды и катоды. Тактовая частота 100 МГц поступает на модуль делителя тактовой частоты и модуль дисплея, а кнопки пуска / остановки и сброса идут на модуль дисплея. Выходы модуля делителя тактовой частоты (480 Гц и 0,5 МГц) идут на два тактовых входа модуля дисплея. Выходы модуля дисплея (аноды и катоды) идут на выходы последнего модуля.

Шаг 7: ограничения

Ограничения
Ограничения

Двумя входами могут быть любые кнопки на плате Basys3 Atrix-7 FPGA, а выходами будут четыре анода и восемь катодов (потому что вам также нужна десятичная точка между секундами и миллисекундами) для семисегментного дисплея.

Шаг 8: Готово

Загрузите программу на свою плату Basys3 Atrix-7 FPGA и нажмите кнопку запуска / остановки, чтобы секундомер заработал!

Рекомендуемые: