Règles d'insertion des sous-circuits
Trois règles officielles régissent ce qui peut être inséré dans quoi. (a) Un circuit peut insérer N'IMPORTE QUEL autre circuit, tant que cela ne crée pas de cycle récursif. (b) Un circuit peut aussi insérer ses PROPRES sous-circuits, en les réutilisant au sein du même parent. (c) Un sous-circuit ne peut PAS insérer de circuit ni de sous-circuit — l'imbrication n'a qu'un niveau de profondeur depuis chaque contexte d'édition, si bien que pendant l'édition d'un sous-circuit la commande Insérer est désactivée. Ensemble, ces règles maintiennent la hiérarchie finie et garantissent que l'aplatisseur se termine toujours.
Insérer n'importe quel circuit (sans cycle)
Le circuit A peut insérer le circuit B comme sous-circuit, et B peut porter sa propre hiérarchie. La seule limite est la récursion : l'insertion est refusée dès qu'elle ferait qu'un circuit se contienne lui-même, directement ou via une chaîne. Cela maintient la netlist aplatie bornée.
Réutiliser vos propres sous-circuits
Un circuit peut insérer des instances supplémentaires d'un sous-circuit qu'il possède déjà. Un parent doté d'un Sous A peut placer un second Sous A à côté du premier, si bien qu'un bloc conçu une fois sert partout où il est nécessaire dans ce parent sans dupliquer la conception.
Ce qui est bloqué
Deux cas sont refusés. D'abord, la récursion : un circuit ne peut jamais se contenir lui-même le long d'une chaîne. Ensuite, un sous-circuit ne peut rien insérer du tout — pendant l'édition d'un sous-circuit, Insérer et Nouveau sous-circuit sont désactivés, de sorte que l'imbrication reste à un niveau de profondeur depuis chaque contexte. Toute tentative affiche un message explicatif.