|
Ядро PCI Express Block Plus в Virtex 5 |
|
|
|
 |
Ответов
(75 - 89)
|
Aug 9 2011, 10:49
|
Местный
  
Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832

|
Цитата(dsmv @ Aug 9 2011, 13:39)  Серьёзных исследований не проводили. На первый взгляд - скорость не падает. Стоило бы проверить. Где-то на этом форуме видел тему, что кто-то жаловался на падение скорости подобного рода контроллера, как потом выяснилось, из-за большой активности других устройств на PCIe .
|
|
|
|
|
Aug 28 2011, 16:27
|
Группа: Участник
Сообщений: 13
Регистрация: 20-01-09
Пользователь №: 43 665

|
Цитата(dsmv @ Aug 8 2011, 19:42)  Модуль AMBPEX5 в режиме x8
Вывод данных ( из компьютера в устройство ) 1. системная память (непрерывная) 128 МБайт - 1080 Мбайт/с 2. пользовательская память (разрывная) 128 Мбайт - 1080 Мбайт/с Подскажите пожалуйста в каком режиме осуществляется вывод данных из компьютера в устройство. Я наблюдаю такую картину: В режиме вывода данных из устройства на компьютер все отлично MPS = 128Байт, скорость 1200 Мбайт/с. При записи из компьютера в устройство 128Байт данных, на шине RX PCI Express Block Plus приходят 16 TLP длинной 1DW со сдвигом данных.
|
|
|
|
|
Aug 30 2011, 10:34
|
Местный
  
Группа: Свой
Сообщений: 451
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 284

|
Цитата(demon_rt @ Aug 28 2011, 19:27)  При записи из компьютера в устройство 128Байт данных, на шине RX PCI Express Block Plus приходят 16 TLP длинной 1DW со сдвигом данных. Это какая-то странная ситуация. Пришлите отправляемый запрос, надо на него посмотреть.
|
|
|
|
|
Oct 27 2011, 18:25
|
Группа: Участник
Сообщений: 13
Регистрация: 20-01-09
Пользователь №: 43 665

|
Такой вопрос, кто нить сталкивался с изохронным режимом (приложение А спецификации) работы PCI Express.
|
|
|
|
|
Dec 15 2011, 11:54
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
Читая форум, прихожу к мысли что с проблемами на этапе установки соединения столкнулся один я. Есть две платы PCI/104 express. Одна из них как раз с virtex-5 и example design из PCI Express Block Plus корки. Возможности потестить ее с разными хостами нет. PCIe устройство не детектируется, после долгих тыканий набрел на гид по отладке сего ядра на сайте xilinx, благодаря которому смог установить следующую заковырку:
На этапе установке связи хост шлёт плате TS1-пакет с link number, который хочет ей присвоить (точнее начинает слать непрерывно такие пакеты). Через некоторое время плата начинает отсылать такие же пакеты обратно, подтверждая что приняла номер. После этого хост добавляет в отсылаемые пакеты желаемый lane number. И тут (если быть точным за пару пакетов до прихода lane number) плата выставляет флаг rx_elec_idle (насколько я понимаю сообщая о том, что приемная линия перешла в режим простоя) и в наглую не шлет ответный пакет хосту. Через некоторое время процесс инициализации сбрасывается, в сумме он повторяется несколько раз, потом хост естественно оставляет попытки.
Предполагая количество людей, которые уже использовали тот же самый пример и ядро, смутно понимаю что дело не в нем. Грешить на root complex тоже очень не хочется, начальство имеет планы на использование конкретно его в будущих разработках. Буду рад любым подсказкам и наводкам
|
|
|
|
|
Dec 15 2011, 12:59
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(Jack_of_Shadows @ Dec 15 2011, 15:54)  Читая форум, прихожу к мысли что с проблемами на этапе установки соединения столкнулся один я. Есть две платы PCI/104 express. Одна из них как раз с virtex-5 и example design из PCI Express Block Plus корки. Возможности потестить ее с разными хостами нет. PCIe устройство не детектируется, после долгих тыканий набрел на гид по отладке сего ядра на сайте xilinx, благодаря которому смог установить следующую заковырку:
На этапе установке связи хост шлёт плате TS1-пакет с link number, который хочет ей присвоить (точнее начинает слать непрерывно такие пакеты). Через некоторое время плата начинает отсылать такие же пакеты обратно, подтверждая что приняла номер. После этого хост добавляет в отсылаемые пакеты желаемый lane number. И тут (если быть точным за пару пакетов до прихода lane number) плата выставляет флаг rx_elec_idle (насколько я понимаю сообщая о том, что приемная линия перешла в режим простоя) и в наглую не шлет ответный пакет хосту. Через некоторое время процесс инициализации сбрасывается, в сумме он повторяется несколько раз, потом хост естественно оставляет попытки.
Предполагая количество людей, которые уже использовали тот же самый пример и ядро, смутно понимаю что дело не в нем. Грешить на root complex тоже очень не хочется, начальство имеет планы на использование конкретно его в будущих разработках. Буду рад любым подсказкам и наводкам А какая плата? Там есть switch? Или конфигурация stack up/down фиксирована? Как сброс сделан? Могу дать свою прошивку и тестовую прогу под windows в обмен на ucf файл. Мы сейчас свою плату PCI104 express делаем, вот не хотелось бы тоже наколоться.
|
|
|
|
|
Dec 16 2011, 07:54
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
Процессорная плата - MSM945 от Digital-Logic (ныне Kontron). Плата с плисом - SMT101 от Sundance (они кстати предоставляют тестовую прошивку под PCIe, но она так же не работает как и пример от корки, что лишний раз намекает что проблемы либо в связи, либо в root complex). (как я заметил вы ищете примеры разводки, но, к несчастью, от Sundance мне удалось получить только схему) Процессорная плата рассчитана только на нахождение на верхушке мезонина, поэтому CPU_DIR фиксированно заведен на единицу. Сброс с разъема PCIe заведен на дополнительную плисину Spartan-3, которая конфигурирует Virtex. Выведя сигналы сброса на светодиоды, я всегда вижу как вначале почему-то мигает trn_reset, затем вместе пару раз trn_reset и sys_reset. Все это в течении пары секунд, пока пытается установиться соединение. От прошивки бы и проги не отказался  Хотя в данный момент они вряд ли помогут с проблемами на нижнем уровне. Кстати, если вы имеете отношение к Томскому "Интенсис" и их SGDMA, то я качал демонстрационную версию модуля, однако у нас плисы разные (у меня XC5VFX30T), и я так и не смог адаптировать ucf под свою плату (сыпались какие-то ошибки с GTP/GTX трансиверами).
|
|
|
|
|
Dec 16 2011, 11:44
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(Jack_of_Shadows @ Dec 16 2011, 11:54)  Процессорная плата - MSM945 от Digital-Logic (ныне Kontron). Плата с плисом - SMT101 от Sundance (они кстати предоставляют тестовую прошивку под PCIe, но она так же не работает как и пример от корки, что лишний раз намекает что проблемы либо в связи, либо в root complex). (как я заметил вы ищете примеры разводки, но, к несчастью, от Sundance мне удалось получить только схему) Процессорная плата рассчитана только на нахождение на верхушке мезонина, поэтому CPU_DIR фиксированно заведен на единицу. Сброс с разъема PCIe заведен на дополнительную плисину Spartan-3, которая конфигурирует Virtex. Выведя сигналы сброса на светодиоды, я всегда вижу как вначале почему-то мигает trn_reset, затем вместе пару раз trn_reset и sys_reset. Все это в течении пары секунд, пока пытается установиться соединение. От прошивки бы и проги не отказался  Хотя в данный момент они вряд ли помогут с проблемами на нижнем уровне. Кстати, если вы имеете отношение к Томскому "Интенсис" и их SGDMA, то я качал демонстрационную версию модуля, однако у нас плисы разные (у меня XC5VFX30T), и я так и не смог адаптировать ucf под свою плату (сыпались какие-то ошибки с GTP/GTX трансиверами). Спасибо! Мне кажется дело со сбросом. На отладочных китах сброс не используется, вместо него кнопка для ручного сброса. Попробуйте его вообще отключить в прошивке. Адаптировать sgdma помогу, самому интересно, шлите ucf файл.
|
|
|
|
|
Dec 16 2011, 12:20
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
собственно вот:
Код ############################################################################### # Define Device, Package And Speed Grade ###############################################################################
CONFIG PART = xc5vfx30t-ff665-1;
############################################################################### # User Time Names / User Time Groups / Time Specs ###############################################################################
# CONFIG STEPPING = "ES";
############################################################################### # User Physical Constraints ###############################################################################
############################################################################### # Pinout and Related I/O Constraints ###############################################################################
# # SYS reset (input) signal. The sys_reset_n signal should be # obtained from the PCI Express interface if possible. For # slot based form factors, a system reset signal is usually # present on the connector. For cable based form factors, a # system reset signal may not be available. In this case, the # system reset signal must be generated locally by some form of # supervisory circuit. You may change the IOSTANDARD and LOC # to suit your requirements and VCCO voltage banking rules. #
NET "sys_reset_n" LOC = "H9" | IOSTANDARD = LVCMOS33 | PULLUP | NODELAY;
# # SYS clock 250 MHz (input) signal. The sys_clk_p and sys_clk_n # signals are the PCI Express reference clock. Virtex-5 GTX # Transceiver architecture requires the use of a dedicated clock # resources (FPGA input pins) associated with each GTX Transceiver Tile. # To use these pins an IBUFDS primitive (refclk_ibuf) is # instantiated in user's design. # Please refer to the Virtex-5 GTX Transceiver User Guide # (UG198) for guidelines regarding clock resource selection. #
NET "sys_clk_p" LOC = "T4"; NET "sys_clk_n" LOC = "T3"; INST "refclk_ibuf" DIFF_TERM = "TRUE";
# # Transceiver instance placement. This constraint selects the # transceivers to be used, which also dictates the pinout for the # transmit and receive differential pairs. Please refer to the # Virtex-5 GTX Transceiver User Guide (UG198) for more # information. # # PCIe Lanes 0 INST "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = GTX_DUAL_X0Y1;
# # PCI Express Block placement. This constraint selects the PCI Express # Block to be used. #
INST "ep/pcie_ep0/pcie_blk/pcie_ep" LOC = PCIE_X0Y0;
############################################################################### # Physical Constraints ###############################################################################
# # BlockRAM placement #
INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_retry/generate_sdp.ram_sdp_inst" LOC = RAMB36_X4Y4; INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst" LOC = RAMB36_X4Y3; INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[1].ram_tdp2_inst" LOC = RAMB36_X4Y2; INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst" LOC = RAMB36_X4Y1; INST "ep/pcie_ep0/pcie_blk/pcie_mim_wrapper_i/bram_tl_rx/generate_tdp2[0].ram_tdp2_inst" LOC = RAMB36_X4Y0;
############################################################################### # Timing Constraints ###############################################################################
# # Ignore timing on asynchronous signals. #
NET "sys_reset_n" TIG;
# # Timing requirements and related constraints. #
NET "sys_clk_c" PERIOD = 10ns;
NET "ep/pcie_ep0/pcie_blk/SIO/.pcie_gt_wrapper_i/gt_refclk_out" TNM_NET = "MGTCLK";
TIMESPEC "TS_MGTCLK" = PERIOD "MGTCLK" 100.00 MHz HIGH 50 %;
# LEDs
NET "led1" LOC = "E10" | IOSTANDARD = LVTTL; NET "led2" LOC = "F10" | IOSTANDARD = LVTTL; NET "led3" LOC = "F20" | IOSTANDARD = LVTTL; NET "led4" LOC = "G21" | IOSTANDARD = LVTTL;
############################################################################### # End ###############################################################################
Сообщение отредактировал Jack_of_Shadows - Dec 16 2011, 12:24
|
|
|
|
|
Dec 18 2011, 20:22
|
Знающий
   
