diff --git a/rtl/sampler/README.md b/rtl/sampler/README.md index 9940a44..861e02b 100644 --- a/rtl/sampler/README.md +++ b/rtl/sampler/README.md @@ -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". \ No newline at end of file