4-битный счётчик
Часть раздела Основы путешествия по Verilog на Coddy. Урок 84 из 90.
Задание
Создайте 4-битный счётчик, который считает от 0 до 15 и возвращается к 0.
Интерфейс модуля
| Порт | Направление | Разрядность | Описание |
|---|---|---|---|
clk | input | 1 bit | Тактовый сигнал |
reset | input | 1 bit | Сбросить счётчик в 0 |
count | output | 4 bits | Текущее значение счётчика |
Таблица истинности
| Такт | count |
|---|---|
| После reset | 0 |
| 1 | 1 |
| 2 | 2 |
| ... | ... |
| 15 | 15 |
| 16 | 0 (возвращается к началу) |
Твоя задача — завершить приведённый ниже модуль.
Что нужно сделать:
- При
resetустановитьcountв 0 - На каждом возрастающем фронте тактового сигнала увеличить
countна 1 - Когда
countдостигает 15, следующее увеличение должно вернуть его к 0
Попробуйте сами
module counter (
input clk,
input reset,
output reg [3:0] count
);
// TODO: Добавьте always-блок с posedge clk и posedge reset
// При reset: count <= 0
// Иначе: count <= count + 1
endmoduleВсе уроки раздела Основы
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