Jump to content

    
Sign in to follow this  
Krys

AXI DataMover (S2MM) сразу после сброса готов принять 4 слова данных из стрима, хотя никакой команды на это ещё не было

Recommended Posts

я работаю в ise 14.3 а Вы в 14.7. Поэтому у меня версия датамувера 3.0 в отличии от Вашей 4.05)))
Вы бы ещё MaxPlusII выкопали и в нём работали ))) Не проще ли чем искать баги в среде, которая устарела, для начала перейти к среде, в которой у других работает хотя бы это? Я бы вот с удовольствием вообще на виваду пересел, в ней ещё новее есть датамувер, но спартан6 не позволяет...

 

 

я использую внешнее фифо сгенеренное coregen'ом, fifo выбрал с интерфейсом axi (а не традиционным как в Вашем случае) для согласования с аналогичным интерфейсом корки master_strm.

Можно было и просто обернуть фифо. Но я использовал внешнее: обернуть как я делал до этого с user IP для axi4 или axi_light интерфейсов для user IP с интерфейсом stream не получилось, а разбираться времени пожалел, поэтому пошел по пути наименьшего сопротивления)))

Ну фифо с акси или без это совершенно не важно, что оборачивать. У меня в проекте есть такой и такой фифо. Почему не получилось обернуть стрим? Это же куда проще перечисленных Вами полного акси и лайта. Там работы максимум на час обернуть. Если хотите - могу и с этим помочь (обернуть).

 

Можете выложить исходник от master_strm?

 

Правильно ли я понимаю, что АБСОЛЮТНО ВСЕ сигналы стрима Ваш master_strm просто прокидывает со входа на выход без вмешательства? Короче что гадать, дайте исходник, там будет видно )

 

Я всё же продолжаю думать, что master_strm лишний, если он не оборачивает фифо. В таком случае, если Вы подаёте в XPS стримовский вход на master_strm через внешние порты, то с таким же успехом можно подать этот стрим из внешнего для XPS фифо через порты напрямую на датамувер. Логику контроля наполненности фифо можно конечно оставить в master_strm, но как-то это тем более будет нелогично: лишняя сущность, трудности с обёртыванием в корку логики, когда её можно просто оставить за пределами XPS, а команды на датамувер так же передавать через порты, как и сам стрим данных.

 

 

 

вариант "напрямую" для меня тоже более привлекателен и я рассматривал его изначально. Не совсем понятно с наличием внутреннего фифо датамувера. В даташите сказано про режим C_S2MM_INCLUDE_SF, еще я предполагал что количество байт параметром burst_size регулирует размер внутреннего фифо, но теперь понимаю, что в датамувере не фифо, а скорее всего обычный счетчик количества байт (режим C_S2MM_INCLUDE_SF исключение).
Я поначалу думал точно так же )) Режим C_S2MM_INCLUDE_SF это не просто исключение, а такая же равновесная фича, а не редко встречающееся малозначительное дополнение. Т.е. фифо может быть, а может и не быть.

 

Share this post


Link to post
Share on other sites
Ну фифо с акси или без это совершенно не важно, что оборачивать. У меня в проекте есть такой и такой фифо. Почему не получилось обернуть стрим? Это же куда проще перечисленных Вами полного акси и лайта. Там работы максимум на час обернуть. Если хотите - могу и с этим помочь (обернуть).

 

Буду очень признателен за помощь)) В случаях с axi4 и axi4 light я просто создал user IP, а затем модифицировал файл user_logic.vhd. При создании своей корки для стрима, такой алгоритм не прокатил: корка становиться уже не стрим. Полагаю нужно далее ручками редактировать mpd, pao и т.д. файлы? Далее копать не стал.

 

Можете выложить исходник от master_strm?

Правильно ли я понимаю, что АБСОЛЮТНО ВСЕ сигналы стрима Ваш master_strm просто прокидывает со входа на выход без вмешательства? Короче что гадать, дайте исходник, там будет видно )

 

