|
|
  |
Выравнивание длин у дифферециальных цепей, LVPECL |
|
|
|
Apr 14 2006, 07:57
|
Группа: Участник
Сообщений: 14
Регистрация: 22-02-06
Из: ODESSA!
Пользователь №: 14 599

|
Вопрос ко всем кто имеет опыт по разводке и последующей отладке плат с дифф-цепями.
Необходимо развести несколько дифференциальных цепей (LVPECL). Частота сигнала, передаваемого по этим цепям достаточно велика ~2.5 ГГц. Одно из требований по трассировке от производителя микросхем: необходимо выровнять длины прямого и инверсного сигналов дифф-пары, причем максимальная разница этих длин должна быть не более 5mills (0,127мм).
При пробной трассировке, естественно "само собой" это не получилось. то есть, если просто проложить пару от одного корпуса к другому, при этом выполняя требования к геометрии для обеспечения 100-Омного импеданса, то длины прямого и инверсного проводов различаются ~ на 50mills (1,27мм).
В разных источниках слышал про несколько способов выравнивания длин цепей: accordion, trombone, но они, по-моему применяются для выравнивания длин у разных single-ended цепей (например - при разводке скоросных шин).
Вопрос: как правильно производить выравнивание длин дифф. цепей? может у кого есть литература по этому поводу? или примеры трассировки?
|
|
|
|
|
Apr 14 2006, 09:38
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 11-08-05
Пользователь №: 7 545

|
Цитата(Joe @ Apr 14 2006, 11:57)  Вопрос ко всем кто имеет опыт по разводке и последующей отладке плат с дифф-цепями.
Необходимо развести несколько дифференциальных цепей (LVPECL). Частота сигнала, передаваемого по этим цепям достаточно велика ~2.5 ГГц. Одно из требований по трассировке от производителя микросхем: необходимо выровнять длины прямого и инверсного сигналов дифф-пары, причем максимальная разница этих длин должна быть не более 5mills (0,127мм).
При пробной трассировке, естественно "само собой" это не получилось. то есть, если просто проложить пару от одного корпуса к другому, при этом выполняя требования к геометрии для обеспечения 100-Омного импеданса, то длины прямого и инверсного проводов различаются ~ на 50mills (1,27мм).
В разных источниках слышал про несколько способов выравнивания длин цепей: accordion, trombone, но они, по-моему применяются для выравнивания длин у разных single-ended цепей (например - при разводке скоросных шин).
Вопрос: как правильно производить выравнивание длин дифф. цепей? может у кого есть литература по этому поводу? или примеры трассировки? Трассируйте как обычные single-ended цепи с выравниванием. Например если Вам требуется дифф. волновое сопротивление 100 Ом, то каждый проводник нужно трассировать как 50-Омный. Необязательно (хотя и желательно) проводить их строго параллельно друг другу, вообще говоря это делается только для того чтобы на оба проводника наводились одинаковые помехи (к которым дифф. схема не чувствительна), но если не удаётся на всей длине их сделать параллельными - можно делать "петли" в одной из цепей с целью выравнивания. Надо только соблюсти правила изгибов для минимизации отражений и постоянство волнового сопротивления. Ну и конечно для 2.5 ГГц загибать проводники следует не отрезками ломанных линий, а акуратными окружностями.
|
|
|
|
|
Apr 14 2006, 10:37
|
Группа: Участник
Сообщений: 14
Регистрация: 22-02-06
Из: ODESSA!
Пользователь №: 14 599

|
Цитата(bms @ Apr 14 2006, 12:38)  Трассируйте как обычные single-ended цепи с выравниванием. Например если Вам требуется дифф. волновое сопротивление 100 Ом, то каждый проводник нужно трассировать как 50-Омный. Необязательно (хотя и желательно) проводить их строго параллельно друг другу, вообще говоря это делается только для того чтобы на оба проводника наводились одинаковые помехи (к которым дифф. схема не чувствительна), но если не удаётся на всей длине их сделать параллельными - можно делать "петли" в одной из цепей с целью выравнивания. Надо только соблюсти правила изгибов для минимизации отражений и постоянство волнового сопротивления. Ну и конечно для 2.5 ГГц загибать проводники следует не отрезками ломанных линий, а акуратными окружностями. Спасибо. Практически тоже самое прочитал у альтеры в аппликешн-ноте. Там такие цепи называются "Serpentined Traces". Смысл такой: если цепи "слабосвязанные" (loosely coupled), то есть волновое сопротивление не играет решающей роли, то допускается делать петли на одной и цепей дифф-пары; если цепи "тесно-связанные" (Tightly-Coupled) - рекомендуется "pin-level" выравнивание - то есть пара разводится "ровно и параллельно", а непосредственно возле падов, та цепь, к-я оказалась короче выгибается "улиткой". Вопрос следующий: как бы теперь этот процесс автоматизировать, причем в пикаде (ну или в спекктре)? (см. пост от "Жека Сегодня, 11:14")? Я долго ковырялся в спеккте с командами define-net pair и length*** но пока результат скорее отрицательный
|
|
|
|
|
Apr 20 2006, 10:54
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 11-08-05
Пользователь №: 7 545

|
Цитата(Joe @ Apr 14 2006, 14:37)  Вопрос следующий: как бы теперь этот процесс автоматизировать, причем в пикаде (ну или в спекктре)? (см. пост от "Жека Сегодня, 11:14")? Я долго ковырялся в спеккте с командами define-net pair и length*** но пока результат скорее отрицательный  Про спектру не скажу, автотрассировщиками не пользуюсь вообще (ни один из них не способен сделать ничего человеческого  правда есть задачи для которых они конечно годятся). А в пикаде к сожалению никакой автоматизации на этот счёт не предусмотрено. Но если Вам требуется провести всего одну такую дифф. пару, то это несложно (и недолго) сделать и вручную.
|
|
|
|
|
Jun 27 2006, 20:12
|

Местный
  
Группа: Участник
Сообщений: 382
Регистрация: 10-03-05
Из: USA
Пользователь №: 3 234

|
#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, постараюсь его найти и выложить. Там же было сказано что выравнивание производится в области подвода проводника к пятаку, ну это в принципе, и козе понятно.
|
|
|
|
|
Apr 21 2008, 06:34
|
Участник

Группа: Свой
Сообщений: 70
Регистрация: 9-08-04
Из: Днепропетровск
Пользователь №: 465

|
Цитата(doomer#gp @ Jun 27 2006, 23:12)  Xnet - это типа цепь cостоящия из группы цепей или отрезков, свойства этого объекта рассматриваются целиком (длинна). В Allegro, чтобы создать Xnet надо определить модели для элементов стоящих в разрыве цепи. Например Xnet - линия адреса со включенным в ее разрыв резистором. А можно ли создать цепь Xnet не в Allegro, а в DO-файле?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|