Написание модуля
Часть раздела Основы путешествия по Verilog на Coddy. Урок 43 из 90.
Задание
Полусумматор — это схема, которая складывает два однобитных значения и сообщает вам:
- sum: результат (0 или 1)
- carry: есть ли переполнение (1, когда оба входа равны 1)
Пример
| a | b | sum | carry |
|---|---|---|---|
| 0 | 0 | 0 | нет переполнения |
| 0 | 1 | 1 | нет переполнения |
| 1 | 0 | 1 | нет переполнения |
| 1 | 1 | 0 | переполнение (carry = 1) |
Когда вы складываете 1 + 1 в двоичной системе, результат равен 0 с переносом 1 (точно так же, как 5 + 5 = 0 с переносом 1 в десятичной системе).
Прежде чем добавить логику, нам нужно создать контейнер модуля: пустую оболочку, которая будет содержать нашу схему полусумматора.
Для полусумматора нужно выполнить следующие задачи:
- Создать модуль с именем
half_adder - Добавить два входа:
aиb - Добавить два выхода:
sumиcarry
Попробуйте сами
// Задача 1: Создайте модуль с именем half_adder
// Задача 2: Добавьте два входа: a и b
// Задача 3: Добавьте два выхода: sum и carry
// Логика будет добавлена позже
Все уроки раздела Основы
1Введение
Что такое VerilogАппаратное и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Операторы. Часть 1
Арифметические операторыОператор взятия остаткаОператоры сравненияПовторение — простая математикаПобитовые операторы7Присваивание и логические элементы
Непрерывное присваиваниеПрисваивание с операторамиВстроенные примитивы логических элементовЭлементы И, ИЛИ и НЕЭлементы XOR и XNORПовторение — схема на логических элементах10Принятие решений
Оператор ifif—elseПовторение — простой компараторОператор casecaseх и casezПовторение — проектирование ALU5Операторы, часть 2
Логические операторыОператоры свёрткиОператоры сдвигаОператор конкатенацииУсловный операторПовторение — задание на операторы11Циклы
Цикл forЦикл whileЦикл повторенияБесконечный циклОператор отключенияПовторение — шаблоны циклов3Система счисления
Двоичное представлениеЧисла заданной разрядностиЧисла без указания разрядностиОтрицательные числаСпециальные значения X и ZПовторение — форматы чисел6Модули
Структура модуляВходные и выходные портыДвунаправленные портыСоздание экземпляра модуляПодключение портов по имениПодключение портов по порядкуПовторение — создание модуля9Процедурные блоки
Блок AlwaysБлок InitialСписок чувствительностиБлокирующее присваиваниеНеблокирующее присваиваниеПовторение: Always и InitialПотренируйтесь самостоятельно: Онлайн-компилятор Verilog