Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Самодеятельность Specctra
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Работаем с трассировкой
muravei
Спору нет удобная Вещь. Но уж больно деятельная. Руководствуется своей логикой и удаляет ненужные, по ее мнению , виа , а мне может они нравяцца! Как ей это запретить ? Остались последние штрихи ...
SM
ну, наверное, protect all vias после того, как все via, которые нравятся, стоят на своих местах. Или protect selected vias.... После того, как они выделены.
muravei
Цитата(SM @ Jun 16 2009, 19:22) *
ну, наверное, protect all vias после

А когда это делать , Спектра все порешает сразу после входа в нее из ПИКАДа.
В ПИКАДе я ничего такого не нашел , а фиксировать каждую виа по одиночке -бермуторно.
Кроме того, у меня такое впечатление, что Спектра пилюет на пикадовские запреты.
SM
Как когда? В скрипте, который "DO File" называется, и грузится кнопкой load в пикаде перед вызовом спектры. И в котором Вы должны рассказать все спектре о том, что Вы от нее хотите... Включая все запреты... Насчет плевания на пикадовские я не знаю, я всегда ей свои задаю. Вот примерчик (тут с BGA-шками разводка была, с дифпарами...):

Код
bestsave on $\best.w
status_file $\progress.sts

unit mil
grid wire 1.000000
grid via  5.000000

rule pcb (pin_width_taper down (max_length 80))
rule pcb (width 7)  (clearance 7)
rule pcb (limit_vias 6)
rule pcb (clearance 8 (type smd_via))
rule pcb (clearance 8 (type pin_via))
rule pcb (via_at_smd off)

define (pair (nets BFS?+ BFS?- (gap 8)))
define (pair (nets BCLK?+ BCLK?- (gap 8)))
define (pair (nets BDX?+ BDX?- (gap 8)))
define (pair (nets BDR?+ BDR?- (gap 8)))

set average_pair_length on

rule class POWER (width 14.0) (clearance 9 (type wire_wire))
rule class CVDD (width 18.0) (clearance 10 (type wire_wire))
rule class DIFF0 (width 10.0) (clearance 10 ) (limit_vias 1)
rule class DIFF1 (width 10.0) (clearance 10 ) (limit_vias 1)
rule class CLOCKS (width 12) (clearance 10 (type wire_wire)) (limit_vias 4)
rule class PLL (width 10) (clearance 10 (type wire_wire)) (limit_vias 2)

circuit class POWER (use_via medium_via) (priority 150)
circuit class CVDD (use_via medium_via) (priority 150)
circuit class CLOCKS (use_via medium_via) (priority 150)
circuit class DIFF0 (use_via min_via) (priority 150) (match_net_length on (tolerance 101))
circuit class DIFF1 (use_via min_via) (priority 150) (match_net_length on (tolerance 101))
circuit class OTHER (use_via min_via)
circuit class PLL (use_via min_via) (priority 200)

direction TOP diagonal
direction INT1 orthogonal
direction INT2 orthogonal
direction BOTTOM diagonal

cost side_exit free
cost off_center free
cost layer Top free (type length)
cost layer Top free (type way)
cost layer Int1 free (type length)
cost layer Int1 forbidden (type way)
cost layer Int2 free (type length)
cost layer Int2 forbidden (type way)
cost layer Bottom free (type length)
cost layer Bottom free (type way)

protect all vias
protect all wires

via_at_smd off

select component U1
select component U2
select component U3
select component U4
select component U5
select component U6
select component U7
select component U8
select component U9
select component U10
fanout 1 (direction in_out) (max_len 350) (location anywhere) (pin_share on) (smd_share on) (via_share on) (share_len 305) (pin_type power)
unselect all objects

select component U3
select component U4
select component U5
select component U6
select component U7
fanout 1 (smart_via_grid one_wire_between) (direction in_out) (max_len 250) (location anywhere) (pin_share off) (smd_share off) (via_share off) (pin_type all)
unselect all objects

select component U1
select component U2
fanout 1 (direction in_out) (max_len 250) (location anywhere) (pin_share off) (smd_share off) (via_share off) (pin_type all)
unselect all objects

bus diagonal

set diagonal_mode always
set dynamic_pinswap on
select all pair
cost via high
route 40
protect selected_wires
unselect all objects
tax way 4

cost via medium
route 3
cost via high
route 20
clean 2
tax way 8
tax via 4
route 25 10
clean 2
route 25 30
clean 4
route 1
route 30 65
clean 8


write wire $\board.w
center
spread  (extra 20 1)
miter (pin) (tjunction) (bend) (style diagonal)
critic
write wire $\board.m

write session $\board.ses
report status $\board.sts
muravei
Цитата(SM @ Jun 16 2009, 22:49) *
Как когда? В скрипте, который "DO File" называется,

Эт мне столько писать?! Лучше я пешком постою.
А нельзя , она ведь сама тоже создает этот фаил , вставить туда строчку, чтобы мои виа не трогала , в момент запуска?
SM
Цитата(muravei @ Jun 16 2009, 22:57) *
Эт мне столько писать?! Лучше я пешком постою.
А нельзя , она ведь сама тоже создает этот фаил , вставить туда строчку, чтобы мои виа не трогала , в момент запуска?

Понятия не имею, что он там создает и как. Я этим никогда не пользовался, и всегда делаю так, как мне надо, а не как пикаду. Кстати, заодно, я и не трачу время на задание ограничений для спектры в самом пикаде, это зверски не удобно, все эти диалоги, клики, окошки... Скрипт куда проще, быстрее и понятнее.
muravei
Цитата(SM @ Jun 16 2009, 23:03) *
Понятия не имею, что он там создает и как. Я этим никогда не пользовался, и всегда делаю так, как мне надо,

Как должен выглядеть этот скрипт в простейшем случае, мне не надо авторазводки, мне надо чтобы она самостоятельно НИЧЕГО не делала. Я пробовал вставить эти два волшебных предложения (protect all vias
protect all wires) в фаил созданный ПИКАДом, Спектра бросилась все переразводить автоматически(ну это понятно авторазводка), я удалил все кроме них из файла. Результат:
# <<WARNING:>> 2 redundant wires and vias were deleted
SM
Цитата(muravei @ Jun 17 2009, 11:59) *
Как должен выглядеть этот скрипт в простейшем случае, мне не надо авторазводки, мне надо чтобы она самостоятельно НИЧЕГО не делала.

Для этого надо снять галку "Quit when done" в опциях Command line окна запуска спектры. И, главное, не забыть после всего того, что сделано в спектре руками, дать ей команду write session, как она в do-файле выглядит, иначе пикад не вберет в себя изменения, сделанные в спектре.

А еще лучше вообще из-под пикада ее не пускать, а пользоваться пикадовскими accel2sp, sp2accel и пускать спектру как отдельную программу. По крайней мере пикад не будет "висеть" все это время.
Vadim
Цитата(SM @ Jun 17 2009, 14:33) *
А еще лучше вообще из-под пикада ее не пускать, а пользоваться пикадовскими accel2sp, sp2accel и пускать спектру как отдельную программу. По крайней мере пикад не будет "висеть" все это время.

Имхо, это единственно правильный метод, чтобы эффективно в ней работать. Но большинство пользователей пикада категорически отказываются это понимать. Тоже имхо.
muravei
Цитата(SM @ Jun 17 2009, 15:33) *
Для этого надо снять галку "Quit when done" в опциях Command line окна запуска спектры.

Это давно сделано, сама она не выходит, но если нажать нв выход с сохранением , то все ОК.
Но всетаки, я присмотрелся , после записи команд в ду файл , немного изменилось , некоторые виа она оставляет и сообщила:"# All Vias Protected.
# All Wires Protected." Но от этого не легче.
Это остается: # <<WARNING:>> 2 redundant wires and vias were deleted


Цитата(SM @ Jun 17 2009, 15:33) *
а пользоваться пикадовскими accel2sp, sp2accel и пускать спектру как отдельную программу.

А где зарыты они?
SM
Цитата(muravei @ Jun 17 2009, 16:01) *
Это остается: # <<WARNING:>> 2 redundant wires and vias were deleted

ну так сами сотрите их в пикаде. И не будет варнинга. На кой Вам нужны две via, расположенные по одной координате? В чем их особый сок? Чтобы одну дырку для надежности дважды просверлили? Так их все равно на производстве прибьют...
Цитата(muravei @ Jun 17 2009, 16:01) *
А где зарыты они?

ну там, где пикад проинсталлирован.
а, сорри, забыл, их в 2006 выкинули... Вот привешу от 2004.
muravei
Цитата(SM @ Jun 17 2009, 16:12) *
На кой Вам нужны две via, расположенные по одной координате? В чем их особый сок?

Очень даже нужны, мало ли что она говорит! Она удаляет кучу виа , с помощью которых я отвожу тепло на другую сторону платы. Она их удаляет и оставляет одну.
SM
Цитата(muravei @ Jun 17 2009, 16:47) *
Очень даже нужны, мало ли что она говорит! Она удаляет кучу виа , с помощью которых я отвожу тепло на другую сторону платы. Она их удаляет и оставляет одну.

redundant - это две via в одной точке. А не две via, сделанные рядом и включенные параллельно. Те, что для отвода тепла, после protect all vias, она не удаляет. А те, что друг на друге (причем Вы сами этого не видете, и видеть не можете, так как они в одной точке) - удаляет всегда.
muravei
Цитата(SM @ Jun 17 2009, 17:12) *
А не две via, сделанные рядом и включенные параллельно.

Типа, я идиот, но не на столько! smile.gif cranky.gif
Удаляет , еще как. Попробовал фиксировать их в ПИКАДе- остаются, но сколько гимора.

Цитата(SM @ Jun 17 2009, 17:12) *
redundant - это две via в одной точке.

По словарю -излишний.
SM
Цитата(muravei @ Jun 17 2009, 17:52) *
Удаляет , еще как. Попробовал фиксировать их в ПИКАДе- остаются, но сколько гимора.

Некорректно написанный .do файл. Я вот в пикаде не делаю ничего вообще, кроме распихивания цепей по классам и какой-то предразводки всяких там питаний и аналога, и у меня все фиксирует. Вам, неверующему, скриншот привесить? Где спектра их не убила?
Цитата(muravei @ Jun 17 2009, 17:52) *
По словарю -излишний.

А по документации specctra - объект, расположенный в одной точке с другим объектом того же типа и имеющим те же геометрические размеры. Короче - случайно образовавшаяся от copy-paste хрень.
muravei
Цитата(SM @ Jun 17 2009, 18:00) *
Некорректно написанный .do файл.

А я не знаю какой он должен быть корректный. Текстовый файл с с двумя строчками:
protect all vias
protect all wires
сохраненный с расширением ду , корректный?
Во всяком случае в логе , внизу они появляются, но после удаления виа.
SM
Цитата(muravei @ Jun 17 2009, 18:15) *
А я не знаю какой он должен быть корректный. Текстовый файл с с двумя строчками:
protect all vias
protect all wires
сохраненный с расширением ду , корректный?
Во всяком случае в логе , внизу они появляются, но после удаления виа.

Смахивает на то, что тот do-файл, который попадает спектре, имеет в себе что-то нехорошее перед теми двумя строчками. Ну у меня-то не удаляет ничего лишнего!
Vadim
Цитата(SM @ Jun 17 2009, 17:18) *
Смахивает на то, что тот do-файл, который попадает спектре, имеет в себе что-то нехорошее перед теми двумя строчками.

Например, route... smile.gif
muravei
Цитата(SM @ Jun 17 2009, 18:18) *
имеет в себе что-то нехорошее перед теми двумя строчками.

Прям, стелс какой-то ! smile.gif Смотрю блокнотом -только эти две строчки.
У меня такое впечатление, что она сначала удаляет, а после смотрит ду -файл. А нет ли какой-нибудь "стоп" -команды.
Поставить перед теми двумя.
SM
Цитата(muravei @ Jun 17 2009, 18:32) *
У меня такое впечатление, что она сначала удаляет, а после смотрит ду -файл. А нет ли какой-нибудь "стоп" -команды.
Поставить перед теми двумя.

запустите ее руками без пикада, и скормите ей .do и .dsn (сделанный accel2sp) вручную. Тогда точно барабашек не будет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.