Hierarchical Add-One Carry-Select Adder: Um Somador Select-Adder com Cadeia de Carry Logarítmica

Tamanho: px
Começar a partir da página:

Download "Hierarchical Add-One Carry-Select Adder: Um Somador Select-Adder com Cadeia de Carry Logarítmica"

Transcrição

1 Jucemar Luis Monteiro Hierarchical Add-One Carry-Select Adder: Um Somador Select-Adder com Cadeia de Carry Logarítmica Florianópolis, Santa Catarina

2 Jucemar Luis Monteiro Hierarchical Add-One Carry-Select Adder: Um Somador Select-Adder com Cadeia de Carry Logarítmica Trabalho de Conclusão de Curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação. Orientador: Prof. Dr. José Luís Almada Güntzel UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA Florianópolis, Santa Catarina

3 Trabalho de conclusão de curso sob o título Hierarchical Add-One Carry-Select Adder: Um Somador Select-Adder com Cadeia de Carry Logarítmica, defendido por Jucemar Luis Monteiro e aprovado em 01 de junho de 2011, em Florianópolis, Santa Catarina, pela banca examinadora constituída pelos professores: Prof. Dr. José Luís Almada Güntzel Universidade Federal de Santa Catarina Orientador Prof. Dr. Eduardo Luiz Ortiz Batista Universidade Federal de Santa Catarina Membro da Banca Prof. Dr. Djones Vinícius Lettnin Universidade Federal de Santa Catarina Membro da Banca

4 Agradecimentos Em primeiro lugar agradeço aos meus pais por todo apoio e incentivo que me proporcionaram durante a graduação. Ao Professor Güntzel pela orientação no desenvolvimento deste trabalho. Também agradeço aos membros da banca pelas sugestões e correções. A todos os colegas do LAPS. Em especial ao Vinicíus Livramento e ao Pedro Campos pela contribuição no desenvolvimento deste trabalho e aos Professores Olinto José Varela Furtado e Luiz Cláudio Villar dos Santos pela avaliação do trabalho na disciplina Trabalho de Conclusão de Curso I. A todos os meus amigos pelo incentivo e amizade desde os tempos de CEFET/SC. Obrigado Rodolfo Cruz, Rodrigo Rothbath, Bruno Volkov, Douglas Machado e Luciano Martin. Em especial agradeço ao Professor Willy Sommer pelo incentivo e ajuda quando eu comecei a graduação. IP. Agradeço às bolsas de iniciação científica ITI-A do CNPq via projetos SiSRAS e BRAZIL- Agradeço ao AC/DC, Iron Maiden, Black Sabbath e Scorpions pela trilha sonora.

5 Construímos muros demais e pontes de menos. Isaac Newton

6 Sumário Lista de Figuras Lista de Tabelas Lista de Acrônimos p. 13 Resumo p. 15 Abstract p Introdução p A Adição Binária em Hardware p Objetivos p Objetivos Gerais p Objetivos Específicos p Escopo deste Trabalho p Projeto de Circuitos Integrados Customizados e Metodologia de Projeto Baseado em Células (Cell-Based Design) p Projeto de Circuitos Integrados Customizados p Metodologia Cell-Based Design p Organização deste Trabalho p Arquiteturas Básicas de Somadores p Carry-Ripple Adder p Half-Adder p. 22

7 2.1.2 Full-Adder p Arquitetura Carry-Ripple Adder p Carry-Lookahead Adder p Carry-Select Adder p Add-One Adders p Add-One Carry-Select Adder p Hierarchical Add-One Carry-Select Adder p Síntese Lógica dos Somadores p Configuração Experimental p Controle do Processo de Otimização no Design Compiler p Somadores Descritos em Formato de Árvore Binária p Somadores Descritos com os Blocos Básicos em Formato de Cascata..... p Verificação Funcional p Provável Esquemático do Full-Adder da Biblioteca p Resultados Experimentais p Blocos Básicos Carry-Ripple Adder e Carry-Lookahead Adder p Atraso Crítico para os Blocos Básicos p Consumo de Potência para os Blocos Básicos p Área para os Blocos Básicos p Power-Delay Product para os Blocos Básicos p Consumo de Potência por Unidade de Área para os Blocos Básicos. p Atraso Crítico para os Somadores p Consumo de Potência para os Somadores p Área para os Somadores p Power-Delay Product para os Somadores p. 64

8 5.6 Consumo de Potência por Unidade de Área para os Somadores p Conclusões e Trabalhos Futuros p Conclusões p Trabalhos Futuros p. 69 Referências Bibliográficas p. 71 Anexo A -- Células da Biblioteca Utilizadas na Síntese Lógica p. 73 Anexo B -- Artigo p. 76 Anexo C -- Código Fonte dos Somadores (Verilog) p. 84 C.1 Código Fonte do Add-One Carry-Select Adder p. 84 C.1.1 Código Fonte do Add-One Carry-Select Adder 8 bits p. 84 C.1.2 Código Fonte do Add-One Carry-Select Adder 16 bits p. 89 C.1.3 Código Fonte do Add-One Carry-Select Adder 32 bits p. 90 C.1.4 Código Fonte do Add-One Carry-Select Adder 64 bits p. 92 C.1.5 Código Fonte do Add-One Carry-Select Adder 128 bits p. 95 C.1.6 Código Fonte do Add-One Carry-Select Adder 256 bits p. 100 C.2 Código Fonte do Hierarchical Add-One Carry-Select Adder p. 109 C.2.1 Código Fonte do Hierarchical Add-One Carry-Select Adder 8 bits.. p. 109 C.2.2 Código Fonte do Hierarchical Add-One Carry-Select Adder 16 bits. p. 116 C.2.3 Código Fonte do Hierarchical Add-One Carry-Select Adder 32 bits. p. 117 C.2.4 Código Fonte do Hierarchical Add-One Carry-Select Adder 64 bits. p. 119 C.2.5 Código Fonte do Hierarchical Add-One Carry-Select Adder 128 bits. p. 120 C.2.6 Código Fonte do Hierarchical Add-One Carry-Select Adder 256 bits. p. 122 C.3 Código Fonte do Carry-Ripple Adder p. 123 C.3.1 Código Fonte do Carry-Ripple Adder 8 bits p. 123

9 C.3.2 Código Fonte do Carry-Ripple Adder 16 bits p. 126 C.3.3 Código Fonte do Carry-Ripple Adder 32 bits p. 127 C.3.4 Código Fonte do Carry-Ripple Adder 64 bits p. 128 C.3.5 Código Fonte do Carry-Ripple Adder 128 bits p. 129 C.3.6 Código Fonte do Carry-Ripple Adder 256 bits p. 130 C.4 Código Fonte do Carry-Lookahead Adder p. 131 C.4.1 Código Fonte do Carry-Lookahead Adder 8 bits p. 131 C.4.2 Código Fonte do Carry-Lookahead Adder 16 bits p. 141 C.4.3 Código Fonte do Carry-Lookahead Adder 32 bits p. 142 C.4.4 Código Fonte do Carry-Lookahead Adder 64 bits p. 143 C.4.5 Código Fonte do Carry-Lookahead Adder 128 bits p. 145 C.4.6 Código Fonte do Carry-Lookahead Adder 256 bits p. 146 C.5 Código Fonte do Carry-Select Adder p. 148 C.5.1 Código Fonte do Carry-Select Adder 8 bits p. 148 C.5.2 Código Fonte do Carry-Select Adder 16 bits p. 153 C.5.3 Código Fonte do Carry-Select Adder 32 bits p. 154 C.5.4 Código Fonte do Carry-Select Adder 64 bits p. 156 C.5.5 Código Fonte do Carry-Select Adder 128 bits p. 159 C.5.6 Código Fonte do Carry-Select Adder 256 bits p. 164

10 Lista de Figuras 2.1 Carry-Ripple Adder de n bits p Carry-Lookahead Adder de 4 bits p Carry-Lookahead Adder hierárquico de 16 bits p Carry-Select Adder de 16 bits p Add-One Carry-Select Adder e Add-One Block para 4 bits p Bloco Add-One Carry-Select Adder p Add-One Carry-Select Adder de 16 bits p Hierarchical Add-One Carry-Select Adder de 16 bits p Add-One Select mapeado para portas lógicas e o Bloco A1CSA p Bloco CLA dividido em vários módulos p Add-One Select e Bloco A1CSA para o Hierarchical Add-One Carry-Select Adder p Carry-Lookahead Adder com o Carry-in fixado em p Esquemático do Hierarchical Add-One Carry-Select Adder descrito para 16 bits p Carry-Ripple Adder descrito para 16 bits p Carry-Select Adder descrito para 16 bits p Esquema de verificação funcional p Full-Adder de CMOS complementar [Rabaey, Chandrakasan e Nikolić 2003]. p Atraso crítico dos somadores para os blocos básicos p Consumo de potência dos somadores para os blocos básicos p Área dos somadores para os blocos básicos p. 51

11 5.4 Power-Delay Product dos somadores para os blocos básicos p Consumo de potência por unidade de área dos somadores para os blocos básicos. p Atraso crítico dos somadores p Atraso crítico normalizado dos somadores p Razão entre o atraso crítico dos somadores p Consumo de potência dos somadores p Consumo de potência normalizado dos somadores p Razão entre o consumo de potência dos somadores p Área dos somadores p Área normalizada dos somadores p Razão entre a área dos somadores p Power-Delay Product dos somadores p Consumo de potência por unidade de área dos somadores p. 68

12 Lista de Tabelas 2.1 Exemplo de soma binária p Tabela Verdade para a operação de soma com um Half-Adder (HA) p Tabela Verdade para a operação de soma com um Full-Adder (FA) p Propriedade 1 para adicionar 1 a uma soma p Propriedade 2 a adicionar 1 a uma soma p Propriedade 3 para adicionar 1 a uma soma p Atraso crítico dos somadores para os blocos básicos (ps) p Consumo de potência dos somadores para os blocos básicos (µw) p Área dos somadores para os blocos básicos (µm 2 ) p Power-Delay Product dos somadores para os blocos básicos (fj) p Consumo de potência por unidade de área dos somadores para os blocos básicos (Wm 2 ) p Atraso crítico dos somadores (ps) p Atraso crítico normalizado dos somadores p Razão entre o atraso crítico dos somadores p Consumo de potência dos somadores (µw) p Consumo de potência normalizado dos somadores p Razão entre o consumo de potência dos somadores p Área dos somadores (µm 2 ) p Área normalizada dos somadores p Razão entre a área dos somadores p Power-Delay Product dos somadores (fj) p. 65

13 5.16 Eficiência energética dos somadores normalizada p Razão entre a eficiência energética dos somadores p Consumo de potência por unidade de área dos somadores (Wm 2 ) p. 67 A.1 Número de transistores p. 73 A.2 Número de Células para o Add-One Carry-Select Adder (A1CSA), Hierarchical Add-One Carry-Select Adder (A1CSAH) e Carry-Lookahead Adder (CLA) p. 74 A.3 Número de Células para o Carry-Ripple Adder (CRA) e Carry-Select Adder (CSA) p. 75

14 Lista de Acrônimos A1 Add-One A1S Add-One Select A1CSA Add-One Carry-Select Adder A1CSAH Hierarchical Add-One Carry-Select Adder B-A1CSA Bloco A1CSA B-CLA Bloco CLA B-CSA Bloco CSA CI Circuito Integrado CIN Carry-in CLA Carry-Lookahead Adder CMOS Complementary Metal-Oxide Semiconductor COUT Carry-out CRA Carry-Ripple Adder CSA Carry-Select Adder DC Design Compiler DUV Somador Sob Verificação E AND FA Full-Adder FPGA Field-Programmable Gate Array GEN Generate

15 14 G b Generate do Bloco G h Generate da Hierarquia entre os blocos GPH Bloco de Ligação na Hierarquia HA Half-Adder HDL Hardware Description Language IC Integrated Circuit MUX Multiplexador MUX Multiplexor OR OR PDP Power-Delay Product PROP Propagate P b Propagate do Bloco P h Propagate da Hierarquia entre os blocos REF Somador de Referência RIC Re-computing the Inverse Carry-in RTL Register Transfer Level C i Sinal de Seleção TSMC Taiwan Semiconductor Manufacturing Company Limited VHDL VHSIC Hardware Description Language XOR Exclusive-OR

16 15 Resumo O uso de Circuito Integrado (CI) está cada vez mais presente no nosso cotidiano. Muitos desses dispositivos são alimentados por baterias e, consequentemente, precisam ter um excelente compromisso entre atraso crítico e consumo de energia. Usualmente, em um projeto de um CI, prioriza-se o consumo de energia ou o atraso crítico. Esses requisitos normalmente são conflitantes, por isso, ao otimizar um há o deterioramento natural do outro. O somador é uma das unidades aritméticas mais importantes. As operações aritméticas binárias podem ser derivadas para uma sequência de somas. A importância do somador pode colocá-lo como parte do caminho crítico. Assim sendo, o atraso crítico pode ser reduzido com a introdução de um somador rápido. Contudo, um somador rápido normalmente tem área e consumo de energia maiores do que um somador mais lento. Em geral, quando se reduz uma variável de um somador (área, atraso crítico ou consumo de energia) as outras duas tem um aumento significativo. Este trabalho propõem uma nova organização para os blocos de 4 bits do Add-One Carry- Select Adder (A1CSA). Essa nova organização é chamada de Hierarchical Add-One Carry- Select Adder (A1CSAH). Tal organização torna-o um dos somadores com o atraso crítico aproximadamente o mesmo do Carry-Lookahead Adder (CLA). O carry no A1CSAH é propagado em tempo logarítmico, da mesma maneira que o carry é propagado no CLA. O A1CSAH é, em média, 12% mais rápido do que o CLA, o qual é uma das arquiteturas de somador mais rápida, segundo a literatura. A segunda contribuição deste trabalho é a otimização do bloco que adiciona 1 do A1CSA. Nos trabalhos correlatos esse bloco precisa de um Multiplexador (MUX) para realizar a seleção da soma candidata apropriada. No bloco proposto neste trabalho, a função exercida pelo MUX é absorvida pela porta Exclusive-OR (XOR) preexistente. Com isso, o bloco para adicionar 1 proposto é menor do que o existente nos trabalhos correlatos. Ainda, este trabalho caracteriza os somadores A1CSA, A1CSAH, CLA, CRA e o CSA para uma biblioteca de células da Taiwan Semiconductor Manufacturing Company Limited (TSMC). Eles foram sintetizados logicamente com o auxílio da ferramenta Design Compiler (DC) da Synospys em modo Topographical. As arquiteturas dos somadores foram descritas em Verilog para tamanhos de operandos de 8, 16, 32, 64, 128 e 256 bits.

17 16 Abstract Nowadays we are using more Integrated Circuit (IC) in our daily lives. Many of these devices are powered by batteries. They therefore need an excellent compromise between performance and power consumption. Usually either power comsumption or performance is prioritized in a IC project. These requirements are normally conflicting. When one requirement is optimized the other is affected. The adder is one of the most important arithmetic circuits. The binary arithmetic operations addition, subtraction, multiplication and division can be derived for a sequence of sums. The importance of the adder can put it as part of the critical path. Thus, the critical delay can be reduced by substituting a slow adder by a fast one. However, a fast adder typically has area and power consumption higher than a slower one. In general, when one of the variables of an adder (area, delay or power consumption) is reduced, the other two have a significant increase. This work proposes a new organization for 4-bit Add-One Carry-Select Adder (A1CSA) blocks. The proposed is called Hierarchical Add-One Carry-Select Adder (A1CSAH). The A1CSA blocks are arranged in binary tree structure. This arrangement make it one of the fastest adders. The carry is propagated in the A1CSAH faster than A1CSA. The carry in the A1CSA is propagated the same way that it is propagated in the Carry-Lookahead Adder (CLA). The A1CSAH is, on average, 12% faster than the CLA, which is one of the fastest adder architectures, according to literature. The second contribution is the optimization of a block that adds one in the A1CSA. In related works, this block needs a Multiplexor (MUX) to perform selection of the appropriate sum. In block proposed in this work, the function of MUX is absorbed by the pre-existing Exclusive-OR (XOR) gate. Thus, the block proposed is smaller and fastest than the block in related works. This work characterizes A1CSA, A1CSAH, CLA, Carry-Select Adder (CSA) and Carry- Ripple Adder (CRA) for a Standard-Cells library of Taiwan Semiconductor Manufacturing Company Limited (TSMC). They have been logically synthesized with the aid of the tool Design Compiler (DC) of Synospys in Topographical Mode. The architectures of adders were described in Verilog for operands to 8, 16, 32, 64, 128 and 256 bits.

18 17 1 Introdução 1.1 A Adição Binária em Hardware Um somador de n bits é um componente de bloco operacional que adiciona dois números (A 0...n 1 e B 0...n 1 ) de n bits e um Carry-in (CIN) de 1 bit. Ele gera uma soma (S 0...n 1 ) de n bits e um Carry-out (COUT) de 1 bit. Normalmente, n é referido como sendo o tamanho dos operandos do somador [Vahid 2008]. A adição é uma operação primitiva presente em praticamente todos os Circuito Integrados (CIs) [Rabaey, Chandrakasan e Nikolić 2003]. Como consequência, o atraso crítico de um circuito aritmético depende fortemente da maneira como o carry é propagado no somador [Deschamps, Bioul e Sutter 2006]. Não obstante, as operações aritméticas binárias subtração, multiplicação e divisão podem ser derivadas para uma sequência de soma binária [Takagi et al. 2007]. Há diversas formas de implementar um somador binário. O Carry-Ripple Adder (CRA) é a forma fatorada de implementar a adição binária. Assim sendo, ele apresenta a menor área e o menor consumo de energia. Contudo, ele tende a ter um atraso crítico maior. O Carry- Lookahead Adder (CLA) é um dos somadores com o menor atraso crítico. Porém, sua área e potência sofrem um significativo aumento em relação ao CRA. O Carry-Select Adder (CSA) é uma proposta para acelerar a propagação do carry em relação ao CRA. Os operandos são divididos em pequenos segmentos e em cada segmento é computada duas somas candidatas: uma com o CIN 0 e a outra com o CIN 1. Assim que os resultados estiverem disponíveis, a soma candidata correta é selecionada. A área e o consumo de energia do CSA são praticamente o dobro do CRA. Contudo, o atraso crítico do CSA é menor do que o do CRA. O Add-One Carry-Select Adder (A1CSA) é uma proposta para otimizar a computação das somas candidatas do CSA. No A1CSA é realizado uma soma com o CIN 0 e após é adicionado 1 ao resultado. Com isso, tem-se duas somas candidatas. A unidade para adicionar 1 é menor

