mirror of
git://projects.qi-hardware.com/fped.git
synced 2025-04-21 12:27:27 +03:00
A bit of cleanup, as suggested by Chitlesh Goorah.
- moved all examples to examples/ - README: updated and corrected example invocation git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5748 99fdad57-331a-0410-800a-d7fa5415bdb3
This commit is contained in:
56
examples/fbga.fpd
Normal file
56
examples/fbga.fpd
Normal file
@@ -0,0 +1,56 @@
|
||||
/* MACHINE-GENERATED ! */
|
||||
|
||||
frame pad {
|
||||
set Px = 0.5mm
|
||||
|
||||
set Py = 0.5mm
|
||||
|
||||
set cname = col+1
|
||||
|
||||
set e = 1mm
|
||||
|
||||
__0: vec @(col*e-Px/2, row*-e-Py/2)
|
||||
__1: vec .(0mm, Py)
|
||||
__2: vec __0(Px, 0mm)
|
||||
rpad "$rname$cname" __1 .
|
||||
}
|
||||
|
||||
frame inner {
|
||||
loop col = 2, 3
|
||||
|
||||
loop enable = 1, inner
|
||||
|
||||
frame pad @
|
||||
}
|
||||
|
||||
frame last {
|
||||
loop col = 4, 5
|
||||
|
||||
frame pad @
|
||||
}
|
||||
|
||||
frame first {
|
||||
loop col = 0, 1
|
||||
|
||||
frame pad @
|
||||
}
|
||||
|
||||
package "Fake_BGA"
|
||||
table
|
||||
{ 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 @
|
||||
frame inner @
|
||||
measy pad.__0 -> pad.__1 0.2mm
|
||||
measy pad.__0 -> pad.__0 0.5mm
|
||||
measx pad.__0 -> pad.__2 -0.3mm
|
||||
measx pad.__0 -> pad.__0 -0.6mm
|
||||
measy pad.__0 >> pad.__1 0.8mm
|
||||
measx pad.__0 >> pad.__2 -0.9mm
|
||||
24
examples/meas.fpd
Normal file
24
examples/meas.fpd
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* new-style measurements demo
|
||||
*/
|
||||
|
||||
part "measurements"
|
||||
loop x = -2, 2
|
||||
A: vec @(0mm, 0mm)
|
||||
B: vec @(x*2mm, 2mm)
|
||||
C: vec @(0mm, 4mm)
|
||||
|
||||
/*
|
||||
* If we measure (x, y), y trumps x
|
||||
*/
|
||||
meas "A -> B = " A -> B 0.2mm
|
||||
meas "A <- B = " A <- B 0.5mm
|
||||
|
||||
meas "A >> B = " A >> B 1.5mm
|
||||
|
||||
measx "x(A -> B) = " A -> B -0.5mm
|
||||
measx "x(A >> B) = " A >> B -1mm
|
||||
measy "y(A -> B) = " A -> B -2mm
|
||||
measy "y(A >> B) = " A >> B -4.5mm
|
||||
|
||||
meas "B -> C = " B -> C 0.5mm
|
||||
73
examples/qfn.fpd
Normal file
73
examples/qfn.fpd
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Example of a QFN package (and general construction site to experiment with
|
||||
* fped features during development)
|
||||
*
|
||||
* Everything you see here is likely to change sooner or later.
|
||||
*
|
||||
* http://www.nxp.com/acrobat/packages/footprint/SOT616-1_fp_reflow.pdf
|
||||
*/
|
||||
|
||||
frame pad_up {
|
||||
c: vec @(-D/2, 0mm)
|
||||
o: vec c(D, C)
|
||||
set pad = n+1
|
||||
pad "$pad" c .
|
||||
}
|
||||
|
||||
frame pads {
|
||||
loop n = 0, N/4-1
|
||||
|
||||
vec @(P*(n-(N/4-1)/2), -Ay/2)
|
||||
frame pad_up .
|
||||
|
||||
}
|
||||
|
||||
|
||||
part "qfn"
|
||||
|
||||
|
||||
set N = 24
|
||||
|
||||
/*
|
||||
* Note that this table is not a great example because it contains lots of
|
||||
* fields we don't really need for iterations. But it's useful for driving
|
||||
* the GUI to extremes.
|
||||
*/
|
||||
|
||||
table
|
||||
{ P, Ax, Ay, Bx, By, C, D, SLx, SLy, SPx_tot, SPy_tot, SPx, SPy, Gx, Gy, Hx, Hy }
|
||||
{ 0.5mm, 5mm, 5mm, 3.2mm, 3.2mm, 0.9mm, 0.24mm, 2.1mm, 2.1mm, 1.2mm,
|
||||
1.2mm, 0.45mm, 0.45mm, 4.3mm, 4.3mm, 5.25mm, 5.25mm }
|
||||
|
||||
h_x0y0: vec @(-Hx/2, -Hy/2)
|
||||
h_x1y1: vec .(Hx, Hy)
|
||||
rect h_x0y0 h_x1y1 8mil
|
||||
|
||||
/*
|
||||
* we can't draw the package outline on the silk screen for it would print
|
||||
* over the pads.
|
||||
*/
|
||||
#if 0
|
||||
g_x0y0: vec @(-Gx/2, -Gy/2)
|
||||
g_x1y1: vec .(Gx, Gy)
|
||||
#endif
|
||||
|
||||
frame pads @
|
||||
|
||||
// ARC, just for testing
|
||||
|
||||
c: vec @(-1mm, 1mm)
|
||||
r: vec c(0mm, 0.5mm)
|
||||
e: vec c(-0.5mm, 0mm)
|
||||
arc c r e 2mil
|
||||
|
||||
r2: vec c(0mm, 0.8mm)
|
||||
circ c r2 5mil
|
||||
|
||||
/*
|
||||
x1 = 1+2*3
|
||||
x2 = (1+2)*3
|
||||
x3 = 1-(2+3)
|
||||
*/
|
||||
|
||||
measy pad_up.c -> pad_up.o 0.2mm
|
||||
15
examples/quad.fpd
Normal file
15
examples/quad.fpd
Normal file
@@ -0,0 +1,15 @@
|
||||
frame c {
|
||||
vec @(1mm, 0mm)
|
||||
circ . @
|
||||
}
|
||||
|
||||
part "quad"
|
||||
|
||||
vec @(-1mm, 1mm)
|
||||
frame c .
|
||||
vec @(1mm, -1mm)
|
||||
frame c .
|
||||
vec @(-1mm, -1mm)
|
||||
frame c .
|
||||
vec @(1mm, 1mm)
|
||||
frame c .
|
||||
80
examples/sc89.fpd
Normal file
80
examples/sc89.fpd
Normal file
@@ -0,0 +1,80 @@
|
||||
/* MACHINE-GENERATED ! */
|
||||
|
||||
frame pad {
|
||||
corner: vec @(-Px/2, -Py/2)
|
||||
x: vec .(Px, 0mm)
|
||||
y: vec corner(0mm, Py)
|
||||
pad "$pad" . x
|
||||
}
|
||||
|
||||
frame pad_ne {
|
||||
set pad = 2
|
||||
|
||||
_pad_ne_0: vec @(-Px/2, -Py/2)
|
||||
frame pad .
|
||||
}
|
||||
|
||||
frame pad_nw {
|
||||
set pad = 1
|
||||
|
||||
_pad_nw_0: vec @(Px/2, -Py/2)
|
||||
frame pad .
|
||||
}
|
||||
|
||||
frame pad_sc {
|
||||
set pad = 3
|
||||
|
||||
_pad_sc_0: vec @(0mm, Py/2)
|
||||
frame pad .
|
||||
}
|
||||
|
||||
frame outline {
|
||||
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
|
||||
}
|
||||
|
||||
package "SC89"
|
||||
table
|
||||
{ Px, Py, Gy, Wx }
|
||||
{ 0.5mm, 0.6mm, 0.7mm, 1.5mm }
|
||||
|
||||
table
|
||||
{ Ox, Oy, Oh, Ow }
|
||||
{ 2mm, 2.2mm, 0.6mm, 0.85mm }
|
||||
|
||||
ref_up: vec @(0mm, Gy/2)
|
||||
frame pad_sc .
|
||||
ref_down_c: vec @(0mm, -Gy/2)
|
||||
ref_down_r: vec .(Wx/2, 0mm)
|
||||
frame pad_ne .
|
||||
ref_down_l: vec ref_down_c(-Wx/2, 0mm)
|
||||
frame pad_nw .
|
||||
dummy: vec @(0.2mm, 0mm)
|
||||
frame outline @
|
||||
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
|
||||
16
examples/tab.fpd
Normal file
16
examples/tab.fpd
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* row selection example
|
||||
*/
|
||||
|
||||
part "tab"
|
||||
|
||||
table
|
||||
{ x, x2 }
|
||||
{ 1mm, 1 }
|
||||
{ 2mm, 4 }
|
||||
{ 3mm, 9 }
|
||||
vec @(x, 0mm)
|
||||
circ @ .
|
||||
c: vec @(x-1mm, -4mm)
|
||||
vec c(0.5mm, 0.5mm)
|
||||
pad "$x2" c .
|
||||
Reference in New Issue
Block a user