|
PCI-e и NIOSII, объединение PCI-e с процессорным ядром NIOSII |
|
|
|
Aug 10 2011, 14:48
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Всем доброго времени суток! Тема заключается в следующем: В связи с кривостью рук и тугостью мысли, не удаётся корректно обьеденить процессорное ядро NIOS II и PCI Express Compiler. "Поковырявшись" в PCI Express Compiler User Guide, предоставленном компанией Altera, был собран проект приведенный в нём с использованием DMA Рисунок 1.1.
Рисунок 1.1. Система предлагаемая Altera Взяв на базе системы являющейся примером производителя, была проведена попытка нагло втыкнуть вышеупомянутый компонент Рисунок 1.2.
Рисунок 1.2. PCI Express Compiler вставлен в базовый проект-демонстрацию Генерация в SOPCb проходит без ошибок, но при компиляции Quartus9.1 выдаются следующие ошибки: Error: Input port datain of the GXB receiver channel PMA atom "bup_nios:bup_nios_inst|pcie_compiler_0:the_pcie_compiler_0|pcie_compiler_0_ serdes:serdes|pcie_compiler_0_serdes_alt4gxb_o08b:pcie_compiler_0_serdes_alt4gxb_ o08b_component|receive_pma0" must be connected to an input pin Error: Output port dataout of the GXB transmitter channel PMA atom "transmit_pma0" must be connected to an output pin Error: Input port datain of the GXB receiver channel PMA atom "bup_nios:bup_nios_inst|pcie_compiler_0:the_pcie_compiler_0|pcie_compiler_0_ serdes:serdes|pcie_compiler_0_serdes_alt4gxb_o08b:pcie_compiler_0_serdes_alt4gxb_ o08b_component|receive_pma1" must be connected to an input pin Error: Output port dataout of the GXB transmitter channel PMA atom "transmit_pma1" must be connected to an output pin Error: Input port datain of the GXB receiver channel PMA atom "bup_nios:bup_nios_inst|pcie_compiler_0:the_pcie_compiler_0|pcie_compiler_0_ serdes:serdes|pcie_compiler_0_serdes_alt4gxb_o08b:pcie_compiler_0_serdes_alt4gxb_ o08b_component|receive_pma2" must be connected to an input pin Error: Output port dataout of the GXB transmitter channel PMA atom "transmit_pma2" must be connected to an output pin Error: Input port datain of the GXB receiver channel PMA atom "bup_nios:bup_nios_inst|pcie_compiler_0:the_pcie_compiler_0|pcie_compiler_0_ serdes:serdes|pcie_compiler_0_serdes_alt4gxb_o08b:pcie_compiler_0_serdes_alt4gxb_ o08b_component|receive_pma3" must be connected to an input pin Error: Output port dataout of the GXB transmitter channel PMA atom "transmit_pma3" must be connected to an output pin Что подталкивает на мыслю что, что-то тут 1. криво законекчено в SOPCb. 2. неправильны выставлены параметры элементов. 3. 1 + 2 ... Да, ещё, сам Builder (до генерации) выдаёт следующие варнинги точнее инфики: Info: pcie_compiler_0: bar1_0_Prefetchable: PCI BAR Size = 512 KBytes - 19 bits, Avalon Base Address = 0x00100000, Avalon End Address = 0x0017ffff Info: pcie_compiler_0: bar2_Non_Prefetchable: PCI BAR Size = 512 KBytes - 19 bits, Avalon Base Address = 0x00100000, Avalon End Address = 0x0017ffff Info: ext_flash: Flash memory capacity: 32,0 MBytes (33554432 bytes). Info: ext_flash_1: Flash memory capacity: 32,0 MBytes (33554432 bytes). Info: pb_pio: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. Info: dip_pio: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation. Info: pcie_compiler_0: A subset of PCI Express parameters is supported under SOPC Builder, see user guide for details. Info: pcie_compiler_0: Native Endpoint implementation doesn't support I/O or 32-bit Prefetchable memory BAR types. Info: pcie_compiler_0: Native Endpoint implementation requires MSI message 64-bit address capability.Как понял посылают туда откуда начинал... Всё бы ничего, но не совсем понятно человеку только начавшему етим "страдать" Кто - что может, толковое, посоветовать по мимо:"читай дадашит", "учи матчасть", "убейся Ап стену" и.т.д.? заранее спасибо! П.С. К сожалению проект довольно увесим и не может быть здесь выложен =( П.П.С. не судите строго, я только учусь(пытаюсь  )
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 16)
|
Aug 11 2011, 08:33
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Цитата(gosu-art @ Aug 11 2011, 11:06)  Отрапортуйте пожалуйста чем все закончилось. У меня в перспективе тоже намечается работа с PCIex. Вот только не знаю стоит ли с ПЛИС связываться... хорошо а если у кого ещё какие проекты или мысли есть - постим=)
|
|
|
|
|
Aug 15 2011, 07:32
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Цитата(vadimuzzz @ Aug 10 2011, 18:01)  судя по ошибкам, порты не замаплены на пины трансиверов. проверяйте соединения, особенно на верхнем уровне Всем доброго времени суток! Кажется до меня дошло как до жирафа... В веду неправильного понимания всей системы построения, я решил что билдер генерирует готовое устройство со всеми входами, выходами и компонентами указанными в нём... Но сравнив VHD "тело" проекта до и посли - подтолкнуло на мыслю что это - заблуждение... После чего вспомнил что в университете на лабораторных работах проходивших в скольз - помимо сборки, ещё вставлялся "какой-то" код с примечанием вам типа это не нада вставляем и не задаём вопросов т.к. лаб - много, времени - мало! И так вопрос!: правильные ли у меня рассуждения, что необходимо закодить в устройстве сам модуль или всё таки он на автомате подключается(<-ну это по ходу вАще тупо откуда он/квартус/ знает пины и т.д... )?
|
|
|
|
|
Aug 15 2011, 09:24
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Цитата(vadimuzzz @ Aug 15 2011, 10:59)  билдер генерит hdl-файл модуля. дальше 2 варианта - либо вы его объявите в квартусе как top-level, тогда пины автоматом появятся. либо вставляете компонент в свой top-level, делаете соедниения какие надо и сами выводите пины Смотрите... после добавления в билдере PCI-e, появился компонент pci_compiler_0 ну и сопутствующие компоненты которые присутствовали до этого. В том числе и a2gx_bup_top.vhd который как я понимаю и есть основой проекта. То есть необходимо добавить компонент во всю систему которая является "a2gx_bup_top.vhd"? А при установки элемента "pci_compiler_0" в топ-левл выдаёт ошибку что на кристале намного меньше выводов чем у девайса указаного выше Error: Can't place 732 pins with 2.5 V I/O standard because Fitter has only 439 such free pins available for general purpose I/O placement
|
|
|
|
|
Aug 15 2011, 12:11
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Цитата(vadimuzzz @ Aug 15 2011, 14:46)  если у вас никакой логики вне системы, что генерирует SOPC Builder нет, то top-level будет имя_системы.v(hd) если есть внешние цепи - делайте свой модуль и вставляйте в него модуль указанный выше (можно скопировать из заготовки имя_системы_inst.v(hd) ). не лезьте внутрь автоматически сгенерированных файлов. О, кажется я наконец-то понял... Значить, SOPCB с генерировал ядро которое является условно "полным", в него включено всё что было выбрано в билдере, в виде V(hd) файлов представленных деревом корнем которого является файл с расширением "имя в sopc".qip. И если на базе примера строить свою систему, тогда необходимо правым кликом мыши на "имя в sopc".qip и в выпадающем меню выбрать как Top-Level, после чего компиляция проходит без ошибок... Теперь правильно?
|
|
|
|
|
Aug 15 2011, 13:12
|