19 18 do que um somador. Assim sendo, há a redução da área e do consumo de energia do A1CSA em relação ao CSA. A otimização da cadeia de carry proposta nesse trabalho, Hierarchical Add-One Carry- Select Adder (A1CSAH), utiliza o mesmo procedimento do A1CSA para computar as somas candidatas, mas propaga o carry muito mais rápido do que o A1CSA. Assim sendo, ele é mais rápido do que o A1CSA. Não obstante, o A1CSAH também é mais rápido do que o CLA. 1.2 Objetivos Objetivos Gerais O objetivo geral deste trabalho é propor implementações do A1CSA em tecnologia Complementary Metal-Oxide Semiconductor (CMOS) para o fluxo de projeto Standard-Cells. No fluxo de projeto Standard-Cells o código Hardware Description Language (HDL) é mapeado automaticamente e sem dimensionamento de transistores para uma biblioteca Standard-Cells Objetivos Específicos Este trabalho tem como objetivos específicos: Propor otimizações na cadeia de propagação do carry do somador A1CSA visando sua implementação em um fluxo de projeto baseado em Standard-Cells. Avaliar a área, o atraso crítico, a potência e a eficiência energética dos somadores CRA, CLA, CSA, A1CSA e A1CSA com cadeia de propagação de carry otimizada (A1CSAH), quando implementados em Standard-Cells utilizando uma biblioteca comercial em tecnologia CMOS estado da arte (45nm). 1.3 Escopo deste Trabalho As arquiteturas de somadores que são objeto deste trabalho foram descritas em linguagem Verilog. Elas foram sintetizadas para uma biblioteca Standard-Cell comercial de 45 nm utilizando a ferramenta Design Compiler em modo Topographical da empresa Synopsys. As estimativas de área, atraso crítico e potência geradas pelo Design Compiler foram utilizadas para estabelecer comparações entre as arquiteturas de somadores.

20 1.4 Projeto de Circuitos Integrados Customizados e Metodologia de Projeto Baseado em Células (Cell-Based Design) Projeto de Circuitos Integrados Customizados 19 Desenhar o circuito integrado manualmente parece ser a única opção quando o atraso crítico ou a densidade do projeto são os requisitos principais. Essa metodologia era a única opção quando os circuitos integrados foram introduzidos. A característica de trabalho intensivo ao projetar circuitos integrados customizados traduz-se em alto custo econômico e longo timeto-market. Contudo, ele pode ser justificado economicamente sobre as seguintes condições [Rabaey, Chandrakasan e Nikolić 2003]: Um bloco do circuito integrado pode ser reusado muitas vezes [Rabaey, Chandrakasan e Nikolić 2003]. O custo econômico do projeto customizado pode ser amortizado sobre uma produção em larga escala [Rabaey, Chandrakasan e Nikolić 2003]. O custo econômico não é o principal critério de projeto [Rabaey, Chandrakasan e Nikolić 2003]. O progresso contínuo em projeto automatizado reduziu o compartilhamento de partes de circuitos integrados customizados. Nos mais avançados processadores de alta performance, usualmente, todas as partes são projetadas usando circuitos integrados semi-customizados. Somente os módulos do caminho crítico são projetados manualmente. Atualmente, um circuito integrado projetado manualmente é melhor somente em área do que um circuito integrado projeta com biblioteca de células. A quantidade de projetos de circuito integrado customizado é minimo, porém para alguns projeto é indispensável o projeto customizado [Rabaey, Chandrakasan e Nikolić 2003] Metodologia Cell-Based Design Desde que o projeto customizado de circuitos integrados tornou-se proibitivamente caro, uma variedade de metodologias de projeto tem sido introduzida para reduzir e automatizar o processo de projeto dos circuitos integrados. A proposta da metodologia de projeto Cell-Based é reduzir o esforço de implementação ao reutilizar um conjunto limitado de células de uma biblioteca. A vantagem dessa metodologia é que as células precisam ser projetadas e verificadas somente uma vez para uma tecnologia, e elas podem ser reutilizadas inúmeras vezes, assim

21 20 o custo de projeto é amortizado. A desvantagem é que as restrições da biblioteca reduz a possibilidade de ajuste fino no projeto do circuito integrado [Rabaey, Chandrakasan e Nikolić 2003]. A abordagem Standard-Cells da metodologia Cell-Based Design é padronizado em nível de portas lógicas. Uma biblioteca de células contém uma ampla seleção de portas lógicas sobre uma faixa de fan-in e fan-out. A biblioteca contém portas lógicas para funções básicas, tais como: inversores, AND/NAND, OR/NOR, XOR/XNOR e flip-flops, e portas lógicas para funções mais complexas, tais como: AND-OR-INVERTER, MUX, full-adder, comparadores, contadores, codificadores e decodificadores. Um projeto é capturado como um esquemático contendo somente as células disponíveis na biblioteca ou é gerada automaticamente a partir de uma descrição com uma linguagem de alto nível. Então, o layout é gerado automaticamente. Esse alto grau de automação é possível por causa do alto grau de restrições sobre as opções de layout. Na filosofia Standard-Cells, as células são colocadas em linhas separadas por canais de roteamento. Assim sendo, todas as células da biblioteca devem ter a mesma altura. Contudo, o comprimento das células pode variar para acomodar a variação de complexidade entre as células [Rabaey, Chandrakasan e Nikolić 2003]. A abordagem Standard-Cells tem tornado-se popular e é usada em praticamente todos os elementos lógicos dos circuitos integrados atuais. A única exceção é quando a extrema alta performance ou baixo consumo de energia são requisitos ou quando a estrutura funcional do elemento lógico é regular, como memórias e multiplicadores. O sucesso da abordagem Standar- Cells pode ser atribuída [Rabaey, Chandrakasan e Nikolić 2003]: A melhoria na qualidade do posicionamento e roteamento automático das ferramentas em conjunto com a disponibilidade de múltiplos níveis de roteamento. Estudos mostram que a abordagem automática atualmente é igual ou melhor do que o projeto manual para circuitos complexos e irregulares [Rabaey, Chandrakasan e Nikolić 2003]. O advento de sofisticadas ferramentas de síntese lógica. A abordagem por síntese lógica permite que todo o projeto possa ser realizado em alto nível de abstração usando equações booleanas, máquinas de estado ou linguagens Register Transfer Level (RTL), tais como: Verilog ou VHSIC Hardware Description Language (VHDL). A ferramenta de síntese lógica automaticamente traduz essas especificações para uma rede de portas lógicas da biblioteca de células, minimizando para um custo específico como área, consumo de energia ou atraso crítico [Rabaey, Chandrakasan e Nikolić 2003].

22 Organização deste Trabalho Este trabalho está organizado em 6 capítulos. O Capítulo 1 introduz a adição binária e os objetivos gerais e específicos. O Capítulo 2 revisa as arquiteturas CRA, CLA e CSA. No Capítulo 3 é apresentado o A1CSA e a proposta, A1CSAH, de propagação rápida do carry, além da otimização no circuito para adicionar 1. O Capítulo 4 descreve as otimizações para cada arquitetura na implementação, bem como a maneira de implementar cada somador para operandos maiores do que 4 bits. No capítulo 4 também são mostradas as restrições impostas à ferramenta de síntese lógica para evitar que esta descaracterizasse os somadores. O Capítulo 5 apresenta e discute os resultados experimentais. No Capítulo 6 são mostradas as conclusões e os trabalhos futuros.

23 22 2 Arquiteturas Básicas de Somadores 2.1 Carry-Ripple Adder A soma binária adiciona dois operandos (A e B) gerando um resultado S e um bit de excesso ou transporte, referido como COUT. Usualmente a adição binária é realizada da direita para a esquerda. Com isso o bit menos significativo é o mais a direita. A Tabela 2.1 mostra a um exemplo de adição em binário dos números 19 e 14, resultando na soma (S) igual a 1 (00001) e no COUT igual a 1. No exemplo mostrado, o par de bits menos significativo pode ser operado com um Half-Adder (HA), já os demais pares de bits devem ser operados com um Full-Adder (FA). Tabela 2.1: Exemplo de soma binária carry A B S Half-Adder Um HA é um componente combinacional que adiciona um par de bits de pesos iguais, os operandos A e B, e gera um bit de soma (S) e um bit de excesso ou transporte (carry), referido por COUT [Vahid 2008]. A Tabela 2.2 mostra a tabela verdade para a operação de soma com um HA.

24 23 Tabela 2.2: Tabela Verdade para a operação de soma com um HA. A B C out S Analisando a tabela verdade é possível concluir que o COUT da soma com o HA é o resultado de uma operação AND (E) entre o par de bits dos operandos. A Equação 2.1 mostra como é computado o COUT. O resultado da soma com o HA é o resultado da operação Exclusive-OR (XOR) entre o par de bits. A Equação 2.2 mostra o cálculo da soma [Hwang 1979, Oklobdzija 2001, Frank 2007, Mesquita 2007]. C out = A.B (2.1) S = A B (2.2) Full-Adder Um FA é um componente combinacional que adiciona três bits de pesos iguais, os operandos A e B e o CIN, e gera um bit de soma (S) e um bit de excesso ou transporte (carry), referido por COUT [Vahid 2008]. A Tabela 2.3 mostra a tabela verdade para a operação de soma com um FA.

25 24 Tabela 2.3: Tabela Verdade para a operação de soma com um FA. C in A B C out S O COUT é computado de forma fatorada como mostrado na Equação 2.3. Bem como, a soma é calculada com um XOR do CIN e do par de operandos. A Equação 2.4 mostra o cálculo do soma em um FA [Hwang 1979, Oklobdzija 2001, Frank 2007, Mesquita 2007]. C out = A.B + A.C in + B.C in (2.3) S = A B C in (2.4) Arquitetura Carry-Ripple Adder Um Carry-Ripple Adder (CRA) pode ser construído trivialmente conectando-se o COUT de um FA com o CIN do FA subsequente [Mesquita 2007]. O FA do bit menos significativo pode ser substituído por um HA quando os operandos não possuem CIN. Teoricamente pode-se construir um CRA para qualquer tamanho de operandos, desde que seja conectado quantos FA forem necessários [Hwang 1979, Oklobdzija 2001, Frank 2007, Mesquita 2007]. A Figura 2.1 mostra um CRA de n bits construído com FAs. Figura 2.1: Carry-Ripple Adder de n bits.

26 25 O CRA é um dos somadores que consomem menos recursos de hardware e um dos que consomem menos energia. Contudo, o tempo necessário para produzir a soma e o COUT é muito maior do que em um somador rápido, pois o atraso crítico em um CRA é dependente do tamanho dos operandos [Brown e Vranesic 2000]. O CRA é um dos somadores mais lentos, pois o carry é propagado por todos os FAs. Um FA espera o carry ser propagado por todos os FAs anteriores para completar a soma e disponibilizar o COUT [Frank 2007]. Consequentemente, a complexidade assintótica de um CRA para o atraso crítico e área é O(n) [Tyagi 1993]. 2.2 Carry-Lookahead Adder Um somador com propagação do carry em tempo logarítmico foi proposto por [Weinberger e Smith 1958]. Teoricamente, o Carry-Lookahead Adder (CLA) é um dos somadores mais rápidos, pois o carry é propagado em tempo do logarítmico em relação ao tamanho dos operandos [Oklobdzija 2001]. O atraso crítico do CLA é caracterizado por uma função logarítmica do tamanho dos operandos. Ou seja, no pior caso, o COUT do CLA está disponível em log(n), no qual n é o tamanho dos operandos. Já no caso do CRA, o COUT está disponível em n, no qual n é o tamanho dos operandos. No CRA, o carry deve passar por todos os pares de bits dos operandos até estar disponível. No CLA, o carry não passa por todos os pares de bits dos operandos, pois ele é computado em paralelo para cada par de bits. Assim sendo, a propagação do carry é acelerada. A passagem rápida do carry entre cada par de bits dos operandos é realizada com o auxílio dos sinais de Propagate (PROP) e Generate (GEN). O PROP detecta se um par de bits dos operandos em qualquer ordem passa o carry para o próximo par de bits. Ele sinaliza que esse par de bits está apto a passar o carry. A Equação 2.5 mostra como a computação do PROP é realizada. O sinal de GEN detecta se o par de bits dos operandos em qualquer ordem gera um carry. A Equação 2.6 mostra como detectar a geração de um carry para cada para de bits dos operandos. O tempo de computação do PROP e do GEN é constante, independente do tamanho dos operandos. P i = A i B i (2.5) G i = A i.b i (2.6) Contudo, o carry deve ser passado rapidamente por uma sequência de pares de bits. O CIN e o PROP e GEN de cada par de bits dos operandos são usados nas equações que mostram como realizam tal procedimento. As Equações 2.7, 2.8 e 2.9 mostram o cálculo dos carries para o primeiro, segundo e terceiro par de bits, respectivamente. A computação em paralelo de cada

27 26 carry para cada par de bits dos operandos evita que ele seja propagado por cada estágio. No caso do CRA, o carry deve ser propagado por cada estágio de soma. Assim sendo, o respectivo carry para cada par de bits está disponível em um tempo menor e a operação de adição é acelerada no CLA. A Equação 2.10 mostra uma generalização para computar o carry para qualquer tamanho de sequência de pares de bits dos operandos. C 0 = G 0 + P 0.C in (2.7) C 1 = G 1 + P 1.G 0 + P 1.P 0.C in (2.8) C 2 = G 2 + P 2.G 1 + P 2.P 1.G 0 + P 2.P 1.P 0.C in (2.9) C i 1 = G i 1 + P i 1.G i P i 1.P i 2...P 0.C in (2.10) A operação de soma é finalizada em qualquer ordem dos operandos com o auxílio do PROP da mesma ordem e do carry dos pares de bits anteriores. A Equação 2.11 mostra como a soma é completada no CLA. S i = P i C i 1 (2.11) Um CLA com o tamanho de operandos maiores do que 4 bits não é viável, pois as restrições de fan-in e fan-out são violadas. Usualmente, o fan-in máximo é limitado em 5 [Takagi et al. 2007]. O limite de transistores empilhados deve-se a características elétrica dos transistores, pois o sinal elétrico propagado por um conjunto de transistores empilhado é degradado ao passar por cada transistor [Rabaey, Chandrakasan e Nikolić 2003]. Assim sendo, limita-se o tamanho dos operandos do CLA a 4 bits, pois há no máximo 4 transistores empilhado ao implementá-lo. Um Bloco CLA (B-CLA) é um CLA limitado a operandos de 4 bits. Um B-CLA precisa passar rapidamente o carry através de sua estrutura. Os sinais de Propagate do Bloco (P b ) e Generate do Bloco (G b ) realizam tal procedimento. O P b sinaliza que a sequência de pares de bits do B-CLA propaga o CIN recebido pelo mesmo. O G b mostra que um par de bits dos operandos gerou um carry e este foi propagado dentro do B-CLA até o último par de bits. O cálculo do G b e do P b são mostradas nas Equações 2.12 e 2.13, respectivamente, para um B- CLA. A Equação 2.14 mostra a computação do COUT quando um B-CLA precisa realizar tal operação. Quando o tamanho dos operandos é maior do que 4 bits um B-CLA usualmente não computa o COUT, então essa equação pode ser eliminada. O COUT é computado na lógica responsável por conectar os B-CLAs quando o tamanho dos operandos é maior do que 4 bits.

28 27 G b = G 3 + P 3.G 2 + P 3.P 2.G 1 + P 3.P 2.P 1.G 0 (2.12) P b = P 3.P 2.P 1.P 0 (2.13) C out = G b + P b.c in (2.14) A Figura 2.2 mostra um B-CLA de 4 bits com a função de COUT. As Equações 2.5, 2.6, 2.7, 2.8, 2.9, 2.11, 2.12, 2.13 e 2.14 foram mapeadas para portas lógicas E, OR (OR) e XOR. Figura 2.2: Carry-Lookahead Adder de 4 bits. A maneira com a qual os B-CLAs são conectados faz com que o carry seja passado rapidamente através deles. Normalmente, eles são conectados em formato de árvore binária. Com isso o carry é passado em log(n), pois nessa arquitetura a dependência da cadeia de carry é quebrada, portanto um B-CLA não precisa esperar a propagação do carry pelo B-CLA anterior para realizar a adição. A característica de log(n) deve-se ao fato de aumentar em um nível de lógica extra, aumentar em um nível a altura lógica que o carry deve passar, ao dobrar o tamanho dos operandos no CLA. Os B-CLAs também podem ser conectados ligando o COUT de um com o CIN do B-CLA seguinte. Contudo, essa maneira de conectar aumenta o atraso crítico do CLA, pois nesse caso há a dependência do carry estar pronto no B-CLA anterior para que o B-CLA atual possa propagá-lo para o próximo B-CLA. A conexão entre os B-CLAs precisa de lógica extra, que computa o Generate da Hierarquia entre os blocos (G h ) e o Propagate da Hierarquia entre os blocos (P h ). O P h sinaliza que o

