A nagyméretű tervekben bevett gyakorlat, hogy a tervet darabokra osztják, és minden egyes darab egy “definíció” lesz, amely példányként használható a tervben. A porszívó analógiában lehet, hogy van egy porszívó definíciója a portjaival, de most ez a definíció tartalmazná a gép belső alkatrészeinek teljes leírását is, és azt, hogy azok hogyan kapcsolódnak egymáshoz (motorok, kapcsolók stb.), ahogyan egy kapcsolási rajz teszi.

Egy olyan definíciót, amely nem tartalmaz példányokat, “primitívnek” (vagy “levélnek”, vagy más elnevezésekkel) nevezzük; míg egy olyan definíció, amely példányokat tartalmaz, “hierarchikus”.

A “hajtogatott” hierarchia lehetővé teszi, hogy egyetlen definíciót többször is ábrázoljunk példányokkal. Egy “kibontott” hierarchia nem teszi lehetővé, hogy egy definíció többször is szerepeljen a hierarchiában.

A kibontott hierarchiák rendkívül kompaktak lehetnek. Egy kis, mindössze néhány példányból álló hálózati lista nagyon nagy számú példányt tartalmazó terveket írhat le. Tegyük fel például, hogy az A definíció egy egyszerű primitív, például egy memóriacella. Ezután tegyük fel, hogy a B definíció tartalmazza A 32 példányát; C tartalmazza B 32 példányát; D tartalmazza C 32 példányát; és E tartalmazza D 32 példányát. A terv most 5 definíciót (A-tól E-ig) és 128 példányt tartalmaz. Mégis, az E egy olyan áramkört ír le, amely több mint egymillió memóriacellát tartalmaz.

UnfoldingEdit

Egy “lapos” tervben csak a primitívek instanciázódnak. A hierarchikus tervek rekurzívan “felbonthatók” (“ellapíthatók”) azáltal, hogy minden egyes definícióról minden egyes használat során új másolatot (új névvel) hozunk létre. Ha a terv erősen hajtogatott, az ilyen módon történő kibontás sokkal nagyobb hálólista-adatbázist eredményez, de megőrzi a hierarchikus függőségeket. Egy hierarchikus hálólista esetén a gyökérdefiníciótól egy primitív példányig tartó útvonalban lévő példánynevek listája adja meg az adott primitívhez vezető egyetlen egyedi útvonalat. Az egyes primitívek elérési útvonalai együttesen egy nagy, de lapos hálólistát alkotnak, amely pontosan megegyezik a kompakt hierarchikus változattal.

BackannotationEdit

A backannotation olyan adat, amelyet hozzá lehet adni egy hierarchikus hálólistához. Általában a hálólistától elkülönítve tartjuk őket, mert egy hálólistára több ilyen alternatív adatkészletet is alkalmazhatunk. Ezek az adatok egy fizikai tervből származhatnak, és extra információt nyújthatnak a pontosabb szimulációkhoz. Általában az adatok egy hierarchikus útvonalból és az adott primitívhez tartozó adatokból vagy az összekapcsolás miatti RC késleltetés értékeinek megtalálásából állnak.

ÖröklésSzerkesztés

A hálólistákban gyakran használt másik fogalom az öröklés. Tegyük fel, hogy egy kondenzátor definíciójához tartozik egy “Capacitance” nevű attribútum, amely megfelel az azonos nevű fizikai tulajdonságnak, és amelynek alapértelmezett értéke “100 pF” (100 pikofarád). A kondenzátor minden példánya is rendelkezhet ilyen attribútummal, csak más kapacitásértékkel. Más példányok pedig egyáltalán nem társíthatnak semmilyen kapacitást. Abban az esetben, ha egy példányhoz nem adunk meg kapacitást, a példány “örökli” a 100 pF értéket a definíciójából. A megadott érték “felülírja” a definícióban szereplő értéket. Ha nagyszámú attribútum végül megegyezik a definícióban szereplővel, akkor nagyszámú információ “öröklődhet”, és nem kell redundánsan megadni a hálólistában, ami helyet takarít meg, és megkönnyíti a terv olvashatóságát mind a gépek, mind az emberek számára.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.