Netlist - Netlist

V elektronickém designu je netlist popis konektivity elektronického obvodu . Ve své nejjednodušší formě se netlist skládá ze seznamu elektronických součástek v obvodu a seznamu uzlů, ke kterým jsou připojeny. Síť (síť) je soubor dvou nebo více propojených komponent.

Struktura, složitost a zastoupení seznamů netlistů se může značně lišit, ale základním účelem každého netlistu je zprostředkovat informace o konektivitě . Seznamy sítí obvykle neposkytují nic jiného než instance, uzly a možná některé atributy příslušných komponent. Pokud vyjadřují mnohem více než toto, jsou obvykle považovány za jazyk popisu hardwaru, jako je Verilog nebo VHDL , nebo za jeden z několika jazyků speciálně navržených pro vstup do simulátorů nebo hardwarových kompilátorů .

Seznamy sítí mohou být fyzické nebo logické , založené na instancích nebo na síti a ploché nebo hierarchické . Ta může být buď sklopit nebo rozložil .

Obsah a struktura netlistu

Většina seznamů sítí buď obsahuje popis použitých součástí nebo zařízení nebo se na ně odkazuje. Pokaždé, když je část použita v netlistu, nazývá se to „instance“.

Tyto popisy obvykle uvádějí připojení, která jsou k tomuto druhu zařízení vytvořena, a některé základní vlastnosti tohoto zařízení. Tyto body připojení se mimo jiné nazývají „terminály“ nebo „piny“.

„Instancí“ může být cokoli od tranzistoru MOSFET nebo bipolárního tranzistoru až po odpor , kondenzátor nebo čip s integrovaným obvodem .

Instance mají „terminály“. V případě vysavače by tyto svorky byly tři kovové hroty v zástrčce. Každý terminál má název a v pokračování příkladu vysavače to mohou být „neutrální“, „živé“ a „uzemněné“. Každá instance bude mít obvykle jedinečný název, takže pokud máte dvě instance vysavačů, jeden může být „vac1“ a druhý „vac2“. Kromě svých jmen by jinak mohli být stejní.

Sítě (sítě) jsou „dráty“, které spojují věci dohromady v obvodu. Sítě v návrhu mohou nebo nemusí být spojeny se speciálními atributy, v závislosti na konkrétním jazyce, ve kterém je netlist napsán, a na vlastnostech tohoto jazyka.

Seznamy založené na instancích obvykle poskytují seznam instancí použitých v návrhu. Spolu s každou instancí je poskytnut buď seřazený seznam síťových jmen, nebo seznam poskytnutých párů názvu portu instance spolu s názvem sítě, ke kterému je tento port připojen. V tomto druhu popisu lze seznam sítí shromáždit ze seznamů připojení a není místo, kde by bylo možné přidružit konkrétní atributy k samotným sítím. SPICE je příkladem seznamů založených na instancích.

Seznamy sítí založené na síti obvykle popisují všechny instance a jejich atributy, poté popíšou každou síť a řeknou, ke kterému portu jsou v každé instanci připojeny. To umožňuje přidružení atributů k sítím. EDIF je pravděpodobně nejslavnější ze seznamů založených na síti.

Hierarchie

U velkých návrhů je běžnou praxí rozdělit design na kusy, přičemž každý kus se stane „definicí“, kterou lze použít jako instance v návrhu. Analogicky k vysavači může existovat definice vysavače s jeho porty, ale nyní by tato definice také obsahovala úplný popis vnitřních součástí stroje a způsob jejich připojení (motory, spínače atd.), Jako to dělá schéma zapojení .

Definice, která neobsahuje žádné instance, se nazývá „primitivní“ (nebo „list“ nebo jiná jména); vzhledem k tomu, že definice, která zahrnuje instance, je „hierarchická“.

„Skládaná“ hierarchie umožňuje, aby byla jedna definice několikrát reprezentována instancemi. „Rozložená“ hierarchie neumožňuje použít definici v hierarchii více než jednou.

Složené hierarchie mohou být extrémně kompaktní. Malý netlist pouze několika instancí může popisovat návrhy s velmi velkým počtem instancí. Předpokládejme například, že definice A je jednoduchý primitiv, jako paměťová buňka. Předpokládejme tedy, že definice B obsahuje 32 instancí A; C obsahuje 32 instancí B; D obsahuje 32 instancí C; a E obsahuje 32 instancí D. Design 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.

Rozkládání

V „plochém“ designu jsou instancí pouze primitivové. Hierarchické návrhy lze rekurzivně „explodovat“ („zploštit“) vytvořením nové kopie (s novým názvem) každé definice při každém použití. Pokud je návrh velmi složený, jeho rozšíření takto povede k mnohem větší databázi netlistů, ale zachová závislosti hierarchie. Vzhledem k hierarchickému netlistu seznam názvů instancí v cestě od kořenové definice k primitivní instanci určuje jedinou jedinečnou cestu k tomuto primitivu. Cesty ke každému primitivovi dohromady zahrnují velký, ale plochý netlist, který je přesně ekvivalentní kompaktní hierarchické verzi.

Zpětná poznámka

Backannotation jsou data, která lze přidat do hierarchického netlistu. Obvykle jsou uchovávány odděleně od netlistu, protože na jeden netlist lze použít několik takových alternativních sad dat. Tato data mohla být extrahována z fyzického návrhu a mohou poskytovat další informace pro přesnější simulace. Data se obvykle skládají z hierarchické cesty a části dat pro tento primitiv nebo z nalezení hodnot zpoždění RC v důsledku propojení.

Dědictví

Další koncept často používaný v seznamech je dědičnost. Předpokládejme, že definice kondenzátoru má přidružený atribut nazvaný „Kapacita“, odpovídající fyzické vlastnosti stejného jména , s výchozí hodnotou „100 pF“ (100 picofaradů). Každá instance tohoto kondenzátoru může mít také takový atribut, pouze s jinou hodnotou kapacity. A jiné instance nemusí vůbec spojovat žádnou kapacitu. V případě, že pro instanci není uvedena žádná kapacita, instance „zdědí“ hodnotu 100 pF z její definice. Zadaná hodnota „přepíše“ hodnotu v definici. Pokud je velký počet atributů stejný jako v definici, velké množství informací může být „zděděno“ a nemusí být nadbytečně specifikováno v netlistu, což šetří místo a usnadňuje čtení návrhu oběma stroje a lidi.

Reference