реклама на сайте
подробности

 
 
> Работа с Avalon ST, Как корректно работать с backprssure при регистровых задержках?
R6L-025
сообщение Jul 4 2014, 18:31
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Доброго времени суток! Какое-то время назад столкнулся со следующим вопросом, который перманентно пытаюсь решить. Пусть имеем некоторый блок, на входе и выходе которого стоят буферы FIFO с шиной Avalon ST, а между ними куча регистровой логики (например конвееризированные умножители, без обратной связи, т.е. сигналов ready) задерживающей поток на несколько десятков тактов. Сам вопрос - как в этом случае корректно реализовать работу с шиной Avalon ST? Ведь при опускании in_ready выходного FIFO данные продолжат литься, даже если завершить передачу потока в регистровую логику.

У меня получилось два довольно кривых решения:

1. Размер выходного буфера выбрать большим, чем максимальная задержка внутри блока, и при опускании сигнала out_ready выходного буфера опускать сигналы in_valid и out_ready во входном буфере, тем самым обрывать входной поток, и собирать в это время выходным FIFO данные выходящие из регистров. (см рис.).
2. Ещё более некрасивый - использовать сигнал out_ready как сигнал clk_en для регистров, хотя, как я понимаю, это самый злобный способ, грозящий нестабильностью системы.

Кто как решает подобные задачи?

Думаю есть готовые реализациии в Altera-ских Qsys корках, но пока не натыкался ни на что подходящее под этот случай.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
krux
сообщение Jul 4 2014, 19:54
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



можно узнать причину, из-за которой вы жестко завязаны на использование шины Avalon_ST между своими собственными блоками?
что мешает завернуть всю свою логику в один qsys-компонент?


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 4 2014, 19:57
Сообщение #3


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(krux @ Jul 4 2014, 22:54) *
можно узнать причину, из-за которой вы жестко завязаны на использование шины Avalon_ST между своими собственными блоками?
что мешает завернуть всю свою логику в один qsys-компонент?

может у R6L-025 идет своя логика потом IP core с Avalon_ST, потом опять своя логика ...
PS тем более в реализации Avalon_ST не сложен и я сообщением выше описал возможный вариант реализации...


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
krux
сообщение Jul 4 2014, 20:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



Цитата(Maverick @ Jul 4 2014, 23:57) *
в реализации Avalon_ST не сложен и я сообщением выше описал возможный вариант реализации...

при подключении к чужим коркам - требуется проверять свои при помощи BFM.
Тогда не нужно будет править Qsys-ский timing adapter который
Цитата
не хочет с ней работать (если, конечно, его вручную не править).


всё таки спецификация достаточно строгая, и соответствовать ей тоже нужно полностью


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jul 4 2014, 20:04
Сообщение #5


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(krux @ Jul 4 2014, 23:02) *
при подключении к чужим коркам - требуется проверять свои при помощи BFM.

можно подробнее на этом месте wink.gif


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 01:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016