29 28 carry está sendo propagado. O G h sinaliza que um carry foi gerado e este foi propagado. A Figura 2.3 mostra o mapeamento em portas lógicas E e OR do CLA de 16 bits em formato de árvore binária. O Bloco de Ligação na Hierarquia (GPH) conecta dois B-CLAs ou dois GPHs. A maneira de conectar utilizando B-CLAs e GPHs pode ser estendida para construir somadores com o tamanho dos operandos maior. Figura 2.3: Carry-Lookahead Adder hierárquico de 16 bits. O GPH é responsável por computar o carry para o B-CLA dos bits de maior ordem ou calcular o carry para o GPH dos bits de maior ordem. Ele também é responsável por calcular o P h, o G h e no último nível de hierarquia o COUT. A Equação 2.15 descreve como computar o carry (C 1 ) para o B-CLA 1 no GPH 10. Por sua vez, na Equação 2.16 é mostrado como calcular o P h10 e na Equação 2.17 é mostrado como calcular o G h10 para o GPH 10, respectivamente. Para o GPH 11, as Equações 2.18, 2.19 e 2.20 descrevem como computar, respectivamente, o C 3 para o B-CLA 3, o P h11 e o G h11. C 1 = G b00 + P b00.c in (2.15) P h10 = P b00.p b01 (2.16)

30 29 G h10 = G b01 + P b01.g b00 (2.17) C 3 = G b02 + P b02.c 2 (2.18) P h11 = P b02.p b03 (2.19) G h11 = G b03 + P b03.g b02 (2.20) O GPH 20, último nível da hierarquia no exemplo mostrado na Figura 2.3, deve computar também o COUT. As Equações 2.21, 2.22 e 2.23 mostram como computar o C 2 para o B-CLA 2, o P h20 e o G h20, respectivamente. Esse bloco também deve computar o COUT como mostrado na Equação C 2 = G h10 + P h10.c in (2.21) P h20 = P h10.p h11 (2.22) G h20 = G h11 + P h11.g h10 (2.23) C out = G h11 + P h11.g h10 + P h11.p h10.c in (2.24) O atraso crítico do CLA não é diretamente proporcional ao tamanho dos operandos, mas ao número de níveis usados na hierarquia, ou seja, ao número total de níveis de GPHs. Por causa disso, a função assintótica que caracteriza o atraso crítico é O(log n) e a que caracteriza a área é O(nlog n) [Oklobdzija 2001, Tyagi 1993]. 2.3 Carry-Select Adder O atraso crítico de um CRA pode ser reduzido particionando-o em blocos. Cada bloco computa duas somas candidatas, uma com o CIN fixado em 0 e a outra com o CIN fixado em 1. Então, seleciona-se a soma correta a partir do CIN para o bloco [Takagi et al. 2007, Bedrij 1962]. Um Bloco CSA (B-CSA) é composto por dois somadores, um com o CIN fixado em 0 e o outro com o CIN fixado em 1, e por um Multiplexador (MUX). Usualmente o tamanho dos operandos é limitado a 4 bits em um B-CSA, uma vez que operandos com tamanho grande podem ocasionar aumento demasiado no atraso crítico. A adição com operandos extensos precisa que os B-CSAs sejam conectados de alguma maneira. A conexão entre eles é realizada com lógica extra, que computa o Sinal de Seleção (C i ) para cada bloco. O carry no CSA é propagado pela lógica extra. As Equações 2.25, 2.26 e 2.27

31 30 mostram como calcular o C i para os três primeiros B-CSAs, respectivamente. Uma Equação genérica para computar o C i de um B-CSA em qualquer ordem é mostrada em C 0 = C in (2.25) C 1 = C 03 + (C 13.C in ) (2.26) C 2 = C 07 + (C 17.(C 03 + (C 13.C in ))) (2.27) C n = C 0n + (C 1n.(C 0(n 1) + (C 1(n 1).(...(C 07 + (C 17.(C 03 + (C 13.C in )))))))) (2.28) A Figura 2.4 mostra um CSA de 16 bits composto por quatro B-CSAs. A lógica extra propaga o carry para cada B-CSA e também para o COUT da adição. A complexidade assintótica de um CSA em relação ao atraso crítico é O(n) [Rabaey, Chandrakasan e Nikolić 2003]. A complexidade assintótica do CSA é igual a do CRA. Contudo, no CSA o carry não passa por cada par de bits dos operandos, ele passa por um circuito dedicado que é mais rápido. A unidade somadora de um B-CSA pode ser um CRA quando o consumo de energia é o fator principal, senão ela pode ser substituída por um CLA quando o atraso crítico é o ponto principal [Rawat, Darwish e Bayoumi 2002]. Figura 2.4: Carry-Select Adder de 16 bits.

32 31 3 Add-One Adders O Somador Add-One é uma arquitetura em que uma soma é realizada com o CIN fixo em 0. Quando esta soma está pronto é adicionado 1 com um circuito dedicado. Este circuito é menor, consome menos potência e mais rápido do que um somador. No somador Add-One há duas somas candidatas, uma operada com o CIN igual a 0 e a outra computada com o CIN igual 1. Ao adicionar 1 a uma soma realizada com um somador e CIN igual a 0 tem-se o mesmo efeito de ter computado os operandos com um somador e CIN igual a 1. A decisão de qual soma candidata, a soma com CIN igual 0 ou a com CIN igual a 1, e baseada no carry. Se o carry for igual a 0, a soma realizada pelo somador é a correta, senão a soma que foi adicionado 1 com o circuito dedicado é a correta. 3.1 Add-One Carry-Select Adder A computação de uma soma com CIN fixo em 0 e a adição de 1 a este resultado foi proposto por [Chang e Hsiao 1998]. Este modo de realizar adição binária foi chamado de Add-One. Não obstante, foram propostas melhorias para esse somador por [He, Chang e Gu 2005, Kim e Kim 2001a, Kim e Kim 2001b, Rawat, Darwish e Bayoumi 2002, yan, Xin e Xi 2008, yan, Xin e Xi 2008]. Contudo, todas essas melhorias foram baseadas em projeto em nível de transistor. A implementação do A1CSA em HDL foi realizada por [Mesquita 2007, Mesquita et al. 2007, Mesquita et al. 2008]. Porém, ele foi sintetizado para Field-Programmable Gate Array (FPGA). O A1CSA é chamado de Re-computing the Inverse Carry-in (RIC) pelo autor. Contudo, o nome do somador foi trocado ao referenciar esses trabalhos nesta seção, pois os demais trabalhos correlatos referenciam o RIC como A1CSA. O CSA não é uma implementação otimizada para select adders, pois ele realiza duas adições para depois decidir qual é a correta. Uma análise das propriedades da soma binária mostra que um dos somadores não é necessário, pois a diferença entre os resultados (com CIN igual a 0 e CIN igual a 1) no CSA é de apenas 1. Com isso, uma forma mais eficiente de projetar um Select-Adder é realizar a soma com CIN fixado em 0 e adicionar 1 quando a soma estiver

33 32 pronta. O A1CSA faz uso de um somador e uma unidade Add-One (A1). Esta unidade realiza a mesma função de um somador e ainda é menor [Mesquita 2007,Mesquita et al. 2007,Mesquita et al. 2008]. A Figura 3.1(a) apresenta a arquitetura de um somador A1CSA de 4 bits e a Figura 3.1(b) mostra o A1 mapeado para portas lógicas. O A1 é ligado em série com a saída do somador. O objetivo principal do circuito A1 é completar a soma quando o CIN é igual a 1, pois o somador somente opera com o CIN fixado em 0 [Mesquita 2007, Mesquita et al. 2007, Mesquita et al. 2008]. (a) A1CSA de 4 bits. (b) A1 Block. Figura 3.1: Add-One Carry-Select Adder e Add-One Block para 4 bits. A adição de 1 a uma soma já existente depende de três propriedades. Elas determinam as posições que devem ser alteradas. Essas propriedades garantem que adicionar 1 a uma soma realizada como CIN igual a 0 é equivalente a realizar a mesma adição, mas com o CIN igual a 1. Propriedade 1. Dados dois números a serem somados, se ambos os números possuírem o bit menos significativo igual a 0, o resultado da soma destes números com CIN igual a 1 é idêntico ao resultado da soma com CIN igual a 0, exceto pela inversão do valor do bit menos significativo do resultado [Mesquita 2007]. A Tabela 3.1 mostra um exemplo numérico da Propriedade 1. Os números 12 e 4 são somados em binário com o CIN distinto. O bit menos significativo da adição com CIN igual a 0 é o oposto da soma com CIN igual a 1.

34 33 Tabela 3.1: Propriedade 1 para adicionar 1 a uma soma. C in 0 C in 1 A (12) A (12) B (4) B (4) S (16) S (17) Propriedade 2. Se o resultado de uma adição entre dois números com CIN igual a 0 apresenta o bit menos significativo igual a 1, o resultado da adição destes mesmos dois números, mas com CIN igual a 1 é equivalente sendo necessária a inversão dos m bits do resultado menos significativos até que seja encontrado o primeiro 0. Este último também deve ser invertido [Mesquita 2007]. A Tabela 3.2 mostra um exemplo da Propriedade 2. Os números 17 e 6 são somados em binário com o CIN distinto. Os 4 bits menos significativos da adição com CIN igual a 1 estão invertidos em relação aos mesmos bits da soma com CIN igual a 0. Tabela 3.2: Propriedade 2 a adicionar 1 a uma soma. C in 0 C in 1 A (17) A (17) B (6) B (6) S (23) S (24) Propriedade 3. Dois somadores idênticos recebendo os mesmos operandos de entrada, porém com carries de entrada distintos, exibem o mesmo carry de saída, exceto quando o AND lógico entre todos sinais propagate dos somadores resulta em um valor igual a 1 [Mesquita 2007]. Um exemplo para a Propriedade 3 é apresentado na Tabela 3.3. O COUT é diferente quando dois números (17 e 14) são somados em binário com o CIN distinto, pois todos os pares de bit dos operandos propagam o carry.

35 34 Tabela 3.3: Propriedade 3 para adicionar 1 a uma soma. C in 0 C in 1 A (17) A (17) B (14) B (14) S (31) S (32) Contudo, a soma de dois números com o CIN distinto pode gerar o mesmo COUT. Para isso, pelo menos um dos pares de bit dos operandos não propaga o carry. A Tabela 3.2 mostra um exemplo em que o COUT é igual ao somar os números 1 e 6 com o CIN distinto. Baseada nas Propriedades 1 e 2, deriva-se as equações que mostram como adicionam 1 ao resultado de um somador com o CIN fixado em 0. As Equações 3.1, 3.2, 3.3 e 3.4 descrevem como realizam tal operação para os 4 bits menos significativos [Mesquita 2007]. Não obstante, uma equação genérica é mostrada em 3.5. S 0 = R 0 (3.1) S 1 = R 0 R 1 (3.2) S 2 = (R 0.R 1 ) R 2 (3.3) S 3 = (R 0.R 1.R 2 ) R 3 (3.4) S n = (R 0.R 1.R 2...R n 1 ) R n (3.5) A Equação 3.6, derivada da Propriedade 3, mostra como detectar se todos os pares de bit dos operandos propagam o carry. P b = (A 0 B 0 ).(A 1 B 1 ).(A 2 B 2 ).(A 3 B 3 ) (3.6) As funções para somar 1 implementadas em CMOS são limitadas a 4 bits, pois as restrições de fan-in e/ou fan-out podem ser violadas para operandos extensos [Takagi et al. 2007]. Com isso, somente as Equações 3.1, 3.2, 3.3 e 3.4 são utilizadas. A Figura 3.1(b) mostra essas equações mapeadas para portas lógicas no A1. Um Bloco A1CSA (B-A1CSA), mostrado na Figura 3.2, possui um somador como CIN fixado em 0, um A1 e um MUX. O somador computa os operandos e o A1 adiciona 1 ao resultado. O MUX seleciona com base no C i (CIN) de cada bloco o resultado apropriado.

36 35 Figura 3.2: Bloco Add-One Carry-Select Adder. A adição de operandos extensos precisa de vários B-A1CSAs interligados. A conexão entre eles é realizada com lógica extra, a qual computa o C i para cada bloco. As Equações 3.7, 3.8, 3.9 e 3.10 descrevem como computar os C i s para os quatro primeiros B-A1CSAs, respectivamente. Consequentemente, a equação genérica 3.11 mostra como calcular o C i para um B-A1CSA em qualquer ordem. O COUT para a adição dos operandos é a computação do C i de todos os B-A1CSAs. C 0 = C in (3.7) C 1 = C 03 + (P b0.c in ) (3.8) C 2 = C 07 + (P b1.(c 03 + (P b0 C in ))) (3.9) C 3 = C (P b2.(c 07 + (P b1.(c 03 + (P b0.c in ))))) (3.10) C n = C 0n + (P bn C (P b2.(c 07 + (P b1.(c 03 + (P b0.c in ))))))) (3.11) A Figura 3.3 mostra um A1CSA de 16 bits. A conexão entre os B-A1CSAs é realizada através de uma única equação que mostra como computar os C i s e o COUT. A lógica extra propaga a cadeia carry no A1CSA. As equações que descrevem como computar os C i s possuem lógica em comum que pode ser fatorada.

37 36 Figura 3.3: Add-One Carry-Select Adder de 16 bits. 3.2 Hierarchical Add-One Carry-Select Adder O A1CSAH é uma proposta de arquitetura somadora para o transporte rápido do carry. A passagem rápida do carry está relacionada à arquitetura do somador, ou seja, a forma como os B-A1CSAs estão organizados. Figura 3.4: Hierarchical Add-One Carry-Select Adder de 16 bits.

38 37 Os B-A1CSAs no A1CSAH são conectados em formato de árvore binária, com isso o carry é transportado em tempo de log(n). A estrutura de um A1CSAH é igual a de um CLA, exceto pelo bloco básico, o qual é um B-A1CSA. A maneira hierárquica de conectar os B-A1CSAs é a primeira contribuição deste trabalho. A Figura 3.2 mostra a arquitetura proposta para um A1CSAH de 16 bits. A segunda contribuição deste trabalho é a otimização do A1. A função exercida pelo MUX pode ser absorvida pela XOR em cada bit de soma. Porém, as Equações 3.1, 3.2, 3.3, 3.4 e 3.5 devem ser modificadas para refletir tal mudança. Assim sendo, as Equações 3.12, 3.13, 3.14, 3.15 e 3.16 descrevem como adicionar 1 somente quando necessário, pois a XOR é usada como um inversor controlado. O CIN, sinal usado para seleção das somas candidatas no MUX, ajuda no controle de quais dos bits da soma devem ser adicionado 1 (invertidos). Os bits resultantes do somador também sinalizam quais deles devem ser invertidos. S 0 = C in R 0 (3.12) S 1 = (C in.r 0 ) R 1 (3.13) S 2 = (C in.r 0.R 1 ) R 2 (3.14) S 3 = (C in.r 0.R 1.R 2 ) R 3 (3.15) S n = (C in.r 0.R 1.R 2...R n 1 ) R n (3.16) A Figura 3.5(a) mostra o Add-One Select (A1S) mapeado em portas lógicas. A Figura 3.5(b) mostra o esquemático do B-A1CSA com o A1S. (a) Add-One Select. (b) B-A1CSA com A1S. Figura 3.5: Add-One Select mapeado para portas lógicas e o Bloco A1CSA. A organização hierárquica dos B-A1CSAs utiliza os sinais auxiliares P b e G b. O B-A1CSA disponibiliza o P b, porém ele não computa o G b. Contudo, o COUT do somador pode ser usado

39 38 como G b. A Propriedade 4, apresentada a seguir, garante que o COUT do somador e o G b são iguais quando o CIN está fixo em 0. Propriedade 4. Em um somador com o CIN fixado em 0, o generate do bloco (G b ) é o mesmo que o COUT do somador. Entretanto, em alguns casos não é possível obter o P b a partir de cada par de bit dos operandos. Contudo, ele pode ser obtido a partir do resultado da computação realizada pelo somador, como mostra a Propriedade 5. Essa propriedade é útil quando não se tem acesso a estrutura interna do somador. Assim, a computação do P b não utiliza lógica extra. Contudo, há um pequeno aumento no tempo para calculá-lo, pois o P b é computado somente após o resultado da adição estar disponível. Propriedade 5. O AND lógico de cada propagate para cada par de bits dos operandos é igual ao AND de cada bit de soma em um somador com o CIN fixado em 0. As Propriedades 4 e 5 são contribuições de menor relevância que as duas primeiras propostas, mas elas são úteis ao implementar um A1CSAH e quando o acesso à unidade somadora do A1CSAH é restrita, respectivamente. A Propriedade 5 também pode ser aplicada ao projetar um somador A1CSA.

40 39 4 Síntese Lógica dos Somadores 4.1 Configuração Experimental As arquiteturas CRA, CLA, CSA, A1CSA e A1CSAH apresentadas nos Capítulos 2 e 3 foram descritas com a linguagem HDL Verilog. Cada arquitetura somadora foi descrita para operandos com tamanho de 8, 16, 32, 64, 128 e 256 bits. Este capítulo apresenta os detalhes ao implementar em Verilog cada arquitetura, as otimizações adotadas para cada uma das arquiteturas e ainda as restrições impostas à ferramenta de síntese lógica a fim de evitar a descaracterização dos somadores. Os somadores foram sintetizados logicamente com a ferramenta Design Compiler (DC) versão D SP2 da Synopsys. No processo de síntese lógica foi utilizada a biblioteca de células 45 nm da Taiwan Semiconductor Manufacturing Company Limited (TSMC). Os resultados para atraso crítico, consumo de energia e área são reportados pela ferramenta de síntese lógica. Esses dados são reportados com o DC, o qual é uma ferramenta comercial amplamente utilizada em fluxo para Standard-Cells. Não obstante, o DC possui um modo chamado Topographical, que segundo os manuais de seu desenvolvedor, utiliza os dados da simulação elétrica das células ao sintetizar e reportar os dados de um projeto. Os resultados foram gerados com a ferramenta em tal modo. A biblioteca de células utilizada da TSMC possui as seguintes características: Library Type: Technology, PG pin Based Tool Created: A SP1 Date Created: Fri Nov 13 11:02:22 CST 2009 Comments: Copyright TSMC Library Version: 120 Time Unit: 1ns

