You are on page 1of 28

Redes de Transistores e Portas Lgicas CMOS

Leomar Soares da Rosa Junior Universidade Federal de Pelotas (UFPel) leomarjr@ufpel.edu.br Vinicius Callegaro Universidade Federal do Rio Grande do Sul (UFRGS) vcallegaro@inf.ufrgs.br Renato Perez Ribas Universidade Federal do Rio Grande do Sul (UFRGS) rpribas@inf.ufrgs.br Andr Incio Reis Universidade Federal do Rio Grande do Sul (UFRGS) andreis@inf.ufrgs.br

9.1

Introduo

Os circuitos digitais esto 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 so os computadores pessoais, a telefonia mvel celular, os dispositivos GPS, os sistemas automotivos computadorizados, a computao em equipamentos e dispositivos oi da medicina e etc. Esta exploso na presena de circuitos digitais em vrios campos do conhecimento pode ser atribuda, em grande parte, ao avano das tecnologias de concepo de circuitos integrados. Este avano permite a integrao de um nmero cada vez maior de componentes, possibilitando a concepo de circuitos cada vez maiores e mais complexos. Contudo, a alta integrao e as novas tecnologias de fabricao disponveis impem novos limites e desaos para a sntese. As principais diculdades so a adaptao aos novos parmetros de tecnologia e o desenvolvimento de projetos em um tempo curto o suciente para no comprometer a sua comercializao. Portanto, a automatizao desse processo atravs do uso intenso de ferramentas de auxlio ao desenvolvimento um fator cada vez mais indispensvel para alcanar essas metas. Basicamente, existem dois uxos principais para a concepo de circuitos integrados que levam a duas situaes distintas: rpido desenvolvimento e projetos de alto desempenho. Rpido desenvolvimento, como j mencionado, signica capacidade de colocar no mercado o produto no menor tempo possvel. Para este tipo de abordagem de concepo de circuitos

194

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

integrados a metodologia standard-cell a mais comumente utilizada. Por outro lado, desenvolvimento de circuitos integrados visando alto desempenho utiliza uma metodologia conhecida como full-custom, onde o projeto e a concepo do circuito customizada para fornecer alto desempenho em termos de rea, atraso e consumo de energia [1]. A proposta do uxo standard-cell consiste em reduzir os esforos de implementao atravs do reuso de clulas lgicas. A principal vantagem desta abordagem o fato das clulas necessitarem ser desenvolvidas e vericadas uma nica vez para um dada tecnologia, podendo ser reutilizadas diversas vezes, amortizando, assim, o custo total do projeto. A desvantagem deste uxo est relacionada com a limitao da biblioteca de clulas, uma vez que o nmero de clulas lgicas que compem uma biblioteca limitado, reduzindo a possibilidade de um ajuste no durante a gerao dos circuitos integrados [2]. De acordo com alguns estudos, a qualidade do circuito obtido utilizando-se o uxo standard-cell depende de trs principais componentes utilizados: a ferramenta de sntese lgica, a ferramenta de sntese fsica (leiaute), e a biblioteca de clulas. Portanto, fazer uso de uma biblioteca de clulas adequada uma estratgia que pode causar um impacto signicativo nas caractersticas do circuito projetado [3, 4, 5]. Uma biblioteca de clulas consiste em um conjunto nito de clulas lgicas que implementam diferentes funes Booleanas. Estas clulas apresentam diferentes caractersticas eltricas e topolgicas. Tradicionalmente, ferramentas de mapeamento tecnolgico buscam a otimizao do circuito em termos de rea, atraso e consumo, fazendo uso das clulas disponveis na biblioteca para construir o circuito desejado de forma mais otimizada possvel. Cada biblioteca de clula completamente caracterizada atravs de diversas simulaes eltricas, resultando em um conjunto preciso de informaes referentes s clulas que compem esta biblioteca. Entretanto, o custo para isto relativamente alto [5]. Desta forma, bibliotecas de clulas comerciais so tipicamente compostas por um conjunto de poucas centenas de clulas combinacionais e elementos seqenciais. Como resultado disto, os projetistas esto limitados ao uso desta baixa quantidade de clulas para compor seus circuitos. Ao longo dos anos algumas iniciativas tm sido desenvolvidos no sentido de reduzir esta limitao. Alguns trabalhos propem a otimizao das clulas lgicas especcas de uma dada implementao de circuito. Porm, estas otimizaes esto tipicamente limitadas ao conjunto de inversores e cadeias de buffers que compem o circuito para minimizar consumo de energia e atraso [6, 7, 8]. Outros trabalhos tentam otimizar clulas lgicas j existentes em uma determinada biblioteca de clulas no sentido de ajustlas para atender as restries dos circuitos [9]. Por outro lado, trabalhos mais recentes tm defendido que a realizao de otimizaes no nvel de transistores das clulas lgicas uma tcnica mais eciente para aumentar a qualidade do circuito [10, 11, 12]. Em Roy [13], algumas partes do circuito so analisadas, removidas e substitudas por clulas otimizadas para atender a uma determinada especicao tcnica. Esta substituio realizada em um passo posterior obteno do circuito mapeado. Como pode ser visto na Figura 9.1, isto feito no nvel de transistores do circuito, possibilitando ganhos considerveis nos tempos de propagao do circuito nal. importante notar que a qualidade dos circuitos mapeados altamente dependente da riqueza da biblioteca de clulas em termos do nmero de funes lgicas implementadas, e das caractersticas eltricas e topolgicas das clulas. Bibliotecas que implementam um grande nmero de funes Booleanas levam a melhores resultados quando comparadas com bibliotecas esparsamente povoadas [14].

CONCEITOS BSICOS E TERMINOLOGIAS

195

Figura 9.1: Otimizao do circuito no nvel de transistores [13] Neste sentido, este captulo discute a gerao de portas lgicas no nvel de transistores. Inicialmente, alguns conceitos e terminologias so apresentados. Nas sees seguintes, mtodos tradicionais de obteno de portas lgicas para tecnologia CMOS so discutidos, bem como mtodos alternativos e ecientes na obteno de topologias mais otimizadas, derivadas a partir de grafos. Ao nal do captulo o leitor ser capaz de compreender que uma mesma funo lgica pode ser implementada por diferentes arranjos de transistores, os quais podero apresentar caractersticas prprias, podendo atender diferentes necessidades no projeto de circuitos digitais.

9.2

Conceitos Bsicos e Terminologias

