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 bits, тип reg)
  2. Внутри модуля (inside):
    • Установите cnt в 0 в самом начале внутри блока initial
    • Добавьте блок always @(posedge clk)
    • Сделайте так, чтобы cnt увеличивался на 1 по каждому фронту тактового сигнала

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

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

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

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

// TODO: Инкрементировать cnt

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