реклама на сайте
подробности

 
 
> PCIe and FPGA
polyvyannyy
сообщение Jun 5 2018, 11:20
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 16-10-17
Пользователь №: 99 768



Всем привет, уважаемые форумчане!
Возникла необходимость поднять на девборде PCIe 3x8. Референсный дизайн загружен и все работает.
Но теперь нужно сделать прием и отправку своих данных с/на хост. И вот тут то возникла куча вопросов и непониманий. Информации по теории PCIe полно, но никак не удается найти конкретики относительно ПЛИС...какой именно у меня должен быть порядок действий со стороны ПЛИС, чтобы организовать чтение/запись данных в ОЗУ хоста? таблица дискрипторов...кто её формирует, где она хранится?В голове каша и нет четкого понимания.
Прошу помощи у опытных в данной теме людей.
За любые ссылки, проекты, которые можно взять за основу, буду благодарен.

Сообщение отредактировал polyvyannyy - Jun 6 2018, 07:32
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Jun 9 2018, 10:32
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



А Flow Control как-то обрабатываете? Или трафик такой, что гарантировано проблем не возникает?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 9 2018, 11:12
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(dxp @ Jun 9 2018, 13:32) *
А Flow Control как-то обрабатываете? Или трафик такой, что гарантировано проблем не возникает?

Нужно следить за статусами "кредитов", т.е. емкости приемных буферов например ближайшего бриджа или непосредственно хоста - всё это PCI-E ядро само обновляет запросами и сообщает пользователю в ПЛИС. А со стороны драйвера просто такой трафик в моей задаче, что оно само собой разруливается, но в других ситуациях следить надо конечно.

Цитата
Спасибо большое за столь развернутые ответы. Теперь буду приводить мысли в порядок и пробовать)Уверен, будут еще вопросы

С радостью отвечу на все последующие вопросы, на какие смогу.


--------------------
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 9 2018, 12:53
Сообщение #4


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(AVR @ Jun 9 2018, 18:12) *
Нужно следить за статусами "кредитов", т.е. емкости приемных буферов например ближайшего бриджа или непосредственно хоста - всё это PCI-E ядро само обновляет запросами и сообщает пользователю в ПЛИС. А со стороны драйвера просто такой трафик в моей задаче, что оно само собой разруливается, но в других ситуациях следить надо конечно.

Да, вот меня больше волнует ситуация, когда не запись из ПЛИС на хост, а чтение потока данных из системной памяти в ПЛИС - нужно очень аккуратно выдавать запросы на запись, чтобы комлешны не забили входные буфера. Такие ситуации хотелось бы помоделировать. Только не очень понятно, каким образом эмулируется на функциональном моделировании физический уровень - ясно, что там нет смысла трансиверы изображать, но хотя бы их функциональность надо. В доках Xilinx упоминается некий PIPE - Physical Interface for PCI Express, который, вроде, и берёт на себя эту задачу. Но что это и как использовать, пока не знаю. Кто в курсе темы, поделитесь опытом, советами?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Jun 18 2018, 11:30
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!
Цитата(dxp @ Jun 9 2018, 15:53) *
...
Только не очень понятно, каким образом эмулируется на функциональном моделировании физический уровень - ясно, что там нет смысла трансиверы изображать, но хотя бы их функциональность надо. В доках Xilinx упоминается некий PIPE - Physical Interface for PCI Express, который, вроде, и берёт на себя эту задачу. Но что это и как использовать, пока не знаю. Кто в курсе темы, поделитесь опытом, советами?
В симуляции с PIPE в основном сложности с подключением веревок интерфейсов. Ну и некоторые нюансы с настройкой параметров для PCIe корки для работы с симуляцией PIPE (чтоб не ждать долго инициализации линка). К тому же у Xilinx немного разные наборы сигналов для разных версий PCIe. Ну и некоторые проблемы возникают при генерации корки. Если точнее то раньше можно было сгенерировать корку как обычно c MGT а потом уже при симе параметром выбирать интерфейс PIPE/MGT режим. А сейчас так не получается (на оптимизировали блин) либо генериш и симиш ее с PIPE, либо с MGT.
Если использовать для симуляции root-complex BFM такую же корку от Xilinx то особых проблем для коннекта с PIPE нет.

Например у меня такой вот шаблон для теста PCIe установленных на BD диаграммах.
CODE
// Full path to the tested PCIe end_point
`define EP_INST i_top.i_pcie_sys.i_xdma.inst.pcie3_ip_i.inst
`define EP_PIPE i_top.i_pcie_sys.i_xdma.inst.pcie3_ip_i

