redes de transistores e portas lógicas cmos 9.1 introdução

28
Redes de Transistores e Portas Lógicas CMOS 9 Leomar Soares da Rosa Junior Universidade Federal de Pelotas (UFPel) [email protected] Vinicius Callegaro Universidade Federal do Rio Grande do Sul (UFRGS) [email protected] Renato Perez Ribas Universidade Federal do Rio Grande do Sul (UFRGS) [email protected] André Inácio Reis Universidade Federal do Rio Grande do Sul (UFRGS) [email protected] 9.1 Introdução Os circuitos digitais estão cada vez mais presentes no dia-a-dia da vida moderna causando um amplo impacto na sociedade. Esse impacto se deve ao fato de que circuitos digitais se aplicam diretamente ou auxiliam diferentes áreas do conhecimento. Exemplos disso são os computadores pessoais, a telefonia móvel celular, os dispositivos GPS, os sistemas automotivos computadorizados, a computação em equipamentos e dispositivos oi da medicina e etc. Esta explosão na presença de circuitos digitais em vários campos do conhecimento pode ser atribuída, em grande parte, ao avanço das tecnologias de concepção de circuitos integrados. Este avanço permite a integração de um número cada vez maior de componentes, possibilitando a concepção de circuitos cada vez maiores e mais complexos. Contudo, a alta integração e as novas tecnologias de fabricação disponíveis impõem novos limites e desafios para a síntese. As principais dificuldades são a adaptação aos novos parâmetros de tecnologia e o desenvolvimento de projetos em um tempo curto o suficiente para não comprometer a sua comercialização. Portanto, a automatização desse processo através do uso intenso de ferramentas de auxílio ao desenvolvimento é um fator cada vez mais indispensável para alcançar essas metas. Basicamente, existem dois fluxos principais para a concepção de circuitos integrados que levam a duas situações distintas: rápido desenvolvimento e projetos de alto desempenho. Rápido desenvolvimento, como já mencionado, significa capacidade de colocar no mercado o produto no menor tempo possível. Para este tipo de abordagem de concepção de circuitos

Upload: vuongbao

Post on 07-Jan-2017

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

Redes de Transistores e Portas Lógicas CMOS 9Leomar Soares da Rosa Junior

Universidade Federal de Pelotas (UFPel)[email protected]

Vinicius CallegaroUniversidade Federal do Rio Grande do Sul (UFRGS)

[email protected]

Renato Perez RibasUniversidade Federal do Rio Grande do Sul (UFRGS)

[email protected]

André Inácio ReisUniversidade Federal do Rio Grande do Sul (UFRGS)

[email protected]

9.1 IntroduçãoOs circuitos digitais estão cada vez mais presentes no dia-a-dia da vida moderna

causando um amplo impacto na sociedade. Esse impacto se deve ao fato de que circuitosdigitais se aplicam diretamente ou auxiliam diferentes áreas do conhecimento. Exemplosdisso são os computadores pessoais, a telefonia móvel celular, os dispositivos GPS, ossistemas automotivos computadorizados, a computação em equipamentos e dispositivos oida medicina e etc. Esta explosão na presença de circuitos digitais em vários campos doconhecimento pode ser atribuída, em grande parte, ao avanço das tecnologias de concepçãode circuitos integrados. Este avanço permite a integração de um número cada vez maior decomponentes, possibilitando a concepção de circuitos cada vez maiores e mais complexos.Contudo, a alta integração e as novas tecnologias de fabricação disponíveis impõem novoslimites e desafios para a síntese. As principais dificuldades são a adaptação aos novosparâmetros de tecnologia e o desenvolvimento de projetos em um tempo curto o suficientepara não comprometer a sua comercialização. Portanto, a automatização desse processoatravés do uso intenso de ferramentas de auxílio ao desenvolvimento é um fator cada vezmais indispensável para alcançar essas metas.

Basicamente, existem dois fluxos principais para a concepção de circuitos integrados quelevam a duas situações distintas: rápido desenvolvimento e projetos de alto desempenho.Rápido desenvolvimento, como já mencionado, significa capacidade de colocar no mercadoo produto no menor tempo possível. Para este tipo de abordagem de concepção de circuitos

Page 2: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

194 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

integrados a metodologia standard-cell é a mais comumente utilizada. Por outro lado,desenvolvimento de circuitos integrados visando alto desempenho utiliza uma metodologiaconhecida como full-custom, onde o projeto e a concepção do circuito é customizada parafornecer alto desempenho em termos de área, atraso e consumo de energia [1]. A propostado fluxo standard-cell consiste em reduzir os esforços de implementação através do reuso decélulas lógicas. A principal vantagem desta abordagem é o fato das células necessitarem serdesenvolvidas e verificadas uma única vez para um dada tecnologia, podendo ser reutilizadasdiversas vezes, amortizando, assim, o custo total do projeto. A desvantagem deste fluxoestá relacionada com a limitação da biblioteca de células, uma vez que o número de célulaslógicas que compõem uma biblioteca é limitado, reduzindo a possibilidade de um ajuste finodurante a geração dos circuitos integrados [2]. De acordo com alguns estudos, a qualidade docircuito obtido utilizando-se o fluxo standard-cell depende de três principais componentesutilizados: a ferramenta de síntese lógica, a ferramenta de síntese física (leiaute), e abiblioteca de células. Portanto, fazer uso de uma biblioteca de células adequada é umaestratégia que pode causar um impacto significativo nas características do circuito projetado[3, 4, 5].

Uma biblioteca de células consiste em um conjunto finito de células lógicasque implementam diferentes funções Booleanas. Estas células apresentam diferentescaracterísticas elétricas e topológicas. Tradicionalmente, ferramentas de mapeamentotecnológico buscam a otimização do circuito em termos de área, atraso e consumo, fazendouso das células disponíveis na biblioteca para construir o circuito desejado de forma maisotimizada possível. Cada biblioteca de célula é completamente caracterizada através dediversas simulações elétricas, resultando em um conjunto preciso de informações referentesàs células que compõem esta biblioteca. Entretanto, o custo para isto é relativamente alto[5]. Desta forma, bibliotecas de células comerciais são tipicamente compostas por umconjunto de poucas centenas de células combinacionais e elementos seqüenciais. Comoresultado disto, os projetistas estão limitados ao uso desta baixa quantidade de células paracompor seus circuitos. Ao longo dos anos algumas iniciativas têm sido desenvolvidosno sentido de reduzir esta limitação. Alguns trabalhos propõem a otimização das célulaslógicas específicas de uma dada implementação de circuito. Porém, estas otimizações estãotipicamente limitadas ao conjunto de inversores e cadeias de buffers que compõem o circuitopara minimizar consumo de energia e atraso [6, 7, 8]. Outros trabalhos tentam otimizarcélulas lógicas já existentes em uma determinada biblioteca de células no sentido de ajustá-las para atender as restrições dos circuitos [9]. Por outro lado, trabalhos mais recentes têmdefendido que a realização de otimizações no nível de transistores das células lógicas é umatécnica mais eficiente para aumentar a qualidade do circuito [10, 11, 12]. Em Roy [13],algumas partes do circuito são analisadas, removidas e substituídas por células otimizadaspara atender a uma determinada especificação técnica. Esta substituição é realizada em umpasso posterior à obtenção do circuito mapeado. Como pode ser visto na Figura 9.1, isto éfeito no nível de transistores do circuito, possibilitando ganhos consideráveis nos tempos depropagação do circuito final.

É importante notar que a qualidade dos circuitos mapeados é altamente dependente dariqueza da biblioteca de células em termos do número de funções lógicas implementadas,e das características elétricas e topológicas das células. Bibliotecas que implementam umgrande número de funções Booleanas levam a melhores resultados quando comparadas combibliotecas esparsamente povoadas [14].