Um conjunto Booleano B denido como um conjunto de dois elementos, B = {0,1}, no qual os elementos so interpretados como valores lgicos, tipicamente 0 = falso e 1 = verdadeiro. Um conjunto Booleano n-dimensional Bn composto por todos os vetores Booleanos de comprimento n. Por exemplo, B0 = , B1={0,1}, B2={00,01,10,11} e B3={000,001,010,011,100,101,110,111}. fcil de perceber que Bn, portanto, tem 2n elementos. Uma funo Booleana descreve uma relao que permite determinar um valor Booleano de sada baseado em uma ou mais operaes lgicas levando em considerao um conjunto de vetores de entrada de comprimento n. Uma funo Booleana representada pela seguinte forma: f: Bn B, onde B = {0,1} o domnio Booleano da funo e n um inteiro no negativo. Variveis Booleanas so variveis denidas pelo domnio Booleano e geralmente descritas fazendo-se uso de caracteres alfanumricos. Exemplos de variveis Booleanas so: a, b, c, x0, x1, y2. Uma varivel Booleana pode assumir valores no domnio Booleano, sendo estes 0 ou 1.

196

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

Alguns operadores Booleanos podem ser aplicados sobre os valores Booleanos ou funes. Existem trs operadores bsicos, conhecidos como: AND (*), OR (+) e NOT (!). O operador AND aquele que retorna um valor verdadeiro quando todos os operandos envolvidos so tambm verdadeiros, e retorna falso para os demais casos. O operador OR retorna falso quando todos os operandos so falsos, retornando verdadeiro para os outros casos. Estes dois operadores, AND e OR, so conhecidos como operadores binrios, visto que eles requerem ao menos dois operandos para realizar a operao. J o operador NOT, tambm conhecido como operador de inverso, unrio e pode ser aplicado a um operando sozinho. Este operador retorna falso quando o operando verdadeiro, e vice-versa. Note que operandos podem ser tanto funes Booleanas, como constantes Booleanas. A fase ou polaridade de uma varivel Booleana indica se esta usada na sua forma direta ou complementada (invertida). Uma fase positiva especica o uso da varivel sem inverso, enquanto uma fase negativa especica o uso de seu complemento. Uma varivel em sua fase negativa precedida por um operador NOT, como por exemplo, !a e !x0. Um literal uma instncia de uma varivel Booleana na sua fase positiva ou negativa. Exemplos de literais so: a, !a, x0 e !y1. Note que a e x0 so literais positivos, enquanto !a e !y1 so literais negativos. Um vetor de entrada um elemento que indica o valor para cada varivel Booleana em uma dada funo Booleana. Para um certo nmero de variveis existe 2n vetores de entrada, onde n o nmero total de variveis Booleanas. Outro conceito importante o de expresses Booleanas ou equaes Booleanas. Estas so representaes de uma funo Booleana. Cada funo Booleana distinta, uma vez que ela apenas representa uma associao f: Bn B. Entretanto, possvel descrever uma funo Booleana em diferentes formas usando operadores Booleanos. Por exemplo, as seguintes equaes Booleanas representam a mesma funo Booleana: Eq1 = a (b c) + d (e + c) Eq2 = c (a b + d) + d e As funes Booleanas tambm podem ser representadas por uma forma tabular conhecida como tabela verdade. Em uma representao por tabela verdade, os valores de sada so mostrados de acordo com todas as combinaes possveis de entradas. Em outras palavras, uma tabela verdade uma forma de representao onde todos os valores da funo so especicados para todo o domnio da funo. A tabela verdade pode ser construda para qualquer nmero de variveis de entrada. Contudo, todas as combinaes possveis para estas variveis de entrada devem estar presentes. Isto signica que cada linha da tabela verdade representa um vetor de entrada e seus respectivos valores de sada. A Tabela 9.1 ilustra tabelas verdade para algumas funes Booleanas bsicas de duas entradas A e B. Para uma dada funo Booleana, o conjunto de vetores de entrada que produz valores verdadeiro na sada chamado de on-set. Da mesma forma, o conjunto de vetores de entrada que produz valores falso na sada conhecido como off-set. Chama-se de produto de literais uma operao lgica AND entre estes literais. (a b c e) e (!a c !d) so exemplos de produtos de literais. Uma soma-de-produtos (SOP) uma equao Booleana composta pelo operador OR entre dois ou mais produtos de literais. So exemplos de SOP as seguintes equaes:

CONCEITOS BSICOS E TERMINOLOGIAS

197

Tabela 9.1: Tabela verdade para algumas funes Booleanas A 0 0 1 1 B 0 1 0 1 AND 0 0 0 1 OR 0 1 1 1 XOR 0 1 1 0 NAND 1 1 1 0 NOR 1 0 0 0 XNOR 1 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 em extrair todas as linhas (produtos) que representam valores verdadeiros na sada da tabela verdade e, na seqncia, realizar operaes OR entre todos estes produtos. Esta equao obtida conhecida como uma equao Booleana em sua forma cannica. Formas cannicas recebem este nome porque elas preservam uma correspondncia de um para um em relao a tabela verdade. Isto signica que existe apenas uma forma cannica para cada funo Booleana, ao passo que podem existir diferentes formas no cannicas de representao para uma funo Booleana, como j mencionado anteriormente. Algumas formas no cannicas podem apresentar um nmero bastante reduzido de literais se comparadas a sua forma cannica original. Isto indica que uma forma cannica no a representao mnima em termos de literais. Processos mais elaborados para extrao de SOP com nmero mnimo de literais podem ser aplicados, porm demandam algoritmos mais custosos para tal. Exemplo disto o algoritmo de Quine-McCluskey [15, 16]. Um produto-de-somas (POS) uma representao muito similar a SOP. A diferena que a equao Booleana obtida composta de operaes lgicas AND entre duas ou mais somas de literais. Para construir as somas, todas as linhas da tabela verdade que apresentam valores falso de sada so consideradas. Note que similarmente a SOP, todas as variveis de entrada precisam estar presentes em cada soma que compe a POS para garantir que esta seja uma representao cannica. Um produto contendo todas as variveis que compem a funo lgica chamado de mintermo. Um mintermo mantm uma relao nica com apenas uma linha da tabela verdade. Os mintermos para os quais a funo lgica apresenta valor verdadeiro em sua sada so chamados de mintermos implicantes. Desta forma, como mencionado anteriormente, uma SOP cannica aquela composta por todos os mintermos implicantes de uma dada funo lgica. Ao agrupamento de mintermos d-se o nome de cubo. Enquanto um mintermo apresenta apenas relao com uma nica linha da tabela verdade, um cubo apresenta uma relao com uma ou mais linhas desta. Por exemplo, considerando-se os dois mintermos (!a b c !d) e (!a b c d) que compem a funo f = (!a b c !d) + (!a b c d), possvel realizar o agrupamento destes atravs de algumas manipulaes algbricas e Booleanas, como demonstrado a seguir:

198

