Menu
Coddy logo textTech

Счетчик битов

Часть раздела Основы путешествия по Verilog на Coddy — урок 87 из 90.

challenge icon

Задание

В этой главе вы шаг за шагом создадите UART-передатчик. UART расшифровывается как Universal Asynchronous Receiver-Transmitter (Универсальный асинхронный приемопередатчик). Это простой аппаратный протокол, который позволяет двум устройствам обмениваться данными, используя всего один провод (для передачи) и еще один провод (для приема).

Представьте это как разговор двух людей по телефону: один говорит (передает), другой слушает (принимает). UART передает данные по одному биту за раз, используя стартовый и стоповый биты для обозначения начала и конца каждого байта.

UART-передатчик отправляет 10 бит: стартовый бит (1), биты данных (8), стоповый бит (1). Чтобы отслеживать, какой бит мы отправляем, нам нужен счетчик бит, который считает от 0 до 10.
Как работает счетчик бит

  • Начинает с 0
  • Каждый тактовый цикл прибавляет 1
  • Когда достигает 10, возвращается к 0
  • Повторяет бесконечно

В этом задании мы пока не будем его сбрасывать: мы будем только увеличивать его значение.

Что нужно сделать:

  1. Создайте модуль с именем uart_tx, содержащий:
    • Один вход: clk
    • Один выход: cnt (4 бита, тип reg)
  2. Внутри модуля:
    • Установите cnt в 0 в самом начале внутри блока initial
    • Добавьте блок always @(posedge clk)
    • Сделайте так, чтобы cnt увеличивался на 1 по каждому фронту тактового сигнала

Попробуйте сами

// TODO: Создать модуль uart_tx с входным сигналом clk и выходным сигналом cnt (4 бита)

// TODO: Установить cnt в 0 в начале внутри блока initial

// TODO: Добавить блок always @(posedge clk)

// TODO: Увеличить cnt

Все уроки раздела Основы