Page 3: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

CONCEITOS BÁSICOS E TERMINOLOGIAS 195

Figura 9.1: Otimização do circuito no nível de transistores [13]

Neste sentido, este capítulo discute a geração de portas lógicas no nível de transistores.Inicialmente, alguns conceitos e terminologias são apresentados. Nas seções seguintes,métodos tradicionais de obtenção de portas lógicas para tecnologia CMOS são discutidos,bem como métodos alternativos e eficientes na obtenção de topologias mais otimizadas,derivadas a partir de grafos. Ao final do capítulo o leitor será capaz de compreender queuma mesma função lógica pode ser implementada por diferentes arranjos de transistores, osquais poderão apresentar características próprias, podendo atender diferentes necessidadesno projeto de circuitos digitais.

9.2 Conceitos Básicos e Terminologias

Um conjunto Booleano B é definido como um conjunto de dois elementos, B = {0,1},no qual os elementos são interpretados como valores lógicos, tipicamente 0 = falso e 1 =verdadeiro. Um conjunto Booleano n-dimensional Bn é composto por todos os vetoresBooleanos de comprimento n. Por exemplo, B0 = ∅, B1={0,1}, B2={00,01,10,11} eB3={000,001,010,011,100,101,110,111}. É fácil de perceber que Bn, portanto, tem 2n

elementos. Uma função Booleana descreve uma relação que permite determinar um valorBooleano de saída baseado em uma ou mais operações lógicas levando em consideração umconjunto de vetores de entrada de comprimento n. Uma função Booleana é representadapela seguinte forma: f: Bn→ B, onde B = {0,1} é o domínio Booleano da função e n é uminteiro não negativo. Variáveis Booleanas são variáveis definidas pelo domínio Booleanoe geralmente descritas fazendo-se uso de caracteres alfanuméricos. Exemplos de variáveisBooleanas são: a, b, c, x0, x1, y2. Uma variável Booleana pode assumir valores no domínioBooleano, sendo estes 0 ou 1.

Page 4: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

196 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

Alguns operadores Booleanos podem ser aplicados sobre os valores Booleanos oufunções. Existem três operadores básicos, conhecidos como: AND (*), OR (+) e NOT(!). O operador AND é aquele que retorna um valor verdadeiro quando todos os operandosenvolvidos são também verdadeiros, e retorna falso para os demais casos. O operador ORretorna falso quando todos os operandos são falsos, retornando verdadeiro para os outroscasos. Estes dois operadores, AND e OR, são conhecidos como operadores binários, vistoque eles requerem ao menos dois operandos para realizar a operação. Já o operador NOT,também conhecido como operador de inversão, é unário e pode ser aplicado a um operandosozinho. Este operador retorna falso quando o operando é verdadeiro, e vice-versa. Noteque operandos podem ser tanto funções Booleanas, como constantes Booleanas.

A fase ou polaridade de uma variável Booleana indica se esta é usada na sua forma diretaou complementada (invertida). Uma fase positiva especifica o uso da variável sem inversão,enquanto uma fase negativa especifica o uso de seu complemento. Uma variável em sua fasenegativa é precedida por um operador NOT, como por exemplo, !a e !x0. Um literal é umainstância de uma variável Booleana na sua fase positiva ou negativa. Exemplos de literaissão: a, !a, x0 e !y1. Note que a e x0 são literais positivos, enquanto !a e !y1 são literaisnegativos.

Um vetor de entrada é um elemento que indica o valor para cada variável Booleana emuma dada função Booleana. Para um certo número de variáveis existe 2n vetores de entrada,onde n é o número total de variáveis Booleanas. Outro conceito importante é o de expressõesBooleanas ou equações Booleanas. Estas são representações de uma função Booleana.Cada função Booleana é distinta, uma vez que ela apenas representa uma associação f: Bn→ B. Entretanto, é possível descrever uma função Booleana em diferentes formas usandooperadores Booleanos. Por exemplo, as seguintes equações Booleanas representam a mesmafunção Booleana:

Eq1 = a ∗ (b ∗ c) + d ∗ (e + c)

Eq2 = c ∗ (a ∗ b + d) + d ∗ e

As funções Booleanas também podem ser representadas por uma forma tabular conhecidacomo tabela verdade. Em uma representação por tabela verdade, os valores de saída sãomostrados de acordo com todas as combinações possíveis de entradas. Em outras palavras,uma tabela verdade é uma forma de representação onde todos os valores da função sãoespecificados para todo o domínio da função. A tabela verdade pode ser construída paraqualquer número de variáveis de entrada. Contudo, todas as combinações possíveis paraestas variáveis de entrada devem estar presentes. Isto significa que cada linha da tabelaverdade representa um vetor de entrada e seus respectivos valores de saída. A Tabela 9.1ilustra tabelas verdade para algumas funções Booleanas básicas de duas entradas A e B.

Para uma dada função Booleana, o conjunto de vetores de entrada que produz valoresverdadeiro na saída é chamado de on-set. Da mesma forma, o conjunto de vetores de entradaque produz valores falso na saída é conhecido como off-set. Chama-se de produto de literaisuma operação lógica AND entre estes literais. (a ∗ b ∗ c ∗ e) e (!a ∗ c ∗ !d) são exemplosde produtos de literais. Uma soma-de-produtos (SOP) é uma equação Booleana compostapelo operador OR entre dois ou mais produtos de literais. São exemplos de SOP as seguintesequações:

Page 5: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

CONCEITOS BÁSICOS E TERMINOLOGIAS 197

Tabela 9.1: Tabela verdade para algumas funções Booleanas

A B AND OR XOR NAND NOR XNOR0 0 0 0 0 1 1 10 1 0 1 1 1 0 01 0 0 1 1 1 0 01 1 1 1 0 0 0 1

Eq3 = !a ∗ b ∗ !c ∗ d + a ∗ b ∗ !c ∗ !d + !a ∗ !b ∗ c ∗ d

Eq4 = x0 ∗ !x1 ∗ x2 + x1 ∗ x2 ∗ !x3 + !x0 ∗ x1 ∗ !x2 ∗ x3

Eq5 = (a ∗ b ∗ c) + (!a ∗ c ∗ d) + (b ∗ !c ∗ !d)

Uma forma bastante simples de derivar SOP a partir de uma tabela verdade consiste emextrair todas as linhas (produtos) que representam valores verdadeiros na saída da tabelaverdade e, na seqüência, realizar operações OR entre todos estes produtos. Esta equaçãoobtida é conhecida como uma equação Booleana em sua forma canônica. Formas canônicasrecebem este nome porque elas preservam uma correspondência de um para um em relaçãoa tabela verdade. Isto significa que existe apenas uma forma canônica para cada funçãoBooleana, ao passo que podem existir diferentes formas não canônicas de representação parauma função Booleana, como já mencionado anteriormente. Algumas formas não canônicaspodem apresentar um número bastante reduzido de literais se comparadas a sua formacanônica original. Isto indica que uma forma canônica não é a representação mínima emtermos de literais. Processos mais elaborados para extração de SOP com número mínimo deliterais podem ser aplicados, porém demandam algoritmos mais custosos para tal. Exemplodisto é o algoritmo de Quine-McCluskey [15, 16].

Um produto-de-somas (POS) é uma representação muito similar a SOP. A diferença éque a equação Booleana obtida é composta de operações lógicas AND entre duas ou maissomas de literais. Para construir as somas, todas as linhas da tabela verdade que apresentamvalores falso de saída são consideradas. Note que similarmente a SOP, todas as variáveis deentrada precisam estar presentes em cada soma que compõe a POS para garantir que estaseja uma representação canônica. Um produto contendo todas as variáveis que compõema função lógica é chamado de mintermo. Um mintermo mantém uma relação única comapenas uma linha da tabela verdade. Os mintermos para os quais a função lógica apresentavalor verdadeiro em sua saída são chamados de mintermos implicantes. Desta forma, comomencionado anteriormente, uma SOP canônica é aquela composta por todos os mintermosimplicantes de uma dada função lógica.