Участник

Группа: Участник
Сообщений: 16
Регистрация: 10-08-11
Из: Украина г.Киев
Пользователь №: 66 650

|
Цитата(vadimuzzz @ Aug 15 2011, 15:31)  я не уверен насчет qip, возможно он автоматически подставляет правильный hdl-файл как top-level. я предпочитаю указывать hdl-файл верхнего уровня явно ага, Вы правы... просто не отображался в проекте hdl-файл... И так и так - работает  осталось за "малым" - разобраться толком с протоколом
|
|
|
|
|
Oct 19 2011, 18:27
|
Знающий
   
Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939

|
Вот сейчас тоже по тихой разбираюсь с PCIex, в том числе и Альтеровским. Авалоновский ММ вариант (как на первом рисунке у ТС) плохо собирается под СIV. Времянка сходится только на 6м спидгрейде и то при определенных настройках  (в доках в принципе и написано, что только на СIV-6), но мне нужен индастриал, поэтому скорее всего придется использовать ST интерфейс. Хотелось бы понять для ST нужно самому формировать структуру TLP пакета(тип,таг, длинна..и.т.д.)? Т.е. если брать аналогию с езернетом делать "софтовый" протокол? Или же,например, как у Wiznet5300 - основное аппаратно реализовано? Даю только данные и все? Получается для ММ так и сделано?
|
|
|
|
|
Oct 20 2011, 04:43
|

МедвеД Инженер I
   
Группа: Свой
Сообщений: 816
Регистрация: 21-10-04
Пользователь №: 951

|
Цитата(gosu-art @ Oct 20 2011, 03:27)  Вот сейчас тоже по тихой разбираюсь с PCIex, в том числе и Альтеровским. Авалоновский ММ вариант (как на первом рисунке у ТС) плохо собирается под СIV. Времянка сходится только на 6м спидгрейде и то при определенных настройках  (в доках в принципе и написано, что только на СIV-6), но мне нужен индастриал, поэтому скорее всего придется использовать ST интерфейс. Хотелось бы понять для ST нужно самому формировать структуру TLP пакета(тип,таг, длинна..и.т.д.)? Т.е. если брать аналогию с езернетом делать "софтовый" протокол? Или же,например, как у Wiznet5300 - основное аппаратно реализовано? Даю только данные и все? Получается для ММ так и сделано? если будет ST, то transaction уровень и декодирование-обработка-прочее с TLP пакетами ложится на вас. в случае ММ всё сделано внутрях корки, тоесть жизнь легче если плис и грейд "хорошие" %)
--------------------
Cogito ergo sum
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|