Files
reflectometer_fpga_project/rtl/generator/README.md
2026-05-15 16:41:18 +03:00

3.5 KiB
Raw Blame History

Генератор

Модуль выполняет задачу формирования последовательности импульсов заданной амплитуды, длительности и периода.
Дополнительно реализован механизм синхронизации с модулем сэмплера через сигналы sample_req и sample_done, позволяющий запускать сбор данных для каждого импульса и ожидать подтверждения завершения выборки перед переходом к следующему импульсу.


Список параметров

DATA_WIDTH

Ширина выходных данных генератора.

ZERO_LEVEL

Уровень сигнала в состоянии отсутствия импульса (базовый уровень сигнала).

Типовые значения:

  • 8192 — середина диапазона ЦАП
  • 0 — нулевой уровень

Список входных портов

clk_in

Сигнал тактирования модуля.

rst

Сброс модуля и остановка генерации.

start

Сигнал запуска последовательности импульсов.

При его активации модуль фиксирует все входные параметры и начинает генерацию.

Повторный запуск во время активной генерации блокируется с помощью внутреннего сигнала enable.

[31:0] pulse_width

Длительность активной части импульса (в тактах).

[31:0] pulse_period

Полный период импульса (в тактах).

[DATA_WIDTH-1:0] pulse_height

Амплитуда импульса.

[15:0] pulse_num

Количество импульсов, которое необходимо сгенерировать.

sample_done

Сигнал подтверждения от сэмплера о завершении выборки данных для текущего импульса.


Список выходных портов

pulse Выходной сигнал разрешения записи сигнала

[DATA_WIDTH-1:0] pulse_height_out Выходное значение амплитуды сигнала.

Во время активной части импульса равно pulse_height, вне импульса — ZERO_LEVEL.

sample_req Сигнал запроса на запуск выборки в модуле сэмплера.

Поднимается в начале каждого нового импульса и снимается после получения sample_done.


Логика работы

После прихода сигнала start модуль:

  • фиксирует входные параметры генерации
  • сбрасывает внутренние счетчики
  • поднимает enable = 1
  • формирует первый sample_req

После этого начинается последовательная генерация импульсов.


Симуляция

Тесты запускаются автоматически через make.

cd tests
make sim

При успешном завершении теста высвечивается "ALL PASSED".