41 40 Capacitive Load Unit: pf Pulling Resistance Unit: 1kilo-ohm Voltage Unit: 1V Current Unit: 1mA Dynamic Energy Unit: pJ (derived from V,C units) Leakage Power Unit: 1nW Bus Naming Style: %s[%d] (default) Operating Condition Name: NCCOM Library: tcbn45gsbwptc_ccs Process: 1.00 Temperature: Voltage: 0.90 Interconnect Model: balanced_tree Processo CMOS 45 nm. Nominal Voltage Threshhold. General Purpose non-well biased with UPF. Processo de fabricação Typical-Typical para o transistor NMOS e PMOS. A biblioteca possui 869 células. A células estão distribuídas em: 1 Tap cell Basic cells + 85 Clock cells + 8 Filler cells + 24 Multi-voltage cells + 52 ECO cells. A síntese lógica utiliza os dados de simulação elétrica em formato CCS. A biblioteca com 10 níveis de metal.

42 4.2 Controle do Processo de Otimização no Design Compiler 41 O DC não mapeia o código HDL diretamente para a biblioteca real de células (TSMC 45 nm), mas para células de uma biblioteca genérica chamada gtech. Essa biblioteca é um formato interno da ferramenta. A seguir, o mapeamento em gtech é otimizado e mapeado para a biblioteca real de células. No caso dos somadores deste trabalho, a amplitude do processo de otimização foi limitado. Caso contrário, o processo de otimização descaracterizaria a arquitetura dos somadores. A arquitetura de um somador é descaracterizada quando a ferramenta desmonta a arquitetura do somador e realiza otimizações sobre a mesma. A descaracterização ocorre quando a ferramenta fatora um CLA em um CRA, porém essa otimização não é desejada. Assim sendo, o processo de otimização global (entre módulos diferentes) é restringido, mas o processo de otimização local (dentro de cada módulo) está habilitado. Com isso, a arquitetura de cada somador é mantida e as funções de cada módulo são otimizadas. Caso a otimização global esteja habilitada, a ferramenta fatora as demais arquiteturas para o CRA. O DC possui duas flags que bloqueiam a otimização global e mantem a otimização local. O flag set_structure false -design [get_designs *] desabilita a busca de subfunções em diferentes módulos e a fatoração das mesmas. O flag set_ungroup [get_designs *] false evita que o DC remova ou reduza os níveis de hierarquia. Portanto, a hierarquia construída ao descrever um somador é preservada, pois o código HDL de submódulos não é copiado para o módulo de mais alto nível e, consequentemente, os submódulos não são eliminados. A duas flags foram utilizadas no processo de síntese lógica. Figura 4.1: Bloco CLA dividido em vários módulos. As funções de um somador estão separadas em módulos diferentes para evitar a descarac-

43 42 terização da arquitetura, pois a ferramenta ainda realiza otimização local. Um bloco básico de uma determinada arquitetura referencia os respectivos módulos da arquitetura. A Figura 4.1 mostra o exemplo de um CLA de 4 bits (B-CLA). As funções dentro de cada retângulo hachurado são descritas em módulos diferentes, assim o DC não descaracteriza o CLA. 4.3 Somadores Descritos em Formato de Árvore Binária A conexão dos blocos básicos em formato de árvore binária foi utilizado para as arquiteturas CRA, CLA e A1CSAH. Com isso, dois somadores são conectados para computar operandos maiores. Um dos somadores opera sobre os bits de maior ordem e o outro sobre os bits de menor ordem. Contudo, a conexão entre duas unidades para as arquiteturas CLA e A1CSAH usa lógica extra. As funções que conectam dois somadores nessas arquiteturas estão encapsuladas no GPH. A conexão entre dois CRAs não requer lógica extra, pois o COUT do CRA dos bits de menor ordem é ligado ao CIN do CRA dos bits de maior ordem. Assim sendo, um somador de 8 bits é composto de dois blocos básicos e por lógica extra para conexão quando necessário. Um somador de 16 bits é composto de dois somadores de 8 bits e por lógica extra para conexão quando necessário. Portanto, um somador, com o tamanho para cada operando de n bits, é composto por dois somadores de n/2 bits e por lógica extra para conexão quando necessário. O tamanho n dos operandos é uma potência de 2 pertencente aos números naturais e é maior ou igual a 8 bits. Um dos somadores computa os n/2 bits de menor ordem e o outro os n/2 bits de maior ordem. A diferença entre o A1CSAH, CLA e CRA, simplificadamente, é a arquitetura do bloco básico utilizado por cada um deles, porém o CRA não utiliza o GPH para a conexão. (a) A1S descrito em Verilog. (b) B-A1CSA para o A1CSAH. Figura 4.2: Add-One Select e Bloco A1CSA para o Hierarchical Add-One Carry-Select Adder.

44 43 Na descrição do B-A1CSA sintetizado logicamente foi utilizado o A1S ao invés do A1. A Figura 4.2(a) mostra a implementação em portas lógica do A1S e a separação de cada equação em diferentes módulos. A Figura 4.2(b) mostra o esquemático do B-A1CSA para o somador A1CSAH. O somador utilizado na síntese lógica do B-A1CSA foi um CLA. O CIN desse somador foi fixado em 0 e as funções dele foram separadas em módulos diferentes. A Figura 4.3 mostra o esquemático do CLA como CIN fixado em 0. Figura 4.3: Carry-Lookahead Adder com o Carry-in fixado em 0. A Figura 4.4 mostra a estrutura hierárquica em formato de árvore binária utilizada ao descrever um A1CSAH de 16 bits. O CLA utiliza a mesma estrutura, inclusive o mesmo GPH, mas o B-A1CSA é substituindo por um B-CLA.

45 44 Figura 4.4: Esquemático do Hierarchical Add-One Carry-Select Adder descrito para 16 bits. A descrição de um CRA de 16 bits é mostrada pela Figura 4.5. Os módulos são conectados através dos sinal de CIN e COUT. Figura 4.5: Carry-Ripple Adder descrito para 16 bits.

46 4.4 Somadores Descritos com os Blocos Básicos em Formato de Cascata 45 A conexão dos blocos básicos em formato de cascata foi utilizado para as arquiteturas A1CSA e CSA, ou seja, para cada tamanho de operandos é referenciado quantos blocos básicos são necessários e não dois somadores com a metade do tamanho dos operandos. A equação que descrevem como propagar o carry intermediário dificulta o desenvolvimento de uma estrutura hierárquica. O A1CSA e o CSA com o tamanho dos operandos de n bits são compostos por (n/4)-1 blocos básicos e por um CRA. O tamanho n dos operandos é uma potência de 2 pertencente aos números naturais e é maior que 8 bits. Os 4 bits menos significativos são computados pelo CRA. Essa otimização reduz a área e o tempo de operação, pois um CRA de 4 bits é menor e mais rápido do que um bloco básico. A conexão entre o CRA e entre os blocos básicos é feita através de lógica extra, a qual propaga o carry. Um B-CSA sintetizado logicamente possui dois somadores CRA, um com o CIN fixado em 0 e o outro em 1, e quatro MUXs. Porém, um B-A1CSA para o A1CSA possui um CRA com o CIN fixado em 0 e um A1S. A Figura 4.6 mostra um CSA de 16 bits. Em um A1CSA são substituídos os B-CSAs, que estão dentro dos retângulos hachurados, por B-A1CSAs. O COUT (C 1x ) do somador com CIN fixado em 1 é substituído pelo P b computado a partir da soma com CIN igual a 0. A estratégia de descrição linear pode ser observada nessa figura, a qual não há mais níveis de hierarquia além dos blocos básicos. O que é bem diferente dos somadores apresentados na seção anterior. Figura 4.6: Carry-Select Adder descrito para 16 bits.

47 Verificação Funcional A verificação funcional é um método usado para demostrar que a funcionalidade desejada é preservada na descrição HDL de um circuito [Bergeron 2003]. O termo Testbench usualmente refere-se a um código simulado usado para criar uma sequência predeterminada de estímulos ou pseudorrandômica e, então, opcionalmente observar as saídas para verificar se o resultado está correto [Bergeron 2003,Meyer 2003]. O Testbench frequentemente é implementado usando HDL [Bergeron 2003]. Os somadores implementados neste trabalho foram submetidos à verificação funcional. Cada somador possui um Testbench, que é composto de um Somador de Referência (REF), um módulo para leitura dos estímulos, um módulo para escrita dos resultados e dos estímulos em um arquivo de log e o Somador Sob Verificação (DUV). O REF é um módulo que utiliza o operador + do Verilog para operar sobre os vetores. A sequência de estímulos para os somadores de 8 bits é a tabela verdade do mesmo. Contudo, o número de estímulos usando a tabela verdade cresce muito rápido, com isso o tamanho torna-se proibitivo para os arquivos de log e de estímulos e, principalmente, o tempo de verificação é proibitivo. Os demais somadores foram verificados funcionalmente com um conjunto de vetores que sensibiliza a ligação entre os blocos básicos. Uma vez que os blocos básicos já foram testados com a tabela verdade em 8 bits. A Figura 4.7 mostra o esquema utilizado no Testbench dos somadores. O gerador gera um vetor de estímulos para o REF e para o DUV. Estes operam sobre o vetor e o verificador compara se o resultado produzido pelo DUV é igual ao produzido pelo REF, caso afirmativo os estímulos de entrada, bem como os resultados produzidos pelo somador de referência e pelo somador sob teste são salvos, senão o verificador emite uma mensagem de erro para o usuário, bem como os estímulos e os resultados produzidos por ambos os somadores são apresentados. Figura 4.7: Esquema de verificação funcional.

48 Provável Esquemático do Full-Adder da Biblioteca A manipulação das equações de um CRA pode reduzir o número de transistores. Assim é possível compartilhar a lógica entre os subcircuitos de geração da soma e do carry. As Equações 2.3 e 2.4 foram reorganizadas para as Equações 4.1 e 4.2 que compartilham lógica [Rabaey, Chandrakasan e Nikolić 2003]. C out = A.B + B.C in + A.C in (4.1) S = A.B.C in +C 0.(A + B +C in ) (4.2) O FA presente na biblioteca da TSMC possui 28 transistores. Assim, pode-se inferir um possível esquemático em nível de transistor para este FA. A Figura 4.8 mostra um esquemático em nível de transistor de uma FA presente em [Rabaey, Chandrakasan e Nikolić 2003]. Este mapeamento também possui 28 transistores. Assim, pode-se especular que o FA presente na biblioteca de células da TSMC possui o mesmo esquemático da Figura 4.8. Figura 4.8: Full-Adder de CMOS complementar [Rabaey, Chandrakasan e Nikolić 2003].

49 48 5 Resultados Experimentais Na Seção 5.1 são apresentados os resultados para os somadores dos blocos básicos. A partir da Seção 5.2 são apresentados os resultados para os somadores A1CSA, A1CSAH, CLA, CRA e CSA com operandos de 8 a 256 bits. 5.1 Blocos Básicos Carry-Ripple Adder e Carry-Lookahead Adder O objetivo dos resultados mostrados nessa seção é caracterizar o CLA e o CRA para operandos de 2 a 8 bits. Esses somadores são utilizados como a unidade somadora para o bloco básico de todas as arquiteturas apresentadas. A unidade somadora para um bloco básico pode ser um CLA ou um CRA. O CLA é a unidade somadora recomendável quando o atraso crítico deve ser o menor, enquanto o CRA é a unidade somadora ideal quando o consumo de energia é o fator principal [Rawat, Darwish e Bayoumi 2002]. O CLA e o CRA foram descritos para o tamanho de operandos de 2 a 8 bits variando em 1 bit. O CLA para um bloco básico de 4 bits é apresentado na Figura 4.1. As funções dentro de cada retângulo hachurado são implementadas em módulos diferentes. Nos demais tamanhos de operandos as equações para o CLA foram ajustadas adequadamente. No caso do CRA, foi conectado a quantidade de FAs necessário para cada tamanho dos operandos Atraso Crítico para os Blocos Básicos A Tabela 5.1 mostra o atraso crítico dos somadores para os blocos básicos. Os dados mostram que o CLA tem o menor atraso crítico para todos os tamanhos de operandos. Ao comparar as duas unidades somadoras, o CRA é 9,747 ps mais lento do que o CLA para 2 bits. Bem como, a diferença aumenta para 89,894 ps em 8 bits. Ao aumentar em 4 vezes o

50 49 tamanho dos operandos, a diferença do atraso crítico aumentou em 9,22 vezes. Especialmente para 4 bits, o CLA é 35,878 ps mais rápido do que o CRA. Tabela 5.1: Atraso crítico dos somadores para os blocos básicos (ps). 2 bits 3 bits 4 bits 5 bits 6 bits 7 bits 8 bits CLA 157, , , , , , ,519 CRA 167, , , , , , ,413 A Figura 5.1 apresenta o atraso crítico dos somadores para os blocos básicos. A diferença de atraso crítico entre o CRA e o CLA cresce a medida que o tamanho dos operandos aumenta. O CRA propaga o carry através de todos os pares de bits dos operandos (FAs), porém o CLA faz a passagem rápida do mesmo entre os pares de bits. Assim, o atraso crítico do CRA é maior do que o do CLA. Figura 5.1: Atraso crítico dos somadores para os blocos básicos Consumo de Potência para os Blocos Básicos A Tabela 5.2 mostra o consumo de potência dos somadores para os blocos básicos. O CRA consome menos potência para todos os tamanhos de operandos. O CLA consome 1,447 µw de potência a mais do que o CRA para 2 bits. Ainda, o CLA consome 12,108 µw de potência mais do que o CRA para 8 bits. Ao expandir o tamanho dos

51 50 operandos para os blocos básicos em 4 vezes, a diferença de consumo de potência aumentou 8,367 vezes. No caso de 4 bits, o CRA consome 2,842 µw de potência a menos do que o CLA. Tabela 5.2: Consumo de potência dos somadores para os blocos básicos (µw). 2 bits 3 bits 4 bits 5 bits 6 bits 7 bits 8 bits CLA 7,294 10,601 14,537 19,087 24,365 28,731 35,497 CRA 5,847 8,721 11,695 14,568 17,542 20,516 23,389 A Figura 5.2 mostra o crescimento do consumo de potência com a variação no tamanho dos operandos. A diferença de consumo de potência entre o CRA e o CLA aumenta com o crescimento do tamanho dos operandos. O CLA consome mais potência, porque ele usa lógica extra para acelerar a propagação do carry. Figura 5.2: Consumo de potência dos somadores para os blocos básicos Área para os Blocos Básicos A Tabela 5.3 mostra a área dos somadores para os blocos básicos. O CLA possui a maior área entre todos os tamanhos de operandos. O CLA para 2 bits é 3,881 µm 2 maior que o CRA. Bem como, ele é 47,804 µm 2 maior que o CRA para 8 bits. Ao aumentar o tamanho dos operandos em 4 vezes houve um aumento de 12,317 vezes na diferença da área entre os somadores.

52 51 Tabela 5.3: Área dos somadores para os blocos básicos (µm 2 ). 2 bits 3 bits 4 bits 5 bits 6 bits 7 bits 8 bits CLA 12,701 21,168 30,870 42,512 54,860 68,267 83,084 CRA 8,820 13,230 17,640 22,050 26,460 30,870 35,280 A Figura 5.3 apresenta a área dos somadores para os blocos básicos. O crescimento da diferença de área entre os somadores foi maior do que o crescimento da diferença do atraso crítico e do consumo de potência. A redundância necessária para acelerar a computação do carry faz com que a área do CLA seja maior do que a do CRA. Figura 5.3: Área dos somadores para os blocos básicos Power-Delay Product para os Blocos Básicos A Tabela 5.4 mostra o Power-Delay Product (PDP) dos somadores para os blocos básicos. O PDP mede a eficiência energética de um circuito integrado. A eficiência energética é obtida multiplicando o atraso crítico pelo consumo de potência. O CLA tem o maior PDP para todos os tamanhos de operandos. O CLA é 0,17 fj menos eficiente energeticamente do que o CRA para 2 bits e 1,729 fj menos eficiente do que o CRA para 8 bits. O aumento de 4 vezes no tamanho dos operandos re-

53 52 sulta em um aumento de 10,170 vezes na diferença de eficiência energética entre os somadores. No caso de 4 bits, a diferença de eficiência energética é de 0,183 fj entre eles. Tabela 5.4: Power-Delay Product dos somadores para os blocos básicos (fj). 2 bits 3 bits 4 bits 5 bits 6 bits 7 bits 8 bits CLA 1,148 2,004 3,086 4,716 6,437 8,365 11,235 CRA 0,978 1,800 2,903 4,189 5,775 7,647 9,506 A Figura 5.4 mostra que o crescimento da diferença de PDP entre os blocos básicos é pequena. O CRA tem o atraso crítico maior, mas o consumo de potência é menor. Por outro lado, o atraso crítico do CLA é menor, mas o seu consumo de potência é maior. Portanto, a diferença de eficiência energética entre esses somadores é pequena. Figura 5.4: Power-Delay Product dos somadores para os blocos básicos Consumo de Potência por Unidade de Área para os Blocos Básicos A Tabela 5.5 mostra o consumo de potência por unidade de área dos somadores para os blocos básicos. O CLA é o somador que consome menos potência por unidade de área. O CLA consome 0,089 Wm 2 de potência a menos do que o CRA para 2 bits. Bem como, o CRA consome 0,236 Wm 2 de potência a mais para 8 bits. Ao aumentar o tamanho dos

