alexadmin 0 24 апреля, 2012 Опубликовано 24 апреля, 2012 · Жалоба Требуется совет человека, сталкивавшегося непосредственно или более внимательно, чем я прочитавшего доку: у альтеры в юзергайде на ядро PCIe всюду подразумевается, что refclk приходит на специальный вход трансивера, однако в качестве обязательного требования, что только так и никак иначе (насколько я понимаю английским по белому) это не прописано. По ряду причин есть идея подключить референсный клок через обычные входы FPGA. Попробовал (на Arria II GX) - собирает успешно, что напрямую с клоковых входов, что через PLL. Но как-то боязно... Нет ли у кого опыта на этот счет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cioma 0 24 апреля, 2012 Опубликовано 24 апреля, 2012 · Жалоба По идее надо подключать на отдельный клоковый вход PLL, выделенного для трансиверов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tue 0 24 апреля, 2012 Опубликовано 24 апреля, 2012 · Жалоба Если речь идет о микросхемах серии Arria 2 GX, то можно подключать как на специальный REFCLK0..n, так и на "обычный вход GCLK" (не REFCLK0..n). Но следует иметь ввиду, что сигнал refclk на разъеме PCIe заходит в ПЛИС как HCSL. Не все "обычные входы GCLK" поддерживают такой стандарт ввода. Если не привязываться именно к PCIe, то трансиверы в микросхемах Arria 2 GX можно запитывать частотой довольно многими способами (REFCLK0..n, GCLK, GCLK --> PLL --> ALTGX). В микросхемах Cyclone 4 GX способ "GCLK --> PLL --> ALTGX" не работает. Способы (REFCLK0..n, GCLK) - проект собирается в Квартусе. Но в железе я использовал только REFCLK0..n Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 24 апреля, 2012 Опубликовано 24 апреля, 2012 · Жалоба у альтеры в юзергайде на ядро PCIe всюду подразумевается, что refclk приходит на специальный вход трансивера, однако в качестве обязательного требования, что только так и никак иначе (насколько я понимаю английским по белому) это не прописано. Я не понимаю. Зачем вам грабли? Альтера тоже не писала что для PCIe можно использовать только нулевые GBX а не первые. И квартус работал не ругался. Вот только железяка не работала. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aosp 0 25 апреля, 2012 Опубликовано 25 апреля, 2012 · Жалоба Я не понимаю. Зачем вам грабли? Альтера тоже не писала что для PCIe можно использовать только нулевые GBX а не первые. И квартус работал не ругался. Вот только железяка не работала. PCIE_REFCLK (100МГц) по идее можно вообще в кристалл не заводить. Эту частоту можно синтезировать на внутренних PLL и подавать с внутренних линий синхронизации. У меня так один проект работает, без каких либо проблем. Да, там есть нюансы с еластичным буфером, но он есть и работает. Главное чтоб опорные частоты не слишком сильно отличались Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 25 апреля, 2012 Опубликовано 25 апреля, 2012 · Жалоба Благодарю всех за помощь. То, что различные варианты работают в железе - ценная информация. На грабли наступать действительно не хочется... Но у заказчика есть Идея - постараться сделать универсальную платформу, которая сможет выступать как в качестве root point, так и end point (предполагается кабельная версия PCIe). Соответственно, прорабатываются варианты, насколько это реализуемо с практической точки зрения... В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 25 апреля, 2012 Опубликовано 25 апреля, 2012 · Жалоба В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать... http://electronix.ru/forum/index.php?showtopic=73928 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cioma 0 25 апреля, 2012 Опубликовано 25 апреля, 2012 · Жалоба А что мешает поставить отдельный генератор на 100 МГц - вот и будет Вам универсальность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
superdetka 0 25 апреля, 2012 Опубликовано 25 апреля, 2012 · Жалоба Требуется совет человека, сталкивавшегося непосредственно или более внимательно, чем я прочитавшего доку: у альтеры в юзергайде на ядро PCIe всюду подразумевается, что refclk приходит на специальный вход трансивера, однако в качестве обязательного требования, что только так и никак иначе (насколько я понимаю английским по белому) это не прописано. По ряду причин есть идея подключить референсный клок через обычные входы FPGA. Попробовал (на Arria II GX) - собирает успешно, что напрямую с клоковых входов, что через PLL. Но как-то боязно... Нет ли у кого опыта на этот счет? У меня был печальный опыт с такой проблемой, поиск её составил около 2-х недель. Я работал с Serial RapidIO ядром на Xilinx Spartan 6. Области применения PCIe и SRIO почти совпадают, в интернете много сравнений между ними. Так вот, в документации на ядро было также черно по белому сказано, что ЛУЧШЕ прикрутить внешний осциллятор с необходимой частотой, напрямую к сециальным входам аппаратных трансиверов. Для этого пришлось бы делать отдельную плату с осциллятором, поскольку на отладочной плате с ПЛИС его не было. И я решил взять и поделить 200 Мгц через внутренний PLL ПЛИС. С такой архитектурой проект работал без проблем полгода, пока не начили производить отладку моего девайса с DSP. Для теста сделали по loopback гоняли данные. И все пакеты проходили на ура, но когда данные в пакете SRIO были равны значению 0x4A, линк рушился между контроллерами. Конечно ошибку я искал у себя в ПЛИС проекте, потому что ошибиться на С в DSP было более сложно. И 2 недели исправлений проекта и головной боли. Пока ссылка в гугле не раскрыла значение числа 0х4A. Это какой паттерн в шифровании 8/10, и кодируется он 10101010, что вводило рассинхронизацию между трансиверами и они затыкались. Сделали плату с отдельным осциллятором , подсоединили и все заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tue 0 26 апреля, 2012 Опубликовано 26 апреля, 2012 · Жалоба В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать... А зачем не использовать приходящий клок ? Ведь ставить свой набортный генератор - это дополнительные расходы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 4 мая, 2012 Опубликовано 4 мая, 2012 · Жалоба Но у заказчика есть Идея - постараться сделать универсальную платформу, которая сможет выступать как в качестве root point, так и end point Вы посмотрите сначала, какие ПЛИС имеют внутри PCIe root и сколько они стоят. IMHO не очень хорошая идея: root нужен реже, чем endpoint, и можно существенно сэкономить, сделав endpoint на дешевых чипах, благо endpoint есть даже в Циклонах. А так у вас вся партия будет на дорогих ПЛИС, поддерживающих root. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
warrior-2001 0 11 мая, 2012 Опубликовано 11 мая, 2012 · Жалоба Требуется совет человека, сталкивавшегося непосредственно ... Помнится мне, что квартус выдает warning, если клок для Hard IP PCIe заведен не на соответствующий клоковый вход высокоскоростного трансивера. Уж очень много недосказано в мануале на этот Hard IP PCIe. На форуме альтера очень много косяков описывается, и далеко не все они есть в errdata. Вот поверьте опыту - не раз я спорил со схемотехниками по поводу можно/нельзя. И всегда, когда нарушались даже не строгие требования разработчика ПЛИС(хоть Altera, хоть Xilinx) приходилось потом либо выкручиваться, либо переделывать плату. Использование стороннего клока теоретически может и возможно, но кто даст гарантию на то, что это заработает в печке на максимальной скорости при загрузке кристалла более 85%(когда ПЛИС будет максимально греться). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Methane 0 11 мая, 2012 Опубликовано 11 мая, 2012 · Жалоба Помнится мне, что квартус выдает warning, если клок для Hard IP PCIe заведен не на соответствующий клоковый вход высокоскоростного трансивера. Уж очень много недосказано в мануале на этот Hard IP PCIe. На форуме альтера очень много косяков описывается, и далеко не все они есть в errdata. Вот поверьте опыту - не раз я спорил со схемотехниками по поводу можно/нельзя. И всегда, когда нарушались даже не строгие требования разработчика ПЛИС(хоть Altera, хоть Xilinx) приходилось потом либо выкручиваться, либо переделывать плату. Использование стороннего клока теоретически может и возможно, но кто даст гарантию на то, что это заработает в печке на максимальной скорости при загрузке кристалла более 85%(когда ПЛИС будет максимально греться). Что мешает поставить клок генератор и завести родной клок. Вообще, а в чем проблемы завести клок с мамки? Там два входа для клока. ЗЫ, главное в железном PCIe, это то что оно работает ТОЛЬКО с нулевым, или первыми четырмя, или со всеми восемью трансиверами. Завести PCIе на первый блок в котором 4е штуки трансиверов, работать не будет. И девятый квартус на это не ругался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FLTI 0 3 января, 2013 Опубликовано 3 января, 2013 · Жалоба ЗЫ, главное в железном PCIe, это то что оно работает ТОЛЬКО с нулевым, или первыми четырмя, или со всеми восемью трансиверами. Завести PCIе на первый блок в котором 4е штуки трансиверов, работать не будет. И девятый квартус на это не ругался. Quartus II Mapping Issue with a PCIe x1 Interface Using the Hard IP Block The Quartus II software version 10.0 SP1 and prior releases incorrectly allowed logical channel 0 to be placed in any physical channel for the PCIe Gen1 x1 interface with the hard IP block. For correct operation with the hard IP block, logical channel 0 must be placed in physical channel 0. This issue is fixed in the Quartus II software version 10.1. Источник: es_cyciv Errata Sheet.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться