Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Specctra
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
Страницы: 1, 2
bureau
Буду признателен за помощь.
Ситуация у меня такая:
на плате есть смесь компонентов с разными корпусами, в том числе и со сквозными отверстиями. Есть ли какие-то варианты по использыванию кодов, что б спектра подводила трассы ко всем копмонентам только со стороны слоя top. При этом так же для разводки использывался слой bottom
-SANYCH-
С помощью команды keepout можно запретить трассировку платы на выбранном участке.
bureau
Цитата(-SANYCH- @ Mar 12 2008, 13:42) *
С помощью команды keepout можно запретить трассировку платы на выбранном участке.

Мне не надо запрещать трасировку. В даном случае, если есть контактные площадки на разных слоях(яркий пример сквозное отверстие) то контакт (подвод дорожки по плате)должен быть только на том слое, на котором мне требуеться.
-SANYCH-
С помощью этой команды можно запретить трассировку только на одном из слоев (TOP, BOTTOM) и тогда разводка будет осуществляться на другом слое.
Если я Вас правильно понимаю.
smile.gif
Галстук
Цитата(bureau @ Mar 12 2008, 14:46) *
Мне не надо запрещать трасировку. В даном случае, если есть контактные площадки на разных слоях(яркий пример сквозное отверстие) то контакт (подвод дорожки по плате)должен быть только на том слое, на котором мне требуеться.

IMHO, вам предется в вашем редакторе платы изменить padstack штыревых компонентов - добавить графику запрета трассировки в ненужном слое. Тогда бедная спекктра в нем не сможет подключиться и будет стараться в нужных слоях.
Kuzmi4
Цитата(Галстук @ Mar 12 2008, 14:31) *
IMHO, вам предется в вашем редакторе платы изменить padstack штыревых компонентов - добавить графику запрета трассировки в ненужном слое. Тогда бедная спекктра в нем не сможет подключиться и будет стараться в нужных слоях.


Зачем так жестоко - по моему самый быстрый вариант - намалевать keepout вокруг того что надо (там он токо прямоугольный - но с прямоугольничков мона всякую разную фигуру нарисовать если их моного маленьких взять) и выставить не все сигнальные слои а только 1 определённый - боттом в данном случае.

Огласите всё таки людям, зачем вам такой мега-изврат ?? wacko.gif
bureau
Цитата(Kuzmi4 @ Mar 12 2008, 16:43) *
Зачем так жестоко - по моему самый быстрый вариант - намалевать keepout вокруг того что надо

А теперь представь ситуацию, что у тебя плата 10*20см(примерно) и на этой плате плотность компонентов очень высокая, при том еще и идет все в перемешку с СМД и ПАД. И что Ты предлогаешь для каждого ПАДа отдельно мне рисовать keepout ???
Да, можно, но гемору будет...
Цитата(Kuzmi4 @ Mar 12 2008, 16:43) *
Огласите всё таки людям, зачем вам такой мега-изврат ?? wacko.gif

Приедишь в гости покажу.
Vlad-od
Цитата(bureau @ Mar 12 2008, 11:08) *
Буду признателен за помощь.
Ситуация у меня такая:
на плате есть смесь компонентов с разными корпусами, в том числе и со сквозными отверстиями. Есть ли какие-то варианты по использыванию кодов, что б спектра подводила трассы ко всем копмонентам только со стороны слоя top. При этом так же для разводки использывался слой bottom


Может разводить как с перемычками?
http://electronix.ru/forum/index.php?showtopic=44034
bureau
Цитата(Vlad-od @ Mar 12 2008, 17:23) *
Может разводить как с перемычками?

Думаю, перемычки в моем случае не подойдут. Больше подошли VIA. Например, использовать команду FANOUT. Но у меня чего-то не получается с использованием этой команды поставить VIA на определенном расстоянии от сквозного посадочного места. У меня в данном случае СПЕКТРА ставит VIA возле посадочного места, которое соответствует другому концу цепи(может кто подскажет как дунную проблему решить?).
bureau
Цитата(Галстук @ Mar 12 2008, 15:31) *
IMHO, вам предется в вашем редакторе платы изменить padstack штыревых компонентов - добавить графику запрета трассировки в ненужном слое.

