Повторение — Испытание по операторам
Часть раздела Основы путешествия по Verilog на Coddy — урок 29 из 90.
Задание
Завершите код, написав правильные выражения для каждой задачи. Этот челлендж охватывает все операторы из этой главы.
Что нужно сделать:
- Логические: Проверьте, являются ли оба значения
value1иvalue2ненулевыми, и сохраните результат вlogic_out - Редукция: Проверьте, все ли биты
vectorравны 1, и сохраните результат вreduction_out - Сдвиг: Сдвиньте
dataвлево на 2 бита и сохраните результат вshift_out - Конкатенация: Объедините
highиlowв 8-битное значение и сохраните вconcat_out - Условные: Сохраните большее из `a` и `b` в
cond_out
Попробуйте сами
module operator_challenge;
reg [3:0] value1, value2;
reg logic_out;
reg [3:0] vector;
reg reduction_out;
reg [7:0] data;
reg [7:0] shift_out;
reg [3:0] high, low;
reg [7:0] concat_out;
reg [3:0] a, b;
reg [3:0] cond_out;
initial begin
// Логические
value1 = 4'd6;
value2 = 4'd0;
logic_out = ______; // Проверить, являются ли оба значения value1 и value2 ненулевыми
// Редукция
vector = 4'b1111;
reduction_out = ______; // Check if all bits of vector are 1
// Shift
data = 8'b00001111;
shift_out = ______; // Сдвинуть data влево на 2 бита
// Конкатенация
high = 4'b1010;
low = 4'b1100;
concat_out = ______; // Объединить high и low в 8-битное значение
// Условные
a = 4'd7;
b = 4'd12;
cond_out = ______; // Сохранить большее из `a` и `b`
$display("6 && 0 = %d", logic_out);
$display("&4'b1111 = %d", reduction_out);
$display("00001111 << 2 = %b", shift_out);
$display("{1010, 1100} = %b", concat_out);
$display("max(7, 12) = %d", cond_out);
$finish;
end
endmoduleВсе уроки раздела Основы
1Введение
Что такое VerilogHardware против SoftwareУровни абстракции проектированияВаш первый модульКомментарии4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияОператоры сравненияПовторение: простая математикаПобитовые операторы7Оператор Assign и логические вентили
Непрерывное присваиваниеAssign с операторамиВстроенные примитивы вентилейВентили AND, OR, NOTВентили XOR, XNORИтоги: Схемы на логических вентилях10Принятие решений
Оператор ifКонструкция if - elseПовторение: простой компараторОператор caseОператоры casex и casezПовторение: проектирование ALU5Операторы. Часть 2
Логические операторыОператоры редукцииОператоры сдвигаОператор конкатенацииУсловный операторПовторение — Испытание по операторам3Системы счисления
Двоичное представлениеЧисла с заданным размеромЧисла без заданного размераОтрицательные числаСпециальные значения X и ZИтоги — форматы чисел6Модули
Структура модуляВходные и выходные портыПорты InoutИнстанцирование модуляПодключение портов по имениПодключение портов по порядкуИтоги: создание модуля9Процедурные блоки
Блок alwaysБлок initialСписок чувствительностиБлокирующее присваиваниеНеблокирующее присваиваниеИтоги: always против initial