Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Применение процедурных операторов





Введение

 

Цель работы – освоение технологии подготовки проектов комбинационных и последовательностных устройств на основе процедурных операторов initial и always c использованием операторов case и if.

Необходимые сведения

Кроме операторов if.. else и for (см. лаб. работа № 5) внутри процедурных операторов могут применяться также следующие операторы:

- case (выражение)

конст. а: оператор или блок операторов

конст. b, конст. c: оператор или блок операторов

...

default: оператор или блок операторов

endcase – сравнивает результат выражения в круглых скобках с константами а, в, с и т. д. и выполняет оператор или блок операторов, следующий за первой константой, совпадающей с результатом выражения; если не произошло ни одного совпадения с константами, выполняет оператор или блок операторов, следующий за необязательным вариантом default;

- casez – версия оператора case, в которой может быть использовано внутри выражения или константы логическое значение z (значение безразлично) (вместо z возможно применение символа?);

- casex – версия оператора case, в которой могут быть использованы внутри выражения или константы логические значения z и x (значение z может быть также представлено символом?);

- while (выражение)

оператор или блок операторов – циклически выполняет оператор или блок операторов пока выражение в круглых скобках - ИСТИННО; выражение вычисляется вначале каждой итерации;

- repeat (число)

оператор или блок операторов – циклически выполняет оператор или блок операторов, количество итераций определяется числом в круглых скобках, вместо числа может быть выражение, значение которого вычисляется один раз, вначале цикла;

- forever

оператор или блок операторов – бесконечно повторяет выполнение оператора или блока операторов;

- disable – прерывает выполнение именованного блока операторов.

Кроме блочного оператора begin.. end для моделирования устройств может быть использован еще один блочный оператор:

- fork.. join – группирует операторы в блок параллельно, т. е. операторы внутри блока выполняются одновременно, а все установленные задержки отсчитываются от начала выполнения блока; не является синтезируемым оператором, применяется для моделирования.

Задание

 

1. На языке Verilog в пакете ModelSim с использованием процедурного оператора always и управляющего оператора case создать проект комбинационного устройства, представляющего собой дешифратор для 7-сегментного индикатора с 3-разрядным входом, позволяющий отображать 7 различных символов. Вариант дешифратора выбирается по указанию преподавателя (см. табл. 6.1). Дешифратор должен содержать следующие порты:

- y[2:0] - входной трехразрядный порт для двоичного кода символа;

- f[6:0] - выходной 7-разрядный порт, подключаемый к входам 7-сегментного индикатора (см. рис. 6.1).

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

 

Таблица 6.1. Варианты дешифраторов

y[2:0] Отображаемые символы
                   
3'b000     G b А С        
3'b001     H c Б У A F J U
3'b010   A I d В Х        
3'b011   B J h Г Ч B G L [
3'b100   C L i Е Ь        
3'b101   D O l Н Э C H R ]
3'b110   E P n О Я        

 

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

 

Рис. 6.1. Подключение портов к 7-сегментному индикатору

 

3. Создать на языке Verilog в пакете ModelSim суммирующий двоичный счетчик с модулем счета 7. В проекте использовать процедурный оператор always, управляющий оператор if и выражение с арифметической операцией сложения (см. лабораторная работа № 4 [2]). Счетчик должен быть снабжен следующими входами и выходами:

- clk - вход синхронизации (счетчик должен инкрементировать текущее значение двоичного кода на выходе q[2:0] по каждому положительному фронту импульсов clk);

- ena - вход разрешения счета (1 - счет разрешен; 0 - счетчик хранит на выходе q[2:0] последнее значение);

- q[2:0] - выходные двоичные данные счетчика (при начале счета с нуля на восьмом импульсе clk выход q[2:0] обнуляется, и со следующим импульсом счет начинается сначала).

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

5. Подготовить отчет. Отчет должен содержать листинги всех конструкторских файлов (на языке Verilog) и рисунки с временными диаграммами по каждому варианту реализации устройств.

 

Контрольные вопросы

 

1. Перечислите все операции процедурного присваивания и отметьте их особенности.

2. Каким образом обеспечить реагирование оператора always на положительный и отрицательный фронты синхросигнала?

3. Какие элементы списка реагирования оператора always следует использовать для построения комбинационных устройств, а какие для последовательностных? Почему?

4. Перечислите все операторы цикла языка Verilog и отметьте их особенности.

5. Опишите два способа задания изменения во времени сигнала синхронизации в испытательном файле (с использованием оператора цикла и без него).

7. Для каких целей блочный оператор можно снабжать именем?

8. В каких случаях в процедурных операторах следует применять операцию блокирующего процедурного присваивания, а в каких не блокирующего?

9. Что такое комбинационное цифровое устройство?

10. Что такое последовательностное цифровое устройство?

11. Управляющие операторы case, casez и casex.

12. Управляющие операторы while, repeat и forever.

13. Управляющий оператор disable.

 

 

Лабораторная работа № 7







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.