Ao agrupamento de mintermos dá-se o nome de cubo. Enquanto um mintermo apresentaapenas relação com uma única linha da tabela verdade, um cubo apresenta uma relação comuma ou mais linhas desta. Por exemplo, considerando-se os dois mintermos (!a ∗ b ∗ c ∗ !d)e (!a ∗ b ∗ c ∗ d) que compõem a função f = (!a ∗ b ∗ c ∗ !d) + (!a ∗ b ∗ c ∗ d), é possívelrealizar o agrupamento destes através de algumas manipulações algébricas e Booleanas,como demonstrado a seguir:

Page 6: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

198 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

(!a ∗ b ∗ c∗!d) + (!a ∗ b ∗ c ∗ d) = (!a ∗ b ∗ c) ∗ (!d+ d) = (!a ∗ b ∗ c) ∗ 1 = (!a ∗ b ∗ c)

Este novo produto obtido, (!a∗b∗c), é chamado de cubo. Uma forma bastante interessante devisualizar possíveis agrupamentos de mintermos se dá através de uma estrutura conhecidacomo mapa de Karnaugh. Um mapa de Karnaugh é uma matriz indexada que facilita avisualização de mintermos adjacentes, os quais podem ser agrupados. A Figura 9.2 ilustraum mapa de Karnaugh para os mintermos (!a ∗ b ∗ c ∗ !d) e (!a ∗ b ∗ c ∗ d). Neste exemplo,os valores das colunas representam os valores lógicos para as variáveis a e b, enquanto osvalores das linhas representam os valores para as variáveis c e d.

Figura 9.2: Mapa de Karnaugh

Como pode ser observado no exemplo da Figura 9.2, os dois mintermos adjacentespodem ser agrupados para formar um cubo. Isto é útil no sentido de minimizar uma SOP,diminuindo o número de literais presentes nesta.

Em relação à classificação de funções lógicas, uma é de especial interesse para aseqüência deste capítulo. Esta classificação leva em consideração o comportamento dossinais de entrada e saída em uma dada função lógica, sendo conhecida como propriedadeunateness. Uma função é dita ser unate positiva se ela apresentar uma transição positiva(0→ 1) em sua saída quando uma transição positiva ocorrer em uma de suas entradas. Porexemplo, a função AND é uma função unate positiva. Uma função é dita ser unate negativase ela apresentar uma transição negativa (1 → 0) em sua saída quando uma transiçãopositiva ocorrer em uma de suas entradas. Exemplo de função unate negativa é a funçãoNAND. Quando uma função apresenta ambos os comportamentos, com transições positivase negativas em sua saída sempre que uma transição positiva ocorrer na entrada, diz-se queesta é uma função binate. A função lógica XOR é um exemplo de função binate. Noteque, o comportamento unate ou binate em uma dada função lógica está sempre relacionadocom uma determinada variável de entrada da função. Por exemplo, analisando a funçãof = !a ∗ b + a ∗ !c, constata-se que ela é binate em relação a variável a, unatepositiva em relação a variável b, e unate negativa em relação a variável c. Quando todasas entradas da função apresentam um comportamento monotonicamente crescente, diz-seque esta função é unate positiva para todas as variáveis de entrada. O mesmo acontecepara os comportamentos unate negativo e binate. Desta forma, portas AND e OR são unate

Page 7: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

BREVE HISTÓRICO SOBRE REDES LÓGICAS 199

positivas para todas as variáveis de entrada. Portas NAND e NOR são unate negativas emrelação a todas as variáveis de entrada. Por fim, a porta XOR é binate em todas as variáveisde entrada.

De todas as estruturas de dados utilizadas para representação de funções lógicas e paraimplementação de redes, uma é de especial interesse devido a sua capacidade de fornecerredes de chaves otimizadas. Esta estrutura é chamada de BDD (Diagrama de DecisãoBinária), sendo composta por nodos, arcos e terminais. Cada nodo de decisão na estrutura écontrolado por uma variável Booleana, sendo que estes nodos possuem dois filhos chamadosde arco-0 e arco-1. Cada um dos filhos (caminhos) na estrutura correspondem diretamenteao assinalamento da variável de controle do nodo, a qual decide qual caminho deverá serpercorrido [17]. A Figura 9.3 apresenta um BDD para uma função AND de três entradas.Neste exemplo a função valerá 1 se, e somente se, os valores lógicos das variáveis foremassim assinalados: X1=1, X2=1 e X3=1. Caso alguma das variáveis assuma o valor lógicofalso (0) então a função f valerá 0.

Figura 9.3: BDD de uma AND de três entradas

No trabalho desenvolvido por Bryant [18], uma classe especial de BDDs foi proposta.Esta classe é conhecida como ROBDD (BDD Reduzido e Ordenado). Nela, os BDDsapresentam um ordenamento fixado das variáveis, garantindo que estas sejam avaliadasapenas uma vez ao longo dos caminhos do BDD. Além disto, eles também eliminam aredundância de caminhos, compartilhando caminhos isomórficos na estrutura e removendocaminhos não relevantes para a avaliação da função. As regras para realizar estasotimizações podem ser encontradas detalhadamente em [18].

9.3 Breve Histórico sobre Redes LógicasA teoria de chaveamento é um tópico que vem sendo pesquisado ao longo dos anos

por diversos estudiosos da área da computação. De volta aos anos 30, quando Claude E.Shannon começou suas pesquisas na área, os principais elementos lógicos utilizados erameletromecânicos, como, por exemplo, chaves mecânicas e relés. Com o passar dos anos,

Page 8: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

200 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

outros elementos vieram a substituir as chaves e os relés. Válvulas, diodos e transistoresforam largamente utilizados para construir circuitos lógicos.

Em 1938, Shannon apresentou uma análise sobre redes lógicas e circuitos compostospor relés [19]. Em 1953, uma investigação foi realizada acerca de quantos contatos eramnecessários e suficientes para simultaneamente implementar todas as dezesseis funçõesde duas variáveis [20]. Ainda em 1953, Shannon concebeu uma máquina utilizandochaves seletoras e relés para auxiliar o desenvolvimento de circuitos compostos porelementos lógicos [21]. É importante relembrar que, naqueles dias, elementos lógicos eramcaros. Além disso, todas as redes lógicas implementadas eram relativamente pequenas,permitindo que todo ou grande parte do processo de desenvolvimento pudesse ser realizadomanualmente. Neste contexto, durante os anos 50 e 60, Moore e Harrisson produziramcatálogos para o conjunto de funções de quatro entradas [22, 23]. Uma vez que estaspesquisas eram realizadas considerando apenas chaves mecânicas e relés como elementosde chaveamento, somente o número total de elementos era levado em consideração. Outrascaracterísticas das redes não eram investigadas, não havendo a preocupação de estudar comodiferentes arranjos de elementos poderiam afetar o comportamento do circuito obtido. Hojese sabe que é possível calcular o número máximo de chaves em série necessárias paraimplementar uma dada rede lógica.

Na pesquisa recentemente apresentada por Schneider foi demonstrado que a quantidadede transistores em série afeta diretamente o comportamento elétrico de uma rede lógicaimplementada em tecnologia CMOS. Em seu trabalho, uma maneira eficiente de calculareste número também é proposta [24]. Esta descoberta abre a possibilidade para novaspesquisas e investigações na geração de redes de transistores com cadeias de altura mínima.Nos trabalhos pioneiros de Moore e Harrisson a quantidade de elementos em série não eralevada em consideração. Contudo, estes trabalhos provaram que muitas redes possuemsuas implementações mínimas quando são concebidas com arranjos de elementos não-série/paralelo. Isto demonstra que este campo de estudo ainda possibilita avanços nasinvestigações, visto que a grande maioria das ferramentas de desenvolvimento e circuitosintegrados implementados na atualidade fazem uso de arranjos de transistores puramentesérie/paralelo [25, 26, 27].

