I store design er det en almindelig praksis at opdele designet i stykker, hvor hvert stykke bliver en “definition”, der kan bruges som instanser i designet. I støvsugeranalogien kunne man have en definition af støvsugeren med dens porte, men nu ville denne definition også omfatte en fuldstændig beskrivelse af maskinens interne komponenter, og hvordan de er forbundet (motorer, afbrydere osv.), ligesom et ledningsdiagram gør det.

En definition, der ikke indeholder nogen instanser, kaldes en “primitiv” (eller et “blad” eller andre navne); hvorimod en definition, der indeholder instanser, er “hierarkisk”.

Et “foldet” hierarki gør det muligt at repræsentere en enkelt definition flere gange ved hjælp af instanser. Et “udfoldet” hierarki tillader ikke, at en definition kan bruges mere end én gang i hierarkiet.

Foldede hierarkier kan være ekstremt kompakte. En lille netliste med kun få instanser kan beskrive konstruktioner med et meget stort antal instanser. Lad os f.eks. antage, at definition A er en simpel primitiv, f.eks. en hukommelsescelle. Antag så, at definition B indeholder 32 forekomster af A; C indeholder 32 forekomster af B; D indeholder 32 forekomster af C; og E indeholder 32 forekomster af D. Designet indeholder nu 5 definitioner (A til E) og 128 forekomster. Alligevel beskriver E et kredsløb, der indeholder over en million hukommelsesceller.

UnfoldingEdit

I et “fladt” design er det kun primitivelementer, der instanceres. Hierarkiske design kan rekursivt “eksploderes” (“flades”) ved at oprette en ny kopi (med et nyt navn) af hver definition, hver gang den bruges. Hvis designet er meget foldet, vil en sådan ekspansion resultere i en meget større netliste-database, men hierarkiets afhængigheder bevares. I en hierarkisk netliste angiver listen over instansnavne i en sti fra roddefinitionen til en primitiv instans den enkelte unikke sti til den pågældende primitiv. Stierne til hver primitiv omfatter tilsammen en stor, men flad netliste, der svarer nøjagtigt til den kompakte hierarkiske version.

BackannotationEdit

Backannotation er data, der kan tilføjes til en hierarkisk netliste. Normalt holdes de adskilt fra netlisten, fordi flere sådanne alternative sæt af data kan anvendes på en enkelt netliste. Disse data kan være blevet udtrukket fra et fysisk design og kan give ekstra oplysninger til mere nøjagtige simuleringer. Normalt består dataene af en hierarkisk sti og et stykke data for den pågældende primitiv eller finde værdierne for RC-forsinkelse på grund af sammenkobling.

ArvEdit

Et andet begreb, der ofte anvendes i netlister, er arvebegrebet. Antag, at en definition af en kondensator har en tilknyttet attribut kaldet “Capacitance”, der svarer til den fysiske egenskab af samme navn, med en standardværdi på “100 pF” (100 picofarads). Hver forekomst af denne kondensator kan også have en sådan attribut, blot med en anden værdi for kapacitansen. Og andre instanser har måske slet ikke nogen kapacitet. Hvis der ikke er angivet nogen kapacitans for en instans, “arver” instansen værdien 100 pF fra dens definition. En specificeret værdi vil “tilsidesætte” værdien i definitionen. Hvis et stort antal attributter ender med at være de samme som i definitionen, kan en stor mængde oplysninger “nedarves” og behøver ikke at være redundant specificeret i netlisten, hvilket sparer plads og gør designet lettere at læse for både maskiner og mennesker.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.