Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
XilinxCourse_v2.0.doc
Скачиваний:
56
Добавлен:
22.04.2019
Размер:
3.26 Mб
Скачать

4.5 Реализация комбинационных схем уровня rtl

Ниже, будет представлен ряд примеров, основывающихся на предыдущем разделе. Эти примеры должны помочь вам получить наглядное представление о рассмотренных ранее конструкциях языка Verilog HDL.

4.5.1 Модифицированное описание 1-битного компаратора

На рисунке 4.5.1 представлено модифицированное описание 1-битного компаратора, рассмотренного в предыдущих разделах.

В данном случае мы используем более высокоуровневые конструкции языка, чтобы улучшить наглядность кода, такие как блок always, относительный и условный операторы. Тем не менее, в качестве результата мы получаем абсолютно аналогичный 1-битный компаратор.

Рисунок 4.5.1 — Модифицированное описание 1-битного компаратора

4.5.2 Описание двоичного дешифратора

В данном примере будет рассмотрено описание двоичного дешифратора, который осуществляет подсчет количества единиц в 4-х разрядном входном сигнале при наличии разрешающего сигнала enable.

Рисунок 4.5.2 — Описание схемы подсчета единиц во входном сигнале

В этом примере, наряду с уже рассмотренными конструкциями, используется блок case и конкатенация.

4.5.3 Описание блока алу

Блок АЛУ (Арифметико-Логическое Устройство) является неотъемлемой частью любого процессора. Данный блок, в зависимости от реализации, принимает на вход несколько операндов и в зависимости от поданной команды, осуществляет некоторую операцию и выдает результат. В этом примере данный блок будет принимать два 32-х разрядных операнда и осуществлять некоторый базовый набор операций, такой как сложение, вычитание, поразрядное И, поразрядное ИЛИ, сдвиг вправо и влево на один разряд. Если в блок будет подана не существующая команда, то блок будет выдавать сигнал об ошибке. Один из возможных вариантов построения данного блока представлен на рисунке 4.5.3.

Рисунок 4.5.3 — Описание блока АЛУ

4.6 Конструкции для реализации последовательных схем уровня rtl

Последовательная цифровая схема представляет собой схему, содержащую память, которая формирует внутренние состояния. В отличие от комбинационных схем, в которых выходы являются лишь функциями входов, выходы последовательных схем являются функциями входов и внутренних состояний. Для проектирования на FPGA используется полностью синхронный подход к проектированию, т.е. все элементы памяти контролируются (синхронизируются) глобальным тактовым сигналом и данные выбираются и сохраняются по фронту или спаду тактового сигнала. Это позволяет проектировщику отделять логику работы системы от памяти, что значительно упрощает процесс разработки. Этот подход является одним из самых важных принципов построения сложных цифровых систем.

Основными элементами памяти в проектировании цифровой аппаратуры, поддерживаемыми внутренними ресурсами FPGA, являются:

  • Триггер D-типа (D Flip-flop);

  • Регистр;

  • Регистровый файл.

4.6.1 Триггер d-типа

Для триггеров данного типа, характерны два типа реализации: с асинхронным сбросом и без асинхронного сброса. Оба варианта представлены на рисунках 4.6.1 и 4.6.2.

Рисунок 4.6.1 — Описание триггера D-типа

Рисунок 4.6.2 — Описание триггера D-типа с асинхронным сбросом

Анализируя оба примера, можно выделить две детали, отличающие описание последовательных схем от комбинационных:

  • Последовательные схемы всегда описываются с помощью блока always;

  • Лист чувствительности для последовательных схем не содержит в своем составе всех возможных сигналов (*). Это свойство характерно для последовательных схем, т.к. там блок always должен включаться при изменении любого сигнала, входящего в состав выражений блока always;

  • Для описания последовательных схем используется неблокирующее присваивание.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]