Да, получилось. Спасибо!
Нужно было добавть "connect off" напртив тех слоев на которых не надо разводить.

Вот прример:

padstack P:SX60Y60D38A
(shape
(rect Top -0.762 -0.762 0.762 0.762)
)
(shape
(rect Bottom -0.762 -0.762 0.762 0.762)(connect off)
)
CAHTA_1939
может и мне подскажете.
ника не могу заставить спектру использовать мои параметры для via ...
как правильно задавать в спектре эти параметры. пользуюсь пкадом2002
Vlad-od
Цитата(CAHTA_1939 @ Jun 15 2008, 20:18) *
ника не могу заставить спектру использовать мои параметры для via ...
как правильно задавать в спектре эти параметры. пользуюсь пкадом2002


из ПКАДа спектра воспринимает установки во всех вкладках, кроме Design. У этих правил приоритет ниже спекттровских по умолчанию. Из ПКАДа можно задать тип переходных и правила разводки если создать нетклассы и в них прописать правила.
bureau
Цитата(CAHTA_1939 @ Jun 15 2008, 20:18) *
ника не могу заставить спектру использовать мои параметры для via ...

эта тема неоднократно поднималась, пользуйтесь поиском.
Поищите на http://pcad.ru/forum/
Там встречается неоднократно!
Kuzmi4
Дабы не плодить кучу тем, решил запостить здесь.
Вопрос собственно такой:
Есть клоковая линия DDR2 от камешка(CLK и CLK_N). Потом терминатор а потом звездой к 2-м чипам DDR2. В описании к камешку сказано, что для клоковой линии нужно имплементить задержку в 500ps - это даёт некоторую свободу по длинне smile.gif (если что - accordion там и всё такое).
Далее топология такова что, можно и хочется вести эту дифпару подальше от других сигналов (ниже приложил рисунок).
К тому же нужно контролировать длинну всей дифпары.
Вся клоковая линия реализованана так:
шарик PPC - резистор(0Ом) - терминатор (RC) - шарик DDR2.
Терминатор стоит как раз между 2-мя DDR2 чтоб от него было легче отводить к клоковым шарикам DDR2..
Значит в графике прибл топология такова:
Нажмите для просмотра прикрепленного файла
жёлтая линия - прибл путь для CLK
голубая линия - прибл путь для CLK_N

