Цитата
Q1: Я правильно понимаю, что настройку/управление/чтение_состояния блоков PCIE и DMA я могу сделать во внешнем модуле (без использования NIOS), через второй порт onchip-memory
(записывая и читая слова по соттветствующим смещениям, согласно описаниям на PCIE IP и DMA)?
onchip-memory никакого отношения к управлению PCIE и DMA не имеет. Она используется для хранения, пересылки ваших данных.
Цитата
Q2: Не смог для себя уяснить некоторые моменты с настройкой PCIE IP. В каких случаях использовать 64-бит BAR type, а в каких 32-бит? Я правильно понимаю, что при использовании 64-бит BAR TYPE,
трансляции адресов не происходит, а при 32-бит BAR TYPE старшие 32 бита добавляются из таблицы адресов трансляции?
В обоих случаях адреса формируются в соответствии с таблицей адресов трансляции. Выбирается 64 или 32 в зависимости от операционки, которая установлена на ПК.
Смысл использовать 64, если ось 32 разрядная, и будет ли ваш pcie обмен вообще работать в этом случае.
Цитата
Q3: Использование fixed translation table отличается от dynamic лишь тем, что dynamic необходимо вначале настраивать через CRA, а fixed жестко задается при генерации системы?
Параметр size of address pages определяет размер адресуемой памяти для данных?
про динамик/фиксед ничего не скажу, не помню, не знаю. Параметр size of address pages определяет размер адресуемой памяти для данных совместно с кол-вом страниц.
размер адресуемой памяти = (size of address pages ) * (кол-во страниц)
Цитата
Q4: Карта адресов. В первой колонке показан общей размер onchip-memory - 64 кБ. Из второй видно, что для обращения к регистрам PCIE используются
адреса 0x0000_0000 - 0x0000_3FFF, к регистрам DMA адреса 0x0000_4000 - 0x0000_401F. Я правильно понимаю, что если через порт S2 on-chip memory
прочитаю данные по адресу 0x0000_0000, что получу следующие параметры PCIE: Command, Status, Vendor ID, Device ID ? Соответственно при обращении по
адресу 0x0000_4001 получу следующие параметры DMA: Write master start address + Read master start address. Правильно?
Нет.
DMA: Write master start address + Read master start address - читайте в баре BAR2 по адресам 0x0000_4000 - 0x0000_401F
PCIE: Command, Status, Vendor ID, Device ID - нужно даташит смотреть на ip-ядро, может через Cra можно их прочитать.
Если через Cra, то читайте в баре BAR2 по адресам 0x0000_0000 - 0x0000_3FFF.
Если через Cra нельзя достучаться до Configuraton Space, то тогда через бары вы их не прочитаете.
Только в драйвере через спец функции, типа так:
pci_read_config_word(dev, PCI_VENDOR_ID, &val_vendor_id);
pci_read_config_word(dev, PCI_DEVICE_ID, &val_device_id);