REDES DE TRANSISTORES E PORTAS LGICAS 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, (!abc), chamado de cubo. Uma forma bastante interessante de visualizar possveis agrupamentos de mintermos se d atravs de uma estrutura conhecida como mapa de Karnaugh. Um mapa de Karnaugh uma matriz indexada que facilita a visualizao de mintermos adjacentes, os quais podem ser agrupados. A Figura 9.2 ilustra um mapa de Karnaugh para os mintermos (!a b c !d) e (!a b c d). Neste exemplo, os valores das colunas representam os valores lgicos para as variveis a e b, enquanto os valores das linhas representam os valores para as variveis c e d.

Figura 9.2: Mapa de Karnaugh Como pode ser observado no exemplo da Figura 9.2, os dois mintermos adjacentes podem ser agrupados para formar um cubo. Isto til no sentido de minimizar uma SOP, diminuindo o nmero de literais presentes nesta. Em relao classicao de funes lgicas, uma de especial interesse para a seqncia deste captulo. Esta classicao leva em considerao o comportamento dos sinais de entrada e sada em uma dada funo lgica, sendo conhecida como propriedade unateness. Uma funo dita ser unate positiva se ela apresentar uma transio positiva (0 1) em sua sada quando uma transio positiva ocorrer em uma de suas entradas. Por exemplo, a funo AND uma funo unate positiva. Uma funo dita ser unate negativa se ela apresentar uma transio negativa (1 0) em sua sada quando uma transio positiva ocorrer em uma de suas entradas. Exemplo de funo unate negativa a funo NAND. Quando uma funo apresenta ambos os comportamentos, com transies positivas e negativas em sua sada sempre que uma transio positiva ocorrer na entrada, diz-se que esta uma funo binate. A funo lgica XOR um exemplo de funo binate. Note que, o comportamento unate ou binate em uma dada funo lgica est sempre relacionado com uma determinada varivel de entrada da funo. Por exemplo, analisando a funo f = !a b + a !c, constata-se que ela binate em relao a varivel a, unate positiva em relao a varivel b, e unate negativa em relao a varivel c. Quando todas as entradas da funo apresentam um comportamento monotonicamente crescente, diz-se que esta funo unate positiva para todas as variveis de entrada. O mesmo acontece para os comportamentos unate negativo e binate. Desta forma, portas AND e OR so unate

BREVE HISTRICO SOBRE REDES LGICAS

199

positivas para todas as variveis de entrada. Portas NAND e NOR so unate negativas em relao a todas as variveis de entrada. Por m, a porta XOR binate em todas as variveis de entrada. De todas as estruturas de dados utilizadas para representao de funes lgicas e para implementao de redes, uma de especial interesse devido a sua capacidade de fornecer redes de chaves otimizadas. Esta estrutura chamada de BDD (Diagrama de Deciso Binria), sendo composta por nodos, arcos e terminais. Cada nodo de deciso na estrutura controlado por uma varivel Booleana, sendo que estes nodos possuem dois lhos chamados de arco-0 e arco-1. Cada um dos lhos (caminhos) na estrutura correspondem diretamente ao assinalamento da varivel de controle do nodo, a qual decide qual caminho dever ser percorrido [17]. A Figura 9.3 apresenta um BDD para uma funo AND de trs entradas. Neste exemplo a funo valer 1 se, e somente se, os valores lgicos das variveis forem assim assinalados: X1=1, X2=1 e X3=1. Caso alguma das variveis assuma o valor lgico falso (0) ento a funo f valer 0.

Figura 9.3: BDD de uma AND de trs 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 BDDs apresentam um ordenamento xado das variveis, garantindo que estas sejam avaliadas apenas uma vez ao longo dos caminhos do BDD. Alm disto, eles tambm eliminam a redundncia de caminhos, compartilhando caminhos isomrcos na estrutura e removendo caminhos no relevantes para a avaliao da funo. As regras para realizar estas otimizaes podem ser encontradas detalhadamente em [18].

9.3

Breve Histrico sobre Redes Lgicas

A teoria de chaveamento um tpico que vem sendo pesquisado ao longo dos anos por diversos estudiosos da rea da computao. De volta aos anos 30, quando Claude E. Shannon comeou suas pesquisas na rea, os principais elementos lgicos utilizados eram eletromecnicos, como, por exemplo, chaves mecnicas e rels. Com o passar dos anos,

200

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

outros elementos vieram a substituir as chaves e os rels. Vlvulas, diodos e transistores foram largamente utilizados para construir circuitos lgicos. Em 1938, Shannon apresentou uma anlise sobre redes lgicas e circuitos compostos por rels [19]. Em 1953, uma investigao foi realizada acerca de quantos contatos eram necessrios e sucientes para simultaneamente implementar todas as dezesseis funes de duas variveis [20]. Ainda em 1953, Shannon concebeu uma mquina utilizando chaves seletoras e rels para auxiliar o desenvolvimento de circuitos compostos por elementos lgicos [21]. importante relembrar que, naqueles dias, elementos lgicos eram caros. Alm disso, todas as redes lgicas implementadas eram relativamente pequenas, permitindo que todo ou grande parte do processo de desenvolvimento pudesse ser realizado manualmente. Neste contexto, durante os anos 50 e 60, Moore e Harrisson produziram catlogos para o conjunto de funes de quatro entradas [22, 23]. Uma vez que estas pesquisas eram realizadas considerando apenas chaves mecnicas e rels como elementos de chaveamento, somente o nmero total de elementos era levado em considerao. Outras caractersticas das redes no eram investigadas, no havendo a preocupao de estudar como diferentes arranjos de elementos poderiam afetar o comportamento do circuito obtido. Hoje se sabe que possvel calcular o nmero mximo de chaves em srie necessrias para implementar uma dada rede lgica. Na pesquisa recentemente apresentada por Schneider foi demonstrado que a quantidade de transistores em srie afeta diretamente o comportamento eltrico de uma rede lgica implementada em tecnologia CMOS. Em seu trabalho, uma maneira eciente de calcular este nmero tambm proposta [24]. Esta descoberta abre a possibilidade para novas pesquisas e investigaes na gerao de redes de transistores com cadeias de altura mnima. Nos trabalhos pioneiros de Moore e Harrisson a quantidade de elementos em srie no era levada em considerao. Contudo, estes trabalhos provaram que muitas redes possuem suas implementaes mnimas quando so concebidas com arranjos de elementos nosrie/paralelo. Isto demonstra que este campo de estudo ainda possibilita avanos nas investigaes, visto que a grande maioria das ferramentas de desenvolvimento e circuitos integrados implementados na atualidade fazem uso de arranjos de transistores puramente srie/paralelo [25, 26, 27].

9.4

Particularidades de Redes Lgicas