Вопрос - как это сделать ? 1111493779.gif
То, до чего додумался я - поставить виртуальный пин и вести через него.
Но когда ставлю виртуальный пин, то можно pick_up только net - а мне нужно чтоб всё пару вело так.
Задавал для 1-го nеt`а VP, потом fromto, потом объявлял пару, потом трассировка
Цитата
#
mode pick_net
edit_pick_net_by_name "P_DDR_CLK"
mode add_virtual_pin
edit_add_virtual_pin 3.24 72.49
#
mode measure
#
define (net "P_DDR_CLK" (fromto "R170"-"2" (virtual_pin VP)))
define (net "P_DDR_CLK" (fromto (virtual_pin VP) "C59"-"2"))
define (net "P_DDR_CLK" (fromto "C59"-"2" "R191"-"2"))
define (net "P_DDR_CLK" (fromto "R191"-"2" "IC9"-"J8"))
define (net "P_DDR_CLK" (fromto "R191"-"2" "IC8"-"J8"))
#
define (pair (nets "P_DDR_/CLK" "P_DDR_CLK"))
#
route 2

ведёт только ту часть пары, где задан VP, при чём что интересно, там где задавал VP - виа
Нажмите для просмотра прикрепленного файла
Да и как видно к шарам не ведёт сабака..

Не подскажет кто из знающих как можно это сделать ? help.gif
Kuzmi4
Результаты изысканий:
Код
#
mode pick_net
edit_pick_net_by_name  "P_DDR_CLK"
mode add_virtual_pin
edit_add_virtual_pin 3.345 72.49
edit_pick_net_by_name  "P_DDR_/CLK"
mode add_virtual_pin
edit_add_virtual_pin 3 72.49
#
mode measure
#
define (net "P_DDR_CLK" (fromto "R170"-"2" (virtual_pin VP)))
define (net "P_DDR_CLK" (fromto (virtual_pin VP) "C59"-"2"))
define (net "P_DDR_CLK" (fromto "C59"-"2" "R191"-"2"))
define (net "P_DDR_CLK" (fromto "R191"-"2" "IC9"-"J8"))
#define (net "P_DDR_CLK" (fromto "R191"-"2" "IC8"-"J8"))
#
define (net "P_DDR_/CLK" (fromto "R171"-"2" (virtual_pin VP_1)))
define (net "P_DDR_/CLK" (fromto (virtual_pin VP_1) "C59"-"1"))
define (net "P_DDR_/CLK" (fromto "C59"-"1" "R191"-"1"))
define (net "P_DDR_/CLK" (fromto "R191"-"1" "IC9"-"K8"))
#define (net "P_DDR_/CLK" (fromto "R191"-"1" "IC8"-"K8"))
#
define (pair (nets "P_DDR_/CLK" "P_DDR_CLK"))
#unselect all nets
#select net  "P_DDR_/CLK" "P_DDR_CLK"
#
route 2

Картинка:
Нажмите для просмотра прикрепленного файла
Стоит только раскомментировать одну из строчек и начнётся полный бедлам..
wacko.gif
Мдя.... а я ведь есчё не начал задавать длины.... 05.gif
Kuzmi4
С длинами всё есчё интересней:
Код
#
define (group CLK_N_00 (fromto "R191"-"2" "IC9"-"J8"))
#
unit mm
#circuit group CLK_N_00 (length 21 20 (type actual))
circuit group CLK_N_00 (length 1.2 1.1 (type ratio))
#
rule group CLK_N_00 (patterns_allowed accordion)
#
unselect all nets
select group CLK_N_00
#
route 2

В результате вообсче никаких телодвижений:
Нажмите для просмотра прикрепленного файла
Мдя....
help.gif
Uree
эээ... а где собссно группа? Вижу только одну цепь, точнее фром-ту цепи. Возможно группа просто даже не создалась?
А вообще я не уверен, что эту топологию делают автоматом. Унас все референс-дизайны сделаны в Аллегро. Так вот, любопытства ради я тихонько утащив их домой и открывая в Аллегро передавал в Спекктру, чтобы посмотреть как родная система генерит на них ДО-файлы. Почти на всех платах есть ДДР2, разведена именно так, как Вы это хотите, но НИ В ОДНОМ файле не описана именно топология этих цепей... Правила - да, длины для байт-групп данных - да, зоны трассировки(через задание регионов) - тоже да, каждая пара определена через свой класс, для всех пар(соответственно классов) определены правила класс-класс и т.п., но нигде ни одного виртуального пина и прямого указания топологии через from-to. То ли это делалось вручную, то ли еще как - не знаю, но таких конструкций в "родной" системе увидеть не удалосьsad.gif

ЗЫ Так что я просто отказался от мысли делать это в Спекктре, руками проще и быстрее. Да и топология в общем прозрачная, на глаз все видно.
Kuzmi4
2 Uree - ага...благодарствую..
На счёт группы
Код
define (group CLK_N_00 (fromto "R191"-"2" "IC9"-"J8"))

А это как понимать ? По идее это и задаёт группу с fromto..

И есть есчё вопрос:
Задам я значит рулезы. Теперь нужно тянуть дифпару ручками..
А как ручками в спекктре тянуть дифпару ?? А то что то нашёл только одиночный проводник...
Uree
Так сразу не вспомню, но где-то на правой кнопке висит меню Setup, на одной из его закладок надо поставить птицу разрешения водить дифпары. Правда у меня они нормально так и не смогли водитьсяsad.gif
Vlad-od
просто можно зацепить сразу два пина карандашом и они будут вестись по описанным правилам (как лупой). Только если линии уже есть надо концы линий захватывать. Для этого они должны быть рядом. Так можно много захватывать
Kuzmi4
2 Uree, Vlad-od - благодарствую.
Вроде водится, счас пропишу rules`ы и попробую smile.gif
Kuzmi4
Есчё интересное наблюдается
Код
define (pair (nets "P_DDR_CLK" "P_DDR_/CLK" (gap 0.2)))
# Nets "P_DDR_CLK" and "P_DDR_/CLK" have been defined as a balanced pair.
rule net "P_DDR_/CLK" (max_uncoupled_length 0.5)
rule net "P_DDR_CLK" (max_uncoupled_length 0.5)

