Verilog_radar1
.pdfПример
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 ) |