Группа: Свой
Сообщений: 672
Регистрация: 18-02-05
Пользователь №: 2 741

|
Цитата(dmitry-tomsk @ Dec 16 2011, 21:47)  Как грузится плис - со флэши? В PC104 нет сигнала присутствия в слоте, может загрузка прошивки запаздывает? Странный ucf, в коментариях тактовая 250 МГц, а в таймингах 100 МГц. Прикрепил прошивку для 100 МГц
Прикрепленные файлы
ST101.rar ( 228.11 килобайт )
Кол-во скачиваний: 19
|
|
|
|
|
Dec 19 2011, 08:03
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 29-10-10
Пользователь №: 60 513

|
ucf сгенерирован core-генератором, в настройках там точно 100 МГц стояло, и на плате точно 100 МГц идет. Сам не понял что у них с комментариями. С вашей прошивкой ничего не изменилось - смотрю pci-устройства через pcitree в win хр. Грузится с флеши, производители платы уверяют что загрузка занимает порядка 70 мс. И на этот случай всегда рекомендуют горячий старт, который тоже не помогает. К тому же я в начале говорил, процесс инициализации начинает идти, проходят успешно стадии detect и polling, а на configuration случается затык, в один прекрасный момент (всегда один и тот же, что значит дело не в случайных помехах) RX линия сбрасывается в режим простоя (или как там правильно перевести IDLE). И кроме того в некоторых местах во время инициализации видно по сигналу rx_status что возникают ошибки 8b/10b decode error - некое нарушение целостности сигнала. Однако опять же они возникают строго в одинаковых местах, что не похоже просто на плохой прием - ведь в других местах я, к примеру, всегда вижу как root complex отправляет link number, а плис через некоторое время отсылает его назад в качестве подтверждения ( вот здесь я приводил осциллограммы проблемного момента, )
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|