Рефлектометр
Модуль представляет собой законченную встраиваемую систему рефлектометра, объединяющую:
- контроллер управления
- генератор импульсов (DAC path)
- сэмплер данных (ADC path)
- аккумулятор и обработчик данных
Система предназначена для формирования импульсов, синхронного сбора отраженного сигнала, накопления результатов и передачи обработанных данных во внешнюю систему.
Данный модуль является полноценным интегрируемым блоком, который может использоваться как самостоятельная аппаратная подсистема внутри более крупного проекта.
Назначение системы
Основная задача системы:
- Получить параметры измерения через AXI Stream
- Сформировать последовательность импульсов на DAC
- Выполнить синходную выборку данных с ADC
- Накопить и обработать результаты
- Передать итоговые данные обратно через AXI Stream
Таким образом реализуется полный цикл измерения без необходимости внешнего управления отдельными блоками.
Состав системы
Controller
Принимает входные команды по AXI Stream (Ethernet RX), декодирует параметры измерения и управляет всеми внутренними модулями системы.
Формирует:
- запуск генератора (
dac_start) - запуск аккумулятора (
adc_start) - параметры импульсов DAC
- параметры выборки ADC
- локальные reset-сигналы
Generator
Формирует последовательность импульсов на DAC с заданными:
- амплитудой
- длительностью
- периодом
- количеством повторений
Для каждого импульса инициирует запуск выборки в сэмплере.
Sampler
Выполняет синхронный сбор данных с ADC по запросу генератора.
Поддерживает:
- фильтрацию
out_of_range - упаковку данных
- преобразование типа кода ( прямой или дополнительный)
Accumulator
Получает поток данных от сэмплера, выполняет накопление, усреднение и оконную обработку, после чего формирует пакеты для передачи результата.
Управление системой
Пользователь взаимодействует только с контроллером через AXI Stream-интерфейс.
Прямое управление генератором, сэмплером и аккумулятором не требуется.
Clock Domain Crossing (CDC)
Система работает в нескольких тактовых доменах:
- Ethernet RX (
gmii_rx_clk) - Ethernet TX (
gmii_tx_clk) - DAC (
dac_clk) - ADC (
adc_clk)
Для корректной синхронизации между DAC и ADC используются специальные CDC-регистры для сигналов:
sample_reqsample_done
Это обеспечивает безопасную передачу handshake-сигналов между тактовыми доменами.
Список параметров
DAC_DATA_WIDTH
Ширина выходных данных отправляемых на ЦАП.
ZERO_LEVEL
Уровень сигнала в состоянии отсутствия импульса (базовый уровень сигнала).
Типовые значения:
8192— середина диапазона ЦАП0— нулевой уровень
ADC_DATA_WIDTH
Ширина входных данных, получаемых с АЦП.
PACK_FACTOR
Количество отсчетов, собираемых в один выходной пакет.
PROCESS_MODE
Режим интерпретации входного кода:
0— прямой код1— дополнительный код
ACCUM_WIDTH
Размер данных для аккумуляции, должен быть степенью числа 2. По умолчанию - 32
N_MAX
Максимальное число окон в последовательности. Должно быть степенью числа 2. Влияет на размер используемой памяти.
WINDOW_SIZE
Размер окна усреднения
PACKET_SIZE
Размер выходного пакета
Сборка
make all - собрать все до битстрима
make vivado - открыть проект в Vivado