54 53 operandos em 4 vezes houve um aumento de 2,651 vezes na diferença de consumo de potência por unidade de área entre os somadores. Tabela 5.5: Consumo de potência por unidade de área dos somadores para os blocos básicos (Wm 2 ). 2 bits 3 bits 4 bits 5 bits 6 bits 7 bits 8 bits CLA 0,574 0,501 0,471 0,449 0,444 0,421 0,427 CRA 0,663 0,659 0,663 0,661 0,663 0,665 0,663 A Figura 5.5 mostra o consumo de potência por unidade de área dos somadores para os blocos básicos. O CRA consome praticamente a mesma quantidade de potência por unidade área para todos os tamanhos de operandos, porém o CLA reduz o seu consumo de potência por unidade de área com o aumento no tamanho dos operandos. Figura 5.5: Consumo de potência por unidade de área dos somadores para os blocos básicos. 5.2 Atraso Crítico para os Somadores A Tabela 5.6 mostra o atraso crítico dos somadores analisados neste trabalho. O A1CSAH tem o menor atraso crítico. Já, o CRA, como era esperado, tem o maior atraso crítico. O CLA é, em média, 12% mais lento do que o A1CSAH. Esse resultado é significativo, pois a arquitetura do CLA, segundo a literatura, é uma das que tem o menor atraso crítico.

55 54 A maior diferença de atraso crítico é entre o A1CSAH e o CRA para todos os tamanhos de operandos. A diferença para 8 bits é de 117,887 ps, assim como ela aumenta para 9.626,162 ps em 256 bits. Ao aumentar em 32 vezes o tamanho dos operandos houve um aumento na diferença de atraso crítico entre eles de 81,656 vezes. O CLA é 46,226 ps mais lento do que o A1CSAH para 8 bits. Assim como, ele é 78,764 ps mais lento do que o A1CSAH para 256 bits. O aumento no tamanho dos operandos em 32 vezes fez a diferença de atraso crítico crescer 1,704 vezes O CSA é 65,549 ps mais rápido que o A1CSA para 8 bits. Contudo, a partir de 32 bits o A1CSA é mais rápido do que o CSA. Assim sendo, o A1CSA é 635,144 ps mais rápido em relação ao CSA para 256 bits. Tabela 5.6: Atraso crítico dos somadores (ps). 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 359, , , , , ,477 A1CSAH 288, , , , , ,281 CLA 334, , , , , ,045 CRA 406, , , , , ,443 CSA 294, , , , , ,621 Na Figura 5.6 podem ser observados três conjuntos de funções de atraso crítico distintas. Um conjunto é formado pelo CRA, que é o somador mais lento de todos. O segundo conjunto é formado pelo A1CSA e CSA, os quais possuem a diferença no crescimento do atraso crítico entre eles muito próxima. Eles possuem o tempo de computação intermediário entre os somadores mais rápidos e o mais lento. O último conjunto é formado pelo A1CSAH e CLA. A diferença no crescimento do atraso crítico destes é a menor entre todos os somadores. Os três conjuntos de atraso crítico são caracterizados por três funções diferentes. O atraso crítico do CRA é O(n), já o A1CSAH e o CLA computam em O(log(n)). Assim, o conjunto intermediário, do A1CSA e do CSA, opera em O(n/4). Portanto, os valores de atraso crítico para operandos grandes são discrepantes entre os conjuntos, ou seja, a diferença no tempo de computação tende a crescer entre os conjuntos com o aumento no tamanho dos operandos.

56 55 Figura 5.6: Atraso crítico dos somadores. A Tabela 5.7 mostra o atraso crítico de todos os somadores normalizado em relação ao CRA. Os dados foram obtidos dividindo o atraso crítico dos somadores pelo atraso crítico do CRA. O A1CSAH é 29% mais rápido do que o CRA para 8 bits e 93,3% mais rápido para 256 bits. Com isso, o A1CSAH de 256 bits pode realizar quase 15 operações enquanto o CRA realiza apenas 1. O atraso crítico do A1CSA é 11,5% menor do que o do CRA para 8 bits e 72,3% menor para 256 bits. Um A1CSA de 256 bits realiza ao menos 3 operações de adição enquanto o CRA realiza apenas 1. Tabela 5.7: Atraso crítico normalizado dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 0,885 0,590 0,422 0,331 0,298 0,277 A1CSAH 0,710 0,482 0,299 0,190 0,115 0,067 CLA 0,824 0,555 0,345 0,214 0,127 0,075 CRA 1,000 1,000 1,000 1,000 1,000 1,000 CSA 0,723 0,518 0,435 0,385 0,357 0,339 A Figura 5.7 ilustra a diferença de atraso crítico dos somadores em relação ao CRA. A partir de 32 bits, qualquer um dos somadores realiza pelo menos duas operações de adição enquanto o CRA realiza 1. Porém, somente a partir de 128 bits o A1CSAH e o CLA conseguem realizar duas operações no tempo em que o A1CSA e o CSA computam 1.

57 56 Figura 5.7: Atraso crítico normalizado dos somadores. A Tabela 5.8 mostra a razão do atraso crítico entre os somadores. O atraso crítico do A1CSA e A1CSAH foi dividido pelo atraso crítico do CLA e CSA. Assim há 4 pares de somadores ao realizar a comparação. O A1CSAH é 13,8% mais rápido do que o CLA para 8 bits e 10,2% mais rápido para 256 bits. Em média, o CLA é 11,8% mais lento do que o A1CSAH entre todos os tamanhos de operandos. Tabela 5.8: Razão entre o atraso crítico dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits Média A1CSA/CLA 1,074 1,064 1,222 1,549 2,355 3,716 1,830 A1CSAH/CLA 0,862 0,868 0,865 0,890 0,910 0,898 0,882 A1CSA/CSA 1,223 1,140 0,969 0,861 0,836 0,818 0,975 A1CSAH/CSA 0,981 0,930 0,686 0,495 0,323 0,198 0,602 O A1CSA é 22,3% mais lento do que o CSA para 8 bits. O atraso crítico entre eles reduz até ficar praticamente empatado em 32 bits. A partir de 64 bits o A1CSA é mais rápido do que o CSA. Portanto, em 256 bits ele é 18,2% mais rápido do que o CSA. Na média, o atraso crítico do A1CSA é 2,5% menor do que o do CSA para todos os tamanhos de operandos. A Figura 5.8 mostra a razão entre o atraso crítico dos somadores. Os pares A1CSA, CSA e A1CSAH, CLA tem a razão entre os seus atrasos críticos praticamente constante para todos

58 57 os tamanhos de operandos, pois os somadores de cada par possuem a mesma função de atraso crítico. A diferença de atraso crítico entre os somadores de cada par é ocasionada por pequenas mudanças dentro da arquitetura de cada somador. Contudo, nas outras duas possibilidades de análise (A1CSA, CLA e A1CSAH, CSA) há o crescimento da razão entre o atraso crítico dos pares avaliados, pois cada somador dentro do par é caracterizado por uma função de atraso crítico diferente. Figura 5.8: Razão entre o atraso crítico dos somadores. 5.3 Consumo de Potência para os Somadores A Tabela 5.9 mostra o consumo de potência dos somadores implementados neste trabalho. O CRA consome menos potência entre todos os tamanhos de operandos. Contudo, o A1CSAH é o somador que consome mais potência até 16 bits. Porém, nos demais tamanhos de operandos o CSA consome mais potência. O CRA consome 10,93 µw de potência a menos do que o A1CSAH para 8 bits. Bem como, para 256 bits, ele consome 440,44 µw de potência a menos do que o CSA. O CLA consome 3,469 µw de potência a menos do que o A1CSAH para 8 bits. Assim como, para 256 bits ele consome 106,15 µw a menos de potência do que o A1CSAH. A diferença de consumo de potência entre os somadores aumentou em 30,599 vezes com o crescimento de 32 vezes no tamanho dos operandos. O A1CSA para 8 bits consome 3,924 µw de potência a menos do que o CSA. Bem como, ele consome 237,31 µw de potência a menos do que o CSA para 256 bits. Ao aumentar em

59 58 32 vezes o tamanho dos operandos houve um crescimento de 60,476 vezes na diferença de consumo de potência. Tabela 5.9: Consumo de potência dos somadores (µw). 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 26,884 57, , , , ,790 A1CSAH 34,319 69, , , , ,480 CLA 30,850 61, , , , ,330 CRA 23,389 47,179 95, , , ,660 CSA 30,808 68, , , , ,100 A Figura 5.9 mostra o consumo de potência dos somadores. Eles possuem o crescimento do consumo de potência muito próximo. A diferença de área entre eles é o principal fator que influencia na diferença de consumo de potência. Figura 5.9: Consumo de potência dos somadores. A Tabela 5.10 apresenta o consumo de potência de todos os somadores normalizado. O consumo de potência de cada somador foi dividido pelo consumo de potência do CRA. O A1CSA consome 14,9% a mais de potência do que o CRA para 8 bits. Ainda, o A1CSA consome 26,3% a mais de potência do que o CRA para 256 bits. O A1CSAH consome 46,7% mais potência do que o CRA para 8 bits e 44,2% mais potência do que o CRA para 256 bits.

60 59 Tabela 5.10: Consumo de potência normalizado dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 1,149 1,212 1,243 1,253 1,266 1,263 A1CSAH 1,467 1,475 1,445 1,449 1,451 1,442 CLA 1,319 1,308 1,302 1,302 1,305 1,304 CRA 1,000 1,000 1,000 1,000 1,000 1,000 CSA 1,317 1,442 1,512 1,551 1,576 1,571 A Figura 5.10 ilustra o consumo de potência normalizado para os somadores. Todos eles consomem mais potência do que o CRA. A diferença de consumo de potência do A1CSAH e CLA em relação ao CRA ficou praticamente constante entre todos os tamanhos de operandos. Contudo, houve o aumento do consumo de potência do A1CSA e CSA em relação ao CRA com a variação no tamanho dos operandos. Figura 5.10: Consumo de potência normalizado dos somadores. A Tabela 5.11 mostra a razão de consumo de potência entre os somadores. O consumo de potência do A1CSA e A1CSAH foi dividido pelo consumo de potência do CSA e CLA. Assim, são comparados 4 pares de somadores. O A1CSAH consome 11,2% mais potência do que o CLA para 8 bits e, para 256 bits, ele consome 10,5% mais potência do que o CLA. Na média, o CLA é 11,3% mais econômico do

61 60 que o A1CSAH. O CSA consome 12,7% mais potência do que o A1CSA para 8 bits e consome 19,6% mais potência do que o A1CSA para 256 bits. Na média, o A1CSA consome 17,5% menos potência do que o CSA para todos os tamanhos de operandos. A diferença de consumo de potência entre o A1CSAH e o CLA é praticamente constante para todos os tamanhos de operandos. Contudo, a diferença de consumo de potência entre o A1CSA e o CSA aumenta até 32 bits. A partir desse ponto, a diferença de consumo de potência entre o A1CSA e o CSA é praticamente constante. Tabela 5.11: Razão entre o consumo de potência dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits Média A1CSA/CLA 0,871 0,926 0,955 0,962 0,971 0,969 0,942 A1CSAH/CLA 1,112 1,127 1,110 1,113 1,112 1,105 1,113 A1CSA/CSA 0,873 0,840 0,822 0,808 0,803 0,804 0,825 A1CSAH/CSA 1,114 1,023 0,955 0,934 0,921 0,918 0,977 A Figura 5.11 apresenta a razão entre o consumo de potência dos somadores. A razão de consumo de potência entre os somadores de cada par é praticamente constante com o aumento do tamanho dos operandos, a exceção ocorre na comparação entre o A1CSAH e o CSA. A razão decresce com o aumento no tamanho dos operandos. O A1CSAH consome mais potência do que o CSA até 16 bits. Contudo, para os demais tamanhos de operandos, o CSA consome mais potência do que o A1CSAH.

62 61 Figura 5.11: Razão entre o consumo de potência dos somadores. 5.4 Área para os Somadores A Tabela 5.12 mostra a área de cada somador descrito neste trabalho. O CRA possui a menor área entre os somadores para todos os tamanhos de operandos. Contudo, a maior área é do A1CSAH até 64 bits, já para 128 e 256 bits o CSA é o maior somador. O CRA é 40,396 µm 2 menor do que o A1CSAH. Assim como, ele é 1.400,263 µm 2 menor do que o CSA para 256 bits. Ao aumentar em 32 vezes o tamanho dos operandos houve um aumento de 34,663 vezes na diferença entre o maior e o menor somador. O CLA é 9,173 µm 2 menor do que o A1CSAH para 8 bits. Bem como, ele é 293,529 µm 2 menor do que o A1CSAH para 256 bits. O aumento no tamanho dos operandos em 32 vezes provocou um aumento na diferença de área de 31,999 vezes. O CSA é 11,642 µm 2 maior do que o A1CSA para 8 bits. Não obstante, ele é 733,471 µm 2 maior do que o A1CSA para 256 bits. O incremento em 32 vezes no tamanho dos operandos aumentou a diferença de área em 63 vezes.

63 62 Tabela 5.12: Área dos somadores (µm 2 ). 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 45, , , , , ,752 A1CSAH 75, , , , , ,708 CLA 66, , , , , ,179 CRA 35,280 70, , , , ,960 CSA 57, , , , , ,223 A Figura 5.12 mostra a área dos somadores. O CSA e o A1CSAH possuem praticamente a mesma área, contudo o A1CSAH é o somador mais rápido, enquanto que o atraso crítico do CSA é intermediário. O A1CSA é o somador com a menor área depois do CRA. Figura 5.12: Área dos somadores. A Tabela 5.13 apresenta a área dos somadores normalizada. A área de cada somador foi dividida pela área do CRA. O A1CSA é 30% maior do que o CRA para 8 bits. Bem como, para 256 bits ele é 59,1% maior do que o CRA. O A1CSAH é 114,5% maior do que o CRA para 8 bits. Assim como, para 256 bits o CSA é 124% maior do que o CRA. Proporcionalmente ao CRA, o A1CSAH é o maior somador até 64 bits, após o CSA torna-se o maior em proporção. Na área do maior somador, para todos os tamanhos de operandos, podem ser colocados 2 CRAs.

64 63 Tabela 5.13: Área normalizada dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 1,300 1,450 1,525 1,563 1,581 1,591 A1CSAH 2,145 2,178 2,194 2,202 2,206 2,208 CLA 1,885 1,918 1,934 1,942 1,946 1,948 CRA 1,000 1,000 1,000 1,000 1,000 1,000 CSA 1,630 1,945 2,103 2,181 2,221 2,240 A Figura 5.13 ilustra a proporção de área entre os somadores e o CRA. Os somadores mantêm a proporção, em relação ao CRA, constante com o aumento do tamanho dos operandos. Contudo, a proporção de área do CSA teve um crescimento significativo para os operandos menores, mas para o A1CSA a proporção teve um crescimento menor. Esse fenômeno ocorre por causa da simplificação para os 4 primeiros bits. Porém, para operandos grandes a redução de área dessa simplificação é praticamente inexpressiva. Figura 5.13: Área normalizada dos somadores. A Tabela 5.14 mostra a razão da área entre os somadores. A área do A1CSA e A1CSAH foi dividida pela área do CLA e CSA, ao total há 4 pares de somadores. Em média o A1CSAH é 13,5% maior do que o CLA para todos os tamanhos de operandos. O A1CSA é 20,2% menor do que o CSA para 8 bits. Assim como, ele é 29% menor do que o CSA para 256 bits. O CSA é 26,6%, em média, maior do que o A1CSA para todos os tamanhos de operandos.

65 64 Tabela 5.14: Razão entre a área dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits Média A1CSA/CLA 0,690 0,756 0,789 0,805 0,813 0,817 0,778 A1CSAH/CLA 1,138 1,136 1,134 1,134 1,134 1,133 1,135 A1CSA/CSA 0,798 0,746 0,725 0,716 0,712 0,710 0,734 A1CSAH/CSA 1,316 1,120 1,043 1,009 0,993 0,986 1,078 A Figura 5.11 mostra a razão entre os pares comparados. O A1CSAH e CSA foi o par de somadores que teve a maior redução de área. O A1CSAH é 31% maior do que o CSA para 8 bits. Contudo, para 256 bits o A1CSAH e o CSA tem praticamente a mesma área. Nos demais pares de somadores comparados a área manteve-se praticamente constante. Figura 5.14: Razão entre a área dos somadores. 5.5 Power-Delay Product para os Somadores A Tabela 5.15 mostra a eficiência energética para os somadores implementados neste trabalho. O CRA possui o maior PDP para os tamanhos de operandos a partir de 16 bits. Contudo, a cada tamanho de operando um somador diferente possui o menor PDP. O CLA é 0,425 fj menos eficiente do que o A1CSAH para 8 bits. Bem como, ele é 5,989 fj menos eficiente do que o A1CSAH para 256 bits. A diferença de eficiência energética cresceu