тут я задал зазор для дифпары в 0.2 мм и разброс в 0.5 мм для пары
Нажмите для просмотра прикрепленного файла
Всё вроде верно.
Теперь я пробую вести ручками и вижу, что Specctrа только зазор соблюдает а на разницу между вайрами ей наплевать
Нажмите для просмотра прикрепленного файла
Координаты по оси для падов - 41.9 мм и 43.7 - 0.5 мм разброс тут вообсче не наблюдается. Наблюдается гораздо больший...
Почему Specctrа не соблюдает правила который в принципе видно что она скушала ?


Как тут быть ??
Uree
Просто не все задано, что нужно Спекктре для корректной трассировки пары. Посмотрел в дизайн, вытащил отчет для пары ЮСБ - посмотрите что задано для цепей задайте то же самое, должно помочь. По идее нужно задавать все, что написано в Electrical Constraints:

LISTING: 4 element(s)

Item 1 < NET >

Net Name: SW_USB_P0_P
Member of Diff Pair: DIFFPAIR37

Pin count: 2
Via count: 2
Total etch length: 77.2067 MM
Total manhattan length: 68.0291 MM
Percent manhattan: 113.49%

Pin Type SigNoise Model Location
--- ---- -------------- --------
U3C1.22 BI (74.3229 187.0075)
U4B3.3 BI (136.5735 192.7860)

No connections remaining

Properties attached to net
LOGICAL_PATH = @local_lib.bonita_springs(sch_1):sw_usb_p0_p
DIFFP_COUPLED_PLUS = 0.0005 MM
DIFFP_COUPLED_MINUS = 0.0005 MM
DIFFP_MIN_SPACE = 0.1265 MM
DIFFP_GATHER_CONTROL = INCLUDE
DIFFP_PHASE_TOL = 50 MILS
DIFFP_UNCOUPLED_LENGTH = 13.97 MM

Electrical Constraints assigned to net
diff pair primary gap: 0.1905 MM (physical constraint)
diff pair neck gap: 0.1905 MM (physical constraint)
diff pair positive coupled tolerance: 0.0005 MM
diff pair negative coupled tolerance: 0.0005 MM
diff pair min line spacing: 0.1265 MM
diff pair gather control: include
diff pair max uncoupled length: 13.97 MM
diff pair phase tolerance: 50 MILS

Constraint information:
(DPTol) U4B3.3 to U3C1.22 min= 75.5694 MM max= 78.1094 MM actual= 77.2067 MM
DPData: gap=0.1905 (-0.0005,+0.0005) tolerance= 1.2700; max uncoupled= 13.9700
(136.5735,192.7860) pin U4B3.3,BI,TOP/TOP
1.7282 MM cline TOP
(136.0805,194.3100) via TOP/BOTTOM
73.6318 MM cline BOTTOM
(73.8505,185.3565) via TOP/BOTTOM
1.8467 MM cline TOP
(74.3229,187.0075) pin U3C1.22,BI,TOP/TOP

Member of Groups:
SPACING NETCLASS: USB-DIFF_7_20
PHYSICAL NETCLASS: 90OHM-DIFF_PH
DIFF_PAIR : DIFFPAIR37
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Item 2 < NET >

Net Name: SW_USB_P0_N
Member of Diff Pair: DIFFPAIR37

Pin count: 2
Via count: 2
Total etch length: 76.8394 MM
Total manhattan length: 64.4807 MM
Percent manhattan: 119.17%

Pin Type SigNoise Model Location
--- ---- -------------- --------
U3C1.21 BI (74.8233 187.0075)
U4B2.3 BI (133.5255 192.7860)

