Menu
Coddy logo textTech

Bit counter

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

challenge icon

Задание

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

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

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

  • Начать с 0
  • В каждом такте добавить 1
  • Когда значение достигнет 10, вернуться к 0
  • Повторять бесконечно

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

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

  1. Create module с именем uart_tx, содержащий:
    • Один input: clk
    • Один output: cnt (4 бита, тип reg)
  2. Внутри 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

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

Потренируйтесь самостоятельно: Онлайн-компилятор Verilog