66 65 14,091 vezes com o aumento de 32 vezes no tamanho dos operandos. O A1CSA é 0,609 fj menos eficiente do que o CSA para 8 bits e 1.447,966 fj mais eficiente do que o CSA para 256 bits. Ao aumentar em 32 vezes o tamanho dos operandos, a diferença de eficiência energética aumentou em 2.377,612 vezes. Tabela 5.15: Power-Delay Product dos somadores (fj). 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 9,667 24,964 70, , , ,440 A1CSAH 9,902 24,793 58, , , ,924 CLA 10,327 25,341 60, , , ,913 CRA 9,506 34, , , , ,787 CSA 9,058 26,056 88, , , ,406 A Figura 5.15 mostra a eficiência energética para os somadores. O crescimento do PDP com o aumento no tamanho dos operandos é significativo. O PDP dos somadores até 64 bits é praticamente insignificante perto do PDP dos somadores de 128 e 256 bits. Figura 5.15: Power-Delay Product dos somadores. O CRA é o somador com o maior PDP entre os somadores com o tamanho dos operandos grande. O A1CSA e o CSA possui o PDP intermediário. O menor PDP é o dos somadores A1CSAH e CLA. Assim como no atraso crítico, há a separação dos somadores em conjuntos de PDP. o atraso crítico dos somadores está dividido em conjuntos e o consumo de potência é praticamente um único conjunto.

67 66 Tabela 5.16: Eficiência energética dos somadores normalizada. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 1,039 0,726 0,534 0,413 0,379 0,350 A1CSAH 1,108 0,741 0,450 0,283 0,172 0,097 CLA 1,131 0,743 0,463 0,283 0,169 0,097 CRA 1,000 1,000 1,000 1,000 1,000 1,000 CSA 0,949 0,753 0,661 0,599 0,565 0,530 A Tabela 5.16 apresenta a eficiência energética dos somadores normalizada. O PDP de cada somador foi dividido pelo PDP do CRA. O CSA é o somador que tem a pior eficiência energética frente ao CRA a partir de 16 bits. O CSA é, em média, somente 32,4% mais eficiente do que o CRA para todos os tamanhos de operandos. Por outro lado, o A1CSAH e o CLA são os somadores mais eficientes energeticamente a partir de 32 bits. O A1CSAH e o CLA são 52,5% e 53%, respectivamente, mais eficientes, na média, para todos os tamanhos de operandos. Para tamanhos de operandos até 16 bits eles chegam a ser menos eficiente energeticamente do que o CRA. Contudo, para operandos maiores do que 16 bits, eles se tornam os somadores mais eficientes. Eles são 75% mais eficientes do que o CRA, em média, para operandos de 32 a 256 bits. No caso dos operandos de 256 bits, o A1CSAH e o CLA são 91% mais eficientes do que o CRA. Tabela 5.17: Razão entre a eficiência energética dos somadores. 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits Média A1CSA/CLA 0,918 0,978 1,154 1,461 2,242 3,613 1,728 A1CSAH/CLA 0,980 0,998 0,972 1,001 1,017 0,997 0,994 A1CSA/CSA 1,094 0,965 0,808 0,690 0,671 0,661 0,815 A1CSAH/CSA 1,167 0,985 0,681 0,472 0,304 0,182 0,632 A Tabela 5.17 mostra a razão da eficiência energética entre os somadores. O PDP do A1CSA e A1CSAH foi dividido pelo PDP do CLA e CSA, ao total há 4 pares de somadores. Em média, o A1CSAH e o CLA possuem a mesma eficiência energética para todos os tamanhos de operandos. O A1CSA é 9,4% menos eficiente do que o CSA para 8 bits. Contudo, a partir de 16 bits o CSA é menos eficiente energeticamente do que A1CSA. Para 256 bits, o A1CSA é 33,9% mais eficiente energeticamente do que o CSA. Em média, o A1CSA é 18,5%

68 67 mais eficiente energeticamente do que o CSA para todos os tamanhos de operandos. 5.6 Consumo de Potência por Unidade de Área para os Somadores A Tabela 5.18 mostra o consumo de potência por unidade de área. O A1CSAH possui o menor consumo de potência por unidade de área para todos os tamanhos de operandos e o CRA possui o maior consumo de potência por unidade de área. O CRA consome 0,209 Wm 2 de potência a mais do que o A1CSAH para 8 bits. Bem como, ele consome 0,238 Wm 2 de potência a mais do que o A1CSAH para 256 bits. O aumento no tamanho dos operandos em 32 vezes incrementou a diferença de consumo de potência por unidade de área em 1,138 vezes. A diferença de consumo de potência por unidade de área entre o CLA e o A1CSAH é de 0,010 Wm 2 a mais para o primeiro em 8 bits. Assim como, ela é de 0,012 Wm 2 a menos em favor do CLA para 256 bits. A diferença de consumo de potência por unidade de área aumentou em 1,2 vezes. O A1CSA consome 0,050 Wm 2 de potência a mais do que o CSA para 8 bits. Não obstante, ele consome 0,064 Wm 2 a mais de potência do que o CSA para 256 bits. Houve um crescimento de 1,28 vezes na diferença de consumo de potência por unidade de área entre o CSA e o A1CSA. Tabela 5.18: Consumo de potência por unidade de área dos somadores (Wm 2 ). 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA 0,586 0,559 0,550 0,540 0,541 0,543 A1CSAH 0,454 0,453 0,444 0,443 0,444 0,446 CLA 0,464 0,456 0,454 0,451 0,453 0,458 CRA 0,663 0,669 0,674 0,673 0,675 0,684 CSA 0,536 0,496 0,485 0,479 0,479 0,479 A Figura 5.16 mostra o consumo de potência por unidade de área dos somadores. Todos os somadores mantiveram praticamente a mesma relação de consumo de potência por unidade de área. Porém, o CSA teve uma leve queda no consumo de potência por unidade de área com o aumento no tamanho dos operandos.

69 Figura 5.16: Consumo de potência por unidade de área dos somadores. 68

70 69 6 Conclusões e Trabalhos Futuros 6.1 Conclusões Neste trabalho, a aceleração da cadeia de carry para o A1CSA foi proposta. No A1CSAH, proposta para acelerar a cadeia de carry, o carry é propagado em tempo log(n), no qual, n é o tamanho dos operandos. No A1CSA o carry é propagado em tempo n/4. O A1CSAH foi, em média, 12% mais rápido do que o CLA para todos os tamanhos de operandos. Contudo, o A1CSAH consome mais potência do que o somador de referência, o CLA, e é maior também. A área do CSA e do A1CSAH são praticamente iguais, mas o CSA tem o atraso crítico intermediário e o A1CSAH é o somador mais rápido entre os analisados. A cada 1%, em média, de redução no atraso crítico do A1CSAH há um aumento, em média, de 1% na área e no consumo de potência. Por outro lado, o A1CSA mostrou-se uma alternativa melhor em relação ao CSA. Ele é mais rápido, menor e consome menos potência do que o CSA para operandos maiores do que 32 bits. Assim, o A1CSA se torna uma alternativa muito mais vantajosa do que o seu concorrente por possuir um melhor compromisso entre o consumo de potência e o atraso crítico. Uma segunda contribuição deste trabalho foi a otimização do bloco A1 do A1CSA. Com isso, o bloco A1S, proposta deste trabalho, torna-se mais rápido e menor, contribuindo para reduzir o atraso crítico do A1CSA ante o CSA. 6.2 Trabalhos Futuros Gerar resultados de consumo de potência com atividade de chaveamento baseado na simulação. Neste trabalho foi considerado atividade de chaveamento de 50% sobre cada transistor, a qual dificilmente é uma atividade de chaveamento real sobre os transistores de um somador. Comparar os resultados do A1CSAH com os somadores Brent-Kung [Brent e Kung],

71 70 Ling [Ling 1966] e Kogge-Stone [Kogge e Stone 1973]. Esses somadores propagam o carry em log(n) e, também, limitam o número de conexões entre as portas lógicas. Implementar o CSA e A1CSA em formato de raiz quadrada. O primeiro módulo opera sobre os dois primeiros pares de bits dos operandos, o módulo seguinte opera sobre os próximos 4 pares de bits dos operandos, o módulo seguinte opera sobre os próximos 8 pares de bits dos operandos, etc. Compartilhar a lógica em comum de cada unidade somadora no CSA. Caracterizar o A1CSAH com o CRA como a unidade somadora do bloco básico e avaliar a área, o atraso crítico, a potência e a eficiência energética diante do A1CSAH implementado neste trabalho e do CLA. Mapear os somadores para outros nodos tecnológicos (65 nm, 90 nm, etc). Completar o fluxo de projeto CMOS com a síntese física, a verificação formal e a análise estática de consumo de potência e de atraso crítico.

72 71 Referências Bibliográficas BEDRIJ, O. J. Carry-Select Adder. IRE Transactions on Electronic Computers, EC, n. 11, p , Junho ISSN BERGERON, J. Writing Testbenches: Function Verification of HDL Models. Second edition. New York, NY - USA: Springer, ISBN BRENT, R. P.; KUNG, H. T. A Regular Layout for Parallel Adders. IEEE Transactions on Computers, v. 31, p BROWN, S.; VRANESIC, Z. Fundamentals of Digital Logic with VHDL Design. New York, NY, USA: McGraw-Hill, ISBN CHANG, T. Y.; HSIAO, M. J. Carry-Select Adder Using Single Ripple-Carry Adder. Electronics Letters, v. 34, n. 12, p , Outubro DESCHAMPS, J.-P.; BIOUL, G. J. A.; SUTTER, G. D. Synthesis of Arithmetic Circuits: FGPA, ASIC and Embedded Systems. First edition. USA: Wiley-Interscience, ISBN (cloth). FRANK, H. Uma Inverstigação sobre implementações tolerantes a falhas transientes de somadores Carry-Lookahead e Ripple-Carry em FPGA. Dissertação (Trabalho de Conclusão de Curso) Universidade Federal de Pelotas, Pelotas-RS, HE, Y.; CHANG, C.-H.; GU, J. An Area Efficient 64-bit Square Root Carry-Select Adder for Low Power Applications. IEEE International Symposium on Circuits and Systems, v. 4, p , Maio HWANG, K. Computer Arithmetic: Principles, architecture, and design. Purdue University: John Wiley & Sons, ISBN KIM, Y.; KIM, L.-S. A low Power Carry-Select Adder with Reduced Area. IEEE International Symposium on Circuits and Systems, v. 4, p. IV 218 IV 221, Maio 2001a. KIM, Y.; KIM, L.-S. 64-bit Carry-Select Adder with Reduced Area. Electronics Letters, v. 37, n. 10, p , Maio 2001b. KOGGE, P.; STONE, H. A Parallel Algorithm for the Efficient Solution of a General Class of Recurrence Equations. IEEE Transactions on Computers, C-22, p , LING, H. High Speed Binary Parallel Adder. IEEE Transactions on Electronic Computers, EC-15, p. 799, Outubro MESQUITA, E. et al. Arquitetura de Somador de Alto Desempenho Baseada no Recálculo Parcial com Carry Invertido. XXXIV Conferencia Latinoamericana de Informática, 2008.

73 72 MESQUITA, E. et al. RIC Fast Adder and its SET-Tolerant Implementation in FPGAs. IEEE International Conference on Field Programmable Logic and Applications, p , Agosto MESQUITA, E. M. Somadores Rápidos Tolerantes a Falhas Transientes Implementados em FPGA. Dissertação (Trabalho de Conclusão de Curso) Universidade Federal de Pelotas, Pelotas-RS, MEYER, A. Principes of Functional Verification. USA: Elsevier, ISBN OKLOBDZIJA, V. G. Speed VLSI Arithmetic Units: Adders and Multipliers in Design of High- Performance Microprocessor Circuits. USA: IEEE Press, ISBN RABAEY, J. M.; CHANDRAKASAN, A.; NIKOLIć, B. Digital Integrated Circuits: A Design Perspective. Second edition. USA: Prentice Hall, ISBN RAWAT, K.; DARWISH, T.; BAYOUMI, M. A Low Power and Reduced Area Carry-Select Adder. The 45th Midwest Symposium on Circuits and Systems, v. 1, p. I 467 I 470, Agosto TAKAGI, N. et al. Adders. In: CHEN, W.-K. (Ed.). The VLSI handbook. Second edition. USA: CRP Press - Taylor e Francis Group, ISBN X. TYAGI, A. A Reduced-Area Scheme for Carry-Select Adders. IEEE Transactions on Computers, v. 42, n. 10, p , Outubro VAHID, F. Sistemas Digitais: Projeto, Otimização e HDLs. Porto Alegre-Brasil: Artmed, Tradução Anatólio Laschuk. ISBN WEINBERGER, A.; SMITH, J. L. A Logic for High-Speed Addition. National Bureau of Standards, v. 591, p , YAN, S.; XIN, Z.; XI, J. High-Performance Carry-Select Adder Using Fast All-One Finding Logic. Second Asia International Conference on Modeling e Simulation, p , YAN, S.; XIN, Z.; XI, J. Low-Power Carry-Select Adder Using Fast All-One Finding Logic. IEEE International Conference on System of Systems Engineering, p. 1 5, 2008.

74 73 ANEXO A -- Células da Biblioteca Utilizadas na Síntese Lógica A Tabela A.1 mostra o número estimado de transistores para cada somador. O manual da biblioteca possui o gate count de cada célula, com isso é possível estimar o número de transistores de cada somador. As Tabelas A.2 e A.3 apresentam o número de cada célula utilizada por cada arquitetura de somador. Bem como, o total de células que um somador precisa. Tabela A.1: Número de transistores. Somador 8 bits 16 bits 32 bits 64 bits 128 bits 256 bits A1CSA A1CSAH CLA CRA CSA A ferramenta utiliza poucas células distintas da biblioteca ao realizar a síntese lógica. O A1CSAH é o somador mapeado com o maior número de células diferentes. Por outro lado, o CRA é o somador com o menor número de células distintas. Apesar da biblioteca possuir 869 células, das quais 699 poderiam ser utilizadas na síntese dos somadores. O DC utilizou apenas 17 células distintas para mapear os somadores.

75 74 Tabela A.2: Número de Células para o A1CSA, A1CSAH e CLA. Célula Gate Count Equação A1CSA A1CSAH CLA AN4D1BWP 2.5 a.b.c.d AN2XD1BWP 1.5 a.b AO21D1BWP 2 a.b + c AOI32D1BWP 2.5 a.b.c + d.e CKMUX2D1BWP 3 b.c + a.b CKXOR2D0BWP 3 a b FA1D0BWP 7 Full Adder IAO21D0BWP 2 (a.b + c) IND2D0BWP 2.5 a.b IND2D1BWP 2.5 a.b IOA21D0BWP 2 a + b.c ND2D0BWP 1 a.b ND3D0BWP 1.5 a.b.c ND4D1BWP 2 a.b.c.d OAI21D0BWP 1.5 (a + b).c OR2D1BWP 1.5 a + b XNR2D1BWP 3 a b Total

76 75 Tabela A.3: Número de Células para o CRA e CSA. Célula Gate Count Equação CRA CSA AN4D1BWP 2.5 a.b.c.d AN2XD1BWP 1.5 a.b AO21D1BWP 2 a.b + c AOI32D1BWP 2.5 a.b.c + d.e CKMUX2D1BWP 3 b.c + a.b CKXOR2D0BWP 3 a b FA1D0BWP 7 Full Adder IAO21D0BWP 2 (a.b + c) IND2D0BWP 2.5 a.b IND2D1BWP 2.5 a.b IOA21D0BWP 2 a + b.c ND2D0BWP 1 a.b ND3D0BWP 1.5 a.b.c ND4D1BWP 2 a.b.c.d OAI21D0BWP 1.5 (a + b).c OR2D1BWP 1.5 a + b XNR2D1BWP 3 a b Total

77 ANEXO B -- Artigo 76

78 Hierarchical Add-One Carry-Select Adder Jucemar Monteiro, José Almada Güntzel Department of Informatics and Statistics Federal University of Santa Catarina Florianópolis, S.C. Abstract This paper proposes a hierarchical add-one carry-select adder architecture optimized for cell-based VLSI generation. The architecture is compared to a previously proposed A1CSA architecture, as well as, to Carry-Select Adder (CSA), Carry- Lookahead, and Carry-Ripple Adder (CRA) architectures. Synthesis results for 45nm technology showed that the proposed A1CSAH architecture is, on average, 10.2% faster than the CLA. Power and area estimates showed that, for all bit-width, the A1CSAH is, on average, 13.5% and 8.5% largest and more power consumption, respectively, than CLA. Power-delay results reveal that, for all bit-width, the A1CSAH has the same energy-efficient than the CLA. 1. Introduction Addition is the most commonly used arithmetic operation within contemporary electronic systems. It has great importance not only in general purpose CPUs, but also in acceleration blocks, as part of arithmetic circuits. Besides used as a proper operation, it serves as the basis to many other arithmetic operations. The choice of which adder architecture to use is of utmost importance, since the performance of adders may determine the whole system performance [Rabaey, Chandrakasan and Nikolic 2003]. Area and power consumption are also relevant figures of merit to be considered, especially when the design targets VLSI realization. Recently, energy-efficiency has also become an important metric due to the growth of batterypowered portable device marked. Most works addressing adder architectures are focused on critical delay reduction by optimizing the carry propagation chain [Rabaey, Chandrakasan and Nikolic 2003], [Ercegovac and Lang 2004], [Oklobdzija 2001]. Such optimization can be accomplished at the logic-level, at transistor-level or at both. Transistor-level optimizations may use pass transistors, dynamic logic, etc. On the other hand, conventional physical design flow relies on standard-cells for layout generation. Although typical standard-cells libraries contain up to hundreds of cells, they are all designed using static CMOS style. The inclusion of user-created cells with other styles, as pass transistor or dynamic logic, is generally not allowed due to limitations of the design flow itself. Therefore, when designing high performance addition-based arithmetic circuits using cell-based VLSI design, designers must rely on logic-level optimized fast adder architectures. The Add-One Carry-Select Adder (A1CSA) [Chang and Hsiao 1998], [Kim and Kim 2001] has originally been proposed as a low-cost version of the Carry-Select Adder (CSA) [Bedrij 1962]. Later, a low power version of the A1CSA was also proposed [He, Chang and Gu 2005]. However, in order to achieve area/transistor reduction, those

