Qu'est-ce que le format de fichier GDS ?
Le fichier .gds est le format d'échange établi pour les données de tracé de masques de circuits intégrés (IC) et de MEMS, formellement connu sous le nom de GDSII (Graphic Database System II) ou Calma Stream Format. Développé par la Calma Company en 1978, il est devenu le format de « tape-out » de facto que les concepteurs de puces livrent aux fonderies de semi-conducteurs pour la fabrication de photomasques.
Un fichier .gds est un flux binaire composé d'enregistrements préfixés par leur longueur, stockés dans l'ordre d'octets big-endian. Chaque enregistrement commence par un en-tête de 4 octets encodant la longueur, le type d'enregistrement et le type de données, suivi de la charge utile. Le fichier s'ouvre toujours par un enregistrement HEADER (signature hexadécimale 00 06 00 02) et se termine par ENDLIB. Entre ces marqueurs, le format organise la géométrie du circuit intégré selon une hiérarchie stricte : bibliothèque → structures (cellules) → éléments. Les types d'éléments pris en charge incluent :
BOUNDARY- polygones pleins (la forme principale)PATH- segments de fils avec une largeur définieSREF/AREF- références de cellules uniques ou en tableau pour une hiérarchie compacteTEXT- étiquettes de texte avec position, orientation et agrandissementBOXetNODE- éléments d'annotation supplémentaires
Toute la géométrie réside sur des couches numérotées, avec des coordonnées entières mises à l'échelle par un enregistrement UNITS qui fait correspondre les unités de la base de données aux mètres.
Un fichier .gds ne stocke que la géométrie et la hiérarchie - ce n'est ni un schéma ni une netlist. La taille des fichiers varie de quelques kilo-octets pour une cellule unique à plusieurs giga-octets pour un jeu de masques complet. Les fichiers volumineux sont couramment distribués sous forme de .gds.gz en utilisant une compression gzip externe. Pour les conceptions modernes à haute densité, le format OASIS offre une meilleure compression et une analyse plus rapide ; il est de plus en plus privilégié par rapport au .gds, bien que le .gds reste la norme d'échange dominante dans l'industrie de l'EDA et soit accepté par pratiquement toutes les fonderies commerciales.
Sécurité et sûreté
RISQUE : LOWUn fichier GDSII contient des données géométriques passives - aucun code exécutable - l'ouvrir dans un visualiseur de tracé est donc sûr. Les véritables préoccupations concernent la confidentialité et l'intégrité, et non les logiciels malveillants : un .gds est souvent une propriété intellectuelle précieuse (conception de puce sous accord de confidentialité), manipulez-le donc en conséquence et évitez de téléverser des conceptions vers des services en ligne inconnus de « visualisation/conversion GDS ». Le GDSII n'a pas de somme de contrôle intégrée, vérifiez donc l'intégrité via votre flux EDA (DRC/LVS, comparaison XOR) plutôt que de faire aveuglément confiance au fichier.
Détails du format
en brefProgrammes qui ouvrent les fichiers GDS
Détails techniques
spécifications approfondies| Encodage | Binaire, ordre d'octets big-endian partout |
| Structure d'enregistrement | Flux d'enregistrements préfixés par leur longueur ; chaque enregistrement possède un en-tête de 4 octets : longueur sur 2 octets, type d'enregistrement sur 1 octet, type de données sur 1 octet, suivi de la charge utile |
| Signature de fichier (octets magiques) | Hex `00 06 00 02` à l'offset 0 - enregistrement HEADER de longueur 6, type d'enregistrement 0x00 (HEADER), type de données 0x02 (entier de 2 octets) |
| Type MIME | `application/x-gdsii` ; repli sur `application/octet-stream` |
| Système de coordonnées | Entiers signés de 4 octets en unités de base de données ; l'enregistrement `UNITS` associe les unités utilisateur à un facteur d'échelle mètres-par-unité-de-base-de-données |
| Format à virgule flottante | Virgule flottante hexadécimale Calma/IBM de 8 octets (non IEEE 754), utilisée dans `UNITS` et d'autres champs d'enregistrement à valeurs réelles |
| Types d'éléments | `BOUNDARY` (polygone), `PATH`, `SREF` (référence de cellule), `AREF` (référence de tableau), `TEXT`, `NODE`, `BOX` |
| Modèle de couches | Numéros de couches entiers (0-255 en pratique) associés à un champ de type de données entier ; pas de table de noms intégrée - la correspondance couche-usage est définie en externe dans les fichiers technologiques du PDK |
| Hiérarchie | Hiérarchie récursive de cellules (structures) utilisant des blocs `BGNSTR`/`STRNAME`/`ENDSTR` ; les cellules réutilisées via `SREF`/`AREF` permettent une représentation compacte de la géométrie répétée |
| Compression intégrée | Aucune ; les fichiers sont couramment distribués sous forme de `.gds.gz` en utilisant une compression gzip externe |
| Taille de fichier typique | Kilo-octets pour une seule cellule de test ; dizaines de giga-octets pour une puce complète ou un jeu de masques complet |
| Vérification d'intégrité | Pas de somme de contrôle intégrée ; l'intégrité du fichier est vérifiée par les outils de validation DRC (vérification des règles de conception) et LVS (comparaison tracé vs schéma) en aval |
| Champ de version interne | Entier de 2 octets stocké dans la charge utile de l'enregistrement `HEADER` ; les valeurs courantes sont 3, 5 et 6 |
| Support du texte et des étiquettes | Les éléments `TEXT` attachent des étiquettes de chaîne à une couche et un type de données, avec position, rotation, agrandissement et l'un des quatre indices de police (0-3) |
| Cas d'utilisation principal | Échange de tracés de masques IC et MEMS, « tape-out » en fonderie de semi-conducteurs et validation de la fabrication de photomasques |
| Publié | 1978 (Calma GDSII), succeeding GDS I |
| Dernière version | GDSII (the format is frozen; largely superseded by OASIS for new flows) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.artwork.com |
Conversions GDS
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers GDS.