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

ObKo

Новичок
  • Постов

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

  • Посещение

Репутация

0 Обычный
  1. Работать будет. Шиться вивадой - нет (но вроде можно было подсунуть виваде id, чтобы она её узнала). С QSPI флешками и xilinx есть два ньюанса: 1. Не во всех флешках включен режим QuadSPI по умолчанию. Если нужен Quad-SPI нужно при прошивке прописать non-volatile регистр, включающий Quad-SPI. Ваша флешка, кажется, такая. 2. Если флешка больше 16MB (128МБит) то нужно внимательно смотреть, как происходит работа с 4-байтными адресами. Некоторые (привет, GigaDevice) делают это не общепринятым образом и тогда все что дальше 16MB будет недоступно для конфигурации.
  2. Ну так, типичный xilinx - AXI MM to PCIe жирный и правильный. Для конкретной задачи можно и свой заточенный TLP написать. Сам контроллер PCIe железный и много не ест.
  3. Используем PCIe и 3G-SDI на одном Quad. Принцип такой - генерируются IP-core PCIe/Eth, в процессе указывается, что Quad Common должен быть не внутри корки, а в example design. Потом генерируются example designы и из них вытаскивается модули с common и скрещиваются. У Artix два полностью симметричных QPLL в кваде, поэтому проблем не должно возникнуть - разве что с арбитражем портов drp, если он используется в обоих корках.
  4. А как в драйвере пишется? Просто запись по адресу 32-битного числа? От райзера не должно зависит. Дажк если сигнал плохой и есть ретрансмиты, они отлавливаются на уровне ниже. У вас на той картинке ila работает на тактовой от axi? Просто выглядит немного странно - на двух тактах подряд принимается два пакета с записью по одному адресу, потом tready опускается. И самое странное - при поднятом tvalid и опущенном tready на следующем такте данные меняются что нарушает правила AXI и контроллер PCIe так делать не должен... И ещё вопрос - точно в коде не перепутаны сигналы контроллера от разных шин? Они называются по дкрацки - cq, cc, rq, rc, легко перепутать и слушать не тот tvalid или не те данные...
  5. Это уже следующий пакет идёт. В AXI передача считается завершенной в момент когда tvalid = 1 и tready = 1. При этом tvalid и tready могут подняты независимо друг от друга. Более того, tvalid не должен ждать поднятия tready.
×
×
  • Создать...