Ответ (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено 18 сентября 2003 г. 17:18
В ответ на: Не представляю, как на Спектре можно все на автомате водить. Поделитесь опытом настроек, если не жалко. отправлено Ljutik 18 сентября 2003 г. 17:09

не все. подведение питача к БГА например делалось частично вручную. И разводка DC-DC импульсного вручную. А вот do-файл, что попроще. Без импедансов. C этого do-файла получился отличный PCB почти без ручных доработок отправленный в серию. На плате 2 БГА, несколько qfp и TSSOP.



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 (bundle HPI_D (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets HD0 HD1 HD2 HD3))
#define (bundle HPI_D (add_net HD4 HD5 HD6 HD7 HD8 HD9 HD10 HD11 HD12 HD13 HD14 HD15))

#define (bundle XED_L (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets XED0 XED1 XED2 XED3))
#define (bundle XED_L (add_net XED4 XED5 XED6 XED7 XED8 XED9 XED10 XED11))
#define (bundle XED_L (add_net XED12 XED13 XED14 XED15))

#define (bundle XED_H (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets XED16 XED17 XED18 XED19))
#define (bundle XED_H (add_net XED20 XED21 XED22 XED23 XED24 XED25 XED26 XED27))
#define (bundle XED_H (add_net XED28 XED29 XED30 XED31))

#define (bundle XEA (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets XEA2 XEA3 XEA4 XEA5))
#define (bundle XEA (add_net XEA6 XEA7 XEA8 XEA9 XEA10 XEA11 XEA12 XEA13 XEA14 XEA15 XEA16))

#define (bundle YED_L (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets YED0 YED1 YED2 YED3))
#define (bundle YED_L (add_net YED4 YED5 YED6 YED7 YED8 YED9 YED10 YED11))
#define (bundle YED_L (add_net YED12 YED13 YED14 YED15))

#define (bundle YED_H (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets YED16 YED17 YED18 YED19))
#define (bundle YED_H (add_net YED20 YED21 YED22 YED23 YED24 YED25 YED26 YED27))
#define (bundle YED_H (add_net YED28 YED29 YED30 YED31))

#define (bundle YEA (gap 7 (layer TOP BOTTOM INT1 INT2)) (nets YEA2 YEA3 YEA4 YEA5))
#define (bundle YEA (add_net YEA6 YEA7 YEA8 YEA9 YEA10 YEA11 YEA12 YEA13 YEA14 YEA15 YEA16))

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 bundle
select all pair
cost via high
route 40
protect selected_wires
unselect all objects
tax way 4
#forget bundle XED_L XED_H XEA YED_L YED_H YEA
#set diagonal_mode on

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 $\packer_a.w
center
spread (extra 20 1)
miter (pin) (tjunction) (bend) (style diagonal)
critic
write wire $\packer_a.m

write session $\packer_a.ses
report status $\packer_a.sts


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru