Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCIE IP и CycloneIV
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Torika
Здравствуйте!

Необходимо реализовать прием, обработку и пересылку данных на ПЛИС CycloneIV через интерфейс PCIE. В QSys собрал системы, согласно примерам от Altera. Параметры PCIE IP приведены на рисунке. Возник ряд вопросов.

Q1: Я правильно понимаю, что настройку/управление/чтение_состояния блоков PCIE и DMA я могу сделать во внешнем модуле (без использования NIOS), через второй порт onchip-memory
(записывая и читая слова по соттветствующим смещениям, согласно описаниям на PCIE IP и DMA)?

Q2: Не смог для себя уяснить некоторые моменты с настройкой PCIE IP. В каких случаях использовать 64-бит BAR type, а в каких 32-бит? Я правильно понимаю, что при использовании 64-бит BAR TYPE,
трансляции адресов не происходит, а при 32-бит BAR TYPE старшие 32 бита добавляются из таблицы адресов трансляции?

Q3: Использование fixed translation table отличается от dynamic лишь тем, что dynamic необходимо вначале настраивать через CRA, а fixed жестко задается при генерации системы?
Параметр 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. Правильно?
AVR
Отвечу в теме, хотя и сам новичок и многое не понимаю sm.gif

Цитата(Torika @ Jan 20 2016, 09:59) *
Q1: Я правильно понимаю, что настройку/управление/чтение_состояния блоков PCIE и DMA я могу сделать во внешнем модуле (без использования NIOS), через второй порт onchip-memory
(записывая и читая слова по соттветствующим смещениям, согласно описаниям на PCIE IP и DMA)?

Например, для Lattice PCI-E IP я работаю вообще без каких либо процессоров в режиме DMA, вообще не вижу смысла в процессоре там, если проект простой. Возможно, для альтеровской IP для PCI-E можно также поступить...

Цитата(Torika @ Jan 20 2016, 09:59) *
Q2: Не смог для себя уяснить некоторые моменты с настройкой PCIE IP. В каких случаях использовать 64-бит BAR type, а в каких 32-бит? Я правильно понимаю, что при использовании 64-бит BAR TYPE,
трансляции адресов не происходит, а при 32-бит BAR TYPE старшие 32 бита добавляются из таблицы адресов трансляции?

Я использую адрес из одного 32-битного BAR исключительно для MMIO, эта область у меня вообще всего-лишь 4096 байт. Это для настройки. Для чего там 64 бита не представляю...

Цитата(Torika @ Jan 20 2016, 09:59) *
Q3: Использование fixed translation table отличается от dynamic лишь тем, что dynamic необходимо вначале настраивать через CRA, а fixed жестко задается при генерации системы?
Параметр size of address pages определяет размер адресуемой памяти для данных?

Это разве не проблема хоста транслировать адреса, или я что-то не понял? При выделении буфера разве ОС не заботится чтобы драйвер получил свой адрес, а устройство - соответствующий ему адрес? В случае x86, разве не хост делает это действие по трансляции адресов?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.