9.4 Particularidades de Redes Lógicas

Figura 9.4: Notação simbólica para os transistores PMOS e NMOS

O elemento básico para implementar uma rede lógica é a chave. Este elemento pode serclassificado como uma chave direta, quando ele conduz (permite a passagem de correnteelétrica) toda vez que um valor verdadeiro é aplicado em seu terminal de controle, ou

Page 9: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

PARTICULARIDADES DE REDES LÓGICAS 201

classificado como chave complementar, quando este conduz ao receber um valor falsoem seu terminal de controle. Através da composição de arranjos destes dois tipos dechaves, torna-se possível implementar redes lógicas, que possibilitam a interconexão dedois terminais distintos de acordo com as funções lógicas as quais elas implementam.Dependendo do tipo de tecnologia utilizada, estas chaves podem ser implementadas comodispositivos físicos. Na atual tecnologia CMOS, elas são representadas pelos transistoresNMOS (chaves diretas) e PMOS (chaves complementares). A Figura 9.4 ilustra a notaçãosimbólica destes elementos, enquanto a Figura 9.4 apresenta algumas redes lógicas defunções Booleanas arbitrárias.

f = a ∗ b + b ∗ !c + !a ∗ c ∗ d f = a ∗ !b + !a ∗ c + !b ∗ !d

(a) (b)

Figura 9.5: Duas redes lógicas representando funções lógicas arbitrárias

Se analisarmos uma única rede de dois terminais, algumas propriedades podem serverificadas:

• Planaridade: Redes planares são aquelas que correspondem a grafos planares [28].Este tipo de grafo pode ser desenhado em um plano sem apresentar cruzamento dearestas. No caso de redes, ainda é necessário que os terminais estejam externamenteconectados sem que ocorram cruzamentos de linhas. As redes planares possuemgrafos duais, os quais apresentam a interessante propriedade de serem logicamentecomplementares. A Figura 9.6(a) ilustra uma rede planar, enquanto a 9.6(b) apresentauma rede não-planar.

• Série/Paralelo: Quando todas as chaves em uma rede estão conectadas em série ou emparalelo umas com as outras, diz-se que esta rede é uma rede série/paralelo. Uma redeé série/paralelo se, e somente se, não existir nenhuma porção de rede Wheatstonebridge em sua composição [29]. Todas as redes série/paralelo são planares. AFigura 9.7(a) exemplifica este tipo de rede.

• Rede do tipo bridge: Quando uma rede contém uma configuração Wheatstone bridgeem seu arranjo, esta rede é dita ser uma rede do tipo bridge. Redes do tipo bridgepodem, ou não, ser planares. A Figura 9.7(b) ilustra este tipo de rede.

Page 10: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

202 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

(a) (b)

Figura 9.6: Rede planar (a), rede não-planar (b)

(a) (b)

Figura 9.7: Rede série/paralelo (a), rede do tipo bridge (b)

A partir destas propriedades apresentadas, algumas constatações podem ser obtidas:

• Todas as redes série/paralelo são redes planares;

• Todas as redes série/paralelo possuem um grafo dual, do qual é possível derivar umarede logicamente complementar;

• Todas as redes não-planares são redes do tipo bridge;

• Entretanto, redes do tipo bridge podem ou não ser planares.

Analisando duas redes compostas e levando em consideração as propriedades decomplementaridade, pode-se classificá-las como sendo logicamente complementares etopologicamente complementares. Uma rede é dita ser logicamente complementar de outraquando apenas uma, e sempre uma, estiver conduzindo para uma dada condição de vetor de

Page 11: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

PARTICULARIDADES DE REDES LÓGICAS 203

entrada. Uma rede é dita ser topologicamente complementar de outra se ela representar oplano dual desta outra. A Figura 9.8 exemplifica esta idéia.

(a) (b)

Figura 9.8: Redes topologicamente complementares (b) obtidas a partir de grafos duais (a)

O método usual para a construção da rede dual consiste nos seguintes passos:

1. Em um grafo planar, posicione um ponto em cada face do grafo. Na Fig. 9.8(a) estespontos estão identificados como 1, 2, 3 e 4.

2. Conecte os pontos vizinhos através de linhas, de maneira que estas linhas cruzemapenas uma aresta do grafo original. Não é permitido ter duas linhas cruzando umamesma aresta. Esta etapa é demonstrada pelas linhas pontilhadas da Figura 9.8(a).

Note que os pontos externos, os quais não estão dentro de nenhuma face interna do grafo,correspondem aos nodos terminais da rede. Isto é feito por um propósito de engenharia paraa construção das redes. Na teoria dos grafos não é necessário definir dois pontos externospara construir o grafo dual [23].

É importante manter em mente que redes duais são obtidas a partir de grafos duais.Estas redes são logicamente complementares, mas elas não são obtidas a partir de grafoscomplementares. Grafos complementares são um conceito completamente diferente, osquais não levam a obtenção de redes logicamente complementares. No exemplo apresentadopela Figura 9.8(b), as redes duais são redes do tipo bridge. Entretanto, o mesmo princípio

Page 12: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

204 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

de obtenção pode ser utilizado para redes série/paralelo caso o grafo original seja umaimplementação série/paralelo. Por outro lado, se o grafo do qual se deseja obter o dualnão for um grafo planar, então não será possível derivar o dual deste. Neste caso, umaalternativa que pode ser considerada é a aplicação de algoritmos de planarização [23].

Existe um outro tipo de configuração de redes conhecido como branch-based. Uma redebranch-based é uma rede lógica na qual os arranjos de chaves são compostos puramentepor ramos de elementos em série. Em outras palavras, somente arranjos de chaves em sériesão utilizados para realizar a conexão entre dois terminais [30, 31]. A principal vantagemde redes construídas com esta topologia se deve ao fato de que não existe interconexõesentre diferentes ramos. Isto pode ser uma vantagem sob o ponto de vista de representaçãofísica da rede, facilitando a construção da mesma. A construção de redes branch-based édemasiadamente simples. A partir de uma soma-de-produtos é possível criar um ramo dechaves em série para cada um dos produtos pertencentes a esta SOP. A Figura 9.9 apresentaum exemplo de uma rede branch-based.

Figura 9.9: Rede branch-based

Adicionalmente, redes lógicas também podem ser classificadas como single-rail oudual-rail. Redes single-rail são aquelas que propiciam a conexão entre dois terminais.Redes dual-rail são capazes de conectar um terminal a outros dois terminais distintos,os quais freqüentemente são utilizados um para polaridade direta e outro para polaridadeinvertida. Lógica dual-rail é comumente utilizada na construção de circuitos assíncronos. AFigura 9.10 ilustra este conceito.

(a) (b)

Figura 9.10: Rede single-rail (a), rede dual-rail (b)

Uma porta lógica pode ser concebida utilizando uma rede (mais dispositivos auxiliares),ou duas redes complementares. Nesta linha de pensamento, uma porta lógica pode

Page 13: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

GERAÇÃO DE REDES LÓGICAS 205

ser implementada com dois planos em uma única estrutura compartilhada ou não. AFigura 9.11(a) apresenta uma porta composta por dois planos disjuntos, onde as redesde pull-up e de pull-down são implementadas separadamente. A Figura 9.11(b) ilustrauma porta concebida por planos não-disjuntos, onde as redes de pull-up e pull-downcompartilham elementos de chaveamento em um único plano. Uma rede pull-up é aquelaque conecta o terminal de saída ao terminal com valor lógico verdadeiro (1). Uma rede pull-down, por sua vez, é aquela que conecta o terminal de saída ao terminal com valor lógicofalso (0).