No connections remaining

Properties attached to net
LOGICAL_PATH = @local_lib.bonita_springs(sch_1):sw_usb_p0_n
DIFFP_COUPLED_PLUS = 0.0005 MM
DIFFP_COUPLED_MINUS = 0.0005 MM
DIFFP_MIN_SPACE = 0.1265 MM
DIFFP_GATHER_CONTROL = INCLUDE
DIFFP_PHASE_TOL = 50 MILS
DIFFP_UNCOUPLED_LENGTH = 13.97 MM

Electrical Constraints assigned to net
diff pair primary gap: 0.1905 MM (physical constraint)
diff pair neck gap: 0.1905 MM (physical constraint)
diff pair positive coupled tolerance: 0.0005 MM
diff pair negative coupled tolerance: 0.0005 MM
diff pair min line spacing: 0.1265 MM
diff pair gather control: include
diff pair max uncoupled length: 13.97 MM
diff pair phase tolerance: 50 MILS

Constraint information:
(DPTol) U4B2.3 to U3C1.21 min= 75.9367 MM max= 78.4767 MM actual= 76.8394 MM
DPData: gap=0.1905 (-0.0005,+0.0005) tolerance= 1.2700; max uncoupled= 13.9700
(133.5255,192.7860) pin U4B2.3,BI,TOP/TOP
1.7282 MM cline TOP
(133.0325,194.3100) via TOP/BOTTOM
73.2884 MM cline BOTTOM
(75.3110,185.3867) via TOP/BOTTOM
1.8228 MM cline TOP
(74.8233,187.0075) pin U3C1.21,BI,TOP/TOP

Member of Groups:
SPACING NETCLASS: USB-DIFF_7_20
PHYSICAL NETCLASS: 90OHM-DIFF_PH
DIFF_PAIR : DIFFPAIR37
Kuzmi4
То есть получается если не всё задано - то воспринимать не будет - хм.. интересно...
Счас пороюсь в доках, а то не совсем ясно как задавать
diff pair min line spacing
diff pair gather control
diff pair positive/negative coupled tolerancе

и попробуем smile.gif
Kuzmi4
Хотелось бы уточнить по коммандам:
diff pair min line spacing - это который spacing. только для дифпары , так ?
На счёт diff pair gather control - что-то вообсче не нашёл crying.gif
На счёт positive/negative coupled tolerancе - нашёл только стандартный tolerancе, а как с него coupled positive/negative получить??

Кстати нашёл различие - в литературе(там где примеры)- обычно обзывают дифпару. потом делают класс и для класа задают кучу рулезов.. Попробую этот путь..
Kuzmi4
Ага , нашёл параметры - не сильно они распространены оказались.
В результате я выродил такой Do-файл:
Код
define (pair (nets "P_DDR_/CLK" "P_DDR_CLK"))
# Nets "P_DDR_/CLK" and "P_DDR_CLK" have been defined as a balanced pair.
select net "P_DDR_/CLK" "P_DDR_CLK"
# Net "P_DDR_/CLK" Selected.
# Net "P_DDR_CLK" Selected.
# Net "P_DDR_CLK" Selected.
# Net "P_DDR_/CLK" Selected.
define (class DIFF_CLK (selected))
zoom in
rule pcb (edge_primary_gap 0.2); rule pcb (phase_tolerance_length 0.5); rule pcb (max_uncoupled_length 0.5)
rule pcb (edge_primary_gap 0.2)
rule class DIFF_CLK (max_uncoupled_length 0.5)
rule class DIFF_CLK (edge_coupled_tolerance_minus 0.5)
rule class DIFF_CLK (edge_coupled_tolerance_plus 0.5)
rule class DIFF_CLK (edge_primary_gap 0.2)
rule class DIFF_CLK (phase_tolerance_length 0.5)
rule class DIFF_CLK (diffpair_line_width 0.145)
rule class DIFF_CLK (edge_primary_gap 0.2)
rule net "P_DDR_/CLK" (max_uncoupled_length 0.5)
#
rule pcb (max_uncoupled_length 0.5)
rule pcb  (edge_coupled_tolerance_minus 0.5)
rule pcb  (edge_coupled_tolerance_plus 0.5)
rule pcb (diffpair_line_width 0.145)
rule net "P_DDR_/CLK"  (edge_coupled_tolerance_minus 0.5)
rule net "P_DDR_/CLK"  (edge_coupled_tolerance_plus 0.5)
rule net "P_DDR_/CLK" (edge_primary_gap 0.2)
rule net "P_DDR_/CLK" (phase_tolerance_length 0.5)
rule net "P_DDR_CLK" (max_uncoupled_length 0.5)
rule net "P_DDR_CLK"  (edge_coupled_tolerance_minus 0.5)
rule net "P_DDR_CLK"  (edge_coupled_tolerance_plus 0.5)
rule net "P_DDR_CLK" (diffpair_line_width 0.145)
rule net "P_DDR_CLK" (edge_primary_gap 0.2)
rule net "P_DDR_/CLK" (diffpair_line_width 0.145)
rule net "P_DDR_CLK" (phase_tolerance_length 0.5)
rule pcb (phase_tolerance_length 0.5)

