Перейти к содержанию
    

Выравнивание длин у дифферециальных цепей

Вопрос ко всем кто имеет опыт по разводке и последующей отладке плат с дифф-цепями.

 

Необходимо развести несколько дифференциальных цепей (LVPECL).

Частота сигнала, передаваемого по этим цепям достаточно велика ~2.5 ГГц.

Одно из требований по трассировке от производителя микросхем: необходимо выровнять длины прямого и инверсного сигналов дифф-пары, причем максимальная разница этих длин должна быть

не более 5mills (0,127мм).

 

При пробной трассировке, естественно "само собой" это не получилось. то есть, если просто проложить

пару от одного корпуса к другому, при этом выполняя требования к геометрии для обеспечения

100-Омного импеданса, то длины прямого и инверсного проводов различаются ~ на 50mills (1,27мм).

 

В разных источниках слышал про несколько способов выравнивания длин цепей: accordion, trombone, но они, по-моему применяются для выравнивания длин у разных single-ended цепей (например - при разводке скоросных шин).

 

Вопрос: как правильно производить выравнивание длин дифф. цепей? может у кого есть литература по этому поводу? или примеры трассировки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос стоит сформулировать так - в каком САПРе это делать быстрее и удобнее?

Это можно сделать и в Пикаде, долго и нудно ковыряя сегменты, двигая их туда-сюда и измеряя суммарную длину цепи :cranky:

В Менторе или Аллегре это делается легко и непринужденно, точность подгонки настраивается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос ко всем кто имеет опыт по разводке и последующей отладке плат с дифф-цепями.

 

Необходимо развести несколько дифференциальных цепей (LVPECL).

Частота сигнала, передаваемого по этим цепям достаточно велика ~2.5 ГГц.

Одно из требований по трассировке от производителя микросхем: необходимо выровнять длины прямого и инверсного сигналов дифф-пары, причем максимальная разница этих длин должна быть

не более 5mills (0,127мм).

 

При пробной трассировке, естественно "само собой" это не получилось. то есть, если просто проложить

пару от одного корпуса к другому, при этом выполняя требования к геометрии для обеспечения

100-Омного импеданса, то длины прямого и инверсного проводов различаются ~ на 50mills (1,27мм).

 

В разных источниках слышал про несколько способов выравнивания длин цепей: accordion, trombone, но они, по-моему применяются для выравнивания длин у разных single-ended цепей (например - при разводке скоросных шин).

 

Вопрос: как правильно производить выравнивание длин дифф. цепей? может у кого есть литература по этому поводу? или примеры трассировки?

 

Трассируйте как обычные single-ended цепи с выравниванием. Например если Вам требуется дифф. волновое сопротивление 100 Ом, то каждый проводник нужно трассировать как 50-Омный. Необязательно (хотя и желательно) проводить их строго параллельно друг другу, вообще говоря это делается только для того чтобы на оба проводника наводились одинаковые помехи (к которым дифф. схема не чувствительна), но если не удаётся на всей длине их сделать параллельными - можно делать "петли" в одной из цепей с целью выравнивания. Надо только соблюсти правила изгибов для минимизации отражений и постоянство волнового сопротивления.

Ну и конечно для 2.5 ГГц загибать проводники следует не отрезками ломанных линий, а акуратными окружностями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Трассируйте как обычные single-ended цепи с выравниванием. Например если Вам требуется дифф. волновое сопротивление 100 Ом, то каждый проводник нужно трассировать как 50-Омный. Необязательно (хотя и желательно) проводить их строго параллельно друг другу, вообще говоря это делается только для того чтобы на оба проводника наводились одинаковые помехи (к которым дифф. схема не чувствительна), но если не удаётся на всей длине их сделать параллельными - можно делать "петли" в одной из цепей с целью выравнивания. Надо только соблюсти правила изгибов для минимизации отражений и постоянство волнового сопротивления.

Ну и конечно для 2.5 ГГц загибать проводники следует не отрезками ломанных линий, а акуратными окружностями.

 