(a) (b)

Figura 9.11: Planos disjuntos (a), planos não-disjuntos (b)

9.5 Geração de Redes LógicasDuas principais abordagens são usualmente utilizadas para a geração de redes lógicas. A

primeira delas é uma solução baseada diretamente nas equações Booleanas que representamuma função lógica. Nesta abordagem a equação é diretamente traduzida para um arranjo dechaves série/paralelo. Redes do tipo bridge não podem ser obtidas através desta técnica, poisnas Wheatstone bridges alguns elementos que compõem a rede não estão nem em série e nemem paralelo com os demais. Isto pode ser constatado na rede ilustrada pela Figura 9.8(b).

A Figura 9.12(a) apresenta a rede lógica obtida a partir do on-set a seguir. AFigura 9.12(b) ilustra a rede derivada do off-set. Note que em ambos os casos é possívelobter as redes topologicamente e logicamente complementares usando a geração a partir dografo dual.

on-set = a ∗ b + b ∗ !c + !a ∗ !c ∗ doff-set = a ∗ !b + !a ∗ c + !b ∗ !d

Redes logicamente complementares também podem ser obtidas utilizando-se o on-set dafunção lógica para implementar um dos planos e o off-set para gerar o outro. Neste caso, as

Page 14: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

206 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

(a) (b)

Figura 9.12: Rede derivada do on-set e sua implementação dual (a), rede obtida a partir dooff-set e sua implementação dual (b)

Figura 9.13: Redes logicamente complementares obtidas diretamentedas equações de on-sete off-set

Page 15: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

GERAÇÃO DE REDES LÓGICAS 207

redes concebidas não são, necessariamente, topologicamente complementares. Um exemplodisto é ilustrado pela Figura 9.13, onde as redes foram criadas diretamente das equações deon-set e off-set apresentadas anteriormente.

A segunda abordagem possível na obtenção de redes lógicas é baseada na derivaçãodestas a partir de grafos. Nesta estratégia, um grafo que representa a função lógica é criado,podendo ser otimizado e, na seqüência, traduzido para uma rede lógica. Esta técnica éparticularmente interessante uma vez que ela possibilita, em alguns casos, não só a derivaçãode redes série/paralelo, mas também redes do tipo bridge [32].

Utilizando BDDs como exemplo, esta técnica consiste em associar chaves lógicas emcada arco pertencente ao BDD. Esta ação é demonstrada na Figura 9.14, onde um BDD éapresentado juntamente com quatro diferentes associações de transistores possíveis [33].

Figura 9.14: Nodo de um BDD e algumas associações de transistores

Quando uma rede de transistores não-disjunta é construída utilizando-se pares detransistores PMOS e NMOS associados aos arcos do BDD, torna-se evidente a possibilidadede derivação de redes disjuntas. O processo é relativamente simples, como demonstradopela Figura 9.15. Note que no primeiro caso, Figura 9.15(a), a rede consiste de umaconfiguração não-disjunta e dual-rail. Nos outros casos, Figuras 9.15(b) e 9.15(c), ambassão implementações disjuntas e single-rail.

Um efeito observado na utilização dos planos disjuntos é o aumento do número denodos internos das redes, enquanto o número de transistores continua o mesmo. Istoleva a uma característica interessante, onde o número de conexões de chaves por nodo éminimizado. Este efeito pode ser visto nos exemplos da Figura 9.15, causando impactosfísicos e elétricos diferentes para cada uma das implementações. Esta riqueza de alternativaspode ser explorada pelos projetistas visando a concepção de um circuito mais eficiente.

O trabalho mais recentemente apresentado em relação a síntese de redes de transistoresfoi apresentado por Kagaris [34]. Nele, o autor propõe uma metodologia para a geração deredes do tipo bridge no intuito de minimizar o número total de elementos do circuito. A

Page 16: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

208 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

rede de chaves é construída computando-se o local mais econômico onde um determinadoelemento deve ser colocado dentro do arranjo da rede. Para tanto, o método utiliza uma SOPcomo entrada. Para cada produto desta SOP, todos os literais são analisados e as chavesrelativas a cada um dos literais são posicionadas de forma a gerar a menor rede possível.Cabe salientar que esta é uma solução heurística, mas que consegue levar a bons resultados.A Figura 9.16 demonstra o emprego desta técnica para um conjunto pequeno de produtospertencentes a uma SOP arbitrária.

Figura 9.15: Redes derivadas de um BDD

Observe que esta solução permite a obtenção de redes do tipo bridge. Contudo,dependendo da função lógica de entrada apenas redes série/paralelo poderão seralcançadas. Outro importante ponto está relacionado com a obtenção do plano logicamentecomplementar. Este método é aplicado separadamente para o on-set e para o off-set dafunção lógica. Desta maneira, os dois planos lógicos são gerados separadamente, nãogarantindo a obtenção de soluções topologicamente complementares.

9.6 Otimização de Redes Lógicas Derivadas a partir deEquações

Ao derivar redes de transistores a partir de equações Booleanas uma relação de um paraum ocorre entre cada literal que compõe a equação e cada transistor que compõe a rede.Neste sentido, torna-se importante minimizar o número de literais da equação para queseja possível obter a menor rede possível. Diversos métodos de minimização de equaçõesBooleanas estão presentes na literatura. Mapas de Karnaugh [35] e Quine-McCluskey [15]são conhecidos como as principais técnicas exaustivas para realizar a minimização a doisníveis (minimização de SOP). Tipicamente eles são rotulados como algoritmos não práticosem tempo de execução para a minimização de SOP. Entretanto, são fáceis e simples de

Page 17: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

OTIMIZAÇÃO DE REDES LÓGICAS DERIVADAS A PARTIR DE EQUAÇÕES 209

Figura 9.16: Rede do tipo bridge obtida para um conjunto arbitrário de produtos de umaSOP [34]

serem entendidos. Já o algoritmo Espresso [36] é um algoritmo heurístico que possui acaracterística de ser computacionalmente factível e que consegue fornecer bons resultadosde minimização a dois níveis.

Um exemplo de minimização a dois níveis pode ser visto na Figura 9.17. Ela mostra ummapa de Karnaugh para uma função Booleana f. A cobertura mínima em termos de literaispara o on-set da função é composta por quatro cubos. Da mesma forma, a cobertura mínimapara o off-set da função também é composta por quatro cubos. As seguintes equaçõesmostram este resultado.

Figura 9.17: Mapa de Karnaugh para uma função Booleana f

Page 18: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

210 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

on-set(f) = !a ∗ c ∗ d + !a ∗ b ∗ !c + a ∗ !c ∗ d + a ∗ b ∗ c

off-set(f) = !a ∗ c ∗ d + !a ∗ b ∗ !c + a ∗ !c ∗ d + a ∗ b ∗ c

Ambas equações também podem ser representadas por sua forma fatorizada. De acordocom Brayton [37], uma forma fatorizada pode ser definida como a representação de umafunção lógica descrita de maneira similar às expressões algébricas, fazendo-se uso deparênteses. Como exemplo, considere a Figura 9.18. A forma fatorizada deste exemplopode ser vista como uma árvore de operadores lógicos. Qualquer representação que possuamais de dois níveis lógicos é chamada de representação multi nível. Neste exemplo a árvorede operadores lógicos possui quatro níveis.

Figura 9.18: Forma fatorizada e representações multi nível

Assim como na otimização a dois níveis, diversos métodos de otimização multi nívelestão disponíveis na literatura. Eles são conhecidos como métodos de fatorização, podendorealizar otimizações algébricas e Booleanas. De uma maneira geral os métodos algébricossão mais rápidos, enquanto os métodos Booleanos são mais lentos, mas capazes deresultar melhores soluções. Uma vez que a obtenção da forma mínima para uma funçãoBooleana arbitrária é tida como um problema NP-completo, a grande maioria dos algoritmosde fatorização são heurísticos. Eles são capazes de encontrar soluções minimizadasequivalentes a função Booleana original, porém nem sempre formas mínimas.

De acordo com Mintz [38], a fatorização consiste em um procedimento para encontraruma forma fatorizada de representação de uma função Booleana. Um método exato paraencontrar a forma mínima de uma função Booleana foi proposta por Lawler [39]. Entretanto,posteriormente foi demonstrado que o método não era prático para ser aplicado em funçõesBooleanas com um grande número de variáveis de entrada.

Mais recentemente um método proposto por Reis [40] demonstrou-se eficiente naobtenção de formas mínimas para funções Booleanas com até dez variáveis de entrada. Estemétodo possui uma interessante característica de retornar não apenas uma forma mínimade representação, mas diversas formas, podendo utilizar outros custos como métrica deminimização. Não apenas o número mínimo de literais pode ser encontrado, mas também

Page 19: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

OTIMIZAÇÃO DE REDES LÓGICAS DERIVADAS DE BDD 211

resultados otimizados em relação ao número de produtos e somas presentes nas equações.Esta poderosa capacidade é útil nos métodos de geração de redes a partir de equações, poistorna possível a implementação de diferentes redes de transistores otimizadas com menoresarranjos série ou paralelo.

9.7 Otimização de Redes Lógicas Derivadas de BDDAo derivar redes de transistores a partir de BDDs é possível fazer uso da propriedade

unateness de alguns nodos para realizar a remoção de chaves sem alterar a funcionalidadeda rede gerada [32, 33]. Esta estratégia pode ser utilizada no intuito de reduzir o númerototal de transistores do circuito.

O primeiro conceito a ser compreendido é apresentado na Tabela 9.2, a qual ilustraa tabela verdade da função representada pelas redes de transistores das Figuras 9.19(b)e 9.19(c), separadas de acordo com os dois planos disjuntos. Esta tabela apresenta o simplesfato de que ao utilizar dois planos disjuntos, um plano fica responsável pela geração do sinalverdadeiro (1), enquanto o outro fica responsável pela geração do sinal falso (0). O planológico que não está produzindo um sinal lógico na saída, dado um vetor de entrada qualquer,produz uma alta impedância na saída (Z). Este conceito pode ser usado no teorema a seguir.

Figura 9.19: Redes derivadas de BDD

Teorema: Dado um nodo n em um plano de pull-up de uma rede derivada de BDD, oarco-1 de um determinado nodo do BDD é candidato a se tornar um fio (curto-circuito) sea função representada pelo nodo n for uma função unate negativa em relação a variável quecontrola este nodo.

Prova: Um nodo de BDD representa uma decomposição de Shannon, tal que a funçãorepresentada pelo nodo pode ser descrita pela equação f =!a ∗ f0 + a ∗ f1, onde f1 =f(a = 1) e f0 = f(a = 0). Esta equação mostra que a função f pode ser construída a

Page 20: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

212 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

partir de f0 e f1 através de um par de chaves que controlam a conexão destas, como ilustradona Figura 9.14(a). A tabela verdade desta porção do circuito, representada na Tabela 9.3,apresenta o valor de f em função de a, f0 e f1. Considere uma falha introduzida no circuito,conforme Figura 9.20, onde o arco-1 foi substituído por um fio. Para que essa falha pudesseser observável em f, as seguintes condições são necessárias:

1. A variável a não pode assumir o valor verdadeiro (1), visto que neste caso o arcoassumiria a funcionalidade de um fio e a falha não seria detectada.

2. Os valores das sub-funções f0 e f1 precisam ser diferentes, no sentido de produzir umafalha observável em f.

3. A sub-função f1 precisa ser igual ao valor verdadeiro (1). Se f1=0, então um valor dealta impedância (Z) estaria presente em f. Desta forma, a falha não seria detectáveluma vez que um curto-circuito conectado a um valor de alta impedância não afeta afuncionalidade.

Como conseqüência, a única combinação de valores lógicos que pode detectar a falha éa=0, f0=0, f1=1. Porém, se a função é unate negativa na variável a, por definição f0 = 0⇒f1 = 0. Desta forma, a condição necessária para detectar a falha nunca irá acontecer. Istosignifica que a remoção da chave pode ser realizada sem alteração da funcionalidade lógicado circuito.

Corolário: Como as considerações descritas no teorema são locais ao nodo em questão,a introdução de fios na rede de transistores precisa ser validada caso a caso antes de seraceita. A introdução de fios na rede pode levar, em alguns casos, a introdução de falsoscaminhos no circuito, alterando a sua funcionalidade lógica.

Tabela 9.2: Tabela verdade para a função f, individualizada para os planos de pull-up epull-down

a b c f PU(f) PD(f)0 0 0 1 1 Z0 0 1 0 Z 00 1 0 1 1 Z0 1 1 0 Z 01 0 0 1 1 Z1 0 1 0 Z 01 1 0 0 Z 01 1 1 0 Z 0

Similarmente, este procedimento de substituição de transistores por fios também podeser aplicado a rede de pull-down. A Tabela 9.4 ilustra as otimizações que podem ser feitaspara cada plano na rede de acordo com as características unate.

Ao realizar esta otimização na rede, substituindo transistores por fios, uma relação dedominância de caminhos pode ser criada. Diz-se que um caminho P1 em uma rede dominaum caminho P2 se a condição P1-on ⇒ P2-on ocorrer. Este é o caso da rede de pull-down apresentada na Figura 9.19(c). Nela existem três caminhos conectando os terminais:

Page 21: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

OTIMIZAÇÃO DE REDES LÓGICAS DERIVADAS DE BDD 213

Tabela 9.3: Tabela verdade para a função f e para o pull-up de f em função de a, f0 e f1

a f0 f1 f PU(f) Falha0 0 0 0 Z não detec.0 0 1 0 Z detectada0 1 0 1 1 não detec.0 1 1 1 1 não detec.1 0 0 0 Z não detec.1 0 1 1 1 não detec.1 1 0 0 Z não detec.1 1 1 1 Z não detec.

Figura 9.20: Chaves controladas pela variável a, usadas para conectar a f0 e f1

P1 = a ∗ b, P2 = !a ∗ c e P3 = a ∗ !b ∗ c. O caminho P2 pode ser simplificado para P2= c, através da remoção do transistor controlado pela variável a e sua substituição por umfio. Como conseqüência desta substituição, o caminho P2 dominará o caminho P3 porquea situação P2-on ⇒ P3-on irá ocorrer. Isto aponta para uma outra situação interessante,na qual o caminho P3 não é mais necessário para garantir a funcionalidade da rede. EntãoP3 pode ser removido, bastando para isso realizar a remoção do transistor controlado pelavariável b.

Embora seja possível diminuir o número de transistores que compõem a rede,estas otimizações realizadas através da exploração da característica de unateness nemsempre possibilitam que as células sejam obtidas com cadeias mínimas de transistores.Essencialmente, isto ocorre devido ao fato de que alguns transistores que são candidatosa serem removidos não podem ser, uma vez que esta situação levaria a introdução defalsos caminhos na rede. A Figura 9.21 ilustra este problema. Os transistores circuladosna rede de transistores, conforme Figura 9.21(b), são candidatos a serem substituídos porfios. O transistor do arco T2 pode ser substituído, uma vez que esta otimização não alterao comportamento lógico da rede. Todavia, o transistor do arco T3 não pode ser substituídoporque isto criaria um falso caminho através dos arcos T4 e T6, alterando a funcionalidadelógica da rede. Para assegurar a correta funcionalidade, uma estratégia de duplicação denodos pode ser utilizada. A duplicação de nodos possibilita que todos os candidatos sejam

