|
|
  |
Подключение refclk (100 MHz) к Hard PCIe core (Altera) |
|
|
|
Apr 25 2012, 06:20
|

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

|
Цитата(Methane @ Apr 24 2012, 23:10)  Я не понимаю. Зачем вам грабли? Альтера тоже не писала что для PCIe можно использовать только нулевые GBX а не первые. И квартус работал не ругался. Вот только железяка не работала. PCIE_REFCLK (100МГц) по идее можно вообще в кристалл не заводить. Эту частоту можно синтезировать на внутренних PLL и подавать с внутренних линий синхронизации. У меня так один проект работает, без каких либо проблем. Да, там есть нюансы с еластичным буфером, но он есть и работает. Главное чтоб опорные частоты не слишком сильно отличались
|
|
|
|
|
Apr 25 2012, 14:17
|
Местный
  
Группа: Участник
Сообщений: 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, что вводило рассинхронизацию между трансиверами и они затыкались. Сделали плату с отдельным осциллятором , подсоединили и все заработало.
|
|
|
|
|
Apr 26 2012, 05:24
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 7-09-05
Из: Москва
Пользователь №: 8 340

|
Цитата(alexadmin @ Apr 25 2012, 11:04)  В режиме endpoint вообще не использовать приходящий клок - мысль тоже интересная. Будем думать... А зачем не использовать приходящий клок ? Ведь ставить свой набортный генератор - это дополнительные расходы.
|
|
|
|
|
May 4 2012, 14:58
|
Профессионал
    
Группа: Свой
Сообщений: 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.
|
|
|
|
|
May 11 2012, 09:13
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

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

Гуру
     
Группа: Свой
Сообщений: 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е штуки трансиверов, работать не будет. И девятый квартус на это не ругался.
|
|
|
|
|
Jan 3 2013, 18:54
|
Местный
  
Группа: Свой
Сообщений: 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 BlockThe 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
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|