Посмотрел по закладкам:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла

Вроде верно всё..
Потом нажимаю на пиктограммку
Нажмите для просмотра прикрепленного файла
И вижу всё ту же картину
Нажмите для просмотра прикрепленного файла
help.gif
Я что-то совсем запутался..... crying.gif
Kuzmi4
Пробовал даже задать все параметры для класса, нетов в классе и PCB.. Результат аналогичный - тянет как на вышеприведённом рисунке - при чём я замерял - разница в координатах 1.8 мм для КП SMD откуда они начинают вестись...
Отчего такая кака творится ?? Почему спекктра игнорирует все правила которые я ей задал.. ??
Uree
Включите Ignore Gather Length в Off.
MrYuran
А если пощёлкать туда-сюда флажки?
Например, Phase Tolerance Type - что такое?
Что если вместо Length выставить Delay?

Я обычно применяю метод околонаучного тыка, а когда уж совсем ничего не выходит - делать нечего, приходится читать документацию...
Vlad-od
А я нажимаю следующую пиктограмму и руками сдвигаю проводники. Зазор при этом Спекктра выдерживает
Kuzmi4
Только что ручками проставил:
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Нажмите для просмотра прикрепленного файла
Далее нажимаю на пиктограммку
Нажмите для просмотра прикрепленного файла
В результате веду ручками и получаю такую картину:
Нажмите для просмотра прикрепленного файла
При чём достоверно известно что между КП 1.8 мм - то есть разница в длинне у них уже как минимум около 1.8 мм....

2 Vlad-od - зазор оно у меня тоже выдерживает , только начиная с тех сегментов , которые не соединены с КП...

2MrYuran
Phase Tolerance Type -> Length - родит мне phase_tolerance_length - то есть это разница в фазе , только выраженная через единицы длинны (в проекте установлены мм).

С теми настройками что я задал ну никак разницы в 1.8 мм не должно быть....
MrYuran
А может, до конца довести надо? откуда она знает, в какую сторону совмещать...
Vlad-od
А я правлю (сдвигаю) те сегменты которые выходят из КП
Kuzmi4
2 MrYuran - может быть, но есть всё равно есчё одна кака - а как быть с зазором ?
Вот только что попробовал опять вывести пару:
Нажмите для просмотра прикрепленного файла
Где здесь соблюдение зазора даже если согласование по длинне будет только если доведу до конца(что в принципе сомнительно - зачем тогда Done делать если не закончил есчё пару, да и как оно сообрасит удлиннять, как только я подведу к последнему пину в цепи вдруг начнёт змеиться и удлинняться.. нет... не логично..) ?
Видно что ни о каком соблюдении зазора при выходе с КП и речи нет....
Почему не такой вариант:
Нажмите для просмотра прикрепленного файла
smile3046.gif
Vlad-od
Я длину в пикаде задаю для всего класса макс и мин длина цепи. А чтобы после ручной трассировки длины выровнялись наверное можно этим цепям слелать селект и запустить на автотрассировку. Должна подправить.
Kuzmi4
Понимаете тут дело даже не в задании длинны - вопрос в другом -почему налицо такое нарушение правил для зазора ?
Ведь с рисунков видно что спекктра изначально предлагает вывести с зазором большим чем установлен....
Vlad-od
Она до ближайшего излома ведет с тем зазором какой есть. Я не знаю где это меняется.
Uree
Похоже это меняется только при выполнении проходов Clean.
Kuzmi4
Мдя.. всё больше склоняюсь что ручками проще сделать....
Uree
Ну может и не проще, но быстрее получится это 100%.
Кстати когда в одном из последних проектов была куча диффпар водил их в ПКАДе инструментом для трассировки шин - по крайней мере можно вести сразу две цепи и потом только поправить зазор на участках под 45 градусов, а вертикали-горизонтали он и сам зазор выдерживает. Правда пришлось для этого нерегулярную сетку поставитьsmile.gif
Kuzmi4
2 Uree - понимаете , вся проблема в том что у меня не пикад. Спекктра на фоне моего гадского када вообьсче мосчная вещь.