79 A1CSA circuits, and a few others as well, explore pass transistor logic, which prevents their implementation in a standard-cells design flow. Recently, Mesquita et al. proposed a logic-level only A1CSA architecture, targeting FPGA-based design [Mesquita, Frank, Agostini and Güntzel 2007]. The main contribution of this paper relies on new organization to A1CSA architecture, hereinafter referred to as A1CSAH, specially tailored for standard-cells based design. The A1CSAH was compared to Carry-Ripple Adder (CRA), Carry-Lookahead (CLA), CSA and Mesquita's A1CSA (for the sake of simplicity, referred to as A1CSA). Synthesis results, obtained with Synopsys Design Compiler (DC) [Synopsys 2011], reveal that, for all bit-widths, the A1CSAH is the fastest adder architecture among the investigated ones. They also show that the A1CSAH is as energy-efficient adder architecture as the CLA architecture. Finally, the synthesis results pointed out that, for all bit-width), the A1CSAH is larger and consumes more power than CLA. However, A1CSAH is a few larger and consumes less power than CSA. The remaining of this paper is organized as follows. Section II presents both A1CSA and A1CSAH architectures and gives a brief review on related works, concerning the A1CSA. Synthesis results are presented and discussed in Section III. Section IV presents the most relevant conclusions of this work. 2. Add-One Carry-Select Adders(A1CSA) for Cell-Based Design The Carry-Ripple Adder (CRA) is known as the most area efficient, and at the same time, the slowest adder architecture [Ercegovac and Lang It has both time and area complexities O(n) [Oklobdzija 2001]. In the CSA, addition is divided into m modules of k bits each. The module has two k-bit wide adders (generally, CRAs), which perform two additions at the same time: one with CIN=0 (CIN means carry-in) and another with CIN=1. Such degree of parallelism makes the CSA one of the fastest adder architectures. On the other hand, the CSA area is about as twice as that of the CRA, for a given bit-width. The time and area complexities of the CSA are O(n/4) and O(2n), respectively. In the CLA, the addition is divided into m modules of k bits (usually k=4). The carries within each module are computed in parallel by using generate and propagate in order to anticipate the module carry out. When CLA modules are connected in hierarchical manner (CLAH), it presents time complexity O(log kn) [Oklobdzija 2001] and area complexity O(nlogn) [Amelifard, Fallah and Pedram 2005]. The philosophy behind the A1CSA relies on optimizing the CSA by replacing the adder with CIN=1 by a less expensive logic, known as "add-one logic". Most works on the A1CSA architecture perform transistor-level optimization on the "add-one logic" by using pass transistors [Chang and Hsiao 1998], [Kim and Kim 2001] [Bedrij 1962]. However, the design at the transistor-level prevents the standard-cells based A1CSA realization. On the other hand, the A1CSA architecture proposed by Mesquita et al. was designed at the logic-level only [Mesquita, Frank, Agostini and Güntzel 2007], to allow FPGA-based synthesis. In this work we consider an adapted version of Mesquita's A1CSA (referred to as A1CSA, simply) which block diagram is showed in Figure 1. In this diagram, the box labeled with "A1" represents the "add-one logic". An explicit multiplexer is responsible for choosing the correct result for each module, except for the least significant one.

80 (a) (b) Figure 1. A1 block (a) and A1S block (b) The add-one logic can be implemented based on the following properties of the binary addition [Kim and Kim 2001], [Mesquita, Frank, Agostini and Güntzel 2007]. Property 1: In an addition of two n-bit numbers with the least significant bit being 0 for both numbers, if the carry-in bit is changed from one value to another, the LSB of the addition is complemented and the other bits remain unchanged. Property 2: If the addition of two n-bit numbers with a carry-in of 0 has m 1s before the first occurrence of a 0 (starting from the LSB), then the least significant m+1 bits of the addition with a carry-in of 1 will have values complementary to the first m+1 bits of the addition with carry-in 0. Figure 2 shows an example of Properties 1 and 2. Such properties are used to derive the logic equations for the add-one block (A1). The obtained simplified equations are: S n = S 0n (1) S n+1 = S 0n S 0n+1 (2) S n+2 = S 0n+1. S 0n S 0n+2 (3) S n+3 = S 0n+2. S 0n+1. S 0n S 0n+3 (4) Example of application of Proprieties 1 and 2 is showed in the Figure 2: Cin 0 Cin 1 A (12) A (12) B (4) B (4) Output (16) Output (17) (a) Cin 0 Cin 1 A (1) A (1) B (6) B (6) Output (7) Output (8) (b) Figure 2. Example of Property 1 (a) and Property 2 (b)

81 The properties, showed the Figure 2, were used to derive the circuit for the "add-one logic". Figure 1(a) shows the designed circuit for the "A1" block in Figure 3. (i.e., for the "add-one logic" for A1CSA and A1CSAH). Analyzing the equations of the A1 block, one can notice that it is possible to incorporate the result selection into the A1 existing XOR gates, therefore eliminating the multiplexer. By doing so, the logic depth of an A1CSA module is reduced, resulting in delay reduction. It also contributes to reduce circuit area, and thus, to improve energyefficiency. The modified "add-one logic", called A1S, is showed in Figure 1(b). It was used to replace both the A1 block and the multiplexer in the A1CSA of Figure 3. Figure 3 presents the structure of a 16-bit width version of the proposed A1CSAH. It uses a single CLA per module. However, the carry selection is computed in a hierarchical manner, by a dedicated block called GPH. Similarity to hierarchical CLAs (CLAH), the GPH receives the propagate and generate of the modules. In the A1CSA and A1CSAH, the block to add-one incorporates the multiplexors. 3. Results and Discussions Figure 3. A1CSAH 16-bit wide The analyzed adder architectures A1CSA and A1CSAH were evaluated and compared against CRA, CSA and CLA. CSA is fast carry select adder architectures that may be adopted in a cell-based design flow. The CRA was also included in the study to serving as reference. In order to obtain reliable estimates for area, critical delay and power, 8, 16, 32, 64, 128 and 256-bit wide adders were described in Verilog and synthesized for TSMC 45nm standard-cells library using Synopsys Design Compiler (DC) [Mesquita, Frank, Agostini and Güntzel 2007] in Topographical mode. The DC mapped the CRAs by using the full adder (FA) cell available from the standard-cells library, thus providing the best possible CRA realizations within the automated design flow. The fast adder architectures were designed by splitting the total bit width into 4-bit wide modules (i.e., m=4). Each output function of block A1 was described in a separated

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação Sistemas Digitais INE 56 Suplemento à Aula -T Arquiteturas

Leia mais

Introdução a Sistemas Digitais

Introdução a Sistemas Digitais Introdução a Sistemas Digitais Definição Sistemas Digitais Projeto Revisão: Circuitos Combinacionais Circuitos Sequênciais Máquinas de Estados Sistemas Digitais Definição Um sistema digital é um sistema

Leia mais

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS. SEL Sistemas Digitais Prof. Homero Schiabel DISPOSITIVOS LÓGICOS PROGRAMÁVEIS SEL 414 - Sistemas Digitais Prof. Homero Schiabel 1. Introdução Operação do circuito lógico pode ser descrita por: Tabela da Verdade Expressão booleana Dispositivo de

Leia mais

IMPACTOS DO USO DE DIFERENTES ARQUITETURAS DE SOMADORES EM FPGAS ALTERA

IMPACTOS DO USO DE DIFERENTES ARQUITETURAS DE SOMADORES EM FPGAS ALTERA IMPACTOS DO USO DE DIFERENTES ARQUITETURAS DE SOMADORES EM FPGAS ALTERA Marcelo S. Porto, André M. C. Silva, Roger E. C. Porto, José Luís A. Güntzel, Luciano V. Agostini Grupo de Arquiteturas e Circuitos

Leia mais

Circuitos Combinacionais

Circuitos Combinacionais ! Circuitos Combinacionais x Sequenciais Combinacional - saídas dependem unicamente das entradas Entradas Circuito Combinacional Saídas Sequencial -háuma realimentação da saída para a entrada, denominada

Leia mais

Nível da Lógica Digital (Aula 6) Portas Lógicas e Lógica Digital Nível da Lógica Digital Estudar vários aspectos da lógica digital Base de estudo para os níveis mais elevados da hierarquia das máquinas

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 10 Circuitos Aritmeticos Prof. Leonardo Augusto Casillo Somador Binário Funções aritméticas como adição, subtração, podem ser

Leia mais

ENGC40 - Eletrônica Digital

ENGC40 - Eletrônica Digital ENGC40 - Eletrônica Digital 1 a Lista de Exercícios Prof. Paulo Farias 1 de setembro de 2011 1. A Figura 1 mostra um circuito multiplicador que recebe dois números binários x 1 x 0 e y 1 y 0 e gera a saída

Leia mais

Transistor. Portas Lógicas (2) Base; Coletor; Emissor.

Transistor. Portas Lógicas (2) Base; Coletor; Emissor. Nível da Lógica Digital Nível da Lógica Digital (Aula 6) Portas Lógicas e Lógica Digital Estudar vários aspectos da lógica digital Base de estudo para os níveis mais elevados da hierarquia das máquinas

Leia mais

Aula 10. Circuitos Aritméticos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 10. Circuitos Aritméticos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira Aula Circuitos Aritméticos SEL 44 - Sistemas Digitais Prof. Dr. Marcelo Andrade da Costa Vieira Somadores Circuitos Somadores l Circuitos que realizam operações aritméticas com números binários; l Geralmente

Leia mais

Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos

Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos 1 - ADIÇÃO BINÁRIA Computadores digitais e calculadoras realizam as várias operações aritméticas sobre os números representados em forma binária. Na adição binária apenas quatro situações podem ocorrer

Leia mais

ARITMÉTICA BINÁRIA. Adão de Melo Neto

ARITMÉTICA BINÁRIA. Adão de Melo Neto ARITMÉTICA BINÁRIA Adão de Melo Neto 1 Sumário Adição Multiplicação Subtração Divisão Complemento de 1 Complemento de 2 Representação de um número com sinal Sinal magnitude Complemento de 2 Valor em decimal

Leia mais

FPGA & VHDL. Tutorial

FPGA & VHDL. Tutorial FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves

Leia mais

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul

Pontifícia Universidade Católica Federal do Rio de Santa Grande Catarina do Sul DEPARTAMENTO: Engenharia Elétrica CURSO: Engenharia Elétrica DISCIPLINA: Sistemas Digitais CÓDIGO: EEL 7020 CRÉDITOS: 04 (02 Teoria e 02 Prática) CARGA HORÁRIA: 72 horas-aula REQUISITOS: OFERTA: Pré-requisito:

Leia mais

Organização e Arquitetura de Computadores. A Arquitetura no nível da lógica digital Prof.: Hugo Barros

Organização e Arquitetura de Computadores. A Arquitetura no nível da lógica digital Prof.: Hugo Barros Organização e Arquitetura de Computadores A Arquitetura no nível da lógica digital Prof.: Hugo Barros email@hugobarros.com.br Portas Lógicas e Álgebra de Boole Circuitos digitais o Construídos a partir

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação Conceitos Básicos de Eletrônica Digital (Parte IV) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

SISTEMAS DIGITAIS CIRCUITOS COMBINATÓRIOS TÍPICOS

SISTEMAS DIGITAIS CIRCUITOS COMBINATÓRIOS TÍPICOS CIRCUITOS COMBINATÓRIOS TÍPICOS Setembro de 4 CIRCUITOS COMBINATÓRIOS TÍPICOS - SUMÁRIO: CODIFICADORES DESCODIFICADORES MULTIPLEXERS DEMULTIPLEXERS SOMADORES / SUBTRACTORES COMPARADORES Setembro de 4 CIRCUITOS

Leia mais

Opções de Design para Circuitos Integrados CMOS

Opções de Design para Circuitos Integrados CMOS Opções de Design para Circuitos Integrados CMOS Para implementar um circuito integrado (CI) em CMOS é possível escolher entre as múltiplas possibilidades existentes no mercado. A escolha deve ser feita

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani)

Arquitetura de Computadores. Professor: Vilson Heck Junior (Material: Douglas Juliani) Arquitetura de Computadores Professor: Vilson Heck Junior (Material: Douglas Juliani) Agenda Conceitos Componentes Funcionamento ou tarefas Otimização e desempenho Conceitos Componente de Hardware que

Leia mais

Calculadora Simples em VHDL

Calculadora Simples em VHDL Calculadora Simples em VHDL Versão 2014 RESUMO Esta experiência consiste no projeto e implementação de um circuito digital simples com o uso de uma linguagem de descrição de hardware. São apresentados

Leia mais

Somadores Binários E.T.M./2005 (revisão)

Somadores Binários E.T.M./2005 (revisão) Somadores Binários E.T.M./2005 (revisão) RESUMO Esta experiência tem por objetivo a familiarização com somadores binários, notadamente os paralelos, que realizam a soma simultânea de todos os bits de dois

Leia mais

Circuitos Combinacionais. Arquitetura de Computadores I

