Em desenhos grandes, é uma prática comum dividir o desenho em peças, cada peça se tornando uma “definição” que pode ser usada como instância no desenho. Na analogia do aspirador, pode-se ter uma definição de aspirador com suas portas, mas agora esta definição também incluiria uma descrição completa dos componentes internos da máquina e como eles se conectam (motores, interruptores, etc.), como faz um diagrama elétrico.

Uma definição que não inclua instâncias é chamada de “primitiva” (ou uma “folha”, ou outros nomes); enquanto uma definição que inclua instâncias é “hierárquica”.

Uma hierarquia “dobrada” permite que uma única definição seja representada várias vezes por instâncias. Uma hierarquia “desdobrada” não permite que uma definição seja usada mais de uma vez na hierarquia.

Hierarquias desdobradas podem ser extremamente compactas. Uma pequena lista de apenas algumas instâncias pode descrever desenhos com um número muito grande de instâncias. Por exemplo, suponha que a definição A seja uma simples definição primitiva, como uma célula de memória. Então suponha que a definição B contenha 32 instâncias de A; C contenha 32 instâncias de B; D contenha 32 instâncias de C; e E contenha 32 instâncias de D. O desenho agora contém 5 definições (de A a E) e 128 instâncias. No entanto, E descreve um circuito que contém mais de um milhão de células de memória.

UnfoldingEdit

Em um desenho “plano”, apenas as primitivas são instanciadas. Os desenhos hierárquicos podem ser recursivamente “explodidos” (“achatados”), criando uma nova cópia (com um novo nome) de cada definição cada vez que ela é usada. Se o desenho for altamente dobrado, expandi-lo assim resultará em uma base de dados muito maior da netlist, mas preserva as dependências hierárquicas. Dada uma lista de rede hierárquica, a lista de nomes de instâncias em um caminho desde a definição da raiz até uma instância primitiva especifica o único caminho único para aquela primitiva. Os caminhos para cada primitivo, tomados em conjunto, compreendem uma lista de rede grande mas plana que é exatamente equivalente à versão hierárquica compacta.

BackannotationEdit

Backannotation são dados que poderiam ser adicionados a uma lista de rede hierárquica. Normalmente eles são mantidos separados da netlist, porque vários desses conjuntos alternativos de dados poderiam ser aplicados a uma única netlist. Estes dados podem ter sido extraídos de um projeto físico, e podem fornecer informações extras para simulações mais precisas. Normalmente os dados são compostos por um caminho hierárquico e um pedaço de dado para aquele primitivo ou encontrar os valores de atraso RC devido à interconexão.

InheritanceEdit

Um outro conceito frequentemente usado nas netlists é o de herança. Suponha que uma definição de um capacitor tenha um atributo associado chamado “Capacitância”, correspondente à propriedade física do mesmo nome, com um valor padrão de “100 pF” (100 picofarads). Cada instância deste condensador pode também ter tal atributo, apenas com um valor de capacitância diferente. E outras instâncias podem não associar nenhuma capacitância. No caso em que nenhuma capacitância é especificada para uma instância, a instância “herdará” o valor de 100 pF de sua definição. Um valor especificado irá “sobrepor” o valor da definição. Se um grande número de atributos acabar sendo o mesmo que na definição, uma grande quantidade de informação pode ser “herdada”, e não precisa ser redundantemente especificada na netlist, economizando espaço, e tornando o design mais fácil de ler tanto por máquinas quanto por pessoas.

Deixe uma resposta

O seu endereço de email não será publicado.