readme sampler modification
This commit is contained in:
@ -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".
|
|
||||||
Reference in New Issue
Block a user