În proiectele mari, este o practică obișnuită să se împartă proiectul în bucăți, fiecare bucată devenind o „definiție” care poate fi utilizată ca instanțe în proiect. În analogia cu aspiratorul, s-ar putea avea o definiție a aspiratorului cu porturile sale, dar acum această definiție ar include, de asemenea, o descriere completă a componentelor interne ale mașinii și a modului în care acestea se conectează (motoare, întrerupătoare etc.), așa cum face o schemă electrică.
O definiție care nu include instanțe se numește „primitivă” (sau „frunză”, sau alte denumiri); în timp ce o definiție care include instanțe este „ierarhică”.
O ierarhie „pliată” permite ca o singură definiție să fie reprezentată de mai multe ori prin instanțe. O ierarhie „desfășurată” nu permite ca o definiție să fie utilizată de mai multe ori în ierarhie.
Herarhiile pliate pot fi extrem de compacte. O listă de rețea mică de doar câteva instanțe poate descrie proiecte cu un număr foarte mare de instanțe. De exemplu, să presupunem că definiția A este o primitivă simplă, cum ar fi o celulă de memorie. Apoi să presupunem că definiția B conține 32 de instanțe ale lui A; C conține 32 de instanțe ale lui B; D conține 32 de instanțe ale lui C; și E conține 32 de instanțe ale lui D. Proiectul conține acum 5 definiții (de la A la E) și 128 de instanțe. Cu toate acestea, E descrie un circuit care conține peste un milion de celule de memorie.
UnfoldingEdit
Într-un proiect „plat”, doar primitivele sunt instanțiate. Proiectele ierarhice pot fi „explodate” („aplatizate”) în mod recursiv prin crearea unei noi copii (cu un nume nou) a fiecărei definiții de fiecare dată când aceasta este utilizată. În cazul în care proiectul este foarte pliat, extinderea acestuia în acest fel va avea ca rezultat o bază de date netlist mult mai mare, dar păstrează dependențele ierarhice. Având în vedere o listă de rețea ierarhică, lista de nume de instanțe dintr-o cale de la definiția rădăcină la o instanță primitivă specifică singura cale unică către acea primitivă. Căile către fiecare primitivă, luate împreună, cuprind o listă de rețea mare, dar plată, care este exact echivalentă cu versiunea ierarhică compactă.
BackannotationEdit
Backannotation sunt date care ar putea fi adăugate la o listă de rețea ierarhică. De obicei, acestea sunt păstrate separat de netlist, deoarece mai multe astfel de seturi alternative de date ar putea fi aplicate la o singură netlist. Aceste date pot fi extrase dintr-un proiect fizic și ar putea furniza informații suplimentare pentru simulări mai precise. De obicei, datele sunt compuse dintr-o cale ierarhică și o bucată de date pentru acea primitivă sau găsirea valorilor întârzierilor RC datorate interconectării.
MoștenireEdit
Un alt concept utilizat adesea în listele de rețea este cel de moștenire. Să presupunem că o definiție a unui condensator are asociat un atribut numit „Capacitance”, corespunzător proprietății fizice cu același nume, cu o valoare implicită de „100 pF” (100 picofaradii). Fiecare instanță a acestui condensator poate avea, de asemenea, un astfel de atribut, dar cu o valoare diferită a capacității. Iar alte instanțe ar putea să nu asocieze nicio capacitate. În cazul în care nu se specifică nicio capacitate pentru o instanță, aceasta va „moșteni” valoarea de 100 pF din definiția sa. O valoare specificată va „anula” valoarea din definiție. Dacă un număr mare de atribute sfârșesc prin a fi identice cu cele din definiție, o mare cantitate de informații poate fi „moștenită” și nu trebuie să fie specificată în mod redundant în lista de rețea, economisind spațiu și făcând proiectarea mai ușor de citit atât de mașini, cât și de oameni.
.