
Суть проблемы: при генерации TSE c помощью Megawizard и Qsys получаются разные временные диаграммы на интерфейсе приёма (receive avalon-st). Настройки блоков идентичны. Версия квартуса 11.1 без сервис паков.
Разница видна на 9-ом такте, где мой блок снимает сигнал готовности.
В случае TSE_Megawizard - сигнал валидности данных (rx_wren) снимается через 2 (!!!) такта после снятия rx_rdy. Соответственно, в этот период данные тоже продолжают течь - меняется шина rx_data.
В случае TSE_Qsys - rx_wren вообще не снимается, но данные при этом перестают течь в аккурат через такт после снятия rx_rdy.
Диаграммы получил с помощью SignalTap II.
Собственно, вопроса два:
1) Почему наблюдается разница в поведении одного и того же блока, сгенерированного разными способами?
2) Кто-нибудь в курсе латентности снятия сигнала rx_wren после снятия сигнала rx_rdy? В доках сказано, что rx_rdy анализируется на следующий такт после установки и всё. И что при этом происходит - загадка. А на
приведённых в мануале временных диаграммах, демонстрирующих работу приёмного интерфейса сигнал готовности поднят постоянно.
Временная диаграмма работы TSE_Megawizard
Нажмите для просмотра прикрепленного файла
Временная диаграмма работы TSE_Qsys
Нажмите для просмотра прикрепленного файла