Wat is het GDS-bestandsformaat?
Het .gds bestand is het gevestigde uitwisselingsformaat voor lay-outgegevens van geïntegreerde schakelingen (IC) en MEMS-maskers, formeel bekend als GDSII (Graphic Database System II) of het Calma Stream Format. Ontwikkeld door de Calma Company in 1978, werd het het de facto tape-out formaat dat chipontwerpers leveren aan halfgeleiderfabrikanten voor de fabricage van fotomaskers.
Een .gds bestand is een binaire stream bestaande uit records met een lengte-prefix, opgeslagen in big-endian byte-volgorde. Elk record begint met een 4-byte header die de recordlengte, het type en het datatype codeert, gevolgd door de gegevensinhoud. Het bestand opent altijd met een HEADER record (hex-signatuur 00 06 00 02) en sluit met ENDLIB. Tussen die markeringen organiseert het formaat de IC-geometrie in een strikte hiërarchie: bibliotheek → structuren (cellen) → elementen. Ondersteunde elementtypen zijn onder meer:
BOUNDARY- gevulde polygonen (de primaire vorm)PATH- draadsegmenten met een gedefinieerde breedteSREF/AREF- celreferenties voor enkelvoudige en array-vormen voor een compacte hiërarchieTEXT- tekstlabels met positie, oriëntatie en vergrotingBOXenNODE- aanvullende annotatie-elementen
Alle geometrie bevindt zich op genummerde lagen, met gehele getallen als coördinaten die worden geschaald door een UNITS record dat database-eenheden koppelt aan meters.
Een .gds bestand slaat alleen geometrie en hiërarchie op - het is geen schema of netlijst. Bestandsgroottes variëren van kilobytes voor een enkele cel tot vele gigabytes voor een volledige reticle-maskerset. Grote bestanden worden vaak gedistribueerd als .gds.gz met behulp van externe gzip-compressie. Voor moderne ontwerpen met een hoge dichtheid biedt het OASIS-formaat een betere compressie en snellere verwerking en krijgt het steeds meer de voorkeur boven .gds, hoewel .gds de dominante uitwisselingsstandaard blijft in de EDA-industrie en door vrijwel elke commerciële fabriek wordt geaccepteerd.
Beveiliging & veiligheid
RISICO: LOWEen GDSII-bestand bevat passieve geometriegegevens - geen uitvoerbare code - dus het openen ervan in een lay-outviewer is veilig. De echte zorgen zijn vertrouwelijkheid en integriteit, niet malware: een .gds is vaak waardevol eigen intellectueel eigendom (een chipontwerp onder NDA), dus ga er dienovereenkomstig mee om en vermijd het uploaden van ontwerpen naar onbekende online „GDS viewer/converter” diensten. GDSII heeft geen ingebouwde checksum, dus verifieer de integriteit via uw EDA-flow (DRC/LVS, XOR-vergelijking) in plaats van het bestand blindelings te vertrouwen.
Formaatdetails
in een notendopProgramma's die GDS-bestanden openen
Technische details
diepe specificaties| Codering | Binair, overal big-endian byte-volgorde |
| Recordstructuur | Stream van records met lengte-prefix; elk record heeft een 4-byte header: 2-byte lengte, 1-byte recordtype, 1-byte datatype, gevolgd door de payload |
| Bestandssignatuur (magic bytes) | Hex `00 06 00 02` op offset 0 - HEADER-record met lengte 6, recordtype 0x00 (HEADER), datatype 0x02 (2-byte integer) |
| MIME-type | `application/x-gdsii`; fallback `application/octet-stream` |
| Coördinatensysteem | 4-byte signed integers in database-eenheden; het `UNITS` record koppelt gebruikerseenheden aan een schaalfactor van meters per database-eenheid |
| Floating-point formaat | Calma/IBM 8-byte hexadecimale floating-point (geen IEEE 754), gebruikt in `UNITS` en andere recordvelden met reële waarden |
| Elementtypen | `BOUNDARY` (polygoon), `PATH`, `SREF` (celreferentie), `AREF` (arrayreferentie), `TEXT`, `NODE`, `BOX` |
| Lagenmodel | Gehele getallen als laagnummers (in de praktijk 0-255) gekoppeld aan een integer datatype-veld; geen ingebouwde naamtabel - de koppeling tussen laag en doel wordt extern gedefinieerd in PDK-technologiebestanden |
| Hiërarchie | Recursieve cel- (structuur) hiërarchie met behulp van `BGNSTR`/`STRNAME`/`ENDSTR` blokken; cellen die via `SREF`/`AREF` worden hergebruikt, maken een compacte weergave van herhaalde geometrie mogelijk |
| Ingebouwde compressie | Geen; bestanden worden vaak gedistribueerd als `.gds.gz` met behulp van externe gzip-compressie |
| Typische bestandsgrootte | Kilobytes voor een enkele testcel; tientallen gigabytes voor een volledige chip of volledige reticle-maskerset |
| Integriteitscontrole | Geen ingebouwde checksum; bestandsintegriteit wordt geverifieerd door downstream DRC (design rule check) en LVS (layout vs. schematic) sign-off tools |
| Intern versieveld | 2-byte integer opgeslagen in de `HEADER` record payload; gebruikelijke waarden zijn 3, 5 en 6 |
| Ondersteuning voor tekst en labels | `TEXT` elementen koppelen tekstlabels aan een laag en datatype, met positie, rotatie, vergroting en een van de vier lettertype-indices (0-3) |
| Primair gebruiksdoel | Uitwisseling van IC- en MEMS-maskerlay-outs, tape-out bij halfgeleiderfabrieken en sign-off voor fotomaskerfabricage |
| Uitgebracht | 1978 (Calma GDSII), succeeding GDS I |
| Laatste versie | GDSII (the format is frozen; largely superseded by OASIS for new flows) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.artwork.com |
GDS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over GDS-bestanden.