Ну так а всё же - отчего спекктра может вести дифпару не так как в жёлтом кружочке:
Нажмите для просмотра прикрепленного файла
Ведь явное нарушение rule`за на зазор ??
Uree
Да я уже когда написал вспомнил в чем Вы работаете...
А со Спекктрой - может попробовать провести как получается а потом пару-тройку проходов clean-a запустить? Может тогда поправит? Или послабее правила задайте для выравнивания - ну нереально тут выполнить условие max_uncoupled_length=0.1 mm, явно большая длина несвязанных сегментов набежит. Может она думает, что если одно условие не выполнятеся, то на остальные можно и забить? ХЗ эту Спекктру и логику ее работы...
Kuzmi4
2 Uree - странно оно как то - если она не может выполнить правило max_uncoupled_length=0.1 mm то почему тогда позволяет отводить проводники вообсче ?
С clean-ом попробую..
Kuzmi4
Попробовал c clean-ом:
Код
select net "P_DDR_/CLK" "P_DDR_CLK"
# Net "P_DDR_/CLK" Selected.
# Net "P_DDR_CLK" Selected.
define (class DIFF_CLK (selected))
define (pair (nets "P_DDR_CLK" "P_DDR_/CLK"))
# Nets "P_DDR_CLK" and "P_DDR_/CLK" have been defined as a balanced pair.
rule pcb (max_uncoupled_length 0.5)
rule pcb (ignore_gather_length off)
#..
clean 2

Вот что получилось:
Нажмите для просмотра прикрепленного файла
Никакой реакции..
Вот что в репорте:
Код
# Conflicts between polygon wires and fixed objects:   0
# Stub Violations:   0
# Net Order Violations:   0
# Diffpair Uncoupled Length Violations:   2
# Diffpair Phase Tolerance  Violations:   0
# Total layerset violations:   0
# Total layerset violations (exclude Fanout/Stagger):   0

Видно что Uncoupled Length Violations аж 2...То есть Specctra изначально позволяет водить с нарушением правил.. во как оно..
Vlad-od
Походу спекктра не позволяет отводы от КП делать в произвольную сторону, поэтому и такая картина разводки.
Kuzmi4
Да.. видимо буду руками водить раз такая кака наблюдается.. блин.. Предстоит тот есчё геморрой..
Uree
Я бы отводы сделал руками, а потом все-таки Спекктрой - наверное так быстрей будет? Либо наоборот - провести полностью пары, а потом поправить места отводов.
Kuzmi4
2 Uree - в принципе тоже вариЯнт - но как быть с длиннами - получается так что оно позволяет вести руками с ошиками в согласовании длинны...
Uree
А вот ошибку по длине она должна показать - тогда линии с неправильной длиной дорисовываются пунктиром. Правда как такие ошибки исправлять - понятия не имею.
Kuzmi4
2 Uree - я выше приводил листинг с clean-а - там Uncoupled Length Violations == 2 , но никакого выделения пунктиром нету..
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.