Page 22: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

214 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

Tabela 9.4: Arcos candidatos a se tornarem um fioRede PMOS (pull-up) Rede NMOS (pull-down)

Unate Positiva Arco 0 é candidato Arco 1 é candidatoUnate Negativa Arco 1 é candidato Arco 0 é candidato

removidos da rede, levando a uma diminuição do número de transistores em série presentesna mesma.

(a) (b)

Figura 9.21: BDD (a) e rede disjunta derivada (b)

Para que a duplicação de nodos possa ser realizada, primeiramente faz-se necessárioescolher o nodo mais adequado para tal. A Figura 9.22 ilustra duas duplicações possíveisem uma rede de transistores derivada a partir do BDD apresentado na Figura 9.21(a). Paraque seja possível substituir o transistor T3 por um fio, duas estratégias de duplicação sãopossíveis. A primeira consiste em duplicar o nodo C do BDD, o que na rede significarealizar a duplicação dos transistores dos arcos T7 e T8. A Figura 9.22(b) ilustra esta idéia.A segunda opção é realizar a duplicação do nodo B do BDD, o qual possui conexão com otransistor candidato a ser substituído por um fio. Esta opção é ilustrada na Figura 9.22(c),onde o transistor referente ao arco T1 do BDD é duplicado.

A principal razão para realizar esta análise está relacionada com a quantidade detransistores que irão compor a rede. Neste exemplo, as duas redes podem ter os

Page 23: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

ORDENAMENTO DE REDES LÓGICAS 215

transistores candidatos substituídos por fios e, assim, serem soluções com cadeias mínimasde transistores em série. Contudo, a segunda estratégia é melhor uma vez que ela forneceuma solução com um transistor a menos na contagem total. Se considerarmos circuitoscompostos por um número significativo de portas lógicas, um incremento desnecessário dechaves na rede pode levar a uma situação de consumo de área que poderia ser evitado.

Figura 9.22: Estratégias de duplicação de nodos

9.8 Ordenamento de Redes LógicasA exploração do ordenamento das redes de transistores também pode trazer benefícios

nos resultados da síntese. Esta idéia consiste em organizar internamente o arranjo daschaves no intuito de obter uma melhor implementação, de acordo com alguma métrica a serminimizada. Neste sentido, basicamente pode-se classificar o ordenamento em dois grandesgrupos: ordenamento estrutural e ordenamento baseado no grafo.

No ordenamento estrutural, a rede de transistores é gerada em um primeiro passo. Emum segundo momento, as chaves que compõem a rede são organizadas de acordo com regraspara minimizar um determinado custo. Somente os elementos, ou grupos de elementos,em série podem ser ordenados de diferentes formas para produzir redes equivalentes. Porexemplo, através do ordenamento estrutural é possível favorecer alguns sinais de entrada,colocando os transistores controlados por estes sinais o mais próximo da saída. Assim, arede implementada irá apresentar melhor desempenho para um certo conjunto de sinais deentrada, uma vez que a distância das chaves controladas por estes sinais até a saída seráminimizada. O método proposto por Carlson [41] é um exemplo da técnica de ordenamentoestrutural.

No ordenamento baseado no grafo, a estrutura do grafo é ordenada antes da rede detransistores ser derivada. O princípio de ordenamento é o mesmo da técnica de ordenamentoestrutural, mas neste caso a rede derivada será obtida com um determinado arranjo internorespeitando a ordem previamente definida pelo grafo. Um exemplo do uso desta técnica foi

Page 24: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

216 REDES DE TRANSISTORES E PORTAS LÓGICAS CMOS

apresentado por Cardoso [42], onde ordenamentos em BDDs são realizados no intuído deminimizar custos de área, atraso e consumo de energia nos circuitos.

Dependendo da função lógica, o ordenamento em uma estrutura de BDD pode apresentaruma relação exponencial de acordo com o número de variáveis presentes. Algumaspesquisas já demonstraram que o problema de encontrar o ordenamento que fornece omenor número de nodos em um BDD é um problema NP-completo [43, 44]. A quantidadede ordenamentos possíveis é determinada pelo fatorial do número de variáveis presentesna função lógica. Desta forma, a solução exata só pode ser obtida utilizando-se soluçõesexaustivas. Porém, para funções com um grande número de variáveis, esta solução não écomputacionalmente eficiente. Na prática, métodos heurísticos como o Sifting [45] podemfornecer bons resultados em tempos aceitáveis de processamento. O método Sifting consisteem seqüencialmente realizar a troca de variáveis entre os níveis do BDD, utilizando umaestratégia gulosa para fixar as variáveis em uma posição que forneça um BDD com o menornúmero de nodos possível.

Pensando-se na derivação de uma rede de transistores a partir do BDD, o problema deencontrar um BDD com o menor número de nodos possível é fundamental para a obtençãode uma rede otimizada. Quanto menor for o número de nodos do BDD, menor será o númerode arcos, e, portanto, menor será o número de transistores da rede derivada. Esta percepçãopode ser explorada pelos projetistas que desejam derivar redes a partir de BDD, servindocomo estratégia inicial para posteriormente investigar a otimização das redes através deunateness e duplicação de nodos. A Figura 9.23 ilustra dois BDDs representando a mesmafunção lógica, juntamente com as redes de transistores derivadas deles. Este exemploevidencia o fato de que menores BDDs são traduzidos em menores redes de chaves.

9.9 ConclusãoEste capítulo discutiu diversas questões relacionadas à implementação de redes lógicas.

Inicialmente, alguns conceitos básicos importantes foram apresentados. Um breve históricosobre a teoria de chaveamento mostrou que a evolução da tecnologia tem colaborado paraa obtenção de circuitos cada vez mais eficientes. Novas estruturas de dados, algoritmos,métodos e técnicas visando a geração de redes de transistores menores e mais rápidas fazemcom que esta linha de pesquisa ofereça um largo espaço de projeto e de oportunidades paraque estudantes de engenharia elétrica e computação estejam frente a desafios relacionadosao estado-da-arte da indústria de microeletrônica mundial.

Page 25: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

CONCLUSÃO 217

Figura 9.23: BDDs e redes de transistores derivadas

Page 26: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

218 REFERÊNCIAS BIBLIOGRÁFICAS

9.10 Referências Bibliográficas[1] G. D. Micheli, Synthesis and Optimization of Digital Circuits. McGraw-Hill Higher

Education, 1994.

[2] J. Rabaey, A. Chandrakasan, and B. Nikolic, Digital Integrated Circuits: A DesignPerspective; 2nd ed. Upper Saddle River, NJ: Pearson Education, 2003. Order fromoutside CERN via Inter Library Loan.

[3] K. Scott and K. Keutzer, “Improving cell libraries for synthesis,” in IEEE CustomIntegrated Circuits Conference, (San Diego, USA), pp. 128–131, 1994.

[4] M. Vujkovic and C. Sechen, “Optimized power-delay curve generation for standardcell ics,” in ICCAD ’02: Proceedings of the 2002 IEEE/ACM international conferenceon Computer-aided design, (New York, NY, USA), pp. 387–394, ACM, 2002.

[5] C. Sechen, B. Chappel, J. Hogan, A. Moore, T. Nakamura, G. A. Northrop, andA. Thakar, “Libraries: lifejacket or straitjacket,” in DAC, pp. 642–643, 2003.

