|
Specctra, Вопросы по командам |
|
|
|
 |
Ответов
(1 - 64)
|
Mar 12 2008, 12:31
|
Частый гость
 
Группа: Свой
Сообщений: 112
Регистрация: 5-12-05
Из: Москва, Россия
Пользователь №: 11 818

|
Цитата(bureau @ Mar 12 2008, 14:46)  Мне не надо запрещать трасировку. В даном случае, если есть контактные площадки на разных слоях(яркий пример сквозное отверстие) то контакт (подвод дорожки по плате)должен быть только на том слое, на котором мне требуеться. IMHO, вам предется в вашем редакторе платы изменить padstack штыревых компонентов - добавить графику запрета трассировки в ненужном слое. Тогда бедная спекктра в нем не сможет подключиться и будет стараться в нужных слоях.
Сообщение отредактировал Галстук - Mar 12 2008, 12:32
|
|
|
|
|
Mar 12 2008, 14:07
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(Kuzmi4 @ Mar 12 2008, 16:43)  Зачем так жестоко - по моему самый быстрый вариант - намалевать keepout вокруг того что надо А теперь представь ситуацию, что у тебя плата 10*20см(примерно) и на этой плате плотность компонентов очень высокая, при том еще и идет все в перемешку с СМД и ПАД. И что Ты предлогаешь для каждого ПАДа отдельно мне рисовать keepout ??? Да, можно, но гемору будет... Цитата(Kuzmi4 @ Mar 12 2008, 16:43)  Огласите всё таки людям, зачем вам такой мега-изврат ??  Приедишь в гости покажу.
|
|
|
|
|
Mar 12 2008, 14:23
|
Местный
  
Группа: Свой
Сообщений: 363
Регистрация: 27-07-07
Из: Voronezh
Пользователь №: 29 411

|
Цитата(bureau @ Mar 12 2008, 11:08)  Буду признателен за помощь. Ситуация у меня такая: на плате есть смесь компонентов с разными корпусами, в том числе и со сквозными отверстиями. Есть ли какие-то варианты по использыванию кодов, что б спектра подводила трассы ко всем копмонентам только со стороны слоя top. При этом так же для разводки использывался слой bottom Может разводить как с перемычками? http://electronix.ru/forum/index.php?showtopic=44034
|
|
|
|
|
Mar 13 2008, 12:20
|

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(Галстук @ 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) )
|
|
|
|
|
Jun 16 2008, 11:36
|
Местный
  
Группа: Свой
Сообщений: 363
Регистрация: 27-07-07
Из: Voronezh
Пользователь №: 29 411

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

Знающий
   
Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593

|
Цитата(CAHTA_1939 @ Jun 15 2008, 20:18)  ника не могу заставить спектру использовать мои параметры для via ... эта тема неоднократно поднималась, пользуйтесь поиском. Поищите на http://pcad.ru/forum/ Там встречается неоднократно!
Сообщение отредактировал bureau - Jun 16 2008, 21:23
|
|
|
|
|
Sep 25 2008, 07:49
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Дабы не плодить кучу тем, решил запостить здесь. Вопрос собственно такой: Есть клоковая линия DDR2 от камешка(CLK и CLK_N). Потом терминатор а потом звездой к 2-м чипам DDR2. В описании к камешку сказано, что для клоковой линии нужно имплементить задержку в 500ps - это даёт некоторую свободу по длинне  (если что - accordion там и всё такое). Далее топология такова что, можно и хочется вести эту дифпару подальше от других сигналов (ниже приложил рисунок). К тому же нужно контролировать длинну всей дифпары. Вся клоковая линия реализованана так: шарик PPC - резистор(0Ом) - терминатор (RC) - шарик DDR2. Терминатор стоит как раз между 2-мя DDR2 чтоб от него было легче отводить к клоковым шарикам DDR2.. Значит в графике прибл топология такова:
жёлтая линия - прибл путь для CLK голубая линия - прибл путь для CLK_N Вопрос - как это сделать ? То, до чего додумался я - поставить виртуальный пин и вести через него. Но когда ставлю виртуальный пин, то можно 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 - виа
Да и как видно к шарам не ведёт сабака.. Не подскажет кто из знающих как можно это сделать ?
|
|
|
|
|
Sep 25 2008, 13:42
|
Знающий
     
Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480

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

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
2 Uree - ага...благодарствую.. На счёт группы Код define (group CLK_N_00 (fromto "R191"-"2" "IC9"-"J8")) А это как понимать ? По идее это и задаёт группу с fromto.. И есть есчё вопрос: Задам я значит рулезы. Теперь нужно тянуть дифпару ручками.. А как ручками в спекктре тянуть дифпару ?? А то что то нашёл только одиночный проводник...
|
|
|
|
|
Sep 26 2008, 13:31
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Есчё интересное наблюдается Код 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а не соблюдает правила который в принципе видно что она скушала ? Как тут быть ??
|
|
|
|
|
Sep 26 2008, 15:08
|
Знающий
     
Группа: Свой
Сообщений: 5 223
Регистрация: 25-04-05
Из: Z. Gora
Пользователь №: 4 480

|
Просто не все задано, что нужно Спекктре для корректной трассировки пары. Посмотрел в дизайн, вытащил отчет для пары ЮСБ - посмотрите что задано для цепей задайте то же самое, должно помочь. По идее нужно задавать все, что написано в 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
|
|
|
|
|
Sep 27 2008, 07:38
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
То есть получается если не всё задано - то воспринимать не будет - хм.. интересно... Счас пороюсь в доках, а то не совсем ясно как задавать diff pair min line spacing diff pair gather control diff pair positive/negative coupled tolerancе и попробуем
|
|
|
|
|
Sep 29 2008, 09:44
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Ага , нашёл параметры - не сильно они распространены оказались. В результате я выродил такой 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) Посмотрел по закладкам:
Вроде верно всё.. Потом нажимаю на пиктограммку  И вижу всё ту же картину Я что-то совсем запутался.....
|
|
|
|
|
Sep 29 2008, 13:47
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Только что ручками проставил:
Далее нажимаю на пиктограммку  В результате веду ручками и получаю такую картину:  При чём достоверно известно что между КП 1.8 мм - то есть разница в длинне у них уже как минимум около 1.8 мм.... 2 Vlad-od - зазор оно у меня тоже выдерживает , только начиная с тех сегментов , которые не соединены с КП... 2MrYuran Phase Tolerance Type -> Length - родит мне phase_tolerance_length - то есть это разница в фазе , только выраженная через единицы длинны (в проекте установлены мм). С теми настройками что я задал ну никак разницы в 1.8 мм не должно быть....
|
|
|
|
|
Sep 30 2008, 10:40
|

Гуру
     
Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329

|
Попробовал 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 изначально позволяет водить с нарушением правил.. во как оно..
|
|
|
|
|
Mar 30 2009, 19:38
|

Местный
  
Группа: Свой
Сообщений: 396
Регистрация: 22-10-04
Из: Воронеж
Пользователь №: 962

|
Хочу развести, допустим дифференциальные пары, выровненные по длине. вот DO - файл Цитата # ACCEL PCB V19.02.9589 Auto-Generated DO File # Sun Mar 29 18:42:35 2009 # bestsave on $\best.w status_file $\progress.sts # unit mm # grid wire 0.050000 grid via 0.10000 #
define (pair (nets DIFF1 DIFF2 (gap 0.15))) define (pair (nets DIFF3 DIFF4 (gap 0.15))) define (class DIFF DIFF1 DIFF2 DIFF3 DIFF4) circuit class DIFF (length 110 105 (type actual)) rule class DIFF (length_amplitude 5) rule class DIFF (length_gap 1)
define (class D D1 D2 D3) circuit class D (length 210 205 (type actual)) rule class D (length_amplitude 5) rule class D (length_gap 1)
protect all wires
bus diagonal
route 50 clean 4 route 50 16 clean 4 filter 5 route 100 16 clean 2 delete conflicts # write wire $\probe1.w spread miter write wire $\probe1.m #
write session $\probe1.ses report status $\probe1.sts Вроде что-то развёл подобное, но в некоторых местах выглядит жутковато (файл Жуть.gif). Как избавиться от прямых углов при переходе на другой слой??
Эскизы прикрепленных изображений
Прикрепленные файлы
probe1.zip ( 26.46 килобайт )
Кол-во скачиваний: 16
--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|