|
Моделирование высокоскоростных приемопередатчиков, Signal integrity MGH Flow, Xilinx GTP, GTX, RocketIO |
|
|
|
Mar 15 2011, 10:36
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Здравствуйте. Потребовалось сделать анализ целостности сигналов для дифф. пары 2,5ГГц. Кто нибудь это пробовал?Немного опишу свою ситуацию: есть некая конструкция из модулей и несущей платы, куда эти модули вставляются. Между модулями и несущей платой имеется соединения дифф. парами, длинны пар получаются разные от 15см до 30см. На разных модулях стоят Spartan6 или Virtex5 и предполагается что скоро будет делаться плата с Virtex6. Пока что, де факто, дифф. пары работают на частоте 622Мгц. Но скоро нужно будет запускать поделку на 2,5ГГц. Анализ целостности потребовался потому что имеются модули, которые работают нестабильно или не работают вообще - появляются ошибки в в потоке данных между несущей платой и модулем. Причем модули совершенно одинаковые (одинаковый набор микросхем, трассировка и т.п) - один работает, а другой нет. Есть мнение что проблема в том что некоторые вещи сделаны на грани допустимого, и в результате незначительные изменения в характеристиках микросхем (от модуля к модулю) приводят к сбоям. Теперь ближе к делу - у cadence в PCB SI User Guide есть глава MGH Flow Overview. Но к сожалению там много букв, а полезной информации почти 0. У xilinx есть 3 типа моделей для их приемопередатчиков. Одна модель это Hspice, вторая IBIS-AMI, а третья Eldo. Ни с чем из этого мне работать не приходилось... Как скрестить ужа и ежа, т.е PCB SI и Hspice написано в Allegro PCB SI – HSPICE Interface Guide. С моделями IBIS-AMI все сложнее... Хотя вначале казалось что это самый легкий путь. Как я понял это специальное расширение для IBIS, позволяющее моделировать мультигигабитные приемопередатчики, добавленное в IBISv5. Cadence почти год назад заявил о полной поддержке IBISv5. Но ни одного документа в help рассказывающего как этим пользоваться я не нашел. Гугление находит только всякие презентации, из информации в них только картинки. С eldo подробно не разбирался, понял только что ноги у него растут из mentor. В итоге, как я понял, реальным вариантом пока является hspice. На сайте cadence лежит Xilinx RocketIO Design Kit. С китом ознакомился очень бегло - понял что использует hspice. Пока сижу читаю документацию...
|
|
|
|
|
Mar 22 2011, 15:13
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Да... ответов просто море)) Раз так, то буду периодически делиться неким результатом, которого удалось добиться. Пока удалось запустить кит virtex2. Кит состоит из 2-х частей. Одна часть предоставляется xilinx и называется Signal Integrity Simulation Kit 3.0. В него входят собственно модели (hspice, icx, eldo), несколько примеров и документация на все это. А вторая часть кита, самая интересная, сделана cadence, называется Cadence_RocketIO_kit_v3.7. Эта часть показывает как пользоваться интерфейсом SI с hspice, есть готовые примеры моделей (на основе кита от xilinx), пример соединения между микросхемами и пример бакплэйна. Несколько слов как ставить кит cadence(в документации об этом скромно умалчивается) - в папке есть CadenceKitSetup.exe. Запускаем указываем пути к обоим китам, hspice и куда ставить результат совмещения китов. Утилитка сливает 2 кита в один, причем кит от cadence ложится в папку Examples кита xilinx. В последствии именно оттуда надо все запускать и пробовать моделировать. Последнее немного не очевидно, поэтому вначале я пытался делать что нибудь из кита cadence(который был до слияния 2-х китов), естественно ничего не работало - пути к моделям были не правильные. На эти грабли наступал не я один - тыкВот что получилось из одного из примеров:
|
|
|
|
|
Mar 22 2011, 15:22
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Ant_m @ Mar 15 2011, 14:36)  Здравствуйте. Потребовалось сделать анализ целостности сигналов для дифф. пары 2,5ГГц. Кто нибудь это пробовал?Немного опишу свою ситуацию: есть некая конструкция из модулей и несущей платы, куда эти модули вставляются. Между модулями и несущей платой имеется соединения дифф. парами, длинны пар получаются разные от 15см до 30см. На разных модулях стоят Spartan6 или Virtex5 и предполагается что скоро будет делаться плата с Virtex6. Пока что, де факто, дифф. пары работают на частоте 622Мгц. Но скоро нужно будет запускать поделку на 2,5ГГц. Анализ целостности потребовался потому что имеются модули, которые работают нестабильно или не работают вообще - появляются ошибки в в потоке данных между несущей платой и модулем. Причем модули совершенно одинаковые (одинаковый набор микросхем, трассировка и т.п) - один работает, а другой нет. Есть мнение что проблема в том что некоторые вещи сделаны на грани допустимого, и в результате незначительные изменения в характеристиках микросхем (от модуля к модулю) приводят к сбоям. Теперь ближе к делу - у cadence в PCB SI User Guide есть глава MGH Flow Overview. Но к сожалению там много букв, а полезной информации почти 0. У xilinx есть 3 типа моделей для их приемопередатчиков. Одна модель это Hspice, вторая IBIS-AMI, а третья Eldo. Ни с чем из этого мне работать не приходилось... Как скрестить ужа и ежа, т.е PCB SI и Hspice написано в Allegro PCB SI – HSPICE Interface Guide. С моделями IBIS-AMI все сложнее... Хотя вначале казалось что это самый легкий путь. Как я понял это специальное расширение для IBIS, позволяющее моделировать мультигигабитные приемопередатчики, добавленное в IBISv5. Cadence почти год назад заявил о полной поддержке IBISv5. Но ни одного документа в help рассказывающего как этим пользоваться я не нашел. Гугление находит только всякие презентации, из информации в них только картинки. С eldo подробно не разбирался, понял только что ноги у него растут из mentor. В итоге, как я понял, реальным вариантом пока является hspice. На сайте cadence лежит Xilinx RocketIO Design Kit. С китом ознакомился очень бегло - понял что использует hspice. Пока сижу читаю документацию...  HyperLynx не рассматриваете? Берете на Xilinx кит для Eldo и вперед... (Eldo - SPICE симулятор, входит в HyperLynx)
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Mar 22 2011, 17:23
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Цитата(Victor® @ Mar 22 2011, 18:22)  HyperLynx не рассматриваете? Берете на Xilinx кит для Eldo и вперед... (Eldo - SPICE симулятор, входит в HyperLynx) Да я бы рад, но HyperLynx не знаю  Нужно будет изучать сам HyperLynx, а потом еще научится как из allegro передать параметры для моделирования... А в перспективе еще моделировать многоплатные проекты... Тут на полгода возни, чтения бумажек и втыкания в примеры. А так, с allegro SI, я хоть немного но знаком... Хотя буду рад если дадите пинка литературы в нужном направлении.
|
|
|
|
|
Mar 22 2011, 18:34
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Ant_m @ Mar 22 2011, 20:23)  Да я бы рад, но HyperLynx не знаю  Нужно будет изучать сам HyperLynx, а потом еще научится как из allegro передать параметры для моделирования... А в перспективе еще моделировать многоплатные проекты... Тут на полгода возни, чтения бумажек и втыкания в примеры. А так, с allegro SI, я хоть немного но знаком... Хотя буду рад если дадите пинка литературы в нужном направлении. А Вы попробуйте сначала. Там все не так страшно на самом деле. Импорт, по крайней мере, очень быстро делается. В освоении он точно не сложнее аллегро.
|
|
|
|
|
Mar 22 2011, 19:24
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(Ant_m @ Mar 22 2011, 21:23)  Да я бы рад, но HyperLynx не знаю  Нужно будет изучать сам HyperLynx, а потом еще научится как из allegro передать параметры для моделирования... А в перспективе еще моделировать многоплатные проекты... Тут на полгода возни, чтения бумажек и втыкания в примеры. А так, с allegro SI, я хоть немного но знаком... Хотя буду рад если дадите пинка литературы в нужном направлении. Да тут на фтп было... на днях только качал для повторения... да и забыл откуда именно
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Apr 8 2011, 07:55
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Нашел кит, показывающий как использовать модели AMI. Буквально у себя под носом \SPB_16.3\share\pcb\channelanalysis\ami\toolkit Интересно будет сделать IBIS модельку AMI и попробовать ее использовать. C hspice моделями и китом пока продолжаю разбираться... Пытаюсь вьехать как подается сигнал от stimulus в модель, и каким боком там делает PRBS генератор. Основная проблема в том, что модели в ките написаны аж на 3-х языках. Точнее, язык то один - DML. Но в нем есть вставки на Espice, а в Espice есть вставки на Hspice. Вот такая матрешка Пробовал Hyperlynx, впечатления неоднозначные... Правда я пробовал только с IBIS, до eldo не дошел: надо подробно читать доки. Возможно если бы я знал его лучше или использовал весь пакет ментора для проектирования платы, схемы и пр. то было бы удобно им пользоваться. А так, овчинка выделки не стоит, cadence дает те-же возможности.
|
|
|
|
|
May 26 2011, 06:19
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Продолжу описывать свои изыски с моделированием... После продолжительной войны с морем документации смог разобраться как работают модели в ките virtex2pro. В результате разбирательств нашел несколько своих ошибок, сделанный при попытке запустить кит virtex2 на частоте 2,5ГГц, а не на 3,125ГГц. В результате картинки стали гораздо лучше:
На этом возню с китом virtex2 я закончил и начал заниматься тем что меня собственно интересовало - Spartan6. Тут кроме кита virtex2 и самого Spartan6 мне хорошо помог кит Altera Stratix II GX 6 Gbps Simulation Kit for Cadence Allegro PCB SI. Кит Spartan6 (лежит на сайте Xilinx) для hspice, в целом, запускается легко. Нужно определить только несколько переменных в среде windows. Тестовые примеры из папки testbenches запускаются и работают (я проверял только GTP, а на refclk не было времени). Тут есть один тормозящий момент - компьютер(P4 3.2GHz 3.5GB RAM). Кит Spartan6 моделируется раза в 4 медленнее чем virtex2  В результате моделирование 40нс занимает примерно 1 час. При этом надо моделировать как минимум 150-300нс, из которых первые 50-100 нс бесполезны, т.к уходят на переходные процессы в линии... Пробовал включить многопоточность, но ускорения это не принесло. Даже наоборот, моделирование идет медленнее. Хотя процессор в 2 потока грузится на все 100%, а с одним потоком загрузка 50%. На текущий момент есть черновой вариант библиотеки Spartan6 GTP. Модели в целом работают, но не решено несколько моментов: - добавлены, но не проверенны модели корпуса Spartan6 tstone. - нет возможности внести джиттер в синхронизацию передатчика. - некоторые характеристики IBIS заданны "от балды". Это не влияет на форму сигнала, просто среда моделирования неправильно определяет характеристики импульсов (типа скорости нарастания, задержки и т.п) - остался некоторый мусор(в основном закомментированный) от предыдущих попыток.
Вот собственно библиотека и пример -
model_GTP_S6.zip ( 11.96 килобайт )
Кол-во скачиваний: 83В примере DP_DATABACK.top есть резистор R1, это артефакт оставшийся когда я работал моделью передатчика без приемника. И еще микроинструкция как это установить, написанная для себя -
________________________S6_GTP.pdf ( 155.87 килобайт )
Кол-во скачиваний: 279Кроме этого я попытался запустить модель IBISv5 c AMI содержимым. Модель взял на сайте SiSoft. В модели, на тот момент (месяц назад) была простая синтаксическая ошибка - нужно было пару строк поднять повыше... Дальнейшие попытки запустить закончились ничем. Конвертер моделей из IBIS в dml не работает, и просто закрывается. Model integrity выдает следующее: Цитата RUNNING IBISCHK COMMAND: ibischk5 "D:\Design\worklib\simul\physical\models\sisoft_tx.ibs" IBISCHK5 V5.0.3
Checking D:\Design\worklib\simul\physical\models\sisoft_tx.ibs for IBIS 4.2 Compatibility...
ERROR (line 102) - Invalid Keyword: Algorithmic_Model ERROR (line 103) - Data for unknown keyword. Executable Windows_VisualStudio_32 IBIS_AMI_Tx.dll IBIS_AMI_Tx.ami ERROR (line 104) - Data for unknown keyword. Executable linux_gcc3.2.3_32 libIBIS_AMI_Tx.so IBIS_AMI_Tx.ami ERROR (line 105) - Invalid Keyword: End_Algorithmic_Model
Errors : 4
File Failed В общем нет полной поддержки IBISv5. По идее это можно обойти - вручную написать модель на dml. Пример от cadence лежит на офф. сайте IBIS, и еще кое что в \SPB_16.3\share\pcb\channelanalysis\ami\toolkit.
|
|
|
|
|
May 31 2011, 10:45
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Модели разъемов есть. Например в ките Virtex 2 pro, для примера лежит
Teradyne_HSD.zip ( 1.12 мегабайт )
Кол-во скачиваний: 93Наверняка есть и другие, только возможно что их непросто будет достать, NDA и все такое... Аттенюатор это будет не честно, там скорее вносится неравномерность импеданса и соответственно дополнительная емкость и индуктивность... Я пока до разъемов не дошел, но это следующий шаг.
|
|
|
|
|
Jun 10 2011, 06:11
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Довел модель до уровня, когда можно считать все готово! Потратил уйму времени на проверку и подключения модели корпуса. Оказалось что tstone файлы корпусов в модели Spartan6 и Virtex2Pro отличаются. Файлы представляют собой 4-полюсники, у одного входы-выходы были in1 in2 out1 out2, а у другого in1 out1 in2 out2. В результате входы соединились вместе и выходы тоже. И модель перестала работать, само моделирование идет, а результата нет. Можно до бесконечности ждать.  Исправил это и все заработало. В инструкцию по использованию добавил информацию о настройке SI. Модель с примерами
S6GTP_Model_PKG.zip ( 13.13 килобайт )
Кол-во скачиваний: 94Инструкция по установке S6_GTP
________________________S6_GTP.pdf ( 260.34 килобайт )
Кол-во скачиваний: 537
|
|
|
|
|
Jun 10 2011, 07:30
|
Знающий
   