Circuitos Combinacionais. Arquitetura de Computadores I Circuitos Combinacionais Arquitetura de Computadores I Roteiro } Introdução } Gerador e Verificador de Paridade } Comparadores } Circuitos aritméticos } Somador (Half Adder e Full Adder) } Subtrator (Meio

Leia mais

CALCULADORA SIMPLES COM ULA

CALCULADORA SIMPLES COM ULA CALCULADORA SIMPLES COM ULA Versão 2013 RESUMO 1 Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas para o desenvolvimento de circuitos que executam

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 4 Portas Lógicas Prof. Leonardo Augusto Casillo Analisando o circuito (1)... A Acesa Apagada S Apagada Acesa O emissor do transistor

Leia mais

FPGA & VHDL. Tutorial Aula 1. Computação Digital

FPGA & VHDL. Tutorial Aula 1. Computação Digital FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma

Leia mais

Eletrônica Digital I TE050. Circuitos Combinacionais

Eletrônica Digital I TE050. Circuitos Combinacionais Universidade Federal do Paraná Setor de Tecnologia Departamento de Engenharia Elétrica Eletrônica Digital I TE5 Circuitos Combinacionais Prof. Lúcio Mauro M. Tonon Circuitos Combinacionais Circuitos Combinacionais

Leia mais

CAPÍTULO 6 ARITMÉTICA DIGITAL

CAPÍTULO 6 ARITMÉTICA DIGITAL CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos

Leia mais

Parte # 2 - Circuitos Combinatórios

Parte # 2 - Circuitos Combinatórios CEFET Departamento de Engenharia Elétrica - DEPEL GELE 7163 Eletrônica Digital Parte # 2 - Circuitos Combinatórios 1 GELE 7163 Eletrônica Digital 2 Referências : Notas de Aula. Mendonça, Alexandre e Zelenovsky,

Leia mais

FPGA - Field Programmable Gate Array

FPGA - Field Programmable Gate Array FPGA - Field Programmable Gate Array 1985/86: Xilinx introduz nova família de PLDs FPGA - Field Programmable Gate Array agregados regulares de blocos lógicos configuráveis (CLB para XILINX) ligações programáveis

Leia mais

13 CIRCUITOS DIGITAIS MOS

13 CIRCUITOS DIGITAIS MOS 13 CIRCUITOS DIGITAIS MOS 13.1. CONCEITOS BÁSICOS 13.1.1. Tecnologias de CIs Digitais e Famílias de Circuitos Lógicos Cada família é fabricada com uma mesma tecnologia, possui a mesma estrutura e oferece

Leia mais

Representação de quantidade(número)

Representação de quantidade(número) Códigos Numéricos Representação de quantidade(número) Expressão de significância posicional Béabase A i osalgarismosdessabase ioíndiceposicionaldoalgarismo OalgarismodemaiorsignificadoéB-1 Exemplos 9875

Leia mais

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis

Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Projeto e Implementação de um Fatorial em Hardware para Dispositivos Reconfiguráveis Álamo G. Silva, Leonardo A. Casillo Departamento de Ciências Exatas e Naturais Universidade Federal Rural do Semi- Árido

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Lógica Computacional Aplicada. Prof. Dr. Fabian Vargas.

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Lógica Computacional Aplicada. Prof. Dr. Fabian Vargas. Índice Operações Aritméticas Básicas 1. Introdução 1.1. Notação em Complemento de 2 1.2. Overflow 2. Operação de Adição 3. Operação de Subtração 4. Operação de Multiplicação 5. Operação de Divisão Álgebra

Leia mais

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR Conforme discutido na última aula, cada operação lógica possui sua própria tabela verdade. A seguir será apresentado o conjunto básico de portas lógicas

Leia mais

Projeto de Somador com e sem Sinal. Qualificadores

Projeto de Somador com e sem Sinal. Qualificadores ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Somador com e sem Sinal Qualificadores César A. M. Marcon Planejando a Descrição de um Somador 2 Como descrever uma soma? S

Leia mais

EXPERIMENTOS COM SOMADORES RÁPIDOS PARA USO NA DCT 2-D. Roger Endrigo Carvalho Porto, Luciano Volcan Agostini

EXPERIMENTOS COM SOMADORES RÁPIDOS PARA USO NA DCT 2-D. Roger Endrigo Carvalho Porto, Luciano Volcan Agostini EXPERIMENTOS COM SOMADORES RÁPIDOS PARA USO NA DCT 2-D Roger Endrigo Carvalho Porto, Luciano Volcan Agostini Grupo de Arquiteturas e Circuitos Integrados DMEC Universidade Federal de Pelotas (UFPEL) Caixa

Leia mais

Trabalho 2: Projeto Elétrico e de Leiaute de um Inversor CMOS

Trabalho 2: Projeto Elétrico e de Leiaute de um Inversor CMOS Trabalho 2: Projeto Elétrico e de Leiaute de um Inversor CMOS 1. Introdução Dieison Soares Silveira Universidade Federal do Rio Grande do Sul UFRGS Instituto de Informática Programa de Pós-Graduação em

Leia mais

Trabalho 3: Projeto, Leiaute e Análise de um Buffer CMOS Multi-estágio

Trabalho 3: Projeto, Leiaute e Análise de um Buffer CMOS Multi-estágio 1. Introdução Trabalho 3: Projeto, Leiaute e Análise de um Buffer CMOS Multi-estágio Dieison Soares Silveira Universidade Federal do Rio Grande do Sul UFRGS Instituto de Informática Programa de Pós-Graduação

Leia mais

Prof. André Rabelo LÓGICA DIGITAL INTRODUÇÃO

Prof. André Rabelo LÓGICA DIGITAL INTRODUÇÃO Prof. André Rabelo LÓGICA DIGITAL INTRODUÇÃO INTRODUÇÃO Um sistema pode ser definido como sendo um conjunto de elementos que são interligados de alguma maneira para compor um todo e assim realizar funcionalidade

Leia mais

Circuitos Combinacionais Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Circuitos Combinacionais Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h Circuitos Combinacionais Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Circuitos Combinacionais Nessa aula será abordados os seguintes conceitos: Circuitos Exclusive-OR e Exclusive-NOR; Escalas

Leia mais

Memória SRAM 64x8 bits

Memória SRAM 64x8 bits UNIVERSIDADE FEDERAL DO PARANÁ Leonardo H. Menezes André N. Makoski Memória SRAM 64x8 bits Artigo elaborado como parte da avaliação da Disciplina de Circuitos Integrados Digitais, ministrada pelos Profs.:

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS SOMADORES DECIMAIS Versão 2012 RESUMO Nesta experiência será estudado um circuito aritmético de soma decimal a partir dos somadores binários de 4 bits (por exemplo, o circuito integrado 74283). A parte

Leia mais

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

CONCURSO PÚBLICO PARA PROFESSOR DE ENSINO MÉDIO E TÉCNICO, Nº 065/11/ PROCESSO Nº 5191/2017.

CONCURSO PÚBLICO PARA PROFESSOR DE ENSINO MÉDIO E TÉCNICO, Nº 065/11/ PROCESSO Nº 5191/2017. ETEC DE ILHA SOLTEIRA - ILHA SOLTEIRA CONCURSO PÚBLICO PARA PROFESSOR DE ENSINO MÉDIO E TÉCNICO, Nº 065/11/2017 - PROCESSO Nº 5191/2017. AUTORIZAÇÃO GOVERNAMENTAL CONTIDA NO ARTIGO 11 DA LEI COMPLEMENTAR

Leia mais

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES Prof. Juliana Santiago Teixeira julianasteixeira@hotmail.com INTRODUÇÃO INTRODUÇÃO O processador é o componente vital do sistema de computação, responsável

Leia mais

Representação de quantidade(número) Expressão de significância posicional

Representação de quantidade(número) Expressão de significância posicional Códigos Numéricos Representação de quantidade(número) Expressão de significância posicional Béabase A i osalgarismosdessabase ioíndiceposicionaldoalgarismo OalgarismodemaiorsignificadoéB-1 Exemplos 9875

Leia mais

Sistemas Digitais (SD) Lógica Programável

Sistemas Digitais (SD) Lógica Programável Sistemas Digitais (SD) Lógica Programável Aula Anterior n Na aula anterior: u Circuitos de controlo, transferência e processamento de dados u Exemplo de uma arquitectura simples de um processador 2 Planeamento

Leia mais

Departamento de Engenharia Elétrica e de Computação SEL 405 Lab. de Introdução aos Sistemas Digitais I Profa. Luiza Maria Romeiro Codá PRÁTICA Nº 6

Departamento de Engenharia Elétrica e de Computação SEL 405 Lab. de Introdução aos Sistemas Digitais I Profa. Luiza Maria Romeiro Codá PRÁTICA Nº 6 Departamento de Engenharia Elétrica e de Computação SEL 405 Lab. de Introdução aos Sistemas Digitais I Profa. Luiza Maria Romeiro Codá PRÁTICA Nº 6 UNIDADE LÓGICA ARITMÉTICA (ULA) E DECODIFICADOR PARA

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA RELATÓRIO CONTADOR DE 6 BITS PROGRAMÁVEL Trabalho apresentado à disciplina de Projeto de Circuitos Integrados Digitais,

Leia mais

Circuitos Combinacionais

Circuitos Combinacionais Circuitos Combinacionais Circuito combinacional: Possui portas lógicas conectadas para produzir valor dos sinais de saída Não possui armazenamento de valores no circuito Valor dos sinais de saída depende

Leia mais

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC Linguagem para descrever o funcionamento de um sistema (o que e como o sistema faz). O sistema descrito em HDL

Leia mais

3. Portas Lógicas. Objetivos. Objetivos. Introdução. Circuitos Digitais 31/08/2014

3. Portas Lógicas. Objetivos. Objetivos. Introdução. Circuitos Digitais 31/08/2014 Objetivos 3. Portas Lógicas Descrever a operação do inversor, da porta AND e da porta OR Descrever a operação da porta NAND e da porta NOR Expressar a operação da função NOT e das portas AND, OR, NAND

Leia mais

Processador: Conceitos Básicos e Componentes

Processador: Conceitos Básicos e Componentes Processador: Conceitos Básicos e Componentes Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF)

Leia mais

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 5: Análise de Circuitos Multiplexadores e Demultiplexadores

LABORATÓRIO DE ELETRÔNICA DIGITAL Experiência 5: Análise de Circuitos Multiplexadores e Demultiplexadores 22 1.Objetivos Utilizar um circuito multiplexador e um demultiplexador como elementos básicos de um sistema de transmissão de uma palavra de 8 bits. Utilizar o multiplexador para implementar uma função

Leia mais

Circuitos Lógicos Aula 22

Circuitos Lógicos Aula 22 Circuitos Lógicos Aula 22 Aula passada Armazenamento e transferência Paralela x Serial Divisão de frequência Contador Microprocessador Aula de hoje Aritmética binária Representação binária com sinal Complemento

Leia mais

3 Realização e Caracterização do Módulo Transmissor

3 Realização e Caracterização do Módulo Transmissor 38 3 Realização e Caracterização do Módulo Transmissor Este capítulo tem como objetivo estudar e caracterizar o módulo a ser desenvolvido na transmissão através da introdução de uma ferramenta computacional

Leia mais

Experimento 1 Objetivo: AND AND AND Material e Componentes Procedimento AND Nota: teste

Experimento 1 Objetivo: AND AND AND Material e Componentes Procedimento AND Nota: teste UNIVERSIDADE FEDERAL DO PIAUÍ CCN / Departamento de Física Disciplina Eletrônica básica Técnicas digitais Prática 11 Experimento 1 Objetivo: Estabelecer a tabela verdade para o gate básico AND. Todo circuito

Leia mais

ÁLGEBRA BOOLEANA E LÓGICA DIGITAL AULA 04 Arquitetura de Computadores Gil Eduardo de Andrade

ÁLGEBRA BOOLEANA E LÓGICA DIGITAL AULA 04 Arquitetura de Computadores Gil Eduardo de Andrade ÁLGEBRA BOOLEANA E LÓGICA DIGITAL AULA 04 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização de Computadores

Leia mais

Multiplexadores e Demultiplexadores

Multiplexadores e Demultiplexadores Multiplexadores e Demultiplexadores Multiplexador (MUX) é um circuito combinacional dedicado com a finalidade de selecionar, por meio de variáveis de seleção, uma de suas entradas, conectando-a à uma saída.

Leia mais

Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz

Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz Dispositivos Lógicos Programáveis (PLDs) Leandro Schwarz Conceito PLD - Programmable Logic Device; Circuito integrado com grande número de portas lógicas configuráveis, flip-flops e registradores; Permite

Leia mais

Circuito combinacional

Circuito combinacional Circuito combinacional É todo circuito cuja saída depende única e exclusivamente das várias combinações das variáveis de entrada. Estudando os circuitos combinacionais podemos entender o funcionamento

Leia mais

X Y Z A B C D

X Y Z A B C D 29) A seguinte tabela verdade corresponde a um circuito combinatório de três entradas e quatro saídas. Obtenha a tabela de programação para o circuito em um PAL e faça um diagrama semelhante ao apresentado

Leia mais

CI's das família TTL e CMOS

CI's das família TTL e CMOS Aula 04 CI's das família TTL e CMOS Prof. Tecgº Flávio Murilo 30/04/13 1 Famílias lógicas O que diferencia as famílias lógicas é o material no qual os circuitos integrados são construídos. RTL - Lógica

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Funções de Lógica Combinacional

Funções de Lógica Combinacional Fundamentos de Sistemas Digitais Funções de Lógica Combinacional prof. Dr. Alexandre M. Amory prof. Dr. Edson I. Moreno Referências Sugiro estudarem nesta ordem de preferência: Floyd, Cap 6. ppt segue

Leia mais

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA : UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMATICA LISTA DE EXERCÍCIOS DE SISTEMAS DIGITAIS Prof. Fernanda Gusmão de Lima Kastensmidt E Marcelo Porto (aluno mestrado PPGC) Descreva em VHDL,

Leia mais

Arquitetura de Computadores. Conjunto de Instruções

Arquitetura de Computadores. Conjunto de Instruções Arquitetura de Computadores Conjunto de Instruções Arquitetura do Conjunto das Instruções ISA (Instruction Set Architecture) Traduz para uma linguagem intermediária (ISA) os vários programas em diversas

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Representação de Números de Ponto Flutuante Aritmética

Leia mais

Introdução à Linguagem VHDL

Introdução à Linguagem VHDL Fundamentos de Sistemas Digitais Introdução à Linguagem VHDL prof. Dr. Alexandre M. Amory Referências Sugiro estudarem nesta ordem de preferência: Vahid, Cap 9 Ignorar verilog e SystemC Bem didático! um

Leia mais

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material de Fernanda Passos

Leia mais

Representação da Informação no Computador

Representação da Informação no Computador Escola de Ciências e Tecnologia UFRN Representação da Informação no Computador Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT3 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária Universidade Federal de Uberlândia Faculdade de Computação Representação e aritmética binária Prof. Renato Pimentel 1 Tipos de informação Representação por meio de sequências binárias: 8 bits (byte) Também

Leia mais

Circuitos Aritméticos e Representação Numérica por Resíduos

Circuitos Aritméticos e Representação Numérica por Resíduos UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA PROGRAMA DE PÓS-GRADUAÇÃO EM COMPUTAÇÃO MILENE HÄNDEL Circuitos Aritméticos e Representação Numérica por Resíduos Dissertação apresentada

Leia mais

UFMT. Ministério da Educação UNIVERSIDADE FEDERAL DE MATO GROSSO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO PLANO DE ENSINO

UFMT. Ministério da Educação UNIVERSIDADE FEDERAL DE MATO GROSSO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO PLANO DE ENSINO UFMT 1) IDENTIFICAÇÃO: Disciplina: Lógica Matemática e Elementos de Lógica Digital Ministério da Educação UNIVERSIDADE FEDERAL DE MATO GROSSO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO PLANO DE ENSINO Curso:

Leia mais

Complemento a Um e Complemento a Dois

Complemento a Um e Complemento a Dois Complemento a Um e Complemento a Dois Cristina Boeres (baseado no material de Fernanda Passos) Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Cristina Boeres (IC/UFF) Complemento

Leia mais

Projeto de Conclusão em Circuitos Digitais

Projeto de Conclusão em Circuitos Digitais Universidade Federal do Rio Grande do Sul Instituto de Informática Projeto de Conclusão em Circuitos Digitais Parte I Somador e Multiplicador Autor: Bruno Silva Guedes Id.: 159033 INF01058 Circuitos Digitais

Leia mais

3 a Lista de Exercícios

3 a Lista de Exercícios Universidade Federal de Santa Catarina Departamento de Informática e Estatística Bacharelado em Ciências da Computação INE 5406 - Sistemas Digitais - semestre 2010/2 Prof. José Luís Güntzel guntzel@inf.ufsc.br

Leia mais

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES CALCULADORA SIMPLES E.T.M./23 (revisão e adaptaçào) M.D.M. e E.T.M. (revisão) E.T.M./28 (revisão) RESUMO Esta experiência tem por objetivo a utilização de circuitos integrados de soma binária para o desenvolvimento

Leia mais

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral Processador de uso geral 1. Introdução: Um sistema digital completo é constituído de uma unidade controle e o bloco operacional. Na figura a seguir alguns elementos externos necessários para completar

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

Aula Expositiva 03. DCC 001 Programação de Computadores 2 o Semestre de 2011 Prof. Osvaldo Carvalho DCC

Aula Expositiva 03. DCC 001 Programação de Computadores 2 o Semestre de 2011 Prof. Osvaldo Carvalho DCC Aula Expositiva 03 2.2.5 Síntese de Circuitos Combinatórios (7 segmentos) 2.2.6 Multiplexadores e Demultiplexadores 2.3 Circuitos Sequenciais 2.3.1 Flip-flops e registradores 2.3.2 Barramentos e Controle

Leia mais

Universidade Federal do Pará Instituto de Tecnologia Faculdade de Engenharia Elétrica. Eletrônica Digital. Plano de Ensino 2015_2

Universidade Federal do Pará Instituto de Tecnologia Faculdade de Engenharia Elétrica. Eletrônica Digital. Plano de Ensino 2015_2 Universidade Federal do Pará Instituto de Tecnologia Faculdade de Engenharia Elétrica Eletrônica Digital Plano de Ensino 2015_2 Prof. Ivan Sebastião de Souza e Silva www.ufpa.br/ivan ivan@ufpa.br Eletrônica

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Circuitos Lógicos Combinacionais (Parte

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA

PONTIFÍCIA UNIVERSIDADE CATÓLICA P U C PONTIFÍCIA UNIVERSIDADE CATÓLICA DEPARTAMENTO DE ENGENHARIA E N G E N H A R I A LABORATÓRIO DE SISTEMAS DIGITAIS I SD I Prof. Dr. Aparecido S. Nicolett Prof. Dr. Sérgio Miranda Paz - Versão: 1. 2016

Leia mais

Microprocessadores. Arquitecturas Aritméticas Controladores

Microprocessadores. Arquitecturas Aritméticas Controladores Arquitecturas Aritméticas Controladores António M. Gonçalves Pinheiro Departamento de Física Covilhã - Portugal pinheiro@ubi.pt Números Inteiros sem sinal Usam normalmente a representação binária. com

Leia mais

Introdução à Computação: Introdução às Portas Lógicas

Introdução à Computação: Introdução às Portas Lógicas Introdução à Computação: Introdução às Portas Lógicas Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes),

Leia mais

LÓGICA DIGITAL - CONCEITOS. * Constantes. * Expressões: Aritméticas; Lógicas; Tabela Verdade; Relacionais; Booleanas. * Portas Lógicas.

LÓGICA DIGITAL - CONCEITOS. * Constantes. * Expressões: Aritméticas; Lógicas; Tabela Verdade; Relacionais; Booleanas. * Portas Lógicas. * Tipos de Dados. * Constantes. * Expressões: Aritméticas; Lógicas; Tabela Verdade; Relacionais; Booleanas. * Portas Lógicas. 1 TIPOS DE DADOS Dados inteiros Representação das informações pertencentes

Leia mais

Sempre que ocorre uma grande

Sempre que ocorre uma grande Nova abordagem para o ensino de Eletrônica Digital A tecnologia digital cresce de forma exponencial, novos equipamentos e sistemas são especialmente projetados para trabalhar em Automação. O projeto e

Leia mais

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. PROCESSADOR ULA Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. ULA Uma ULA típica pode realizar as operações artiméticas: - adição; - subtração; E lógicas: - comparação

Leia mais

Introdução à Computação

Introdução à Computação Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Introdução à Computação A Informação

Leia mais

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL Introdução ao VHDL Versão 2016 RESUMO Esta experiência consiste no estudo de descrições VHDL e no projeto e implementação de um circuito digital simples. São apresentados aspectos básicos da linguagem

Leia mais

Projeto de Circuito Combinacional

Projeto de Circuito Combinacional ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA) prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno 2 / 12 ULA Unidade

Leia mais

PORTAS E OPERAÇÕES LÓGICAS

PORTAS E OPERAÇÕES LÓGICAS 1.Portas Lógicas 1.1 - PORTAS E OPERAÇÕES LÓGICAS Uma porta logica ( gate ) é um circuito eletrônico, portanto uma peça de hardware, que se constitui no elemento básico e mais elementar de um sistema de

Leia mais

Barramento CoreConnect

Barramento CoreConnect Barramento CoreConnect MO801 1º semestre de 2006 Prof. Rodolfo Jardim de Azevedo Fabiana Bellette Gil - RA 028671 CoreConnect Agenda Conceitos básicos Introdução ao CoreConnect Arquitetura Referências

Leia mais

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD) SISTEMAS DIGITAIS (SD) MEEC Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 11: Título: Sumário: Circuitos combinatórios: Unidade Lógica e Aritmética Unidade Lógica e Aritmética (ULA). 2015/2016

Leia mais

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL. Introdução à VHDL Gustavo G. Parma Assunto: Introdução à VHDL. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL. 1 Introdução Teórica VHDL, VHSIC (Very High Speed Integrated

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS

Leia mais

Aula 8 - Unidade lógica aritmética e Multiplicadores

Aula 8 - Unidade lógica aritmética e Multiplicadores Aula 8 - Unidade lógica aritmética e Multiplicadores Prof. Renan Sebem Disciplina de Eletrônica Digital Graduação em Engenharia Elétrica Universidade do Estado de Santa Catarina Joinville-SC Brasil 15

Leia mais