Jump to content

    
Sign in to follow this  
VslavX

Учет внутренних цепей пина (от шарика BGA до кристалла)

Recommended Posts

В данный момент трассируется плата с DDR-400. По аппнотам производителя контроллера памяти рекомендуется выравнивание цепей на плате в группах данных с точностью не хуже 25 милс. Но сам корпус чипа довольно большой - BGA 35x35 мм и некоторые ножки в группах разнесены достаточно далеко.

В различных других аппнотах (от производителей памяти, например) пишут что надо учитывать длину проводников внутри микросхем - от контакта внешнего корпуса до собственно кристалла. А где следует взять данные о внутренней длине пинов? Такой информации в явном виде производитель не дает. Вероятно, эти данные возможно вычислить из паразитных параметров из IBIS модели? HyperLynx, например, похоже что-то подобное вытаскивает из IBIS при моделировании - эффективная длина до согласующего резистора оказывается больше явно указанной на модели.

Каким образом эту внутренюю длину пинов следует учесть? Задать предварительные параметры цепей, получить общую эффективную длину предварительным моделиорванием и потом использовать ее при трассировке? Или предварительно отказаться от точного выравнивания цепей и выравнивать уже на финише с моделированием и с подгонкой общего времени распространения, а не тупо по длине.

Как "правильнее" делается в таких случаях?

Share this post


Link to post
Share on other sites
В данный момент трассируется плата с DDR-400. По аппнотам производителя контроллера памяти рекомендуется выравнивание цепей на плате в группах данных с точностью не хуже 25 милс. Но сам корпус чипа довольно большой - BGA 35x35 мм и некоторые ножки в группах разнесены достаточно далеко.

В различных других аппнотах (от производителей памяти, например) пишут что надо учитывать длину проводников внутри микросхем - от контакта внешнего корпуса до собственно кристалла. А где следует взять данные о внутренней длине пинов? Такой информации в явном виде производитель не дает. Вероятно, эти данные возможно вычислить из паразитных параметров из IBIS модели? HyperLynx, например, похоже что-то подобное вытаскивает из IBIS при моделировании - эффективная длина до согласующего резистора оказывается больше явно указанной на модели.

Каким образом эту внутренюю длину пинов следует учесть? Задать предварительные параметры цепей, получить общую эффективную длину предварительным моделиорванием и потом использовать ее при трассировке? Или предварительно отказаться от точного выравнивания цепей и выравнивать уже на финише с моделированием и с подгонкой общего времени распространения, а не тупо по длине.

Как "правильнее" делается в таких случаях?

Мы как раз доразводим INTEL IXP465 с DDR266(немножко попроще чем у Вас), так в аппликушнике от Интел эта длина дана. В IBISе мы ее не нашли. Дальше возникает проблема объяснить эту длину КАДу.

Share this post


Link to post
Share on other sites
В данный момент трассируется плата с DDR-400. По аппнотам производителя контроллера памяти рекомендуется выравнивание цепей на плате в группах данных с точностью не хуже 25 милс. Но сам корпус чипа довольно большой - BGA 35x35 мм и некоторые ножки в группах разнесены достаточно далеко.

В различных других аппнотах (от производителей памяти, например) пишут что надо учитывать длину проводников внутри микросхем - от контакта внешнего корпуса до собственно кристалла. А где следует взять данные о внутренней длине пинов? Такой информации в явном виде производитель не дает. Вероятно, эти данные возможно вычислить из паразитных параметров из IBIS модели? HyperLynx, например, похоже что-то подобное вытаскивает из IBIS при моделировании - эффективная длина до согласующего резистора оказывается больше явно указанной на модели.

Каким образом эту внутренюю длину пинов следует учесть? Задать предварительные параметры цепей, получить общую эффективную длину предварительным моделиорванием и потом использовать ее при трассировке? Или предварительно отказаться от точного выравнивания цепей и выравнивать уже на финише с моделированием и с подгонкой общего времени распространения, а не тупо по длине.

Как "правильнее" делается в таких случаях?

 

В IBIS может быть задано R, L, C, для каждого пина (раздел Pin в файле) это и есть, насколько я понимаю, представление проводника внутри корпуса. Бывает также задано R_pkg, L_pkg и C_pkg со значениями мин. тип. макс. это значения по умолчанию для всех пинов у которых нет своих R, L, C.

 

Учесть эту длину просто: создать эквивалентную схему цепи в HL (насколько я понял она уже у вас есть) и при моделировании выяснить нужные конечные длины трасс, которые и использовать при трассировке.