Figura 9.4: Notao simblica para os transistores PMOS e NMOS O elemento bsico para implementar uma rede lgica a chave. Este elemento pode ser classicado como uma chave direta, quando ele conduz (permite a passagem de corrente eltrica) toda vez que um valor verdadeiro aplicado em seu terminal de controle, ou

PARTICULARIDADES DE REDES LGICAS

201

classicado como chave complementar, quando este conduz ao receber um valor falso em seu terminal de controle. Atravs da composio de arranjos destes dois tipos de chaves, torna-se possvel implementar redes lgicas, que possibilitam a interconexo de dois terminais distintos de acordo com as funes lgicas as quais elas implementam. Dependendo do tipo de tecnologia utilizada, estas chaves podem ser implementadas como dispositivos fsicos. Na atual tecnologia CMOS, elas so representadas pelos transistores NMOS (chaves diretas) e PMOS (chaves complementares). A Figura 9.4 ilustra a notao simblica destes elementos, enquanto a Figura 9.4 apresenta algumas redes lgicas de funes Booleanas arbitrrias.

f = a b + b !c + !a c d (a)

f = a !b + !a c + !b !d (b)

Figura 9.5: Duas redes lgicas representando funes lgicas arbitrrias

Se analisarmos uma nica rede de dois terminais, algumas propriedades podem ser vericadas: Planaridade: Redes planares so aquelas que correspondem a grafos planares [28]. Este tipo de grafo pode ser desenhado em um plano sem apresentar cruzamento de arestas. No caso de redes, ainda necessrio que os terminais estejam externamente conectados sem que ocorram cruzamentos de linhas. As redes planares possuem grafos duais, os quais apresentam a interessante propriedade de serem logicamente complementares. A Figura 9.6(a) ilustra uma rede planar, enquanto a 9.6(b) apresenta uma rede no-planar. Srie/Paralelo: Quando todas as chaves em uma rede esto conectadas em srie ou em paralelo umas com as outras, diz-se que esta rede uma rede srie/paralelo. Uma rede srie/paralelo se, e somente se, no existir nenhuma poro de rede Wheatstone bridge em sua composio [29]. Todas as redes srie/paralelo so planares. A Figura 9.7(a) exemplica este tipo de rede. Rede do tipo bridge: Quando uma rede contm uma congurao Wheatstone bridge em seu arranjo, esta rede dita ser uma rede do tipo bridge. Redes do tipo bridge podem, ou no, ser planares. A Figura 9.7(b) ilustra este tipo de rede.

202

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

(a)

(b)

Figura 9.6: Rede planar (a), rede no-planar (b)

(a)

(b)

Figura 9.7: Rede srie/paralelo (a), rede do tipo bridge (b) A partir destas propriedades apresentadas, algumas constataes podem ser obtidas: Todas as redes srie/paralelo so redes planares; Todas as redes srie/paralelo possuem um grafo dual, do qual possvel derivar uma rede logicamente complementar; Todas as redes no-planares so redes do tipo bridge; Entretanto, redes do tipo bridge podem ou no ser planares. Analisando duas redes compostas e levando em considerao as propriedades de complementaridade, pode-se classic-las como sendo logicamente complementares e topologicamente complementares. Uma rede dita ser logicamente complementar de outra quando apenas uma, e sempre uma, estiver conduzindo para uma dada condio de vetor de

PARTICULARIDADES DE REDES LGICAS

203

entrada. Uma rede dita ser topologicamente complementar de outra se ela representar o plano dual desta outra. A Figura 9.8 exemplica esta idia.

(a)

(b)

Figura 9.8: Redes topologicamente complementares (b) obtidas a partir de grafos duais (a) O mtodo usual para a construo 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) estes pontos esto identicados como 1, 2, 3 e 4. 2. Conecte os pontos vizinhos atravs de linhas, de maneira que estas linhas cruzem apenas uma aresta do grafo original. No permitido ter duas linhas cruzando uma mesma aresta. Esta etapa demonstrada pelas linhas pontilhadas da Figura 9.8(a). Note que os pontos externos, os quais no esto dentro de nenhuma face interna do grafo, correspondem aos nodos terminais da rede. Isto feito por um propsito de engenharia para a construo das redes. Na teoria dos grafos no necessrio denir dois pontos externos para construir o grafo dual [23]. importante manter em mente que redes duais so obtidas a partir de grafos duais. Estas redes so logicamente complementares, mas elas no so obtidas a partir de grafos complementares. Grafos complementares so um conceito completamente diferente, os quais no levam a obteno de redes logicamente complementares. No exemplo apresentado pela Figura 9.8(b), as redes duais so redes do tipo bridge. Entretanto, o mesmo princpio

204

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

de obteno pode ser utilizado para redes srie/paralelo caso o grafo original seja uma implementao srie/paralelo. Por outro lado, se o grafo do qual se deseja obter o dual no for um grafo planar, ento no ser possvel derivar o dual deste. Neste caso, uma alternativa que pode ser considerada a aplicao de algoritmos de planarizao [23]. Existe um outro tipo de congurao de redes conhecido como branch-based. Uma rede branch-based uma rede lgica na qual os arranjos de chaves so compostos puramente por ramos de elementos em srie. Em outras palavras, somente arranjos de chaves em srie so utilizados para realizar a conexo entre dois terminais [30, 31]. A principal vantagem de redes construdas com esta topologia se deve ao fato de que no existe interconexes entre diferentes ramos. Isto pode ser uma vantagem sob o ponto de vista de representao fsica da rede, facilitando a construo da mesma. A construo de redes branch-based demasiadamente simples. A partir de uma soma-de-produtos possvel criar um ramo de chaves em srie para cada um dos produtos pertencentes a esta SOP. A Figura 9.9 apresenta um exemplo de uma rede branch-based.

Figura 9.9: Rede branch-based Adicionalmente, redes lgicas tambm podem ser classicadas como single-rail ou dual-rail. Redes single-rail so aquelas que propiciam a conexo entre dois terminais. Redes dual-rail so capazes de conectar um terminal a outros dois terminais distintos, os quais freqentemente so utilizados um para polaridade direta e outro para polaridade invertida. Lgica dual-rail comumente utilizada na construo de circuitos assncronos. A Figura 9.10 ilustra este conceito.

(a)

(b)

Figura 9.10: Rede single-rail (a), rede dual-rail (b) Uma porta lgica pode ser concebida utilizando uma rede (mais dispositivos auxiliares), ou duas redes complementares. Nesta linha de pensamento, uma porta lgica pode

GERAO DE REDES LGICAS

205

ser implementada com dois planos em uma nica estrutura compartilhada ou no. A Figura 9.11(a) apresenta uma porta composta por dois planos disjuntos, onde as redes de pull-up e de pull-down so implementadas separadamente. A Figura 9.11(b) ilustra uma porta concebida por planos no-disjuntos, onde as redes de pull-up e pull-down compartilham elementos de chaveamento em um nico plano. Uma rede pull-up aquela que conecta o terminal de sada ao terminal com valor lgico verdadeiro (1). Uma rede pulldown, por sua vez, aquela que conecta o terminal de sada ao terminal com valor lgico falso (0).

(a)

(b)

Figura 9.11: Planos disjuntos (a), planos no-disjuntos (b)

9.5

Gerao de Redes Lgicas

Duas principais abordagens so usualmente utilizadas para a gerao de redes lgicas. A primeira delas uma soluo baseada diretamente nas equaes Booleanas que representam uma funo lgica. Nesta abordagem a equao diretamente traduzida para um arranjo de chaves srie/paralelo. Redes do tipo bridge no podem ser obtidas atravs desta tcnica, pois nas Wheatstone bridges alguns elementos que compem a rede no esto nem em srie e nem em paralelo com os demais. Isto pode ser constatado na rede ilustrada pela Figura 9.8(b). A Figura 9.12(a) apresenta a rede lgica obtida a partir do on-set a seguir. A Figura 9.12(b) ilustra a rede derivada do off-set. Note que em ambos os casos possvel obter as redes topologicamente e logicamente complementares usando a gerao a partir do grafo dual. on-set = a b + b !c + !a !c d off-set = a !b + !a c + !b !d Redes logicamente complementares tambm podem ser obtidas utilizando-se o on-set da funo lgica para implementar um dos planos e o off-set para gerar o outro. Neste caso, as

206

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

(a)

(b)

Figura 9.12: Rede derivada do on-set e sua implementao dual (a), rede obtida a partir do off-set e sua implementao dual (b)

Figura 9.13: Redes logicamente complementares obtidas diretamentedas equaes de on-set e off-set

GERAO DE REDES LGICAS

207

redes concebidas no so, necessariamente, topologicamente complementares. Um exemplo disto ilustrado pela Figura 9.13, onde as redes foram criadas diretamente das equaes de on-set e off-set apresentadas anteriormente. A segunda abordagem possvel na obteno de redes lgicas baseada na derivao destas a partir de grafos. Nesta estratgia, um grafo que representa a funo lgica criado, podendo ser otimizado e, na seqncia, traduzido para uma rede lgica. Esta tcnica particularmente interessante uma vez que ela possibilita, em alguns casos, no s a derivao de redes srie/paralelo, mas tambm redes do tipo bridge [32]. Utilizando BDDs como exemplo, esta tcnica consiste em associar chaves lgicas em cada arco pertencente ao BDD. Esta ao demonstrada na Figura 9.14, onde um BDD apresentado juntamente com quatro diferentes associaes de transistores possveis [33].

Figura 9.14: Nodo de um BDD e algumas associaes de transistores Quando uma rede de transistores no-disjunta construda utilizando-se pares de transistores PMOS e NMOS associados aos arcos do BDD, torna-se evidente a possibilidade de derivao de redes disjuntas. O processo relativamente simples, como demonstrado pela Figura 9.15. Note que no primeiro caso, Figura 9.15(a), a rede consiste de uma congurao no-disjunta e dual-rail. Nos outros casos, Figuras 9.15(b) e 9.15(c), ambas so implementaes disjuntas e single-rail. Um efeito observado na utilizao dos planos disjuntos o aumento do nmero de nodos internos das redes, enquanto o nmero de transistores continua o mesmo. Isto leva a uma caracterstica interessante, onde o nmero de conexes de chaves por nodo minimizado. Este efeito pode ser visto nos exemplos da Figura 9.15, causando impactos fsicos e eltricos diferentes para cada uma das implementaes. Esta riqueza de alternativas pode ser explorada pelos projetistas visando a concepo de um circuito mais eciente. O trabalho mais recentemente apresentado em relao a sntese de redes de transistores foi apresentado por Kagaris [34]. Nele, o autor prope uma metodologia para a gerao de redes do tipo bridge no intuito de minimizar o nmero total de elementos do circuito. A

208

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

rede de chaves construda computando-se o local mais econmico onde um determinado elemento deve ser colocado dentro do arranjo da rede. Para tanto, o mtodo utiliza uma SOP como entrada. Para cada produto desta SOP, todos os literais so analisados e as chaves relativas a cada um dos literais so posicionadas de forma a gerar a menor rede possvel. Cabe salientar que esta uma soluo heurstica, mas que consegue levar a bons resultados. A Figura 9.16 demonstra o emprego desta tcnica para um conjunto pequeno de produtos pertencentes a uma SOP arbitrria.

Figura 9.15: Redes derivadas de um BDD Observe que esta soluo permite a obteno de redes do tipo bridge. Contudo, dependendo da funo lgica de entrada apenas redes srie/paralelo podero ser alcanadas. Outro importante ponto est relacionado com a obteno do plano logicamente complementar. Este mtodo aplicado separadamente para o on-set e para o off-set da funo lgica. Desta maneira, os dois planos lgicos so gerados separadamente, no garantindo a obteno de solues topologicamente complementares.

9.6

Otimizao de Redes Lgicas Derivadas a partir de Equaes

Ao derivar redes de transistores a partir de equaes Booleanas uma relao de um para um ocorre entre cada literal que compe a equao e cada transistor que compe a rede. Neste sentido, torna-se importante minimizar o nmero de literais da equao para que seja possvel obter a menor rede possvel. Diversos mtodos de minimizao de equaes Booleanas esto presentes na literatura. Mapas de Karnaugh [35] e Quine-McCluskey [15] so conhecidos como as principais tcnicas exaustivas para realizar a minimizao a dois nveis (minimizao de SOP). Tipicamente eles so rotulados como algoritmos no prticos em tempo de execuo para a minimizao de SOP. Entretanto, so fceis e simples de

OTIMIZAO DE REDES LGICAS DERIVADAS A PARTIR DE EQUAES

209

Figura 9.16: Rede do tipo bridge obtida para um conjunto arbitrrio de produtos de uma SOP [34] serem entendidos. J o algoritmo Espresso [36] um algoritmo heurstico que possui a caracterstica de ser computacionalmente factvel e que consegue fornecer bons resultados de minimizao a dois nveis. Um exemplo de minimizao a dois nveis pode ser visto na Figura 9.17. Ela mostra um mapa de Karnaugh para uma funo Booleana f. A cobertura mnima em termos de literais para o on-set da funo composta por quatro cubos. Da mesma forma, a cobertura mnima para o off-set da funo tambm composta por quatro cubos. As seguintes equaes mostram este resultado.

Figura 9.17: Mapa de Karnaugh para uma funo Booleana f

210

