Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCI Express (жду любых советов)
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Methane
Есть плата на Arria 2 GX. Кит. На ней был отлажена работа PCIe 4x.

Сделана плата на младшей Arria 2GX. DC/DC передраны с кита. Обвязка передрана с кита. Пата заказана в Китае с контролируемым импедансом, по всем рекомендациям PCI-SIG. На плате стоят 4 оптических трансивера и PCIe 4x.

Все отличие платы от кита в том, что в ките PCIe висит на нулевом и первом GBX (нулевой это 1x и 4x, первый и второй используются чтобы PCIe 8x). Моя плата сделана 4x. Для упрощения разводки,GBX был отдан для оптики, а PCIx был заведен на первый блок трансиверов (в одном блоке есть PLL, ФАПЧ, 4 приёмника, 4 передатчика). В общем что делать не знаю.

Трансиверы через оптику работают сами на себя. Шины PCIe tx, закорачивал на PCIe rx, тоже работает. Свои данные принимает.

У меня идей нет. Есть подозрение что PCIe может работать только с нулевым блоком трансивера. пробросить 2.5 гигабита по плате на миллиметров 30, по воздуху, мне кажется дохлый номер.
DmitryR
Цитата(Methane @ Dec 1 2010, 12:59) *
Шины PCIe tx, закорачивал на PCIe rx, тоже работает. Свои данные принимает.

А будучи вставлена в материнскую плату - не принимает?
100 МГц с разъема PCIe куда идут?

Цитата(Methane @ Dec 1 2010, 12:59) *
Есть подозрение что PCIe может работать только с нулевым блоком трансивера.

Тогда фиттер бы вас обматюгал сообщением о невозможности подключить аппаратный блок PCIe к соответствующим трансиверам.

Но вообще - любые просьбы о помощи по схемотехнике всегда имеет смысл сопровождать схемой. А в случае высокоскоростных схем - еще и разводкой.
Shtirlits
Паниковать рано, как мне кажется.
Объясните как именно оно не работает. Что должно получиться и что не получается.

В MegaWizard позволяется установить starting channel number равный 4 и далее с шагом 4, как для hard, так и для soft core.
Я бы начал с 1x и PCIe 1.0A
Methane
Цитата(Shtirlits @ Dec 1 2010, 13:16) *
Паниковать рано, как мне кажется.
Объясните как именно оно не работает. Что должно получиться и что не получается.

В MegaWizard позволяется установить starting channel number равный 4 и далее с шагом 4, как для hard, так и для soft core.
Я бы начал с 1x и PCIe 1.0A

C 1x и начал. В визарде для трасивера с который PCI работает, написано если реконфигуратор работает с несколькими блоками, то для каждого должен быть выставлен свой адрес кратный четырём.

Цитата(DmitryR @ Dec 1 2010, 13:03) *
А будучи вставлена в материнскую плату - не принимает?
100 МГц с разъема PCIe куда идут?

На дедиктейтет клок дифпару трансивера.

Цитата
Тогда фиттер бы вас обматюгал сообщением о невозможности подключить аппаратный блок PCIe к соответствующим трансиверам.

Вот и я так думаю.
Цитата
Но вообще - любые просьбы о помощи по схемотехнике всегда имеет смысл сопровождать схемой. А в случае высокоскоростных схем - еще и разводкой.

Какая схема? Трам 4 (четыре) сигнала с PCIe учавствуют. Кондеры стоят какие нужны. Кроме того, PCIe я закорачивал сами на себя (вырезал с материнке PCIe разьем, и там перемычками txd на rxd замкнул). Сам себя прекрасно видит.
Cordroy
Цитата(Methane @ Dec 1 2010, 12:59) *
Есть подозрение что PCIe может работать только с нулевым блоком трансивера.


Аппаратный - да, только с нулевым (по-крайней мере у меня тоже такое подозрение).
Попробуйте собрать х1 (а потом х4) не используя аппаратную поддержку (надеюсь что визард позволяет).
Shtirlits
Ну и глупый вопрос - не перепутаны ли на плате tx и rx (и сами пары) ?
DmitryR
Цитата(Methane @ Dec 1 2010, 14:32) *
Какая схема?

