|
7 | 7 |
|
8 | 8 | from .packaging import QuadPackageDef, BareDiePackageDef, GAPackageDef, Package, OpenframePackageDef |
9 | 9 |
|
10 | | -# Add any new package types to both PACKAGE_DEFINITIONS and the PackageDef union |
| 10 | +# Add any new package types to both PACKAGE_DEFINITIONS and the PackageDef union. |
| 11 | +# Europractice quad packages use the QuadPackageDef pin numbering (CCW from |
| 12 | +# top-left) which matches EP's GDS labels. EP-specific cell names, layer |
| 13 | +# conventions and pin_map strings live in chipflow-backend's packaging_klayout |
| 14 | +# plugin (data/ep_packages.json), keeping this library vendor-agnostic. |
11 | 15 | PACKAGE_DEFINITIONS = { |
12 | | - "pga144": QuadPackageDef(name="pga144", width=36, height=36), |
13 | | - "cf20": BareDiePackageDef(name="cf20", width=7, height=3), |
14 | | - "bga144": GAPackageDef(name="bga144", width=36, height=36), |
15 | | - "openframe": OpenframePackageDef() |
| 16 | + # Bare die / generic |
| 17 | + "cf20": BareDiePackageDef(name="cf20", width=7, height=3), |
| 18 | + "openframe": OpenframePackageDef(), |
| 19 | + |
| 20 | + # PGA — perimeter pin grid arrays |
| 21 | + "pga84": QuadPackageDef(name="pga84", width=21, height=21), |
| 22 | + "pga100s": QuadPackageDef(name="pga100s", width=25, height=25), |
| 23 | + "pga100l": QuadPackageDef(name="pga100l", width=25, height=25), |
| 24 | + "pga120": QuadPackageDef(name="pga120", width=30, height=30), |
| 25 | + "pga144": QuadPackageDef(name="pga144", width=36, height=36), |
| 26 | + "pga208": QuadPackageDef(name="pga208", width=52, height=52), |
| 27 | + # pga256 — staggered double-row, deferred (see ep_packages.json _todo_v2_) |
| 28 | + |
| 29 | + # QFP / CERQUAD |
| 30 | + "qfp64": QuadPackageDef(name="qfp64", width=16, height=16), |
| 31 | + "qfp120": QuadPackageDef(name="qfp120", width=30, height=30), |
| 32 | + "qfp160": QuadPackageDef(name="qfp160", width=40, height=40), |
| 33 | + "qfp208": QuadPackageDef(name="qfp208", width=52, height=52), |
| 34 | + |
| 35 | + # QFN — QuadPackageDef requires height // 2 > 3 (min 8 pins/side) for its |
| 36 | + # bringup power-pin allocation, so qfn16 and qfn24 are intentionally absent. |
| 37 | + # Their EP descriptors remain in ep_packages.json for documentation. |
| 38 | + "qfn32": QuadPackageDef(name="qfn32", width=8, height=8), |
| 39 | + "qfn40_6x6": QuadPackageDef(name="qfn40_6x6", width=10, height=10), |
| 40 | + "qfn48": QuadPackageDef(name="qfn48", width=12, height=12), |
| 41 | + "qfn56": QuadPackageDef(name="qfn56", width=14, height=14), |
| 42 | + "qfn64_9x9": QuadPackageDef(name="qfn64_9x9", width=16, height=16), |
| 43 | + "qfn80_12x12": QuadPackageDef(name="qfn80_12x12", width=20, height=20), |
| 44 | + "qfn88_10x10": QuadPackageDef(name="qfn88_10x10", width=22, height=22), |
| 45 | + "qfn100_12x12": QuadPackageDef(name="qfn100_12x12", width=25, height=25), |
| 46 | + |
| 47 | + # BGA — ball grid array (different geometry class) |
| 48 | + "bga144": GAPackageDef(name="bga144", width=36, height=36), |
16 | 49 | } |
17 | 50 |
|
18 | 51 | Package.model_rebuild() |
0 commit comments