|
|
 |
Ответов
|
Jun 9 2018, 11:12
|

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

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

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

|
Цитата(AVR @ Jun 9 2018, 18:12)  Нужно следить за статусами "кредитов", т.е. емкости приемных буферов например ближайшего бриджа или непосредственно хоста - всё это PCI-E ядро само обновляет запросами и сообщает пользователю в ПЛИС. А со стороны драйвера просто такой трафик в моей задаче, что оно само собой разруливается, но в других ситуациях следить надо конечно. Да, вот меня больше волнует ситуация, когда не запись из ПЛИС на хост, а чтение потока данных из системной памяти в ПЛИС - нужно очень аккуратно выдавать запросы на запись, чтобы комлешны не забили входные буфера. Такие ситуации хотелось бы помоделировать. Только не очень понятно, каким образом эмулируется на функциональном моделировании физический уровень - ясно, что там нет смысла трансиверы изображать, но хотя бы их функциональность надо. В доках Xilinx упоминается некий PIPE - Physical Interface for PCI Express, который, вроде, и берёт на себя эту задачу. Но что это и как использовать, пока не знаю. Кто в курсе темы, поделитесь опытом, советами?
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Jun 18 2018, 11:30
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|