Принципиальная. Чтобы сразу исключить вопросы как в предыдущем посте.
Methane
Цитата(Cordroy @ Dec 1 2010, 13:36) *
Аппаратный - да, только с нулевым (по-крайней мере у меня тоже такое подозрение).
Попробуйте собрать х1 (а потом х4) не используя аппаратную поддержку (надеюсь что визард позволяет).

У меня на лицензию ругается. И если только с нулевым, то чего квартус не ругается?
Cordroy
Цитата(Methane @ Dec 1 2010, 14:56) *
У меня на лицензию ругается. И если только с нулевым, то чего квартус не ругается?



У Квартуса сейчас куча недочетов с трансиверами. Я пытался недавно сделать PCIe + 4 x SDI Tx/Rx. Автоматом получилось только 2. Как оказалось фиттер погано распределял ресурсы.

Аппартный PCIe не требует лицензии. А для софт-IP - возьмите кряк на денек, только чтоб проверить.
Methane
Цитата(Shtirlits @ Dec 1 2010, 13:39) *
Ну и глупый вопрос - не перепутаны ли на плате tx и rx (и сами пары) ?

Все проверил уже очень много раз. И rx/tx и + с -, и rx0 с rx3 не перепутаны. Я уже не первый день долбаюсь.


В реконфигурационном блоке сказал что у меня 8 каналов, в pcie_serdes поставил что у меня начинается все с 4го канала. в pcie_example_chaining_pipen1b
исправил
//assign reconfig_fromgxb[33 : 17] = 0;
assign reconfig_fromgxb[16 : 0] = 0;
//.reconfig_fromgxb (reconfig_fromgxb[16 : 0]),
.reconfig_fromgxb (reconfig_fromgxb[33 : 17]),
Все равно не пашет.

Цитата(Cordroy @ Dec 1 2010, 14:00) *
У Квартуса сейчас куча недочетов с трансиверами. Я пытался недавно сделать PCIe + 4 x SDI Tx/Rx. Автоматом получилось только 2. Как оказалось фиттер погано распределял ресурсы.

Против PCIe 4х на одном блоке и четырех оптических трансиверов на другом оно не ругается.

Цитата
Аппартный PCIe не требует лицензии. А для софт-IP - возьмите кряк на денек, только чтоб проверить.

Где взять? У меня оно еще и под 64 бит линух. Это пару дней только развлечений. Когда ставил какой-то один только подошел.

Koluchiy
2 раза перечитал корневой пост.
Не увидел слова "не работает" и симптомы неработы...

P.S. Ничего не знаю про PCI-E, но собираюсь smile.gif.
Methane
Цитата(Koluchiy @ Dec 1 2010, 14:48) *
2 раза перечитал корневой пост.
Не увидел слова "не работает" и симптомы неработы...

P.S. Ничего не знаю про PCI-E, но собираюсь smile.gif.

Все прекрасно работает. Делайте. Не бойтесь. Как сделаете, расскажите как. smile.gif
Koluchiy
Если всё работает, то в чём суть темы? smile.gif
Shtirlits
я правильно понимаю, что были проведены следующие эксперименты:
1. тестовый loopback без PCIe работает
2. схема с PCIe воткнутая в компьютер не работает
Если так, то либо нужно идти по всем пунктам всех документов и проверять, что трудно и легко ошибиться, или нужны промежуточные эксперименты. Например, signal tap посмотреть на статусные сигналы трансиверов, воткнуть плату в компьютер и начать из тестовой схемы делать физический уровень PCIe 1x. Надеюсь, что полезная информация появится непосредственно после приема TS1.
Methane
Цитата(Shtirlits @ Dec 1 2010, 15:04) *
я правильно понимаю, что были проведены следующие эксперименты:
1. тестовый loopback без PCIe работает

Да. И через нулеой блок (через оптику) и через первый блок (через обрезок материнки с выпиляным из нее PCIe разьёмом).

Цитата
2. схема с PCIe воткнутая в компьютер не работает

Да. Кит воткнутый в компютер работает. Причем прошивка одна и таже - то что мегавизард по умолчанию генерит.

Все отличие это
/****************************************** OUR BOARD **************************************************/
(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "V25" *) output tx_out0;
(* chip_pin = "K9" *) input pcie_rstn;
(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "AD25" *) input refclk;
(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "W27" *) input rx_in0;
/********************************************************************************
***********************/
/****************************************** ALTERA BOARD ***********************************************/
//(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "AM31" *) output tx_out0;
//(* chip_pin = "N1" *) input pcie_rstn;
//(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "AE29" *) input refclk;
//(* altera_attribute = "-name IO_STANDARD \"1.5-V PCML\" ", chip_pin = "AN33" *) input rx_in0;
/********************************************************************************
***********************/

Одно комментируем, другую разкомментируем, меняем микросхему в проекте (это вручную, может кто знает как через attribute указать тип микросхемы?)

Все.
Цитата
Если так, то либо нужно идти по всем пунктам всех документов и проверять, что трудно и легко ошибиться, или нужны промежуточные эксперименты. Например, signal tap посмотреть на статусные сигналы трансиверов, воткнуть плату в компьютер и начать из тестовой схемы делать физический уровень PCIe 1x. Надеюсь, что полезная информация появится непосредственно после приема TS1.

Сложно. Вникать в PCIe протокол на самом нижнем уровне, у меня просто ОЧЕНЬ нет времени.
DmitryR
Цитата(Methane @ Dec 1 2010, 15:17) *
В реконфигурационном блоке сказал что у меня 8 каналов
Зачем?
Methane
Цитата(DmitryR @ Dec 1 2010, 15:44) *
Зачем?

Младшие - вникуда. Старшие на блок сериализаторов. Я уже все варианты пробую.
Shtirlits
Тупые вопросы будут продолжаться.
Приведено отличие только для того, что генерирует визард или это вся разница между дизайнами и остальные сигналы,
например, клок для приложения, идет с тех же ног, что и в ките? Короче, все клоки идут куда надо?

Если 1x, то перекос между лэйнами как бы не должен мешать.

Можно поподробнее, как проверялся обмен с loopback-ом?
Откуда на трансиверы при этом поступал опорный клок?
Methane
Цитата(Shtirlits @ Dec 1 2010, 16:25) *
Тупые вопросы будут продолжаться.
Приведено отличие только для того, что генерирует визард или это вся разница между дизайнами и остальные сигналы,
например, клок для приложения, идет с тех же ног, что и в ките? Короче, все клоки идут куда надо?

Это вообще все сигналы что в системе есть. (специально сделал как можно меньше).
Код
module pcie_example_chaining_top (
                                   // inputs:
                                    pcie_rstn,
                                    refclk,
                                    rx_in0,

                                   // outputs:
                                    tx_out0,
                                 )

Цитата
Если 1x, то перекос между лэйнами как бы не должен мешать.

Можно поподробнее, как проверялся обмен с loopback-ом?
Откуда на трансиверы при этом поступал опорный клок?


В системе есть генератор с дифф. выходом, который генерит 125 мегагерц. Что клок с PCIe поступает, я проверял делая ему assign на светодиод.

Эти 4 сигнала, просто чтобы сузить сферу поиска глюка. На самом деле там сигналов гораздо больше. Просто не работает даже минимальный проект, который должен хотя бы распознаться BIOSом.

Перекос между ланами не должен мешать в принципе. Именно для этого PCIe и создавался. Чтобы ланы можно было разной длинны делать.
Cordroy
Цитата(Methane @ Dec 1 2010, 18:35) *
В системе есть генератор с дифф. выходом, который генерит 125 мегагерц.



А вы разве не должны принимать reference clock с материнки? Который 100МГц?
AJIEKCEu
А с фазовыми шумами у синхросигнала как? Если они есть и умножатся на 20... может не сильно хорошо получиться? Как вариант - сравнить спектр с китом.
Shtirlits
я не понимаю, какой был проект, когда выходы были замкнуты на входы? Откуда брался опорный клок, как определили, что данные принимаются и принимаются именно они?

Мои представления говорят о том, что должно быть два клока - один ***ски чистый reference для трансиверов и один для остальной схемы в 20 (10) раз медленнее. Ноги должны быть прописаны в файлах констрейнов. Извиняюсь, давно с quartus-ом не работал, голова полна зайлингса.