Share this post


Link to post
Share on other sites
В IBIS может быть задано R, L, C, для каждого пина (раздел Pin в файле) это и есть, насколько я понимаю, представление проводника внутри корпуса. Бывает также задано R_pkg, L_pkg и C_pkg со значениями мин. тип. макс. это значения по умолчанию для всех пинов у которых нет своих R, L, C.

 

Учесть эту длину просто: создать эквивалентную схему цепи в HL (насколько я понял она уже у вас есть) и при моделировании выяснить нужные конечные длины трасс, которые и использовать при трассировке.

Угу, именно так HL и делает (я пока предварительно LineSim использую с подключенными IBIS) - делаешь трассу до последовательного резистора 200 милс, запускаешь Termination Wizard, а он ругается - "эффективная длина 300 милс до Rs великовата" и цифра 300 изменяется - для каждого пина своя. Сейчас ищу способ получить эти длины скопом в каком-либо отчете, а не вставляя 700+ пинов в LineSim.

P.S. Всем спасибо за комментарии.

Share this post


Link to post
Share on other sites

В IBIS может быть задано R, L, C, для каждого пина (раздел Pin в файле) это и есть, насколько я понимаю, представление проводника внутри корпуса. Бывает также задано R_pkg, L_pkg и C_pkg со значениями мин. тип. макс. это значения по умолчанию для всех пинов у которых нет своих R, L, C.

 

Учесть эту длину просто: создать эквивалентную схему цепи в HL (насколько я понял она уже у вас есть) и при моделировании выяснить нужные конечные длины трасс, которые и использовать при трассировке.

Угу, именно так HL и делает (я пока предварительно LineSim использую с подключенными IBIS) - делаешь трассу до последовательного резистора 200 милс, запускаешь Termination Wizard, а он ругается - "эффективная длина 300 милс до Rs великовата" и цифра 300 изменяется - для каждого пина своя. Сейчас ищу способ получить эти длины скопом в каком-либо отчете, а не вставляя 700+ пинов в LineSim.

P.S. Всем спасибо за комментарии.

 

На самом деле можете просто открыть IBIS и посмотреть сколько разных вариантов параметров R,L,C есть в секции Pin. По идее количество этих вариантов равно или меньше кол-ва рядов на корпусе BGA.

Т.е. вариантов будет десяток. а не 700+

Share this post


Link to post
Share on other sites

пина своя. Сейчас ищу способ получить эти длины скопом в каком-либо отчете, а не вставляя 700+ пинов в LineSim.

На самом деле можете просто открыть IBIS и посмотреть сколько разных вариантов параметров R,L,C есть в секции Pin. По идее количество этих вариантов равно или меньше кол-ва рядов на корпусе BGA.

Т.е. вариантов будет десяток. а не 700+

