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

 
 
 
Reply to this topicStart new topic
> Подключение refclk (100 MHz) к Hard PCIe core (Altera)
alexadmin
сообщение Apr 24 2012, 09:34
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Требуется совет человека, сталкивавшегося непосредственно или более внимательно, чем я прочитавшего доку: у альтеры в юзергайде на ядро PCIe всюду подразумевается, что refclk приходит на специальный вход трансивера, однако в качестве обязательного требования, что только так и никак иначе (насколько я понимаю английским по белому) это не прописано. По ряду причин есть идея подключить референсный клок через обычные входы FPGA. Попробовал (на Arria II GX) - собирает успешно, что напрямую с клоковых входов, что через PLL. Но как-то боязно... Нет ли у кого опыта на этот счет?
Go to the top of the page
 
+Quote Post
cioma
сообщение Apr 24 2012, 11:26
Сообщение #2


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

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



По идее надо подключать на отдельный клоковый вход PLL, выделенного для трансиверов.
Go to the top of the page
 
+Quote Post
Tue
сообщение Apr 24 2012, 12:40
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340



Если речь идет о микросхемах серии 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
Go to the top of the page
 
+Quote Post
Methane
сообщение Apr 24 2012, 19:10
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(alexadmin @ Apr 24 2012, 12:34) *
у альтеры в юзергайде на ядро PCIe всюду подразумевается, что refclk приходит на специальный вход трансивера, однако в качестве обязательного требования, что только так и никак иначе (насколько я понимаю английским по белому) это не прописано.

Я не понимаю. Зачем вам грабли? Альтера тоже не писала что для PCIe можно использовать только нулевые GBX а не первые. И квартус работал не ругался. Вот только железяка не работала.
Go to the top of the page
 
+Quote Post
aosp
сообщение Apr 25 2012, 06:20
Сообщение #5


к.т.н.
***

Группа: Модераторы
Сообщений: 242
Регистрация: 21-06-04
Из: Санкт–Петербург, Россия
Пользователь №: 75



Цитата(Methane @ Apr 24 2012, 23:10) *
Я не понимаю. Зачем вам грабли? Альтера тоже не писала что для PCIe можно использовать только нулевые GBX а не первые. И квартус работал не ругался. Вот только железяка не работала.


PCIE_REFCLK (100МГц) по идее можно вообще в кристалл не заводить.
Эту частоту можно синтезировать на внутренних PLL и подавать с внутренних линий синхронизации.
У меня так один проект работает, без каких либо проблем.
Да, там есть нюансы с еластичным буфером, но он есть и работает. Главное чтоб опорные частоты не слишком
сильно отличались
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Apr 25 2012, 08:04
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Благодарю всех за помощь. То, что различные варианты работают в железе - ценная информация. На грабли наступать действительно не хочется... Но у заказчика есть Идея - постараться сделать универсальную платформу, которая сможет выступать как в качестве root point, так и end point (предполагается кабельная версия PCIe). Соответственно, прорабатываются варианты, насколько это реализуемо с практической точки зрения... В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать...
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Apr 25 2012, 10:03
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Цитата(alexadmin @ Apr 25 2012, 12:04) *
В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать...

http://electronix.ru/forum/index.php?showtopic=73928
Go to the top of the page
 
+Quote Post
cioma
сообщение Apr 25 2012, 13:22
Сообщение #8


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

Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65



А что мешает поставить отдельный генератор на 100 МГц - вот и будет Вам универсальность.
Go to the top of the page
 
+Quote Post
Kirill_Good
сообщение Apr 25 2012, 14:17
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 10-12-10
Из: Москва
Пользователь №: 61 528



Цитата(alexadmin @ Apr 24 2012, 13:34) *
Требуется совет человека, сталкивавшегося непосредственно или более внимательно, чем я прочитавшего доку: у альтеры в юзергайде на ядро 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, что вводило рассинхронизацию между трансиверами и они затыкались. Сделали плату с отдельным осциллятором , подсоединили и все заработало.
Go to the top of the page
 
+Quote Post
Tue
сообщение Apr 26 2012, 05:24
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340



Цитата(alexadmin @ Apr 25 2012, 11:04) *
В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать...

А зачем не использовать приходящий клок ? Ведь ставить свой набортный генератор - это дополнительные расходы.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение May 4 2012, 14:58
Сообщение #11


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(alexadmin @ Apr 25 2012, 12:04) *
Но у заказчика есть Идея - постараться сделать универсальную платформу, которая сможет выступать как в качестве root point, так и end point

Вы посмотрите сначала, какие ПЛИС имеют внутри PCIe root и сколько они стоят. IMHO не очень хорошая идея: root нужен реже, чем endpoint, и можно существенно сэкономить, сделав endpoint на дешевых чипах, благо endpoint есть даже в Циклонах. А так у вас вся партия будет на дорогих ПЛИС, поддерживающих root.
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение May 11 2012, 09:13
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(alexadmin @ Apr 24 2012, 13:34) *
Требуется совет человека, сталкивавшегося непосредственно ...


Помнится мне, что квартус выдает warning, если клок для Hard IP PCIe заведен не на соответствующий клоковый вход высокоскоростного трансивера.
Уж очень много недосказано в мануале на этот Hard IP PCIe. На форуме альтера очень много косяков описывается, и далеко не все они есть в errdata.
Вот поверьте опыту - не раз я спорил со схемотехниками по поводу можно/нельзя. И всегда, когда нарушались даже не строгие требования разработчика ПЛИС(хоть Altera, хоть Xilinx) приходилось потом либо выкручиваться, либо переделывать плату.
Использование стороннего клока теоретически может и возможно, но кто даст гарантию на то, что это заработает в печке на максимальной скорости при загрузке кристалла более 85%(когда ПЛИС будет максимально греться).


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Methane
сообщение May 11 2012, 18:52
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(warrior-2001 @ May 11 2012, 12:13) *
Помнится мне, что квартус выдает warning, если клок для Hard IP PCIe заведен не на соответствующий клоковый вход высокоскоростного трансивера.
Уж очень много недосказано в мануале на этот Hard IP PCIe. На форуме альтера очень много косяков описывается, и далеко не все они есть в errdata.
Вот поверьте опыту - не раз я спорил со схемотехниками по поводу можно/нельзя. И всегда, когда нарушались даже не строгие требования разработчика ПЛИС(хоть Altera, хоть Xilinx) приходилось потом либо выкручиваться, либо переделывать плату.
Использование стороннего клока теоретически может и возможно, но кто даст гарантию на то, что это заработает в печке на максимальной скорости при загрузке кристалла более 85%(когда ПЛИС будет максимально греться).

Что мешает поставить клок генератор и завести родной клок. Вообще, а в чем проблемы завести клок с мамки? Там два входа для клока.

ЗЫ, главное в железном PCIe, это то что оно работает ТОЛЬКО с нулевым, или первыми четырмя, или со всеми восемью трансиверами. Завести PCIе на первый блок в котором 4е штуки трансиверов, работать не будет. И девятый квартус на это не ругался.
Go to the top of the page
 
+Quote Post
FLTI
сообщение Jan 3 2013, 18:54
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 399
Регистрация: 8-06-05
Пользователь №: 5 832



Цитата(Methane @ May 11 2012, 21:52) *
ЗЫ, главное в железном 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
Go to the top of the page
 
+Quote Post

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

 


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


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