Перекос между лэйнами имеет допустимый предел, в несколько символов. Я PCIe наизусть не помню, но вероятно, как и в infiniband, проблемы возникнут при перекосе более 15 символов (длина последовательности 16 символов), что на печатной плате при всем желании сделать затруднительно. Однако, это лирика.
DmitryR
Цитата(Methane @ Dec 1 2010, 18:35) *
Просто не работает даже минимальный проект, который должен хотя бы распознаться BIOSом.
Вообще-то чтобы контроллер увиделся в BIOS он IMHO должен быть не совсем минимальным.
Methane
Цитата(Cordroy @ Dec 1 2010, 17:41) *
А вы разве не должны принимать reference clock с материнки? Который 100МГц?

Для тестирования тех трансиверов что работают на PCIe , я могу подать сигнал откуда угодно. Выход трансивера подключается ко входу, и смотрится что на выходе десериалихатора.

Цитата(DmitryR @ Dec 1 2010, 17:59) *
Вообще-то чтобы контроллер увиделся в BIOS он IMHO должен быть не совсем минимальным.

Да. Но после конфигуратора квартуса, и вообще единственный варинат проверить "на коленке", это довести до состояния " в BIOS появилось". И вся ставка был сделана именно на то, что схомутать, как бы негде. ПЛИС напрямую подключается к PCIe. Но судя по всему что-то не так пошло.

Цитата(AJIEKCEu @ Dec 1 2010, 17:41) *
А с фазовыми шумами у синхросигнала как? Если они есть и умножатся на 20... может не сильно хорошо получиться? Как вариант - сравнить спектр с китом.

Какой спектр? Синхросигнал комп генерит.
AJIEKCEu
Цитата(Methane @ Dec 1 2010, 19:38) *
Какой спектр? Синхросигнал комп генерит.

А разве не этот?
Цитата(Methane)
В системе есть генератор с дифф. выходом, который генерит 125 мегагерц. Что клок с PCIe поступает, я проверял делая ему assign на светодиод.
Methane
Цитата(AJIEKCEu @ Dec 1 2010, 18:49) *
А разве не этот?


В системе есть дофига всего разного. Просто для простоты, чтобы выделить проблему я сделал минимальный проект. Корка PCIe + обвязка от альтеры по умолчанию. Для этого нужно всего 4 внешних сигнала. А для того чтобы проверить сериализаторы, я TX запустил генерить 1,2,3,4,.... и отдавать в линию, на которой должно было бы быть PCIe, А на разьем PCIe повесил разьем выдранный из материнки, на котором TX двумя проводами подал на RX. На приёмники RX я повесил просто регистр, на который повесил сигнал-тап. Все это затактовал от генератора который был на плате.

Для работы PCIe генератор 125 не используется совсем. Его нет. Он нужен мне был только чтобы убедиться что к примеру все шарики припаяны.
Shtirlits
Есть ли возможность посмотреть signal tap-ом этот же сдвиговый регистр подключенный к приемнику, когда плата в компьтере?
Methane
Цитата(Shtirlits @ Dec 2 2010, 03:36) *
Есть ли возможность посмотреть signal tap-ом этот же сдвиговый регистр подключенный к приемнику, когда плата в компьтере?

Вот поскольку. soft core не собирается, буду сигнал тап подключать.
Shtirlits
Если не ошибаюсь, то должна приниматься от компа TS1 с паузой 12ms, когда его трансмиттер учует ресивер:
0: COMMA K28.5 10111100
1: Link Number
2: Lane Number
3: -
4: - лень переписывать документацию
5: -
6..15 - 10 раз D10.2 01001010
Methane
Цитата(Methane @ Dec 2 2010, 10:30) *
Вот поскольку. soft core не собирается, буду сигнал тап подключать.

Облом с тапом.
Код
Error: Output port HIPDATAOUT of GXB receiver channel atom "top_example_chaining_pipen1b:core|top:epmap|top_serdes:serdes|top_serdes_alt4gxb_o08b:top_serdes_alt4gxb_o08b_component|receive_pcs0" must be connected to input port RXDATA of a PCIE HIP atom
Error: Output port HIPDATAOUT of GXB receiver channel atom "top_example_chaining_pipen1b:core|top:epmap|top_serdes:serdes|top_serdes_alt4gxb_o08b:top_serdes_alt4gxb_o08b_component|receive_pcs1" must be connected to input port RXDATA of a PCIE HIP atom
Error: Output port HIPDATAOUT of GXB receiver channel atom "top_example_chaining_pipen1b:core|top:epmap|top_serdes:serdes|top_serdes_alt4gxb_o08b:top_serdes_alt4gxb_o08b_component|receive_pcs2" must be connected to input port RXDATA of a PCIE HIP atom
Error: Output port HIPDATAOUT of GXB receiver channel atom "top_example_chaining_pipen1b:core|top:epmap|top_serdes:serdes|top_serdes_alt4gxb_o08b:top_serdes_alt4gxb_o08b_component|receive_pcs3" must be connected to input port RXDATA of a PCIE HIP ato

DmitryR
Естественно, надо голый трансивер ставить потому что.
Methane
Цитата(DmitryR @ Dec 2 2010, 12:51) *
Естественно, надо голый трансивер ставить потому что.

Я уже убедился что с голым трансивером все в порядке.
Shtirlits
QUOTE (Methane @ Dec 2 2010, 12:57) *
Облом с тапом.
CODE
Error: Output port HIPDATAOUT of GXB receiver channel atom "top_example_chaining_pipen1b:core|top:epmap|top_serdes:serdes|top_serdes_alt4gxb_o08b:top_serdes_alt4gxb_o08b_component|receive_pcs0" must be connected to input port RXDATA of a PCIE HIP atom

- Вы их жрете чтоли?! (С)

Я имел в виду голый трансивер поставить на прием и воткнуть в компьютер.
Есть миллион и еще десяток ситуаций, в которых loopback будет работать, а с другим устройством связи не будет. И дальше двигаться неинтресно, слишком большое пространство вариантов что и почему может не работать.
Вы исходите из предположения, что неисправность вызвана использованием не нулевого трансиверного блока, а я из подозрений, что не напаяли терминаторы (если они нужны) или еще что-то не так с платой.
Methane
Цитата(Shtirlits @ Dec 2 2010, 16:23) *
Вы исходите из предположения, что неисправность вызвана использованием не нулевого трансиверного блока, а я из подозрений, что не напаяли терминаторы (если они нужны) или еще что-то не так с платой.


Ну, мне все же виднее. У меня заработало на нулевом блоке. Пришлось перепаять. Между прочим 2.5 гигабита прекрсно бегают по страшным на вид проводам.
http://77.87.39.155/DSC_3481.JPG
murmel1
А остальные ноги, подключенные к PCIe (reset и т.п.)? По умолчанию они становятся в GND, при этом BIOS не обнаруживает платку.
Methane
Цитата(murmel1 @ Dec 3 2010, 22:06) *
А остальные ноги, подключенные к PCIe (reset и т.п.)? По умолчанию они становятся в GND, при этом BIOS не обнаруживает платку.

Остальные не нужны. Для того чтобы PCIe нормально работал в режиме 1х нужно 4 сигнала.
Oldring
Цитата(Methane @ Dec 1 2010, 20:13) *
А на разьем PCIe повесил разьем выдранный из материнки, на котором TX двумя проводами подал на RX.


С двумя проводками нужно очень аккуратно. Там полтора гигагерца летает, и эквалайзер в приемнике не предусмотрен. Легко канал испортить до неузнаваемости.
Methane
Цитата(Oldring @ Dec 4 2010, 10:23) *
С двумя проводками нужно очень аккуратно. Там полтора гигагерца летает, и эквалайзер в приемнике не предусмотрен. Легко канал испортить до неузнаваемости.

Гораздо сложнее чем я думал. smile.gif
murmel1
Цитата(Methane @ Dec 4 2010, 05:01) *
Остальные не нужны. Для того чтобы PCIe нормально работал в режиме 1х нужно 4 сигнала.

Не нужны, но если будут заземлены, то комп может даже не грузится.
Methane
Цитата(murmel1 @ Dec 4 2010, 20:05) *
Не нужны, но если будут заземлены, то комп может даже не грузится.

Ага. А если +12 или +3.3 заземлить, то и загореться может. sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.