V rozsáhlých návrzích je běžnou praxí rozdělit návrh na části, přičemž každá část se stává „definicí“, kterou lze v návrhu použít jako instance. V analogii s vysavačem by bylo možné mít definici vysavače s jeho porty, ale nyní by tato definice zahrnovala také úplný popis vnitřních součástí stroje a jejich připojení (motory, spínače atd.), podobně jako schéma zapojení.
Definice, která neobsahuje žádné instance, se nazývá „primitivní“ (nebo „list“ či jiné názvy); zatímco definice, která obsahuje instance, je „hierarchická“.
„Složená“ hierarchie umožňuje, aby jedna definice byla reprezentována několika instancemi. „Rozložená“ hierarchie neumožňuje, aby definice byla v hierarchii použita více než jednou.
Složené hierarchie mohou být velmi kompaktní. Malý síťový seznam obsahující jen několik instancí může popisovat návrhy s velmi velkým počtem instancí. Předpokládejme například, že definice A je jednoduché primitivum, například paměťová buňka. Pak předpokládejme, že definice B obsahuje 32 instancí A; C obsahuje 32 instancí B; D obsahuje 32 instancí C; a E obsahuje 32 instancí D. Návrh nyní obsahuje 5 definic (A až E) a 128 instancí. Přesto E popisuje obvod, který obsahuje více než milion paměťových buněk.
UnfoldingEdit
V „plochém“ návrhu se instancují pouze primitiva. Hierarchické návrhy lze rekurzivně „rozbalit“ („zploštit“) vytvořením nové kopie (s novým jménem) každé definice při každém jejím použití. Pokud je návrh silně skládaný, povede takové rozbalení k mnohem větší databázi netlistů, ale zachová hierarchické závislosti. Vzhledem k hierarchickému netlistu určuje seznam názvů instancí v cestě od kořenové definice k instanci primitiva jedinou jedinečnou cestu k tomuto primitivu. Cesty ke každému primitivu dohromady tvoří velký, ale plochý netlist, který je přesně ekvivalentní kompaktní hierarchické verzi.
BackannotationEdit
Backannotation jsou data, která by mohla být přidána do hierarchického netlistu. Obvykle se uchovávají odděleně od netlistu, protože na jeden netlist by mohlo být použito několik takových alternativních sad dat. Tato data mohla být získána z fyzického návrhu a mohla by poskytnout další informace pro přesnější simulace. Obvykle se tato data skládají z hierarchické cesty a části dat pro dané primitivum nebo zjištění hodnot RC zpoždění v důsledku propojení.
DědičnostEdit
Dalším často používaným konceptem v netlistech je koncept dědičnosti. Předpokládejme, že definice kondenzátoru má přidružený atribut s názvem „Capacitance“, který odpovídá stejnojmenné fyzikální vlastnosti s výchozí hodnotou „100 pF“ (100 pikofaradů). Každá instance tohoto kondenzátoru může mít také takový atribut, pouze s jinou hodnotou kapacity. A jiné instance nemusí přiřazovat vůbec žádnou kapacitu. V případě, že u instance není zadána žádná kapacita, instance „zdědí“ hodnotu 100 pF ze své definice. Zadaná hodnota „přepíše“ hodnotu v definici. Pokud je velké množství atributů nakonec stejné jako v definici, může být „zděděno“ velké množství informací a nemusí být zbytečně specifikovány v netlistu, což šetří místo a usnadňuje čtení návrhu jak stroji, tak lidmi.
.