REDES DE TRANSISTORES E PORTAS LGICAS 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 equaes tambm podem ser representadas por sua forma fatorizada. De acordo com Brayton [37], uma forma fatorizada pode ser denida como a representao de uma funo lgica descrita de maneira similar s expresses algbricas, fazendo-se uso de parnteses. Como exemplo, considere a Figura 9.18. A forma fatorizada deste exemplo pode ser vista como uma rvore de operadores lgicos. Qualquer representao que possua mais de dois nveis lgicos chamada de representao multi nvel. Neste exemplo a rvore de operadores lgicos possui quatro nveis.

Figura 9.18: Forma fatorizada e representaes multi nvel Assim como na otimizao a dois nveis, diversos mtodos de otimizao multi nvel esto disponveis na literatura. Eles so conhecidos como mtodos de fatorizao, podendo realizar otimizaes algbricas e Booleanas. De uma maneira geral os mtodos algbricos so mais rpidos, enquanto os mtodos Booleanos so mais lentos, mas capazes de resultar melhores solues. Uma vez que a obteno da forma mnima para uma funo Booleana arbitrria tida como um problema NP-completo, a grande maioria dos algoritmos de fatorizao so heursticos. Eles so capazes de encontrar solues minimizadas equivalentes a funo Booleana original, porm nem sempre formas mnimas. De acordo com Mintz [38], a fatorizao consiste em um procedimento para encontrar uma forma fatorizada de representao de uma funo Booleana. Um mtodo exato para encontrar a forma mnima de uma funo Booleana foi proposta por Lawler [39]. Entretanto, posteriormente foi demonstrado que o mtodo no era prtico para ser aplicado em funes Booleanas com um grande nmero de variveis de entrada. Mais recentemente um mtodo proposto por Reis [40] demonstrou-se eciente na obteno de formas mnimas para funes Booleanas com at dez variveis de entrada. Este mtodo possui uma interessante caracterstica de retornar no apenas uma forma mnima de representao, mas diversas formas, podendo utilizar outros custos como mtrica de minimizao. No apenas o nmero mnimo de literais pode ser encontrado, mas tambm

OTIMIZAO DE REDES LGICAS DERIVADAS DE BDD

211

resultados otimizados em relao ao nmero de produtos e somas presentes nas equaes. Esta poderosa capacidade til nos mtodos de gerao de redes a partir de equaes, pois torna possvel a implementao de diferentes redes de transistores otimizadas com menores arranjos srie ou paralelo.

9.7

Otimizao de Redes Lgicas Derivadas de BDD

