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

Объявление переменных. Арифметические операции

Цель работы

Целью работы является изучение способов создания массивов портов, объявления переменных и применения арифметических операций.

Краткие теоретические сведения.

При создании модулей на языке Verilog часто приходится объявлять массив однотипных портов ввода вывода. Ручное перечисление и задание индивидуальных имен портов не оправдано при большом их количестве. Поэтому используется следующий упрощенный прием записи массива портов:

output wire [7:0] Y;

где output – параметр указывающий, что данные порты являются

                входными;

   wire   – параметр указывающий тип «провода» порта;

   [7:0] – диапазон портов от 0 до 7, в сумме 8 портов;

   Y   – имя порта.

 

Таким образом, приведенная запись производит объявление 8 портом с именем «Y» от 0 до 7.

Арифметические операции производятся аналогично, как и логические. Так, например, запись, для сложения двух десятичных чисел 8 и 5 с помещением результата сложения в порт «Y», имеет вид:

 

assign Y=8+5;

 

При этом следует учесть, что разрядность выходной шины порта «Y» должна быть больше или равна двоичному числу результата. Сложение 5 и 8 дает десятичный результат 13, что в двоичной форме имеет вид 1101. То есть результат операции будет занимать 4 линии порта «Y» и поэтому разрядность шины «Y» должна быть не менее 4-х.

Для реализации алгоритмических и арифметических проектов часто требуется объявление переменных для хранения промежуточных результатов. Объявление переменных на языке Verilog осуществляется с помощью оператора reg и имеет следующий вид:

 

reg [M:N] X;

 

где reg – оператор объявляющий переменную;

[M:N] – значение разрядности переменной в битах от N до M;

X   – имя переменной.

 

Решим следующую задачу. Объявлены две переменные Х1 и Х2. В данных переменных хранятся числа 5 и 10 соответственно. Требуется сложить эти переменные и вывести результат на выходной порт «Y».

 

module LAB (Y);

 

output wire [7:0]Y;

 

reg[3:0]x1=5;

reg[3:0]x2=10;

 

assign Y=x1+x2;

 

endmodule

 

Кроме сложения в языке описания аппаратуры Verilog существуют и другие арифметические операции. Список доступных арифметических операций приведен в таблице 2.1.

 

Табл. 2.1. Арифметические операции

Обозначение Наименование операции
1 + Сложение
2 - Вычитание
3 * Умножение
4 / Деление
5 % Остаток от деления

 

Задание к работе.

Напишите алгоритм, вычисляющий примеры из переменных «х1», «х2», «х3», «х4», «х5», «х6» и выводящий результат в двоичном виде на светодиоды стенда.

Примеры для вычислений:

2+10+6-14+2-6

9-(18-8-10)+(14-7)

11+(15-11)+(16-5-8)

19-8+6-2+3-15

14+(16-9-5)-10+11

16-(17-14)-(17-7)+10

3+10+7-14+2-6

10-(18-8-10)+(15-7)

12+(15-11)+(16-5-8)

20-8+6-2+4-15

15+(16-9-5)-10+12

17-(17-14)-(17-7)+12

2+10+6-13+2-6

9-(18-8-9)+(14-7)

11+(15-10)+(16-5-8)

19-8+6-2+3-15

14+(16-8-5)-10+11

16-(17-13)-(17-7)+10

2+10+6-14+3-6

10-(18-8-10)+(15-7)

10+(15-11)+(18-5-8)

22-8+6-2+4-15

16+(16-9-5)-10+15

30-(17-14)-(17-7)+15

 

Содержание отчета

4.1 Цель работы.

4.2 Алгоритм модуля на языке Verilog для каждого примера.

4.3 Ответы в двоичной и десятичной форме для каждого примера.

4.4 Вывод

 

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

5.1 Как объявляются массивы портов?

5.2 Исходя из каких соображений выбирается разрядность шины порта?

5.3 Как объявляются переменные?

5.4 Исходя из каких соображений выбирается разрядность переменной?

5.5 Как осуществляется запись арифметических операций?

5.6 Какие арифметические операции доступны в языке Verilog?

5.7 Приведите пример алгоритма вычисления результата для какой-либо формулы.

 

 

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

Комбинационные схемы

Цель работы

Целью работы является изучение принципов действия комбинационных схем: дешифратора, шифратора, мультиплексора, преобразователя кода в код.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: