From 2d8b36d65c582b60afd9f63b6eef11dcb6d77ae0 Mon Sep 17 00:00:00 2001 From: werner Date: Wed, 12 Aug 2009 17:56:55 +0000 Subject: [PATCH] - named vectors in sc89.fpd - README: described use of "loop" as "if" and change fbga.fpd to use this git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5428 99fdad57-331a-0410-800a-d7fa5415bdb3 --- README | 9 +++++++ fbga.fpd | 18 ++++++++------ sc89.fpd | 74 ++++++++++++++++++++++++++++---------------------------- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/README b/README index 6405124..21ad555 100644 --- a/README +++ b/README @@ -331,6 +331,15 @@ following loop would not execute at all: loop n = 1, 0 +This can be used to implement conditional execution. For example, +the items in the following frame would be instantiated if the +variable "enable" is set to 1 but not it is set to 0: + +frame ... { + loop dummy = 1, enable + ... +} + When a loop is executed, the objects contained in the body of the enclosing frame are generated for each value of the variable. If a frame contains multiple loops, all possible combinations of the diff --git a/fbga.fpd b/fbga.fpd index 4d9b6f3..0c0a1d8 100644 --- a/fbga.fpd +++ b/fbga.fpd @@ -16,7 +16,9 @@ frame pad { } frame inner { - loop col = c0, c1 + loop col = 2, 3 + + loop enable = 1, inner frame pad @ } @@ -35,13 +37,13 @@ frame first { part "Fake_BGA" table - { row, rname, c0, c1 } - { 0, "A", 2, 3 } - { 1, "B", 2, 3 } - { 2, "C", 9, 0 } - { 3, "D", 9, 0 } - { 4, "E", 2, 3 } - { 5, "F", 2, 3 } + { row, rname, inner } + { 0, "A", 1 } + { 1, "B", 1 } + { 2, "C", 0 } + { 3, "D", 0 } + { 4, "E", 1 } + { 5, "F", 1 } frame last @ frame first @ diff --git a/sc89.fpd b/sc89.fpd index 6cbc027..4f6bd49 100644 --- a/sc89.fpd +++ b/sc89.fpd @@ -1,10 +1,10 @@ /* MACHINE-GENERATED ! */ frame pad { - _pad_0: vec @(-Px/2, -Py/2) - _pad_1: vec .(Px, 0mm) - _pad_2: vec _pad_0(0mm, Py) - pad "$pad" . _pad_1 + corner: vec @(-Px/2, -Py/2) + x: vec .(Px, 0mm) + y: vec corner(0mm, Py) + pad "$pad" . x } frame pad_ne { @@ -29,25 +29,25 @@ frame pad_sc { } frame outline { - __4: vec @(0mm, Oy/2) - __5: vec @(0mm, -Oy/2) - __6: vec .(Ox/2, 0mm) - __7: vec __5(-Ox/2, 0mm) - line . __6 5mil - __8: vec __4(Ow/2, 0mm) - __9: vec __4(-Ow/2, 0mm) - line . __8 5mil - _outline_6: vec @(0mm, Oh) - _outline_7: vec .(Ox/2, 0mm) - line . __6 5mil - _outline_8: vec _outline_6(-Ox/2, 0mm) - line . __7 5mil - _outline_9: vec _outline_6(Ow/2, 0mm) - line __8 . 5mil - line . _outline_7 5mil - _outline_10: vec _outline_6(-Ow/2, 0mm) - line _outline_8 . 5mil - line __9 . 5mil + top: vec @(0mm, Oy/2) + bottom: vec @(0mm, -Oy/2) + bot_right: vec .(Ox/2, 0mm) + bot_left: vec bottom(-Ox/2, 0mm) + line . bot_right 5mil + top_right: vec top(Ow/2, 0mm) + top_left: vec top(-Ow/2, 0mm) + line . top_right 5mil + middle: vec @(0mm, Oh) + mid_rightmost: vec .(Ox/2, 0mm) + line . bot_right 5mil + mid_leftmost: vec middle(-Ox/2, 0mm) + line . bot_left 5mil + mid_right: vec middle(Ow/2, 0mm) + line top_right . 5mil + line . mid_rightmost 5mil + mid_left: vec middle(-Ow/2, 0mm) + line mid_leftmost . 5mil + line top_left . 5mil } part "SC89" @@ -59,22 +59,22 @@ table { Ox, Oy, Oh, Ow } { 2mm, 2.2mm, 0.6mm, 0.85mm } -__0: vec @(0mm, Gy/2) +ref_up: vec @(0mm, Gy/2) frame pad_sc . -__1: vec @(0mm, -Gy/2) -__2: vec .(Wx/2, 0mm) +ref_down_c: vec @(0mm, -Gy/2) +ref_down_r: vec .(Wx/2, 0mm) frame pad_ne . -__3: vec __1(-Wx/2, 0mm) +ref_down_l: vec ref_down_c(-Wx/2, 0mm) frame pad_nw . dummy: vec @(0.2mm, 0mm) frame outline @ -measx pad._pad_0 >> pad._pad_1 -0.6mm -measy pad._pad_0 >> pad._pad_2 0.8mm -measy __3 >> pad._pad_0 0.5mm -measx pad._pad_0 -> pad._pad_1 -0.3mm -measy pad._pad_0 >> __3 0.5mm -measy dummy >> outline.__6 1.1mm -measy outline._outline_7 >> dummy 0.3mm -measy outline.__8 >> outline.__6 1.2mm -measx outline.__9 >> outline.__8 0.3mm -measx outline.__7 >> outline.__6 -0.8mm +measx pad.corner >> pad.x -0.6mm +measy pad.corner >> pad.y 0.8mm +measy ref_down_l >> pad.corner 0.5mm +measx pad.corner -> pad.x -0.3mm +measy pad.corner >> ref_down_l 0.5mm +measy dummy >> outline.bot_right 1.1mm +measy outline.mid_rightmost >> dummy 0.3mm +measy outline.top_right >> outline.bot_right 1.2mm +measx outline.top_left >> outline.top_right 0.3mm +measx outline.bot_left >> outline.bot_right -0.8mm