En los diseños grandes, es una práctica común dividir el diseño en piezas, cada una de las cuales se convierte en una «definición» que puede ser utilizada como instancias en el diseño. En la analogía de la aspiradora, uno podría tener una definición de la aspiradora con sus puertos, pero ahora esta definición también incluiría una descripción completa de los componentes internos de la máquina y cómo se conectan (motores, interruptores, etc.), como lo hace un diagrama de cableado.
Una definición que no incluye instancias se llama «primitiva» (o «hoja», u otros nombres); mientras que una definición que incluye instancias es «jerárquica».
Una jerarquía «plegada» permite que una única definición sea representada varias veces por instancias. Una jerarquía «desplegada» no permite que una definición se utilice más de una vez en la jerarquía.
Las jerarquías plegadas pueden ser extremadamente compactas. Una pequeña lista de red de unas pocas instancias puede describir diseños con un número muy grande de instancias. Por ejemplo, supongamos que la definición A es una primitiva simple, como una célula de memoria. Entonces suponga que la definición B contiene 32 instancias de A; C contiene 32 instancias de B; D contiene 32 instancias de C; y E contiene 32 instancias de D. El diseño contiene ahora 5 definiciones (de A a E) y 128 instancias. Sin embargo, E describe un circuito que contiene más de un millón de celdas de memoria.
UnfoldingEdit
En un diseño «plano», sólo las primitivas son instanciadas. Los diseños jerárquicos pueden ser recursivamente «explotados» («aplanados») creando una nueva copia (con un nuevo nombre) de cada definición cada vez que se utiliza. Si el diseño está muy plegado, al expandirlo de esta manera se obtendrá una base de datos de netlists mucho más grande, pero se conservan las dependencias de la jerarquía. Dado un netlist jerárquico, la lista de nombres de instancia en una ruta desde la definición raíz a una instancia primitiva especifica la única ruta a esa primitiva. Las rutas a cada primitiva, tomadas en conjunto, comprenden un netlist grande pero plano que es exactamente equivalente a la versión jerárquica compacta.
BackannotationEdit
Backannotation son datos que podrían añadirse a un netlist jerárquico. Normalmente se mantienen separados del netlist, porque varios de estos conjuntos alternativos de datos podrían aplicarse a un solo netlist. Estos datos pueden haber sido extraídos de un diseño físico, y podrían proporcionar información adicional para realizar simulaciones más precisas. Normalmente los datos se componen de una ruta jerárquica y un dato para esa primitiva o encontrar los valores de retardo RC debido a la interconexión.
HerenciaEditar
Otro concepto utilizado a menudo en los netlists es el de herencia. Supongamos que una definición de un condensador tiene un atributo asociado llamado «Capacitancia», correspondiente a la propiedad física del mismo nombre, con un valor por defecto de «100 pF» (100 picofaradios). Cada instancia de este condensador puede tener también ese atributo, sólo que con un valor diferente de capacitancia. Y otras instancias podrían no asociar ninguna capacitancia. En el caso de que no se especifique ninguna capacitancia para una instancia, ésta «heredará» el valor de 100 pF de su definición. Un valor especificado «anulará» el valor de la definición. Si un gran número de atributos terminan siendo los mismos que en la definición, una gran cantidad de información puede ser «heredada», y no tener que ser especificada redundantemente en la lista de red, ahorrando espacio, y haciendo el diseño más fácil de leer tanto por las máquinas como por las personas.