Группа: Свой
Сообщений: 756
Регистрация: 14-08-07
Из: Москва
Пользователь №: 29 765

|
Результат пока в процессе  Нужно еще насобирать моделей SFP, разъемов... На 136 мм и 2,5ГГц точно можно, между 2-мя GTP. Такая величина в примере, импеданс правда, не того... Но это пример взятый из кита cadence, править я его не стал. Основная цель всей работы была освоить методику моделирования и составления своих моделей. До своей реальной платы я пока не дошел. З.Ы. Могу дать файлик с результатом моделирования 100нс. Сжатый 7z - 6мег. В модель его вкладывать не стал, он слишком много места занимает. Но смотреть там особо нечего - переходной процесс 50нс и 50 нс сигнала. Нужно моделировать минимум 200нс, а лучше 250 нс, тогда можно будет построить глазковую диаграмму.
|
|
|
|
|
Jun 12 2011, 09:17
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Ant_m @ Jun 10 2011, 11:30)  Нужно еще насобирать моделей SFP, разъемов... Большая просьба, если что-то найдете, то отпишите здесь. А то я сколько ни пытал тот же Tyco Electronics, например, на предмет моделей разъемов, они все только завтраками кормят, либо вообще молчат. Про SFP вообще нигде не видел, думаю, что их и нет вовсе...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|