Перейти к содержанию
    

Lutovid

Свой
  • Постов

    165
  • Зарегистрирован

  • Посещение

Обновления статусов, опубликованные Lutovid


  1. Здравствуйте! не подскажете пожалуйста материал по акси интерфейсу с нормальными временными диаграммами? я вот пока ищу, но как оказалось это не так просто, у ксайлинкса их нет, я так понял надо у arm искать, но все что я пока нашел - это не то что хотелось бы=/. Я просто решил попользовать прегенерируемый код вивадо(акси мастер) - он вроде работает, поменял ширину шины на 512 бит и выставил величину берстов до 128 и наблюдаю, что промежутки между берстами уж слишком большие - приводят к понижению пропускной способности в 2 раза(миг на входе 512 бит и соответственно мастер под него я делаю 512 бит, соединены через акси интерконнект), все что я вижу - это то что акси интерконнект сигнал bvalid выставляет поздно, после этого начинается новый берст, но чтоб разобраться, нужно все таки изучить акси стандарт

    Извините что пишу в личные сообщения, показалось, что так проще будет

    1. Показать предыдущие комментарии  Ещё #
    2. Lutovid

      Lutovid

      Спасибо! буду изучать референс. Для меня не понятным является тот факт, что когда я завершаю транзакцию(то есть берст в моем случае), та нога, которая является статусом выполнения транзакции, как вы написали, поднимается через большой промежуток времени. Не понятно что интерконнект все это время делает=/. Пропускная способность слэйва позволяет гнать хоть непрерывный поток... Для моей задачи это прям очень критично, поэтому надо будет докапываться до истины.

    3. RobFPGA

      RobFPGA

      Приветствую!

      axi4_b* сигнализирует тогда когда транзакция записи пробежала весь путь от вас к памяти и обратно. Понятное дело что будет большой latency. Для ускорения как я и писал можно делать конвеер - генерируете новые транзакции на axi4_aw* и axi4_w* (или на axi4_ar*) не дожидаясь прихода статуса на axi4_b* (или прихода данных на axi4_r*). В настройках интерконекта есть параметр (write|read)issule который задает сколько транзакций может быть в "полете" у данного интерконнекта. Ну и ваш FSM фактически должен состоять из 3 - один генирирует запросы на шину axi4_aw* и на второй FSM, который шлет данные на axi4_w* и в конце бурста плюсует счетчик третьему FSM, который проверяет на axi4_b* что запись прошла. 

      Удачи! Rob.

    4. Lutovid

      Lutovid

      ааа, спасибо! теперья понял вас! Так и сделаю)

×
×
  • Создать...