Bit counter
Часть раздела Основы путешествия по Verilog на Coddy. Урок 87 из 90.
Задание
В этой главе ты шаг за шагом создашь передатчик UART. UART расшифровывается как Universal Asynchronous Receiver-Transmitter. Это простой аппаратный протокол, который позволяет двум устройствам обмениваться данными, используя только один провод (для передачи) и ещё один провод (для приёма).
Представь, что два человека разговаривают по телефону: один говорит (передаёт), другой слушает (принимает). UART отправляет данные по одному биту за раз, используя start- и стоповые биты, чтобы обозначить начало и end каждого байта.
Передатчик UART отправляет 10 битов: start-бит (1), биты данных (8), стоп-бит (1). Чтобы отслеживать, какой бит мы отправляем, нам нужен счётчик битов, который считает от 0 до 10.
Как работает счётчик битов
- Начать с 0
- В каждом такте добавить 1
- Когда значение достигнет 10, вернуться к 0
- Повторять бесконечно
В этом задании мы пока не будем выполнять сброс: мы только будем увеличивать значение.
Что нужно сделать:
- Create module с именем
uart_tx, содержащий:- Один input:
clk - Один output:
cnt(4 бита, типreg)
- Один input:
- Внутри module:
- Установить
cntв 0 в начале, внутри initial block - Add block
always @(posedge clk) - Make
cntувеличиваться на 1 при каждом тактовом фронте
- Установить
Попробуйте сами
// TODO: Создать модуль uart_tx с входом clk и выходом cnt (4 бита)
// TODO: Установить cnt в 0 в начале внутри блока initial
// TODO: Добавить блок always @(posedge clk)
// TODO: Инкрементировать cntВсе уроки раздела Основы
1Введение
Что такое VerilogАппаратное обеспечение и программное обеспечениеВаш первый модульКомментарииУровни абстракции проектирования4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicПотренируйтесь самостоятельно: Онлайн-компилятор Verilog