Скачиваний:
31
Добавлен:
29.12.2022
Размер:
8.96 Mб
Скачать

Пример

module ex6 (a_in, b_in, res_more, res_less );

input [7:0] a_in, b_in; output res_more, res_less;

assign res_more = a_in > b_in; assign res_less = a_in < b_in;

endmodule

Пример: сравнение данных со знаком

module ex6s (a_in, b_in, res_more, res_less );

input signed [7:0] a_in, b_in; output res_more, res_less;

assign res_more = a_in > b_in; assign res_less = a_in < b_in;

endmodule

Операторы равенства - Equality

 

Символ

 

Функция

 

Пример

 

 

 

оператора

 

 

ain = 3’b101 ; bin = 3’b110 ; cin = 3’b01x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

==

 

Equality

 

ain == bin Ю 1’b0

cin == cin Ю 1’bx

 

 

 

 

 

 

 

 

 

 

!=

 

Inequality

 

ain != bin Ю 1’b1

cin != cin Ю 1’bx

 

 

 

 

 

 

 

 

 

 

===

 

Case equality

 

ain === bin Ю 1’b0

cin === cin Ю 1’b1

 

 

 

 

 

 

 

 

 

 

!==

 

Case inequality

 

ain !== bin Ю 1’b1

cin !== cin Ю 1’b0

 

 

 

 

 

 

 

 

 

n Используется для сравнения значений

n Возвращает 1-битное значение true (1) / false (0)

nЕсли один из операндов имеет меньший размер, то он дополняется слева необходимым числом разрядов (дополняется нулями).

nОператоры equality/inequality рассматривают X и Z как неизвестные значения и результат – неизвестное значение

nОператоры case equality/case inequality рассматривают X и Z как определенные значения и операнды должны полностью совпадать при равенстве.

Пример

module ex7 (a_in, b_in, eq, case_eq );

input [7:0] a_in, b_in; output eq, case_eq;

assign eq = a_in == b_in; assign case_eq = a_in === b_in;

endmodule

Пример: сравнение данных со знаком

module ex7s (a_in, b_in, eq );

input [7:0] a_in, b_in; output eq;

assign eq = a_in == b_in; endmodule

Оператор проверки условия Conditional

 

Символ

 

Функция

 

Формат и примеры

 

 

оператора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?:

 

Conditional test

 

(condition) ? true_value : false_value

 

 

 

 

 

 

sig_out = (sel == 2’b01) ? a : b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nЕсли условие (condition) :

-Истинно, то выполняется true_value

-Ложно, то выполняется false_value

106

© 2014 СПбГПУ, каф. КСПТ, доц. Антонов А.П. ( dilab@scideco.ru )

Пример

107

© 2014 СПбГПУ, каф. КСПТ, доц. Антонов А.П. ( dilab@scideco.ru )

Упражнение 2

108

© 2014 СПбГПУ, каф. КСПТ, доц. Антонов А.П. ( dilab@scideco.ru )

Упражнение 2 (задание)

n На языке Verilog описать представленную ниже схему.

 

 

sw[3:0]

MUX

led[3:0]

 

 

1

 

 

sw[7:4]

sw[3:0]

 

 

0

 

>=

 

 

 

sw[7:4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nПосмотреть синтезированную пакетом QII схему (RTL Viewer)

n Осуществить функциональное моделирование n Назначить выводы СБИС

nОсуществить полную компиляцию, программирование платы и проверить работу проекта на плате.

109

© 2014 СПбГПУ, каф. КСПТ, доц. Антонов А.П. ( dilab@scideco.ru )

Порядок выполнения упражнения 2

nСоздать проект:

-Имя проекта – lab2, имя модуля верхнего уровня иерархии – lab2, Рабочая папка - …\lab2

-СБИС – EP4CE6E22C8

n Создать новый файл: File=>New=>Verilog HDL file

n Сохранить его под именем lab2.

110

© 2014 СПбГПУ, каф. КСПТ, доц. Антонов А.П. ( dilab@scideco.ru )