readme sampler modification

This commit is contained in:
otroubi
2026-06-10 16:31:02 +03:00
parent 6155c6a9fb
commit 753f4a2128

View File

@ -1,7 +1,7 @@
# Сэмплер # Сэмплер
Модуль выполняет задачу сбора данных с выхода АЦП, их обработки, упаковки и передачи дальше с помощью AXI Stream интерфейса. Модуль выполняет задачу сбора данных с выхода АЦП, их обработки, упаковки и передачи дальше с помощью AXI Stream интерфейса.
Дополнительно реализован механизм синхронизации с внешним генератором через сигналы `sample_req` и `sample_done`, позволяющий запускать сбор строго по запросу и подтверждать завершение выборки. Дополнительно реализован механизм синхронизации с внешним генератором через сигналы `request` и `done`, позволяющий запускать сбор строго по запросу и подтверждать завершение выборки.
--- ---
@ -41,9 +41,8 @@ out_of_range
[31:0] smp_num [31:0] smp_num
Количество валидных отсчетов, которое необходимо собрать после получения запроса на выборку. Количество валидных отсчетов, которое необходимо собрать после получения запроса на выборку.
sample_req request
Сигнал запроса на запуск выборки. Сигнал запроса на синхронизацию от генератора для текущего импульса.
При его активации модуль начинает сбор данных и переходит в активное состояние (`enable = 1`).
--- ---
@ -57,9 +56,10 @@ m_axis_tvalid
Урезанный AXI Stream формат, сигнал валидности выходных данных. Урезанный AXI Stream формат, сигнал валидности выходных данных.
Формируется при готовности очередного пакета. Формируется при готовности очередного пакета.
sample_done done
Сигнал завершения выборки. Сигнал запроса на запуск синхронизации с генератором для текущего импульса.
Поднимается после того, как модуль собрал количество валидных отсчетов, равное `smp_num`.
Поднимается в начале каждого нового импульса и снимается после получения `request`.
--- ---
@ -86,7 +86,7 @@ sample_done
### Запуск выборки ### Запуск выборки
Сбор данных начинается только после прихода сигнала `sample_req`. Сбор данных начинается только после прихода сигнала `request`.
При этом: При этом:
@ -94,7 +94,9 @@ sample_done
- внутренний счетчик собранных отсчетов обнуляется - внутренний счетчик собранных отсчетов обнуляется
- модуль переходит в активное состояние (`enable = 1`) - модуль переходит в активное состояние (`enable = 1`)
Пока `enable = 1`, модуль принимает только валидные отсчеты и считает их. Пока `enable = 1`, модуль принимает только валидные отсчеты.
Синхронизация представляет из себя простое рукопожатие с внешним модулем, имеющим сигналы `request`/`done` работающими в соответствии с этими сигналами сэмплера. Один из модулей, входит в ожидание и ставит на свой done активный уровень, после чего ждет, пока второй, запаздывающий модуль не войдет в свой режим ожидания, и не выставит для своего done активный уровень. Для каждого из модулей, на следующий такт после выставления активного уровня, производится проверка своего request. Так, при получении активного request (иными словами активного done от внешнего модуля), модуль незамедлительно опускает уровень своего done и начинает работать. Done подымается до активного уровня хотя-бы на один такт работы соответствующего модуля.
--- ---
@ -126,7 +128,6 @@ sample_done
Когда количество собранных валидных отсчетов достигает значения `smp_num`: Когда количество собранных валидных отсчетов достигает значения `smp_num`:
- поднимается сигнал `sample_done`
- внутренние счетчики сбрасываются - внутренние счетчики сбрасываются
- буфер очищается - буфер очищается
- `enable` сбрасывается в `0` - `enable` сбрасывается в `0`
@ -141,4 +142,3 @@ sample_done
cd tests cd tests
make sim make sim
``` ```
При успешном завершении теста высвечивается "ALL PASSED".