Ao derivar redes de transistores a partir de BDDs possvel fazer uso da propriedade unateness de alguns nodos para realizar a remoo de chaves sem alterar a funcionalidade da rede gerada [32, 33]. Esta estratgia pode ser utilizada no intuito de reduzir o nmero total de transistores do circuito. O primeiro conceito a ser compreendido apresentado na Tabela 9.2, a qual ilustra a tabela verdade da funo 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 simples fato de que ao utilizar dois planos disjuntos, um plano ca responsvel pela gerao do sinal verdadeiro (1), enquanto o outro ca responsvel pela gerao do sinal falso (0). O plano lgico que no est produzindo um sinal lgico na sada, dado um vetor de entrada qualquer, produz uma alta impedncia na sada (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, o arco-1 de um determinado nodo do BDD candidato a se tornar um o (curto-circuito) se a funo representada pelo nodo n for uma funo unate negativa em relao a varivel que controla este nodo. Prova: Um nodo de BDD representa uma decomposio de Shannon, tal que a funo representada pelo nodo pode ser descrita pela equao f =!a f 0 + a f 1, onde f 1 = f (a = 1) e f 0 = f (a = 0). Esta equao mostra que a funo f pode ser construda a

212

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

partir de f0 e f1 atravs de um par de chaves que controlam a conexo destas, como ilustrado na Figura 9.14(a). A tabela verdade desta poro do circuito, representada na Tabela 9.3, apresenta o valor de f em funo de a, f0 e f1. Considere uma falha introduzida no circuito, conforme Figura 9.20, onde o arco-1 foi substitudo por um o. Para que essa falha pudesse ser observvel em f, as seguintes condies so necessrias: 1. A varivel a no pode assumir o valor verdadeiro (1), visto que neste caso o arco assumiria a funcionalidade de um o e a falha no seria detectada. 2. Os valores das sub-funes f0 e f1 precisam ser diferentes, no sentido de produzir uma falha observvel em f. 3. A sub-funo f1 precisa ser igual ao valor verdadeiro (1). Se f1=0, ento um valor de alta impedncia (Z) estaria presente em f. Desta forma, a falha no seria detectvel uma vez que um curto-circuito conectado a um valor de alta impedncia no afeta a funcionalidade. Como conseqncia, a nica combinao de valores lgicos que pode detectar a falha a=0, f0=0, f1=1. Porm, se a funo unate negativa na varivel a, por denio f 0 = 0 f 1 = 0. Desta forma, a condio necessria para detectar a falha nunca ir acontecer. Isto signica que a remoo da chave pode ser realizada sem alterao da funcionalidade lgica do circuito. Corolrio: Como as consideraes descritas no teorema so locais ao nodo em questo, a introduo de os na rede de transistores precisa ser validada caso a caso antes de ser aceita. A introduo de os na rede pode levar, em alguns casos, a introduo de falsos caminhos no circuito, alterando a sua funcionalidade lgica. Tabela 9.2: Tabela verdade para a funo f, individualizada para os planos de pull-up e pull-down a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 f 1 0 1 0 1 0 0 0 PU(f) 1 Z 1 Z 1 Z Z Z PD(f) Z 0 Z 0 Z 0 0 0

Similarmente, este procedimento de substituio de transistores por os tambm pode ser aplicado a rede de pull-down. A Tabela 9.4 ilustra as otimizaes que podem ser feitas para cada plano na rede de acordo com as caractersticas unate. Ao realizar esta otimizao na rede, substituindo transistores por os, uma relao de dominncia de caminhos pode ser criada. Diz-se que um caminho P1 em uma rede domina um caminho P2 se a condio P1-on P2-on ocorrer. Este o caso da rede de pulldown apresentada na Figura 9.19(c). Nela existem trs caminhos conectando os terminais:

OTIMIZAO DE REDES LGICAS DERIVADAS DE BDD

213

Tabela 9.3: Tabela verdade para a funo f e para o pull-up de f em funo de a, f0 e f1 a 0 0 0 0 1 1 1 1 f0 0 0 1 1 0 0 1 1 f1 0 1 0 1 0 1 0 1 f 0 0 1 1 0 1 0 1 PU(f) Z Z 1 1 Z 1 Z Z Falha no detec. detectada no detec. no detec. no detec. no detec. no detec. no detec.

Figura 9.20: Chaves controladas pela varivel a, usadas para conectar a f0 e f1

P 1 = a b, P 2 = !a c e P 3 = a !b c. O caminho P2 pode ser simplicado para P2 = c, atravs da remoo do transistor controlado pela varivel a e sua substituio por um o. Como conseqncia desta substituio, o caminho P2 dominar o caminho P3 porque a situao P2-on P3-on ir ocorrer. Isto aponta para uma outra situao interessante, na qual o caminho P3 no mais necessrio para garantir a funcionalidade da rede. Ento P3 pode ser removido, bastando para isso realizar a remoo do transistor controlado pela varivel b. Embora seja possvel diminuir o nmero de transistores que compem a rede, estas otimizaes realizadas atravs da explorao da caracterstica de unateness nem sempre possibilitam que as clulas sejam obtidas com cadeias mnimas de transistores. Essencialmente, isto ocorre devido ao fato de que alguns transistores que so candidatos a serem removidos no podem ser, uma vez que esta situao levaria a introduo de falsos caminhos na rede. A Figura 9.21 ilustra este problema. Os transistores circulados na rede de transistores, conforme Figura 9.21(b), so candidatos a serem substitudos por os. O transistor do arco T2 pode ser substitudo, uma vez que esta otimizao no altera o comportamento lgico da rede. Todavia, o transistor do arco T3 no pode ser substitudo porque isto criaria um falso caminho atravs dos arcos T4 e T6, alterando a funcionalidade lgica da rede. Para assegurar a correta funcionalidade, uma estratgia de duplicao de nodos pode ser utilizada. A duplicao de nodos possibilita que todos os candidatos sejam

214

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

Tabela 9.4: Arcos candidatos a se tornarem um o Rede PMOS (pull-up) Rede NMOS (pull-down) Unate Positiva Arco 0 candidato Arco 1 candidato Unate Negativa Arco 1 candidato Arco 0 candidato

removidos da rede, levando a uma diminuio do nmero de transistores em srie presentes na mesma.

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

(b)

Para que a duplicao de nodos possa ser realizada, primeiramente faz-se necessrio escolher o nodo mais adequado para tal. A Figura 9.22 ilustra duas duplicaes possveis em uma rede de transistores derivada a partir do BDD apresentado na Figura 9.21(a). Para que seja possvel substituir o transistor T3 por um o, duas estratgias de duplicao so possveis. A primeira consiste em duplicar o nodo C do BDD, o que na rede signica realizar a duplicao dos transistores dos arcos T7 e T8. A Figura 9.22(b) ilustra esta idia. A segunda opo realizar a duplicao do nodo B do BDD, o qual possui conexo com o transistor candidato a ser substitudo por um o. Esta opo ilustrada na Figura 9.22(c), onde o transistor referente ao arco T1 do BDD duplicado. A principal razo para realizar esta anlise est relacionada com a quantidade de transistores que iro compor a rede. Neste exemplo, as duas redes podem ter os

ORDENAMENTO DE REDES LGICAS

215

transistores candidatos substitudos por os e, assim, serem solues com cadeias mnimas de transistores em srie. Contudo, a segunda estratgia melhor uma vez que ela fornece uma soluo com um transistor a menos na contagem total. Se considerarmos circuitos compostos por um nmero signicativo de portas lgicas, um incremento desnecessrio de chaves na rede pode levar a uma situao de consumo de rea que poderia ser evitado.

Figura 9.22: Estratgias de duplicao de nodos

9.8

Ordenamento de Redes Lgicas

A explorao do ordenamento das redes de transistores tambm pode trazer benefcios nos resultados da sntese. Esta idia consiste em organizar internamente o arranjo das chaves no intuito de obter uma melhor implementao, de acordo com alguma mtrica a ser minimizada. Neste sentido, basicamente pode-se classicar o ordenamento em dois grandes grupos: ordenamento estrutural e ordenamento baseado no grafo. No ordenamento estrutural, a rede de transistores gerada em um primeiro passo. Em um segundo momento, as chaves que compem a rede so organizadas de acordo com regras para minimizar um determinado custo. Somente os elementos, ou grupos de elementos, em srie podem ser ordenados de diferentes formas para produzir redes equivalentes. Por exemplo, atravs do ordenamento estrutural possvel favorecer alguns sinais de entrada, colocando os transistores controlados por estes sinais o mais prximo da sada. Assim, a rede implementada ir apresentar melhor desempenho para um certo conjunto de sinais de entrada, uma vez que a distncia das chaves controladas por estes sinais at a sada ser minimizada. O mtodo proposto por Carlson [41] um exemplo da tcnica de ordenamento estrutural. No ordenamento baseado no grafo, a estrutura do grafo ordenada antes da rede de transistores ser derivada. O princpio de ordenamento o mesmo da tcnica de ordenamento estrutural, mas neste caso a rede derivada ser obtida com um determinado arranjo interno respeitando a ordem previamente denida pelo grafo. Um exemplo do uso desta tcnica foi

216

REDES DE TRANSISTORES E PORTAS LGICAS CMOS

apresentado por Cardoso [42], onde ordenamentos em BDDs so realizados no intudo de minimizar custos de rea, atraso e consumo de energia nos circuitos. Dependendo da funo lgica, o ordenamento em uma estrutura de BDD pode apresentar uma relao exponencial de acordo com o nmero de variveis presentes. Algumas pesquisas j demonstraram que o problema de encontrar o ordenamento que fornece o menor nmero de nodos em um BDD um problema NP-completo [43, 44]. A quantidade de ordenamentos possveis determinada pelo fatorial do nmero de variveis presentes na funo lgica. Desta forma, a soluo exata s pode ser obtida utilizando-se solues exaustivas. Porm, para funes com um grande nmero de variveis, esta soluo no computacionalmente eciente. Na prtica, mtodos heursticos como o Sifting [45] podem fornecer bons resultados em tempos aceitveis de processamento. O mtodo Sifting consiste em seqencialmente realizar a troca de variveis entre os nveis do BDD, utilizando uma estratgia gulosa para xar as variveis em uma posio que fornea um BDD com o menor nmero de nodos possvel. Pensando-se na derivao de uma rede de transistores a partir do BDD, o problema de encontrar um BDD com o menor nmero de nodos possvel fundamental para a obteno de uma rede otimizada. Quanto menor for o nmero de nodos do BDD, menor ser o nmero de arcos, e, portanto, menor ser o nmero de transistores da rede derivada. Esta percepo pode ser explorada pelos projetistas que desejam derivar redes a partir de BDD, servindo como estratgia inicial para posteriormente investigar a otimizao das redes atravs de unateness e duplicao de nodos. A Figura 9.23 ilustra dois BDDs representando a mesma funo lgica, juntamente com as redes de transistores derivadas deles. Este exemplo evidencia o fato de que menores BDDs so traduzidos em menores redes de chaves.

9.9

Concluso

Este captulo discutiu diversas questes relacionadas implementao de redes lgicas. Inicialmente, alguns conceitos bsicos importantes foram apresentados. Um breve histrico sobre a teoria de chaveamento mostrou que a evoluo da tecnologia tem colaborado para a obteno de circuitos cada vez mais ecientes. Novas estruturas de dados, algoritmos, mtodos e tcnicas visando a gerao de redes de transistores menores e mais rpidas fazem com que esta linha de pesquisa oferea um largo espao de projeto e de oportunidades para que estudantes de engenharia eltrica e computao estejam frente a desaos relacionados ao estado-da-arte da indstria de microeletrnica mundial.

CONCLUSO

217

Figura 9.23: BDDs e redes de transistores derivadas

218

REFERNCIAS BIBLIOGRFICAS

9.10

Referncias Bibliogrcas

[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 Design Perspective; 2nd ed. Upper Saddle River, NJ: Pearson Education, 2003. Order from outside CERN via Inter Library Loan. [3] K. Scott and K. Keutzer, Improving cell libraries for synthesis, in IEEE Custom Integrated Circuits Conference, (San Diego, USA), pp. 128131, 1994. [4] M. Vujkovic and C. Sechen, Optimized power-delay curve generation for standard cell ics, in ICCAD 02: Proceedings of the 2002 IEEE/ACM international conference on Computer-aided design, (New York, NY, USA), pp. 387394, ACM, 2002. [5] C. Sechen, B. Chappel, J. Hogan, A. Moore, T. Nakamura, G. A. Northrop, and A. Thakar, Libraries: lifejacket or straitjacket, in DAC, pp. 642643, 2003. [6] S. Vemura, Variable-taper cmos buffer, IEEE Journal of Solid-State Circuits, vol. 26, pp. 12651269, 1991. [7] C. Prunty, Optimum tapered buffer, IEEE Journal of Solid-State Circuits, vol. 27, pp. 118119, 1992. [8] S. Ma and F. P., Energy control and accurate delay estimation in the design of cmos buffers, IEEE Journal of Solid-State Circuits, vol. 29, pp. 11501153, 1994. [9] C. Fisher, Optimization of standard cell libraries for low power, high speed, or minimal area designs, in IEEE Custom Integrated Circuits Conference, pp. 493496, 1996. [10] A. Dharchoudhury, J. Norton, T. Edwards, D. Blaauw, and R. Panda, Migration: A new technique to improve synthesized designs through incremental customization, Design Automation Conference, vol. 0, pp. 388391, 1998. [11] D. Bhattacharay, Design optimization with automated ex-cell creation, in Closing the Gap Between ASIC and Custom: tools and techniques for high-performance ASIC design (K. Keutzer, ed.), pp. 1423, Klumer Academic Publishers, 2002. [12] H. Yoshida, M. Ikeda, and K. Asada, A structural approach for transistor circuit synthesis, IEICE Trans. Fundam. Electron. Commun. Comput. Sci., vol. E89-A, no. 12, pp. 35293537, 2006. [13] R. Roy, D. Bhattacharya, and V. Boppana, Transistor-level optimization of digital designs with ex cells, Computer, vol. 38, no. 2, pp. 5361, 2005. [14] K. Keutzer, Dagon: Technology binding and local optimization by dag matching, in 25 years of DAC: Papers on Twenty-ve years of electronic design automation, (New York, NY, USA), pp. 617624, ACM, 1988.

REFERNCIAS BIBLIOGRFICAS

219

[15] W. V. Quine, A way to simplify truth functions, American Mathematical Monthly, vol. 62, pp. 627631, 1955. [16] E. J. Mccluskey, Minimization of boolean functions, The Bell System Technical Journal, vol. 35, pp. 14171444, November 1956. [17] C. Y. Lee, Representation of switching circuits by binary-decision programs, Bell Systems Technical Journal, pp. 985999, 1959. [18] R. E. Bryant, Graph-based algorithms for boolean function manipulation, IEEE Transactions on Computers, vol. 35, pp. 677691, 1986. [19] C. Shannon, A symbolic analysis of relay and switching circuits, Transactions American Institute of Electrical Engineers, vol. 57, pp. 3880, 1938. [20] C. Shannon, Realization of all 16 switching functions of two variables requires 18 contacts, 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 Electrical Circuits (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 the number of stacked switches, Masters thesis, Universidade Federal do Rio Grande do Sul, Porto Alegre, Brazil, 2007. [25] M. Berkelaar and J. Jess, Technology mapping for standard-cell generators, in International Conference Computer-Aided Design, pp. 470473, 1988. [26] A. Reis, Assignation Technologique sur Bibliotheques Virtuelles de Portes Complexes CMOS. 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 system design, (New York, NY, USA), pp. 254259, ACM, 2004. [28] F. Harary, Graph Theory. Perseus Books Group, 1994. [29] R. Dufn, Topology of series-parallel networks, Journal of Mathematical Analysis and Applications, vol. 10, pp. 303318, 1965. [30] C. Piguet, Low-power low-voltage standard cell libraries, in European Solid-State Circuits Conference, 1995. [31] A. Neve and D. Flandre, Branch-based logic for high performance carry-select adders in 0.25 m bulk and silicon-on-insulator cmos technologies, in International Workshop-Power and Timing Modeling, Optimization and Simulation, 2001.

220

REFERNCIAS BIBLIOGRFICAS

[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 systems design, (New York, NY, USA), pp. 137142, ACM, 2006. [33] R. E. B. Poli, F. R. Schneider, R. P. Ribas, and A. I. Reis, Unied theory to build cell-level transistor networks from bdds, in SBCCI 03: Proceedings of the 16th symposium 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-efcient supergate design, IEEE Trans. Very Large Scale Integr. Syst., vol. 15, no. 4, pp. 488492, 2007. [35] M. Karnaugh, The map method for the synthesis of combinational circuits, AIEE Transactions: Communications and Electronics, vol. 72, pp. 593599, 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 Design Automation Conference, pp. 618624, 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. 131153, 2005. [39] E. L. Lawler, An approach to multilevel boolean minimization, J. ACM, vol. 11, no. 3, pp. 283295, 1964. [40] A. Reis, A. Rasmussen, L. da Rosa JR., and R. Ribas, Fast boolean factoring with multi-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 performance of mos digital circuits, in Midwest Symposium on Circuits and Systems, pp. 121124, 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 including reordering, Quality Electronic Design, International Symposium on, vol. 0, pp. 4752, 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. 9931002, 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, in International Conference on Computer-Aided Design, pp. 4247, 1993.