[6] S. Vemura, “Variable-taper cmos buffer,” IEEE Journal of Solid-State Circuits, vol. 26,pp. 1265–1269, 1991.

[7] C. Prunty, “Optimum tapered buffer,” IEEE Journal of Solid-State Circuits, vol. 27,pp. 118–119, 1992.

[8] S. Ma and F. P., “Energy control and accurate delay estimation in the design of cmosbuffers,” IEEE Journal of Solid-State Circuits, vol. 29, pp. 1150–1153, 1994.

[9] C. Fisher, “Optimization of standard cell libraries for low power, high speed, orminimal area designs,” in IEEE Custom Integrated Circuits Conference, pp. 493–496,1996.

[10] A. Dharchoudhury, J. Norton, T. Edwards, D. Blaauw, and R. Panda, “Migration: Anew technique to improve synthesized designs through incremental customization,”Design Automation Conference, vol. 0, pp. 388–391, 1998.

[11] D. Bhattacharay, “Design optimization with automated flex-cell creation,” in Closingthe Gap Between ASIC and Custom: tools and techniques for high-performance ASICdesign (K. Keutzer, ed.), pp. 14–23, Klumer Academic Publishers, 2002.

[12] H. Yoshida, M. Ikeda, and K. Asada, “A structural approach for transistor circuitsynthesis,” IEICE Trans. Fundam. Electron. Commun. Comput. Sci., vol. E89-A,no. 12, pp. 3529–3537, 2006.

[13] R. Roy, D. Bhattacharya, and V. Boppana, “Transistor-level optimization of digitaldesigns with flex cells,” Computer, vol. 38, no. 2, pp. 53–61, 2005.

[14] K. Keutzer, “Dagon: Technology binding and local optimization by dag matching,” in25 years of DAC: Papers on Twenty-five years of electronic design automation, (NewYork, NY, USA), pp. 617–624, ACM, 1988.

Page 27: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

REFERÊNCIAS BIBLIOGRÁFICAS 219

[15] W. V. Quine, “A way to simplify truth functions,” American Mathematical Monthly,vol. 62, pp. 627–631, 1955.

[16] E. J. Mccluskey, “Minimization of boolean functions,” The Bell System TechnicalJournal, vol. 35, pp. 1417–1444, November 1956.

[17] C. Y. Lee, “Representation of switching circuits by binary-decision programs,” BellSystems Technical Journal, pp. 985–999, 1959.

[18] R. E. Bryant, “Graph-based algorithms for boolean function manipulation,” IEEETransactions on Computers, vol. 35, pp. 677–691, 1986.

[19] C. Shannon, “A symbolic analysis of relay and switching circuits,” TransactionsAmerican Institute of Electrical Engineers, vol. 57, pp. 38–80, 1938.

[20] C. Shannon, “Realization of all 16 switching functions of two variables requires 18contacts,” Bell Laboratories, 1953.

[21] C. Shannon, “Machine aid for switching circuit design,” Bell Laboratories, 1953.

[22] E. Moore, “Table of four-relay contact networks,” in Logical Design of ElectricalCircuits (R. Higonnet and R. Grea, eds.), McGraw-Hill, 1958.

[23] A. Harrison, Introduction to Switching and Automata Theory. McGraw-Hill, 1966.

[24] F. Schneider, “Building transistor-level networks following the lower bound on thenumber of stacked switches,” Master’s thesis, Universidade Federal do Rio Grande doSul, Porto Alegre, Brazil, 2007.

[25] M. Berkelaar and J. Jess, “Technology mapping for standard-cell generators,” inInternational Conference Computer-Aided Design, pp. 470–473, 1988.

[26] A. Reis, Assignation Technologique sur Bibliotheques Virtuelles de Portes ComplexesCMOS. PhD thesis, Université de Montpellier, Montpellier, France, 1998.

[27] V. Correia and A. Reis, “Advanced technology mapping for standard-cell generators,”in SBCCI ’04: Proceedings of the 17th symposium on Integrated circuits and systemdesign, (New York, NY, USA), pp. 254–259, ACM, 2004.

[28] F. Harary, Graph Theory. Perseus Books Group, 1994.

[29] R. Duffin, “Topology of series-parallel networks,” Journal of Mathematical Analysisand Applications, vol. 10, pp. 303–318, 1965.

[30] C. Piguet, “Low-power low-voltage standard cell libraries,” in European Solid-StateCircuits Conference, 1995.

[31] A. Neve and D. Flandre, “Branch-based logic for high performance carry-selectadders in 0.25 µm bulk and silicon-on-insulator cmos technologies,” in InternationalWorkshop-Power and Timing Modeling, Optimization and Simulation, 2001.

Page 28: Redes de Transistores e Portas Lógicas CMOS 9.1 Introdução

220 REFERÊNCIAS BIBLIOGRÁFICAS

[32] L. S. da Rosa Junior, F. S. Marques, T. M. G. Cardoso, R. P. Ribas, S. S.Sapatnekar, and A. I. Reis, “Fast disjoint transistor networks from bdds,” in SBCCI’06: Proceedings of the 19th annual symposium on Integrated circuits and systemsdesign, (New York, NY, USA), pp. 137–142, ACM, 2006.

[33] R. E. B. Poli, F. R. Schneider, R. P. Ribas, and A. I. Reis, “Unified theory to buildcell-level transistor networks from bdds,” in SBCCI ’03: Proceedings of the 16thsymposium on Integrated circuits and systems design, (Washington, DC, USA), p. 199,IEEE Computer Society, 2003.

[34] D. Kagaris and T. Haniotakis, “A methodology for transistor-efficient supergatedesign,” IEEE Trans. Very Large Scale Integr. Syst., vol. 15, no. 4, pp. 488–492, 2007.

[35] M. Karnaugh, “The map method for the synthesis of combinational circuits,” AIEETransactions: Communications and Electronics, vol. 72, pp. 593–599, 1953.

[36] P. C. McGeer, J. V. Sanghavi, R. K. Brayton, and A. L. Sangiovanni-Vincentelli,“Espresso-signature: A new exact minimizer for logic functions,” in DesignAutomation Conference, pp. 618–624, 1993.

[37] R. K. Brayton, “Factoring logic functions,” IBM J. Res. Dev., vol. 31, no. 2, pp. 187–198, 1987.

[38] A. Mintz and M. C. Golumbic, “Factoring boolean functions using graph partitioning,”Discrete Appl. Math., vol. 149, no. 1-3, pp. 131–153, 2005.

[39] E. L. Lawler, “An approach to multilevel boolean minimization,” J. ACM, vol. 11,no. 3, pp. 283–295, 1964.

[40] A. Reis, A. Rasmussen, L. da Rosa JR., and R. Ribas, “Fast boolean factoring withmulti-objective goals,” in International Workshop on Logic and Synthesis, (Berkley,USA), 2009.

[41] B. S. Carlson and C. Y. R. Chen, “Effects of transistor reordering on the performanceof mos digital circuits,” in Midwest Symposium on Circuits and Systems, pp. 121–124,1992.

[42] T. M. G. Cardoso, L. S. da Rosa Jr., F. de Souza Marques, R. P. Ribas, and A. I.Reis, “Speed-up of asics derived from fpgas by transistor network synthesis includingreordering,” Quality Electronic Design, International Symposium on, vol. 0, pp. 47–52,2008.

[43] B. Bollig and I. Wegener, “Improving the variable ordering of obdds is np-complete,”IEEE Transactions on Computers, vol. 45, no. 9, pp. 993–1002, 1996.

[44] R. Drechsler and B. Becker, Binary Decision Diagrams: Theory and Implementation.Kluwer Academic, 1998.

[45] R. L. Rudell, “Dynamic variable ordering for ordered binary decision diagrams,” inInternational Conference on Computer-Aided Design, pp. 42–47, 1993.