Спасибо. Практически тоже самое прочитал у альтеры в аппликешн-ноте.

Там такие цепи называются "Serpentined Traces". Смысл такой: если цепи "слабосвязанные" (loosely coupled), то есть волновое сопротивление не играет решающей роли, то допускается делать петли на одной и цепей дифф-пары; если цепи "тесно-связанные" (Tightly-Coupled) - рекомендуется "pin-level" выравнивание - то есть пара разводится "ровно и параллельно", а непосредственно возле падов, та цепь, к-я оказалась короче выгибается "улиткой".

 

Вопрос следующий: как бы теперь этот процесс автоматизировать, причем в пикаде (ну или в спекктре)? (см. пост от "Жека Сегодня, 11:14")?

Я долго ковырялся в спеккте с командами define-net pair и length*** но пока результат скорее отрицательный :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос следующий: как бы теперь этот процесс автоматизировать, причем в пикаде (ну или в спекктре)? (см. пост от "Жека Сегодня, 11:14")?

Я долго ковырялся в спеккте с командами define-net pair и length*** но пока результат скорее отрицательный :(

 

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

Но если Вам требуется провести всего одну такую дифф. пару, то это несложно (и недолго) сделать и вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"... Например если Вам требуется дифф. волновое сопротивление 100 Ом, то каждый проводник нужно трассировать как 50-Омный..."

 

Это не всегда так!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

#Manual of Specctra (Allegro) cut

 

#sample

 

#Xnet1 is made up of NetA(pins 1,2,3) and NetB(pins 4,5,6)

#Xnet2 is made up of NetC(pins 7,8,9) and NetD(pins 10,11,12)

 

#pin1---pin2---pin3 pin4--pin5---pin6 (Xnet1)

 

#pin7---pin8---pin9 pin10---pin11---pin12 (Xnet2)

 

#Nets A and C will need to be paired as well as nets B and D

 

define (pair(nets NetA NetC))

define (pair(nets NetB NetD))

 

# Groups will need be defined to represent the Xnets

 

define (group Xnet1(add_fromto(fromto pin1 pin2)))

define (group Xnet1(add_fromto(fromto pin2 pin3)))

define (group Xnet1(add_fromto(fromto pin4 pin5)))

define (group Xnet1(add_fromto(fromto pin5 pin6)))

 

 

# Xnet2 is defined the same way

 

#the diff pair rules will then get applied to the Xnet groups

 

rule group Xnet1(max_uncoupled_length 1000)

rule group Xnet1(diffpair_group_level total)

 

# total means that the rules are applied to the all fromtos

 

 

Xnet - это типа цепь cостоящия из группы цепей или отрезков, свойства этого объекта рассматриваются целиком (длинна). В Allegro, чтобы создать Xnet надо определить модели для элементов стоящих в разрыве цепи. Например Xnet - линия адреса со включенным в ее разрыв резистором. Если задаем выравнивание для группы Xnet-ов то получим выровненую шинну - сумма всех отрезков одной "цепи" равна сумме другой

 

Есть еще правило phase_tolerance, задает точность расогласования фазы в диф. паре, те. рассогласование длин.

 

rule group NNN (phase_tolerance XXX)

 

Подробно расписано в manual-e на Specctra 15.x из Allegro, постараюсь его найти и выложить.

Там же было сказано что выравнивание производится в области подвода проводника к пятаку, ну это в принципе, и козе понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Xnet - это типа цепь cостоящия из группы цепей или отрезков, свойства этого объекта рассматриваются целиком (длинна). В Allegro, чтобы создать Xnet надо определить модели для элементов стоящих в разрыве цепи. Например Xnet - линия адреса со включенным в ее разрыв резистором.

А можно ли создать цепь Xnet не в Allegro, а в DO-файле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так выше и написано КАК это делается, прямо в командах спекктры - подставляйте свои имена цепей и вперед. Могу заверить - оно так работает, только писать до...а приходится и ошибиться легко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...