update: doc

This commit is contained in:
Zer0Nu11
2026-06-09 16:47:16 +03:00
parent 3a1d9c27e7
commit d90167984a
2 changed files with 13 additions and 13 deletions

View File

@ -1,7 +1,7 @@
# Генератор
Модуль выполняет задачу формирования последовательности импульсов заданной амплитуды, длительности и периода.
Дополнительно реализован механизм синхронизации с модулем сэмплера через сигналы `sample_req` и `sample_done`, позволяющий запускать сбор данных для каждого импульса и ожидать подтверждения завершения выборки перед переходом к следующему импульсу.
Дополнительно реализован механизм синхронизации с модулем сэмплера через сигналы `request` и `done`, позволяющий запускать сбор данных для каждого импульса и ожидать подтверждения завершения выборки перед переходом к следующему импульсу.
---
@ -22,7 +22,7 @@
## Список входных портов
### clk_in
### clk_dac
Сигнал тактирования модуля.
### rst
@ -47,25 +47,25 @@
### [15:0] pulse_num
Количество импульсов, которое необходимо сгенерировать.
### sample_done
Сигнал подтверждения от сэмплера о завершении выборки данных для текущего импульса.
### request
Сигнал запроса на синхронизацию от сэмплера для текущего импульса.
---
## Список выходных портов
pulse
### dac_wrt
Выходной сигнал разрешения записи сигнала
[DATA_WIDTH-1:0] pulse_height_out
### [DATA_WIDTH-1:0] dac_out
Выходное значение амплитуды сигнала.
Во время активной части импульса равно `pulse_height`, вне импульса — `ZERO_LEVEL`.
sample_req
Сигнал запроса на запуск выборки в модуле сэмплера.
### done
Сигнал запроса на запуск синхронизации с сэмплером для текущего импульса.
Поднимается в начале каждого нового импульса и снимается после получения `sample_done`.
Поднимается в начале каждого нового импульса и снимается после получения `request`.
---
@ -74,11 +74,11 @@ sample_req
После прихода сигнала `start` модуль:
- фиксирует входные параметры генерации
- сбрасывает внутренние счетчики
- поднимает `enable = 1`
- формирует первый `sample_req`
- выполняет `pulse_num` циклов работы
- - типичный цикл состоит в ожидании синхронизации (`synced`), после чего запуск генерации импульса
После этого начинается последовательная генерация импульсов.
Синхронизация представляет из себя простое рукопожатие с внешним модулем, имеющим сигналы `request`/`done` работающими в соответствии с этими сигналами генератора. Один из модулей, входит в ожидание и ставит на свой done активный уровень, после чего ждет, пока второй, запаздывающий модуль не войдет в свой режим ожидания, и не выставит для своего done активный уровень. Для каждого из модулей, на следующий такт после выставления активного уровня, производится проверка своего request. Так, при получении активного request (иными словами активного done от внешнего модуля), модуль незамедлительно опускает уровень своего done и начинает работать. Done подымается до активного уровня хотя-бы на один такт работы соответствующего модуля.
---

View File

@ -356,7 +356,7 @@ module generator_tb;
);
$display("[TB] Test 3 complete");
$display("[TB] All Tests complete!");
$display("[TB] ALL PASSED");
$finish;
end