совершенно верно, только при опрокидывании происходит пауза для наполнения фифо. Пробывал и без этой прокладки: просто выход фифо соединил с s_axis_s2mm интерфейсом. Уже без ожидания наполнения фифо. Результат не изменился: теже 4 байта и затем сброс сигнала реади..((

 

Скачал 14.7 версию. Буду пробовать заново

Share this post


Link to post
Share on other sites
Полагаю нужно далее ручками редактировать mpd, pao и т.д. файлы? Далее копать не стал.
Вам просто нужен примерчик как шаблон. axi_stream_data_width_converter_v2_00_a.rar

Я там вырезал потроха, чтобы меня не поругали за разглашение исходников. Но обёрточка вся есть, внутри напишите своё и всё.

Если что задавайте конкретные вопросы.

 

совершенно верно, только при опрокидывании происходит пауза для наполнения фифо
Вот и не совершенно, раз, судя по Вашим словам, в стрим вмешивается логика, делающая паузу для наполнения фифо. Под прокидыванием я имел в виду не Опрокидывание ))) , а пробрасывание, т.е. прямое подключение входа и выхода. Проброс сигналов, протаскивание напрямую, без логики.

 

Скачал 14.7 версию. Буду пробовать заново
Давайте Вы всё сделаете по-человечески, удалите ненужные прокладки, сделаете, если надо, стримовские корки, выложите исходники и осциллограммы для нового проекта - тогда будем разбираться заново.

Share this post


Link to post
Share on other sites
Вот и не совершенно, раз, судя по Вашим словам, в стрим вмешивается логика, делающая паузу для наполнения фифо. Под прокидыванием я имел в виду не Опрокидывание ))) , а пробрасывание, т.е. прямое подключение входа и выхода. Проброс сигналов, протаскивание напрямую, без логики.

 

благодарю за шаблон, обязательно разберусь.

прямое подключение есть, только корка стрим мастера (т.н. прокладка) вычитывает фифо после наполнения (т.е. весь burst), если без нее (так тоже делал), то фифо будет работать так: слово пришло, слово ушло. Корка СТрим мастер сначала ждет наполнения а потом вычитывает.

 

Вообщем переделаю проект в новой версии среды, там видно будет.

Share this post


Link to post
Share on other sites
прямое подключение есть
Прямое подключение только шины tdata или вообще всего стрима, включая сигналы tvalid и tready?

 

 

корка стрим мастера (т.н. прокладка) вычитывает фифо после наполнения (т.е. весь burst)
Если вычитывает прокладка - значит вмешивается, значит подключение через логику. Если прокладка не вмешивается - значит вычитывает не прокладка, а датамувер.

 

 

если без нее (так тоже делал), то фифо будет работать так: слово пришло, слово ушло
Не согласен. Без прокладки данные будут копиться в вашем внешнем фифо. Датамувер находится без команды, он ничего не будет читать. Поэтому "слово ушло" не будет. Будет только "слово пришло" (по отношению к внешнему фифо). Затем пользователь мониторит наполненность фифо, и, если она выше порога, даёт команду датамуверу.

 

Share this post


Link to post
Share on other sites
Прямое подключение только шины tdata или вообще всего стрима, включая сигналы tvalid и tready?

 

всего стрима. Моя корка была сделана также как у вас. Сигналы m_axis корки заведены на s_axis_s2mm, а сигналы s_axs - выведены наружу к фифо. Интерфейс у всех естественно стрим.

 

Затем пользователь мониторит наполненность фифо, и, если она выше порога, даёт команду датамуверу.

 

Дать команду датамуверу -- значит записать слово в cmd регистр (то есть подать сигнал cmd_tvalid = '1')?

Вообщем, сейчас разбираюсь в ise 14.7. Уже с мертвой точки сдвинулся: датамувер вычитывает адрес записи данных на шину с axi4. То есть датамувер начал общаться с шиной. разбираюсь далее, по окончанию отпишусь...

 

Благодарю за ответы!

Share this post


Link to post
Share on other sites
всего стрима
Ну хорошо, действительно всего стрима. Значит неверно вот это Ваше утверждение:

корка стрим мастера (т.н. прокладка) вычитывает фифо после наполнения (т.е. весь burst)
Раз прямое подключение, значит вычитывает датамувер, прокладка вообще не при делах, внутри неё лишь провода прокидываются со входа на выход. Запутываете ))

 

 

Дать команду датамуверу -- значит записать слово в cmd регистр (то есть подать сигнал cmd_tvalid = '1')?
Ага. Ну и на шине cmd_tdata соответствующая правильная команда должна присутствовать в момент cmd_tvalid = '1'.

 

Успехов!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this