`ifdef _ENABLE_GT_
parameter PIPE_SIM = "FALSE";
defparam `EP_INST.EXT_PIPE_SIM = "FALSE";
defparam `EP_INST.PL_EQ_BYPASS_PHASE23 = "FALSE";
`else
parameter PIPE_SIM = "TRUE";
defparam `EP_INST.EXT_PIPE_SIM = "TRUE";
defparam `EP_INST.PL_EQ_BYPASS_PHASE23 = "TRUE";
`endif

// PCIe root-complex BFM (and path to the Xilinx root_complex PCIe instance)
`define RP_PIPE RP.i_rp_tb.i_axi_pcie3
root_complex_bfm #(.PIPE_SIM(PIPE_SIM), ...) RP(.pcie_clk_p(rp_clk_p), ..., mgt_rx_p(rp_rx_p[0]), ..., mgt_tx_p(rp_rx_p[0]), ...);
...
if (PIPE_SIM=="TRUE") begin
initial begin
force `EP_PIPE.common_commands_in =`RP_PIPE.common_commands_out;
force `EP_PIPE.pipe_rx_0_sigs =`RP_PIPE.pipe_tx_0_sigs ;
...
force `RP_PIPE.common_commands_in =`EP_PIPE.common_commands_out;
force `RP_PIPE.pipe_rx_0_sigs =`EP_PIPE.pipe_tx_0_sigs ;
...
end
end
// tested BD module
pcie_sys i_pcie_sys (.pcie_clk_p(rp_clk_p), ..., mgt_rx_p(rp_tx_p[0]), ..., mgt_tx_p(rp_rx_p[0]), ...);
...
initial begin
RP.rp_bfm.reset();
wait (RP.rp_bfm.init_complete);
...
end

Ну а если PCIe BFM сторонний то надо будет мудрить с адаптером PIPE.

Удачи! Rob.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- polyvyannyy   PCIe and FPGA   Jun 5 2018, 11:20
- - dsmv   Можно посмотреть на мой старый проект http://ds-de...   Jun 5 2018, 19:09
|- - polyvyannyy   Цитата(dsmv @ Jun 5 2018, 22:09) Можно по...   Jun 6 2018, 07:33
- - AVR   Готов проконсультировать по всем вопросам касатель...   Jun 5 2018, 19:40
- - AVR   Продублирую из лички сюда, чтобы осталось. Всё нап...   Jun 7 2018, 09:08
- - AVR   Цитата"1) настраиваем BAR (можем читать-писат...   Jun 8 2018, 10:20
|- - polyvyannyy   Цитата(AVR @ Jun 8 2018, 13:20) 1) Эти ад...   Jun 9 2018, 10:33
- - dxp   AVR, а вы проводили функциональное моделирование в...   Jun 9 2018, 03:12
|- - AVR   Цитата(dxp @ Jun 9 2018, 06:12) AVR, а вы...   Jun 9 2018, 08:56
|- - AVR   Цитата(dxp @ Jun 9 2018, 15:53) Да, вот м...   Jun 9 2018, 13:10
|- - dxp   Спасибо за ответ, прошу прощения за паузу, не был ...   Jul 10 2018, 10:11
|- - RobFPGA   Приветствую! Цитата(dxp @ Jul 10 2018, 13...   Jul 10 2018, 13:54
|- - dxp   Цитата(RobFPGA @ Jul 10 2018, 20:54) Уточ...   Jul 11 2018, 12:04
|- - RobFPGA   Приветствую! Цитата(dxp @ Jul 11 2018, 1...   Jul 11 2018, 13:31
|- - dxp   Цитата(RobFPGA @ Jul 11 2018, 20:31) Сам....   Jul 12 2018, 04:35
|- - RobFPGA   Приветствую! Цитата(dxp @ Jul 12 2018, 07...   Jul 12 2018, 06:58
|- - dxp   Цитата(RobFPGA @ Jul 12 2018, 13:58) Лучш...   Jul 12 2018, 07:17
|- - RobFPGA   Цитата(dxp @ Jul 12 2018, 10:17) Понятно....   Jul 12 2018, 07:40
|- - dxp   Цитата(RobFPGA @ Jul 12 2018, 14:40) Да -...   Jul 12 2018, 07:46
- - dxp   Проблема может возникнуть из-за того, что если нак...   Jun 9 2018, 14:56
|- - AVR   Цитата(dxp @ Jun 9 2018, 17:56) Но тогда ...   Jun 9 2018, 16:10
- - AVR   ЦитатаПодскажите пожалуйчта, как из пользовательск...   Jun 17 2018, 11:03
- - polyvyannyy   Цитата(AVR @ Jun 17 2018, 14:03) Что тако...   Jun 18 2018, 09:53
- - doom13   Цитата(polyvyannyy @ Jun 18 2018, 12:53) ...   Jun 18 2018, 10:29
- - AVR   Цитата(polyvyannyy @ Jun 18 2018, 12:53) ...   Jun 18 2018, 10:43


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 05:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.09751 секунд с 7
ELECTRONIX ©2004-2016