Не-а, я тоже так думал :( Но в IBIS у каждого пина прописаны свои R, L, C (+ модель буфера, вот моделей действительно всего с десяток-другой). R - четыре цифры, L,C - по три значащих цифры. Если подумать, то они и не могут быть одинаковыми для разных пинов - например, два разряда шины данных в двух разных рядах, по разному удалены от кристалла, и ессно имеют разные R,L,C - длина и путь внутри корпуса разные (BGA вроде как на PCB с микроотверстиями сделан).

Share this post


Link to post
Share on other sites

пина своя. Сейчас ищу способ получить эти длины скопом в каком-либо отчете, а не вставляя 700+ пинов в LineSim.

На самом деле можете просто открыть IBIS и посмотреть сколько разных вариантов параметров R,L,C есть в секции Pin. По идее количество этих вариантов равно или меньше кол-ва рядов на корпусе BGA.

Т.е. вариантов будет десяток. а не 700+

Не-а, я тоже так думал :( Но в IBIS у каждого пина прописаны свои R, L, C (+ модель буфера, вот моделей действительно всего с десяток-другой). R - четыре цифры, L,C - по три значащих цифры. Если подумать, то они и не могут быть одинаковыми для разных пинов - например, два разряда шины данных в двух разных рядах, по разному удалены от кристалла, и ессно имеют разные R,L,C - длина и путь внутри корпуса разные (BGA вроде как на PCB с микроотверстиями сделан).

 

Согласен. Открыл описание по Intel845 - для большинства пинов указаны разные Package Length, хотя и есть повторения

Share this post


Link to post
Share on other sites

В IBIS может быть задано R, L, C, для каждого пина (раздел Pin в файле) это и есть, насколько я понимаю, представление проводника внутри корпуса. Бывает также задано R_pkg, L_pkg и C_pkg со значениями мин. тип. макс. это значения по умолчанию для всех пинов у которых нет своих R, L, C.

 

Учесть эту длину просто: создать эквивалентную схему цепи в HL (насколько я понял она уже у вас есть) и при моделировании выяснить нужные конечные длины трасс, которые и использовать при трассировке.

Угу, именно так HL и делает (я пока предварительно LineSim использую с подключенными IBIS) - делаешь трассу до последовательного резистора 200 милс, запускаешь Termination Wizard, а он ругается - "эффективная длина 300 милс до Rs великовата" и цифра 300 изменяется - для каждого пина своя. Сейчас ищу способ получить эти длины скопом в каком-либо отчете, а не вставляя 700+ пинов в LineSim.

P.S. Всем спасибо за комментарии.

 

А может у производителя помимо IBIS есть еще и EBD (там есть длины).

Share this post


Link to post
Share on other sites
А может у производителя помимо IBIS есть еще и EBD (там есть длины).

Увы, нету - только .ibs. Я запросил у производителя дополнительную информацию, посмотрим что саппорт ответит.

Share this post


Link to post
Share on other sites

Только что сдали проект с DDR2. Цепляли к Xilinx 4. Думаю, Вы конечно в курсе, но на всякий пожарный, про разность в скорости распространнения сигнала на внешних и внутренних слоях не забыли?

Share this post


Link to post
Share on other sites

Здравствуйте коллеги! Сейчас разбираюсь с тонкостями описания и применения IBIS моделей.

И вот в этом аспекте возник вопрос...

В IBISe есть описание глобальных паразитных параметров: R,L,Cpkg (я так понял внешних выводов корпуса), а также R_pin, C_pin & L_pin которые для сложных корпусов отменяют R,L,Cpkg и вводят свои значения для отдельных выводов.

Однако есть еще и параметры RLC-матрицы взаимных связей([Define Package Model] - [Model Data] ) , которые вводятся тоже для некоторых выводов и их соединений внутри кристалла.

Отсюда возникает ряд вопросов:

1. Описывают ли матрицы R,L,C только внутринние связи кристалл - вывод корпуса или туда уже введена информация о R,L,Cpkg или R_pin, C_pin & L_pin?

2. Как используется эта информация программами иммитационного моделирования?(предполагаю для анализа перекрестных связей в пакетном режиме)

3.Как в таком случае быть с соединениями (или выводами) для которых не заданы значения в матрице RLC? (предпрлагаю что они несущественны и в отдельном матричном описании не нуждаются..)

Мне кажется не только мне это интересно узнать.

Заранее благодарен за коментарии...

Share this post


Link to post
Share on other sites
Только что сдали проект с DDR2. Цепляли к Xilinx 4. Думаю, Вы конечно в курсе, но на всякий пожарный, про разность в скорости распространнения сигнала на внешних и внутренних слоях не забыли?

Нет, не забыл :) Разные характеристики слоев - это отдельная тема.

По своему вопросу скажу, что производитель процессора ответил что все критические цепи внутри BGA согласованы и учитывать "внутреннюю длину" пина не надо.

Share this post


Link to post
Share on other sites

Делаю разводку DDR2.

HL и Protel не учитывают толщину слоев диэлектрика внутри платы. А у меня в нутри группы есть сишналы которые переходят со слоя на слой.

Согласование 25mil = 0.635мм.

Вопрос:

1. В каких софтинах можно получить список длин цепей с учетом stackup?

2. Насколько время распространения сигнала в ПО отличатеся от микроролоска такой же длины? (вопрос о том надо ли вообще учитывать длинну ПО).

Share this post


Link to post
Share on other sites

Вообще-то в HL учитывается влияние ПО. Есть кнопка "Enable VIA Modeling" и настраиваются параметры ПО в Options-Preferences-BoardSim.

И их влияние видно в осциллоскопе.

Вот насчет длины цепей с учетом ПО - точно не скажу как получить.

Share this post


Link to post
Share on other sites

Почитал дома: ПО можно считать в основном сосредоточенной емкостью и сосредоточеной индуктивностью (когда переход на физически другой опорный слой). Длину ПО можно не учитывать, при фронте больше чем само ПО, а при фронте меньше чем ПО эта длина мало чем поможет, там начнется геморой другого порядка.

 

Правильнее говорить наверное не только о времени распространения но и АЧХ и ФЧХ в точке приема, тогда все вопросы со временами снимаются, но возникает много других.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this