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