Buscar

Circuitos Multiplicadores Array de Baixo Consumo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 94 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE CATÓLICA DE PELOTAS 
ESCOLA DE INFORMÁTICA 
PROGRAMA DE PÓS-GRADUACÃO EM INFORMÁTICA 
 
 
 
 
 
 
 
 
 
 
 
 
Circuitos Multiplicadores Array de Baixo Consumo 
de Potência Aplicados a Filtros Adaptativos 
 
 
por 
Leandro Zafalon Pieper 
 
 
 
 
Dissertação apresentada como 
requisito parcial para obtenção do grau de 
Mestre em Ciência da Computação 
 
 
 
 
Orientador: Prof. Dr. Eduardo Antônio César da Costa 
Co-orientador: Prof. Dr. Sérgio José Melo de Almeida 
 
 
 
 
DM-2008/8-005 
 
 
 
Pelotas, Agosto de 2008 
 2 
 
 
 
AGRADECIMENTOS 
 
Ao completar este trabalho, presto meus agradecimentos a todos que de alguma 
forma contribuíram de forma direta ou indireta. 
Agradeço a minha mãe e a minha namorada pelo incentivo dado. 
Aos meus colegas de laboratório, meu sincero obrigado, pela companhia e auxílio. 
Um especial agradecimento aos meus professores: orientador Prof. Dr. Eduardo 
Antônio César da Costa e co-orientador Prof. Dr. Sérgio José Melo de Almeida, pelo 
incentivo e ajuda ao longo desta jornada. Saibam que vossa amizade, apoio e 
companheirismo foram fundamentais para o desenvolvimento deste trabalho. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 3 
 
 
 
SUMÁRIO 
 
LISTA DE FIGURAS......................................................................................................... 5 
LISTA DE TABELAS........................................................................................................ 6 
LISTA DE ABREVIATURAS E SIGLAS ....................................................................... 7 
RESUMO............................................................................................................................. 8 
ABSTRACT ........................................................................................................................ 9 
1 INTRODUÇÃO .......................................................................................................... 10 
1.1 Motivação ................................................................................................................. 11 
1.2 Objetivos................................................................................................................... 11 
1.3 Metodologia............................................................................................................... 12 
1.3.1 Ambientes de descrição e análise dos multiplicadores............................................ 12 
1.3.2 Ferramenta automática de geração das descrições dos circuitos multiplicadores 
(RAMAGT) ......................................................................................................................... 14 
1.4 Principais contribuições do trabalho ...................................................................... 17 
1.5 Sumário ..................................................................................................................... 17 
2 POTÊNCIA E ATRASO EM CIRCUITOS CMOS................................................. 18 
2.1 Fontes de Consumo de Potência em Circuitos CMOS .......................................... 18 
2.1.1 Consumo de Potência Estática................................................................................. 19 
2.1.2 Consumo de Potência de Curto-Circuito................................................................. 20 
2.1.3 Consumo de Potência Dinâmica.............................................................................. 20 
2.1.4 Consumo de Potência pela Atividade de Glitching ................................................. 21 
3 OPERADORES ARITMÉTICOS EFICIENTES .................................................... 23 
3.1 Estado da Arte de Circuitos Multiplicadores......................................................... 23 
3.2 Operação de Multiplicação na Base 2m em Complemento de 2............................ 26 
3.3 Multiplicador Booth Modificado............................................................................. 28 
3.4 Somador do tipo Carry Save Adder (CSA)............................................................ 30 
3.5 Circuitos Somadores Compressores ....................................................................... 32 
3.6 Sumário ..................................................................................................................... 35 
4 OTIMIZAÇÕES NOS BLOCOS DE MULTIPLICAÇÃO NA BASE 2m ............. 36 
4.1 Técnicas para otimizações dos blocos de multiplicação m=4................................ 38 
4.1.1 Otimização usando blocos de multiplicação m=2 e somadores RCA ..................... 38 
4.1.2 Otimização usando blocos de multiplicação m=2 e somadores CSA...................... 39 
4.1.3 Uso de blocos de multiplicação dedicados 4:2 e RCA............................................ 41 
4.1.4 Análise Comparativa ............................................................................................... 42 
4.2 Aplicação da segunda técnica (m=2 e CSA) a diferentes valores de m ................ 43 
 4 
4.2.1 Análise comparativa entre multiplicadores com diferentes valores de m ............... 47 
4.2.2 Análise comparativa entre circuitos multiplicadores array na base 2m e Booth 
modificado ............................................................................................................... 52 
4.3 Sumário ..................................................................................................................... 56 
5 CIRCUITOS SOMADORES EFICIENTES APLICADOS AOS 
MULTIPLICADORES ARRAY NA BASE 2m ................................................................ 57 
5.1 Extensão dos Circuitos Somadores Compressores para Blocos 8:2 e 16:2 ......... 57 
5.2 Aplicação dos Compressores a Multiplicadores Array na Base 2m ...................... 61 
5.2.1 Análise Comparativa de Circuitos Multiplicadores Array na Base 2m Utilizando 
Somadores Compressores........................................................................................ 64 
5.3 Sumário ..................................................................................................................... 67 
6 ESTUDO DE CASO: MULTIPLICADORES ARRAY NA BASE 2m 
OTIMIZADOS APLICADOS A FILTROS DIGITAS............................................ 68 
6.1 Filtros FIR com Coeficientes Fixos ......................................................................... 69 
6.1.1 Aplicação dos Multiplicadores Array Otimizados em Arquiteturas Totalmente 
Seqüenciais .............................................................................................................. 70 
6.1.2 Aplicação dos Multiplicadores Array Otimizados em Arquiteturas Semi - Paralelas
 71 
6.2 Arquitetura de Filtro FIR com Coeficientes Adaptativos .................................... 75 
6.2.1 Algoritmo Adaptativo LMS (Least Mean Square) .................................................. 76 
6.2.2 Aplicação dos Multiplicadores Array Otimizados em Arquitetura Dedicada para o 
Algoritmo LMS ....................................................................................................... 77 
6.3 Sumário ..................................................................................................................... 79 
 
7 CONCLUSÕES............................................................................................................ 80 
7.1 Trabalhos futuros ..................................................................................................... 81 
 
REFERÊNCIAS ............................................................................................................... 83 
 
ANEXOS ...........................................................................................................................88 
 
 
 
 
 
 
 
 
 
 
 
 
 5 
 
 
 
 
LISTA DE FIGURAS 
 
Figura 1.1 Metodologia para estimativa de área, atraso e potência dos circuitos 
multiplicadores array na base 2m.................................................................... 13 
Figura 1.2 Metodologia usada o desenvolvimento da ferramenta RAMAGT................. 15 
Figura 1.3 Tela principal da ferramenta RAMAGT ........................................................ 16 
Figura 1.4 Exemplo de descrições VHDL e BLIF geradas pela ferramenta RAMAGT . 16 
Figura 2.1 Esquema de contribuição de glitches para dissipação de potência................. 22 
Figura 3.1 Exemplo de multiplicação de 4 bits base-4(m=2) em complemento de 2 ...... 27 
Figura 3.2 Estrutura geral para multiplicação na base 2
m 
em complemento de 2 ............ 27 
Figura 3.3 Exemplo de multiplicador array base 4 de 8 bits em complemento de 2 ...... 28 
Figura 3.4 Exemplo de multiplicação de 8 bits usando o algoritmo Booth Modificado . 29 
Figura 3.5 Exemplo de arquitetura Booth Modificado de 8 bits...................................... 30 
Figura 3.6 Exemplo de um somador Carry Save ............................................................. 31 
Figura 3.7 Exemplo de soma de números de 4 bits usando a estrutura Carry Save ........ 31 
Figura 3.8 Estrutura de um circuito somador compressor 4:2 ......................................... 32 
Figura 3.9 Um compressor 4:2 baseado em multiplexador ............................................. 34 
Figura 4.1 Exemplo de estrutura do Operando I.............................................................. 36 
Figura 4.2 Representação do bloco Tipo I de multiplicação m=2 ................................... 36 
Figura 4.3 Bloco de multiplicação (m=4) Tipo I composto por blocos m=2 e RCA...... 39 
Figura 4.4 Bloco de multiplicação (m=4) Tipo I composto por blocos m=2 e CSA ...... 40 
Figura 4.5 Bloco de multiplicação (m=4) Tipo I composto por blocos de mult. 4:2....... 41 
Figura 4.6 Exemplo completo de multiplicação de 8 bits com blocos m=4 otimizados 
Tipo I, Tipo II e Tipo III................................................................................. 44 
Figura 4.7 Exemplo de uma multiplicação de 16 bits com blocos de multiplicação m=8 
otimizados....................................................................................................... 46 
Figura 4.8 Bloco de multiplicação otimizado m=3 utilizando blocos dedicados 1:2 ...... 47 
Figura 4.9 Gráficos com os resultados de área, atraso e consumo de potência dos 
multiplicadores para diferentes valores de m ................................................. 51 
Figura 4.10 Gráficos das simulações dos multiplicador para área, atraso e potência........ 55 
Figura 5.1 Estrutura interna de um compressor 8:2 ......................................................... 59 
Figura 5.2 Estrutura interna de um compressor 16:2 ....................................................... 60 
Figura 5.3 Exemplo de multiplicação de 16 bits m=4 utilizando compressores 4:2........ 63 
Figura 5.4 Estrutura de circuito multiplicador de 16 bits m=4 utilizando compressores 4:2
 ........................................................................................................................ 64 
Figura 6.1 Exemplo de filtro FIR de 8 taps ..................................................................... 71 
Figura 6.2 Parte operativa das implementações seqüenciais do filtro FIR ...................... 72 
Figura 6.3 Parte Operativa das implementações semi-paralelas do filtro FIR................. 74 
Figura 6.4 Elementos de um filtro FIR com coeficientes adaptativos ............................. 76 
Figura 6.5 Arquitetura do hardware dedicado para o algoritmo adaptativo LMS .......... 78 
 
 6 
 
 
 
 
LISTA DE TABELAS 
 
Tabela 3.1 Tabela verdade de um compressor 4:2........................................................... 33 
Tabela 4.1 Resultados para multiplicadores m=2 ............................................................ 38 
Tabela 4.2 Resultados de Área, atraso e potência para multiplicadores array de 16 bits 
na base 16....................................................................................................... 42 
Tabela 4.3 Produto atraso-potência (AP)......................................................................... 43 
Tabela 4.4 Possibilidades de otimizações dos blocos de multiplicação .......................... 46 
Tabela 4.5 Resultados para multiplicadores m=3 ............................................................ 48 
Tabela 4.6 Resultados para multiplicadores m=4 ............................................................ 48 
Tabela 4.7 Resultados para multiplicadores m=5 ............................................................ 48 
Tabela 4.8 Resultados para multiplicadores m=6 ............................................................ 49 
Tabela 4.9 Resultados das simulações para m=8 Otimizado........................................... 51 
Tabela 4.10 Resultados das simulações dos Multiplicadores na base 2m e Booth 
Modificado..................................................................................................... 53 
Tabela 5.1 Tabela verdade de um compressor 8:2........................................................... 59 
Tabela 5.2 Tabela verdade de um compressor 16:2......................................................... 61 
Tabela 5.3 Número de linhas de somas de produtos parciais em multiplicadores nas 
bases 16 e 256 ................................................................................................ 65 
Tabela 5.4 Resultados para multiplicadores m=4 Otimizado 1 com o uso de 
compressores.................................................................................................. 66 
Tabela 5.5 Resultados para multiplicadores m=8 Otimizado com compressores ........... 66 
Tabela 6.1 Resultados de área, atraso e energia normalizada por amostra para o filtro 
seqüencial....................................................................................................... 72 
Tabela 6.2 Resultados de área, atraso e energia normalizada por amostra para o filtro 
semi-paralelo.................................................................................................. 75 
Tabela 6.3 Valores de área, atraso e consumo de potência da arquitetura para o 
algoritmo LMS .............................................................................................. 79 
 
 
 
 
 
 
 
 
 
 
 
 
 7 
 
 
 
 
 
LISTA DE ABREVIATURAS E SIGLAS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ASICs Application Specific Integrated Circuit 
BLIF Berkeley Logic Interchange Format 
CMOS Complementary Metal Oxide Semiconductor 
CSA Carry Save Adder 
CSL C Scripting Language 
DSP Digital Signal Processing 
FIR Finite Impulse Response Filter 
FPGA Field Programmable Gate Array 
LMS Least Mean Squares Algorithms 
MAC Multiplier/Accumulator 
NMOS Negative Channel Metal Oxide Semiconductor 
PDP Power Delay Product 
PLA Programmable Logic Arrays 
PMOS Positive Channel Metal Oxide Semiconductor 
RCA Ripple Carry Adder 
SIS Sequential Interactive Synthesis 
SLS Switch Level Simulator 
VHDL VHSIC Hardware Description Language 
VHSIC Very High Speed Integrated Circuits 
VLSI Very Large Scale Integration 
 
 
 
 
 8 
 
 
 
 
 
RESUMO 
 
O objetivo principal deste trabalho é a implementação e análise de novas 
arquiteturas de circuitos multiplicadores array digitais recentemente apresentados no meio 
cientifico com diferentes técnicas de redução de potência, tais como a utilização de 
eficientes estruturas de circuitos somadores, bem como a otimização dos blocos dedicados 
de multiplicação,que permitem a operação de multiplicação na base 2m. A proposta de 
novas arquiteturas consiste em operações de multiplicação em complemento de 2 e que 
mantenham a mesma regularidade de um multiplicador array convencional. As arquiteturas 
podem operar com números na base 2m, onde m representa o grupo de bits de multiplicação. 
Em um multiplicador array convencional, onde a operação de multiplicação é realizada bit 
a bit, o valor de m é igual a 1 (operação na base 2). Neste trabalho, são apresentadas novas 
arquiteturas de multiplicadores que operam em diferentes bases, o que permite a redução do 
número de linhas de produtos parciais, com impactos diretos no aumento de desempenho e 
redução do consumo de potência. A implementação dos diferentes circuitos multiplicadores 
foi realizada no nível textual (nível de portas lógicas), onde circuitos multiplicadores de 16, 
32 e 64 bits são comparados em termos de parâmetros de área, atraso e consumo de 
potência utilizando os ambientes SIS (para valores de área e atraso) e SLS (para estimação 
de valores de consumo de potência). Como estudos de caso, as diferentes arquiteturas de 
circuitos multiplicadores propostas neste trabalho foram aplicadas em filtros digitais de 
resposta finita ao impulso (FIR) e em arquitetura dedicada de algoritmo de filtragem 
adaptativa LMS (Least Mean Square). 
 
 
 
 
Palavras-Chave: multiplicadores array, Filtros digitais, baixa potência 
 9 
Title: “Low-Power Array Multipliers Circuits for Adaptive Filters” 
 
 
 
 
Abstract 
 
The main goal of this work is the implementation and analyzes of new array 
multiplier architectures. These new architectures were recently presented in the scientific 
community by including different power reduction techniques, such as the use of efficient 
adder circuits and the optimization of the dedicated multiplication structures that allow the 
multiplication operation in the radix 2m. The new multipliers operate in 2´s complement and 
keep the same regularity presented by a conventional array multiplier. The architectures 
operate in the radix 2m, where m represents the group of bits multiplied at a time. In a 
conventional array multiplier, where the multiplication is performed bit by bit, m assumes 
value equal 1 (radix 2 operation). In this work, the new multiplier architectures operate in 
different radices, leading to a reduction in the number of partial product lines, enabling 
higher performance and power reduction in the multipliers. The 16, 32 and 64 bit width 
multipliers were described in textual language (gate level), and the comparisons between 
the multipliers are preformed in terms of area, delay and power consumption by using SIS 
environment (for area and delay results) and SLS tool (for power consumption estimation). 
In this work we have applied the proposed optimized multipliers in digital filtering 
algorithms such as finite impulse response (FIR) and dedicated architecture for the LMS 
(Least Mean Square) adaptive filtering. 
 
 
 
 
 
 
 
 
Keywords: array multipliers, digital filters, low power 
 10 
1 INTRODUÇÃO 
 
A rápida e crescente inovação em dispositivos VLSI (Very Large Scale Integration) 
impulsiona a utilização das tecnologias de fabricação aos seus limites, dentre as quais a 
verificação da dissipação de potência é um dos problemas de maior preocupação. 
Equipamentos portáteis, como notebooks, telefones celulares, handhelds, aparelhos 
biomédicos portáteis, entre outros, necessitam de um alto desempenho e baixo consumo de 
potência. Neste contexto, aspectos de baixa dissipação de potência, exigem a pesquisa de 
novas arquiteturas confiáveis que possam ser testadas e fabricadas e que levem em 
consideração as necessidades de sistemas eletrônicos portáteis e de funções diversas 
(COSTA, 2002). Na verdade, tem-se atualmente a ênfase crescente no projeto de circuitos 
integrados de baixa potência e sistemas de alto desempenho e que levem em consideração 
aspectos como densidade de integração, velocidade de operação e freqüência de relógio. 
Este trabalho consiste na implementação de novas arquiteturas de circuitos 
multiplicadores que levam em consideração técnicas para o aumento de desempenho e 
redução do consumo de potência, tais como o uso de circuitos somadores eficientes 
(compressores) (WEINBERGER, 1981) e a otimização dos blocos dedicados de 
multiplicação, que permitem a operação de multiplicação na base 2m. As novas arquiteturas 
de circuitos multiplicadores foram implementadas em linguagem textual no formato BLIF 
(Berkeley Logic Interchange Format) e apresentam como principal características a 
regularidade e redução de caminhos críticos e transições espúrias que são propagadas ao 
longo do array, tornando possível a redução do consumo de potência em suas arquiteturas. 
As novas arquiteturas de circuitos multiplicadores propostas são aplicadas em 
estruturas dedicadas de filtros digitais, que incluem a filtragem de resposta finita ao 
impulso (FIR – Finite Impulse Response) e algoritmo de filtragem adaptativa LMS (Least 
Mean Square) (HAYKIN, 2002). Estes filtros foram escolhidos como estudos de caso, por 
envolverem um bom número de operadores aritméticos em suas estruturas. Neste caso, as 
diferentes arquiteturas de circuitos multiplicadores são aplicadas a estes filtros, onde são 
reportados os resultados de área, atraso e consumo de potência destes circuitos. Os 
principais resultados apresentados mostram a eficiência dos filtros FIR e adaptativo, 
quando do uso dos multiplicadores otimizados propostos neste trabalho. 
 11 
1.1 Motivação 
 
Na área de Processamento Digital de Sinais (Digital Signal Processing - DSP) os 
circuitos que implementam os diversos algoritmos, incluem um elevado número de 
operadores aritméticos. Dentre estes operadores, os circuitos multiplicadores são 
responsáveis por uma parte significativa do consumo de potência global no processamento 
dos sinais digitais. Desta forma, a proposta de novas arquiteturas de circuitos 
multiplicadores de alto desempenho e baixo consumo contribui para o projeto de circuitos 
mais eficientes nestas áreas de aplicação. 
Diante do quadro exposto, surge a motivação em analisar em diferentes níveis de 
abstração os circuitos multiplicadores apresentados em (COSTA, 2002) com diferentes 
técnicas de redução do consumo de potência, como a utilização de eficientes estruturas de 
circuitos somadores e a otimização dos blocos dedicados de multiplicação que permitem a 
operação de multiplicação na base 2m. Os multiplicadores otimizados propostos são 
aplicados em filtros digitais de resposta finita ao impulso e algoritmo de filtragem 
adaptativa LMS. 
 
1.2 Objetivos 
 
O principal objetivo deste trabalho é implementar e analisar o desempenho de 
diferentes arquiteturas de multiplicadores digitais de 16, 32 e 64 bits presentes na literatura. 
São investigados circuitos multiplicadores paralelos, sendo estes chamados array Binário 
na base 2m (COSTA, 2002). O uso de somadores eficientes do tipo compressores 4:2, 8:2 e 
16:2 nas linhas de produtos parciais e a otimização dos blocos dedicados de multiplicação 
m:m e 1:m também são alvo deste trabalho. 
A análise comparativa dos resultados foi efetuada considerando as métricas de área, 
atraso e consumo de potência para multiplicadores com diferentes grupos de bits (desde m 
= 2 – multiplicação na base 4 até m = 8 – multiplicação na base 256). A otimização destes 
blocos permite explorar a principal característica do multiplicador array que é o aspecto da 
regularidade. Assim, pode-se ter um circuito multiplicador regular com um reduzido 
 12 
número de linhas de produtos parciais. Esta redução tem um impacto direto no aumento de 
desempenho e redução do consumo de potência dos multiplicadores. 
Uma ferramenta degeração automática dos circuitos multiplicadores, desenvolvida 
no âmbito deste trabalho, chamada RAMAGT (JACCOTTET, 2008), permite a análise de 
diferentes arquiteturas de multiplicadores com diferentes larguras de operandos e diferentes 
bases de operação (desde 4 até 256). O objetivo desta ferramenta é a geração de uma 
biblioteca de circuitos multiplicadores array com aspectos de aumento de desempenho e 
redução do consumo de potência. Deve-se destacar que todas as técnicas propostas neste 
trabalho estão agregadas à ferramenta de geração automática. 
Como objetivo final deste trabalho, tem-se a aplicação dos multiplicadores 
otimizados em arquiteturas dedicadas de filtros FIR e algoritmo de filtragem adaptativa 
LMS. 
 
1.3 Metodologia 
 
Para cada uma das fontes de consumo de potência de um circuito integrado, existem 
várias técnicas visando a sua estimativa de modo eficiente considerando os diversos fatores 
que definem os seus modelos. No presente trabalho, o enfoque é o consumo de potência 
dinâmica, pois este representa a maior parcela de consumo de potência de um circuito 
integrado (WESTE, 1994). A seguir são apresentados os principais ambientes de descrição, 
análise e geração dos multiplicadores array na base 2m. 
 
1.3.1 Ambientes de descrição e análise dos multiplicadores 
 
O procedimento completo de um projeto que envolve a análise de potência de um 
circuito consiste inicialmente em estabelecer um nível de descrição da arquitetura do 
circuito a ser analisada. Esta descrição fornece para a ferramenta de análise de potência 
uma lista de todos os diferentes módulos que têm de ser analisados bem como suas 
complexidades. O diagrama da metodologia utilizada neste trabalho é mostrado na Figura 
1.1. A descrição do fluxo completo da metodologia utilizada neste trabalho, é apresentada 
nos Anexos I e II. Inicialmente a descrição dos circuitos é realizada no formato BLIF 
 13 
(Berkeley Logic Interchange Format) (BERKELEY, 2007), cujo objetivo é descrever uma 
hierarquia do circuito no nível lógico na forma textual. Este formato é mapeado para uma 
biblioteca que contém a funcionalidade das portas lógicas, além das informações de 
capacitâncias e atrasos característicos. 
 
 
 
 
(a) (b) 
Figura 1.1 – Metodologia para estimativa de área, atraso e potência dos circuitos multiplicadores array 
na base 2m 
 
Utiliza-se o ambiente SIS (SENTOVICH, 1992) para efeitos de síntese e simulação 
dos circuitos, além de cálculos de área e atraso. Entretanto para estimativa do consumo de 
potência dos circuitos, utiliza-se a ferramenta no nível de transistores SLS (GENDEREN, 
1989). 
Os valores de área são apresentados em termos do número de literais, onde 1 literal 
corresponde aproximadamente a 2 transistores. Os valores de atraso são obtidos a partir do 
modelo de atraso geral da biblioteca mcnc. Os valores do consumo de potência dos 
circuitos são obtidos a partir da ferramenta SLS após a conversão do circuito do formato 
BLIF para o formato no nível de transistores desta ferramenta. Os resultados de potência 
são obtidos após a aplicação de 10000 vetores randômicos de excitação às entradas 
primárias do circuito, de acordo com os resultados apresentados em (COSTA, 2002). Para 
as simulações dos multiplicadores foi utilizada a tecnologia fishbone de 1.2 micrometros 
 14 
(Sea of gates, CMOS, Semi-Custom, VDD=5V) (TUDELF, 2008). A ferramenta SLS simula 
o comportamento do circuito ao longo do tempo. De acordo com os parâmetros do 
transistor e suas interconexões, o atraso é calculado para as diferentes transições no 
circuito. Neste cálculo, são utilizados os tamanhos dos transistores, as resistências de 
interconexão e valores de capacitâncias. Para encontrar os tempos de subida e descida 
assim como valores estáveis dos sinais. Os tempos de subida e descida são computados pela 
interpretação de uma rede RC para cada nó do circuito. Desta forma, a dissipação média do 
circuito é calculada considerando o atraso genérico de cada porta lógica do circuito. 
A partir da descrição no formato BLIF dos circuitos, pode-se proceder à conversão 
desta descrição para o formato VHDL (VHSIC – Very High Speed Integrated Circuits – 
Hardware Description Language) (RUSHTON, 1998) utilizando um programa de 
conversão especifico (blif2vhdl), como mostrado na Figura 1.1. Este fluxo possibilita a 
prototipação dos circuitos multiplicadores voltada para FPGA (Field Programmable Gate 
Array). Neste formato, realiza-se a síntese e a simulação das descrições dos multiplicadores 
por intermédio do programa Quartus II (ALTERA, 2006) que utiliza componentes FPGA 
da fabricante Altera (ALTERA, 2002). Os resultados de área, atraso e potência são obtidos 
no próprio ambiente para o componente FPGA EP1S10B67C6 da família Stratix. Vale 
ressaltar que este fluxo é utilizado neste trabalho, devido ao fato do hardware dedicado 
para o algoritmo de filtragem adaptativa LMS estar descrito em linguagem VHDL. Neste 
caso, os circuitos multiplicadores testados neste circuito são também descritos em VHDL. 
 
1.3.2 Ferramenta automática de geração das descrições dos 
circuitos multiplicadores (RAMAGT) 
 
Com o aumento da complexidade dos sistemas digitais, torna-se cada vez mais 
difícil a implementação de descrições textuais dos circuitos de forma manual. Em 
particular, os circuitos multiplicadores desenvolvidos neste trabalho, apresentam uma 
grande complexidade, principalmente para os casos onde se utiliza uma maior largura dos 
operandos. Para contornar este problema, propõe-se neste trabalho uma ferramenta que 
possa gerar automaticamente as descrições textuais dos circuitos multiplicadores array na 
base 2m (JACCOTTET, 2008). A idéia desta ferramenta é gerar, de forma automática, as 
 15 
descrições de multiplicadores na base 2m para qualquer largura de operandos (n bits) e para 
m grupos de bits entre (m=2 – base 4 e m=8 – base 256). 
 
A metodologia utilizada para o desenvolvimento da ferramenta RAMAGT é 
mostrada no fluxo da Figura 1.2. 
 
Figura 1.2 - Metodologia usada no desenvolvimento da ferramenta RAMAGT 
 
Como pode ser verificado através da Figura 1.2, a ferramenta é implementada 
usando duas linguagens de programação, uma delas é a C++ que gera arquivos executáveis 
e a outra é chamada CSL (C Scripting Language) (KOCH, 2002) que é uma linguagem 
interpretada que não necessita de compilação (OUSTERHOUT, 1998). A linguagem C++ é 
utilizada para realizar a interface entre o usuário e o programa para estabelecer os 
parâmetros da descrição a ser gerada automaticamente. As descrições dos blocos básicos de 
multiplicação e soma dos circuitos estão dispostos em uma biblioteca onde, através da 
linguagem CSL, ocorre a seleção e ligação destes blocos, conforme os parâmetros inseridos 
pelo usuário. Outra característica desta ferramenta é a propriedade de poder gerar várias 
descrições ao mesmo tempo, ou seja, pode-se abrir várias janelas da ferramenta 
simultaneamente. 
Na Figura 1.3 é mostrada a tela de seleção e inserção dos parâmetros da descrição 
do multiplicador a ser gerado. Primeiramente é selecionado o valor do grupo de m (2 a 8). 
O próximo passo é inserir a largura dos operandos do multiplicador e finalmente clicar no 
botão “GERAR”. Os arquivos com as descrições geradas automaticamente são gravadas 
 16 
em uma pasta especifica, tendo-se a possibilidade da inserção dos comentários da descrição 
gerada. Isto pode ser realizado através da seleção do botão “NOTAS”. 
 
 
Figura 1.3 - Tela principal da ferramenta RAMGAT 
 
As descrições dos circuitos foram validadas na ferramenta SIS. Através da 
ferramenta RAMAGT foi possível gerar automaticamente as descrições dos circuitos 
multiplicadores na base 2m para 32 e 64 bits de uma forma rápida e confiável, pois a 
geração de umadescrição leva em torno de um minuto. O aspecto da confiabilidade é 
comprovado pelos testes preliminares efetuados nas descrições das bibliotecas. 
Exemplos de descrições VHDL e BLIF, geradas automaticamente pela ferramenta 
RAMAGT, de um multiplicador array de 4 bits é apresentado na Figura 1.4. Para 
simplificar as figuras não são mostrados os sub-circuitos. 
 
 
 
 
Figura 1.4 - Exemplo de descrições VHDL e BLIF geradas pela ferramenta RAMAGT 
 17 
1.4 Principais contribuições do trabalho 
 
Os principais aspectos deste trabalho estão baseados nas otimizações realizadas no 
multiplicador array binário na base 2m apresentado em (COSTA, 2002). Para tal, as 
seguintes contribuições são apresentadas: 
 
• desenvolvimento de uma ferramenta de geração automática parametrizável de 
circuitos multiplicadores array Binário na base 2m nos formatos BLIF e VHDL; 
• implementação de circuitos multiplicadores array Binário na base 2m de 16, 32 
e 64 bits com blocos dedicados de multiplicação otimizados. Estes blocos 
dedicados estão presentes nos operandos do multiplicador. Foram realizadas 
otimizações para blocos de multiplicação de m=2 até m=8.; 
• implementação de circuitos multiplicadores array Binário na base 2m de 16, 32 e 
64 bits com circuitos somadores compressores 4:2, 8:2 e 16:2. Estes 
compressores são utilizados para a redução do número de linhas de somas de 
produtos parciais dos multiplicadores; 
• aplicação dos circuitos multiplicadores otimizados em arquiteturas dedicadas de 
filtros FIR de coeficientes fixos e coeficientes adaptativos. 
 
1.5 Sumário 
 
Neste capitulo foram abordados os principais pontos motivacionais do trabalho. Os 
objetivos e principais contribuições também foram apresentadas. Também foi apresentado 
o fluxo da metodologia do trabalho, incluindo aspectos da ferramenta de geração 
automática de multiplicadores array na base 2m de baixo consumo de potência. No próximo 
capítulo serão abordadas as principais fontes de consumo de potência em circuitos CMOS. 
 18 
2 POTÊNCIA EM CIRCUITOS CMOS 
 
Neste capítulo são abordados os aspectos de consumo de potência e de propagação 
em circuitos CMOS (Complementary Metal Oxide Semiconductor). São apresentados 
alguns conceitos que envolvem as principais fontes de consumo de potência em circuitos 
CMOS (OLIVEIRA, 2005). 
O custo de produtos eletrônicos para o consumidor associados com o encapsulamento 
e resfriamento dos chips impõem limitações severas à dissipação média de potência. Afinal 
de contas, aquecimento e temperatura estão diretamente relacionados com a potência média 
(NAJN, 1994). De fato, um outro fator de interesse do projetista de circuitos integrados 
além da dissipação de potência são problemas de temperatura dos dispositivos. Com a 
redução do tamanho dos dispositivos, a densidade dos transistores tende a aumentar, 
gerando o aumento do número de componentes dissipando potência por unidade de área. 
Além disso, a redução do tamanho provoca a redução do atraso de propagação, permitindo 
a operação dos circuitos em freqüências mais altas, o que por sua vez leva a um aumento do 
consumo de potência. 
Neste capítulo são inicialmente apresentados alguns conceitos que envolvem as 
principais fontes de consumo de potência em circuitos CMOS. 
 
2.1 Fontes de Consumo de Potência em Circuitos CMOS 
 
Existem três componentes que estabelecem a quantidade de potência dissipada em 
circuitos CMOS (WEST, 1994): 
 • dissipação estática de potência devido à corrente de fuga ou outras correntes 
que fluem continuamente pela fonte de potência do circuito; 
 • o consumo de potência de curto-circuito, que ocorre devido à corrente direta 
da fonte de alimentação para o terra durante o processo de comutação de uma 
porta lógica; 
 • dissipação dinâmica de potência devido à corrente de comutação durante a 
carga e descarga das capacitâncias de saída. 
 19 
 
 Considerando as componentes acima, pode-se então especificar, de acordo com a 
Equação 2.1, o consumo de potência total em circuitos CMOS: 
dinstaticSCTOTAL PPPP ++= (2.1) 
 onde PSC é a potência de curto-circuito, Pstatic representa a parcela devida ao 
consumo estático e Pdin é a potência dinâmica. 
A principal razão para a popularidade da lógica CMOS é que as portas tradicionais 
não possuem consumo estático quando suas saídas não estão comutando entre os níveis 
lógicos. Entretanto, para qualquer saída de uma porta CMOS que tenha o seu valor lógico 
alterado, haverá uma potência dissipada na porta dos transistores (MARTIN, 2000). A 
razão inicial para esta dissipação de potência é o movimento de cargas elétricas para 
carregar e descarregar capacitâncias de carga externas e capacitâncias parasitas internas. 
Em adição a isto, para sinais de entrada com tempos de subida e descida finitos, é possível 
se ter temporariamente um caminho direto de corrente que flui desde a fonte de tensão até 
o terra. 
A seguir são apresentados detalhes das principais fontes de consumo de potência em 
circuitos CMOS. 
 
2.1.1 Consumo de Potência Estática 
 
Correntes de fuga ou outras correntes que fluem continuamente pela fonte de potência 
causam a dissipação de potência estática. Idealmente, o consumo de potência estática de um 
circuito CMOS é nulo. Entretanto há sempre uma corrente de fuga presente. Esta 
contribuição no consumo total de potência torna-se um fator de preocupação à medida que 
a tecnologia de processo de semicondutores atinge valores abaixo de 0.1µm (KIM, 2003). 
Estudos demonstram que para o caso de um circuito inversor, utilizando tecnologia de 
70nm, submetido a simulações operando a 125ºC, as correntes de fuga podem chegar a 
contribuir em 49% no consumo de potência total do circuito (KIM, 2002). Correntes de 
fuga podem ocorrer quando um transistor está no estado desligado e outro transistor ativo 
carrega (up/down) o dreno em relação ao potencial de substrato. A potência estática total é 
o produto da corrente de fuga do dispositivo e da fonte de tensão, dada pela Equação 2.2. 
 20 
 
DDleakagestatic VIP .= (2.2) 








−= 1TVT
V
Sleakage eII (2.3) 
 
Onde VDD é a tensão de alimentação do circuito e Ileakage é a corrente de fuga que é 
dada pela equação característica do diodo de polarização reversa conforme é visto na 
Equação 2.3, onde IS é a corrente de saturação reversa, V é a tensão do diodo e VT=KT/q é 
a tensão termal. 
 
2.1.2 Consumo de Potência de Curto-Circuito 
O consumo de potência de curto-circuito ocorre quando flui uma corrente diretamente 
da fonte de alimentação para o terra. Isto ocorre quando um circuito CMOS estático é 
chaveado por um sinal de entrada com tempos de subida e descida não-zero, com os 
transistores tipos PMOS (Positive Channel Metal Oxide Semiconductor) e NMOS 
(Negative Channel Metal Oxide Semiconductor) conduzindo simultaneamente por um curto 
intervalo de tempo. Este consumo de potência, devido à corrente de curto-circuito, 
contribui com aproximadamente 10% do valor de consumo de potência total (POPPEN, 
2000), mas pode tornar-se substancial, particularmente se a entrada mudar de maneira lenta, 
ou seja, se os tempos de subida ou descida dos sinais de entrada dos circuitos são altos. Na 
realidade, não é correto assumir valores de tempo de subida e descida como sendo nulos 
para as formas de onda de entrada (RABAEY, 1996). Como resultado disto, é criado um 
caminho para a corrente diretamente da fonte de alimentação para o terra em um curto 
período de tempo durante a comutação, onde os transistores PMOS e NMOS estão 
conduzindo simultaneamente. 
2.1.3 Consumo de Potência Dinâmica 
A dissipação dinâmica ocorre durante o processo de comutação dos transistores 
PMOS e NMOS devido à corrente de curto-circuito e pelo processode carga e descarga da 
capacitância de saída. 
 21 
 A potência dinâmica ainda é a fonte dominante de consumo de potência, embora a 
diferença vem se tornando menor em novas tecnologias que envolvem maiores escalas de 
integração. (WILLIAMS, 1996). A componente de comutação dinâmica de dissipação de 
potência (P
din
) em uma transição na saída de uma porta carregada por um capacitor C
L 
é 
dada de acordo com a Equação 2.4 (CHANDRAKASAN, 1995), onde A é a atividade do nó 
de saída, medida em eventos/segundo para uma carga/descarga completa. 
No caso de projetos síncronos, a atividade A não é simplesmente f (freqüência), mas 
em geral uma probabilidade de atividade normalizada a (menor do que 1 para modelo de 
atraso zero) é computada como função da estatística de entrada e modelos lógicos, pois 
nem todos os nós mudam em um determinado ciclo de relógio. Se, em um circuito, uma 
simples transição é realizada a cada ciclo de relógio na taxa f
clk
, então a potência é dada 
pela Equação 2.5. 
clkDDLdin fVCP 22
1
= 
(2.5) 
Entretanto, há casos em que a transição do sinal ocorre em diferentes taxas de 
freqüência, tendo-se que considerar o valor do número de transições por ciclo de relógio ou 
o fator de atividade a de transição dos nós, como mostrado na Equação 2.5. 
 
2.1.4 Consumo de Potência pela Atividade de Glitching 
 
A dissipação de potência dinâmica também é influenciada por sinais espúrios 
(glitching), característico de sistemas com lógicas complementares em cascata (GOWAN, 
1998). A principal razão para a ocorrência do efeito de glitching recai sobre o fato de que as 
portas lógicas possuem um atraso de propagação do sinal diferente de zero (RABAEY, 
1996). Na realidade, o atraso de propagação finito de um bloco lógico para o próximo, pode 
causar transições espúrias, chamadas de glitches ou hazards. Estas transições espúrias 
dificultam a estimação da energia de circuitos síncronos. A principal razão para isto recai 
no fato de que os glitches são muito dependentes do atraso do circuito e, desta maneira, 
qualquer tentativa de se estimar a energia consumida precisa incluir um modelo preciso de 
22
2
1
2
1
DDLDDLdin VafCAVCP == 
(2.4) 
 22 
atraso (PENZES, 2002). Desta maneira, um determinando nó de um circuito pode exibir 
múltiplas transições em um único pulso de relógio antes de estabelecer de fato, o valor 
lógico correto. 
Esta atividade de chaveamento extra contribui para a dissipação total de energia com 
cerca de 20% do valor global, mas pode chegar até a 70% da energia consumida no circuito 
no caso de somadores combinacionais (SHEN, 1992). 
Um esquema da geração e propagação de sinais espúrios é mostrado na Figura 2.1. 
Pode-se notar a geração de glitches na saída de uma porta e a propagação através de uma 
porta. (FAVALLI, 1995) 
 
Figura 2.1 – Esquema de contribuição de glitches para dissipação de potência 
 
 Observa-se que o instante de chaveamento do sinal de entrada de uma porta pode 
causar níveis lógicos falsos em sua saída, contribuindo para a geração de glitches. A 
propagação destes sinais é uma função da profundidade lógica do circuito contribuindo 
fortemente para o aumento do consumo de potência. 
 
2.2 Sumário 
 
Este capítulo apresentou as principais fontes de consumo de potência em circuitos 
digitais CMOS. Foram apresentadas as principais características das fontes de potência 
estática, de curto-circuito e dinâmica, bem como aspectos de consumo de potência devido à 
atividade de glitching Este estudo é importante, pois o principal foco deste trabalho é a 
redução do consumo de potência dinâmica em circuitos multiplicadores array, pela redução 
da atividade de chaveamento nos blocos dedicados de multiplicação e redução da atividade 
de glitching ao longo da estrutura array do multiplicador. A seguir são apresentados os 
principais operadores aritméticos somadores e multiplicadores explorados neste trabalho.
 23 
3 OPERADORES ARITMÉTICOS EFICIENTES 
 
Entre os operadores aritméticos, os circuitos multiplicadores são os mais comuns em 
muitas operações envolvendo multiplicação e acumulação (MAC), como os algoritmos da 
área de Processamento Digital de Sinais (DSP), por exemplo. Nos circuitos DSP, os 
multiplicadores são os responsáveis pela maior parte do consumo de potência (COSTA, 
2002). Diante disto, apresenta-se o interesse na aplicação de técnicas que possam reduzir o 
consumo de potência dos circuitos multiplicadores. Novas arquiteturas de circuitos 
multiplicadores de baixa potência do tipo array, que operam em complemento de 2 na base 
2
m
, foram apresentadas em (COSTA, 2002). A principal característica destes novos 
multiplicadores é a redução da atividade de chaveamento e operação em diferentes 
codificações de dados. Outro aspecto a ser destacado é a regularidade dos circuitos, que 
facilita as suas implementações em layout. 
Neste trabalho o principal objetivo é a otimização dos circuitos multiplicadores 
apresentados em (COSTA, 2002). Para tal, são utilizadas técnicas que vão desde a 
utilização de circuitos somadores eficientes, tais como Carry Save (CSA) e compressores, 
até a otimização dos blocos dedicados de multiplicação, que permitem a operação de 
multiplicação na base 2m. Estes novos circuitos multiplicadores são comparados com o 
multiplicador estado da arte em termos de redução do consumo de potência, ou seja, 
multiplicador Booth Modificado (KHATER, 1996). A seguir são apresentadas as principais 
características do multiplicador array na base 2m. Também são mostrados alguns aspectos 
do multiplicador Booth Modificado (alvo de comparação dos multiplicadores array 
propostos neste trabalho), bem como as principais características dos somadores eficientes 
usados para a otimização dos circuitos multiplicadores. 
 
3.1 Estado da Arte de Circuitos Multiplicadores 
 
 Os circuitos multiplicadores para aplicações na área de DSP necessitam de alto 
desempenho, baixo consumo de potência e execução de operações de multiplicação com 
sinal. Neste contexto, os multiplicadores mais rápidos são os paralelos. Entre estes, os 
 24 
multiplicadores Wallace (WALLACE, 1964) estão entre os mais rápidos. Entretanto, estes 
multiplicadores não apresentam boa regularidade, o que compromete os seus consumos de 
potência. Por outro lado, um multiplicador Booth (BOOTH, 1951) apresenta um bom 
aspecto de regularidade, além da redução das linhas de produtos parciais, o que representa o 
estado da arte em operações de multiplicação com aspecto de baixo consumo de potência. 
 Devido à sua complexidade e grande utilização nos mais diversos algoritmos, uma 
grande quantidade de trabalhos de pesquisa têm sido desenvolvida, visando o projeto de 
eficientes e regulares arquiteturas de circuitos multiplicadores com operações em 
complemento de 2. Esquemas de multiplicação tais como bi-section (LU, 2004), Baugh-
Wooley (BAUGH, 1973) e Hwang (HWANG, 1979) propõem a implementação de 
arquiteturas em complemento de 2, utilizando módulos repetitivos com padrões de 
interconexão uniformes. Entretanto, neste tipo de arquitetura não é permitida uma 
implementação eficiente, devido à forma irregular utilizada do tipo árvore-array. O mesmo 
aspecto da falta de regularidade na estrutura de multiplicação é observado em 
(PEKMESTZI, 1999), onde é apresentado um esquema de multiplicador baseado em 
multiplexador. Em (WANG, 2001) é observado um avanço desta técnica, onde a arquitetura 
exibe um layout mais regular do que o apresentado em (PEKMESTZI, 1999). Apesar da 
arquitetura apresentar reduções em área da ordem de 40%, só são observadas reduções em 
atraso e consumo de potência após a utilização de circuitos somadores mais eficientes. 
 As técnicas descritas acima têm sido aplicadas a multiplicadores array 
convencionais, cuja operação é realizadabit a bit e algumas vezes a regularidade da 
arquitetura não é preservada. 
 Um novo tipo de array para um multiplicador paralelo baseado em diferentes 
agrupamentos de bits de produtos foi proposto em (NAKAMURA, 1986). Neste trabalho, o 
esquema proposto necessita de aproximadamente metade das células quando comparado 
aos multiplicadores array convencionais. Apesar do bom desempenho apresentado, a 
complexidade do circuito aumenta consideravelmente devido aos circuitos contadores 
utilizados na unidade de adição. Para um multiplicador na base 4, por exemplo, faz-se 
necessária a utilização de 16 vezes mais hardware em relação a um multiplicador array 
binário convencional. 
 25 
 Para aumentar o desempenho dos multiplicadores, considerando aspectos de 
regularidade e redução do consumo de potência, têm sido propostos projetos de circuitos 
baseados na técnica de recodificação de Booth (SAM, 1990;MILAR, 1992; GALLACHER, 
1994; CHERKAUER, 1996; SEIDEL, 2001). Nestes trabalhos são propostos 
multiplicadores Booth de alto desempenho baseados em operações em maiores bases de 
operação. Entretanto, estes circuitos exibem pouca regularidade e não são indicadas 
reduções no consumo de potência. 
 Trabalhos de pesquisa direcionados a redução do consumo de potência a partir do 
multiplicador Booth, operando em bases maiores, são apresentados em (YU 2000a; 
GOLDOVISKY, 2000). Em (YU 2000a), propõe-se um multiplicador Booth tipo Carry-
Save Array para baixa potência. Neste trabalho, mostra-se que é possível obter uma redução 
de 18% em potência. Entretanto, não é apresentada nenhuma melhora em termos de 
desempenho. Em (GOLDOVISKY, 2000), apresenta-se um multiplicador que utiliza 
codificadores Booth na base 4, que são otimizados para geração dos produtos parciais. São 
apresentados resultados com reduções de área, atraso e consumo de potência e com um 
esquema de codificação altamente otimizado no nível de transistores. Em (SHAH, 2000) há 
uma comparação entre cinco diferentes tipos de multiplicadores de 32 bits em diferentes 
métricas de desempenho. O multiplicador combinado Booth-Wallace modificado 
apresentou melhores resultados em atraso e consumo de potência entre os multiplicadores 
apresentados neste trabalho. 
 De acordo com (GALLAGHER, 1994), apesar de o algoritmo Booth proporcionar 
uma maior simplicidade para a implementação da sua arquitetura, torna-se difícil projetar 
arquiteturas para operar em bases maiores do que 4, devido a complexidade em pré-
computar, no termo multiplicador, um crescente número de múltiplos do termo 
multiplicando. EM (MILLAR, 1992; SEIDEL, 2001) são propostos multiplicadores Booth 
de alto desempenho baseados em operação em maiores bases. Entretanto, estes circuitos 
exibem pouca regularidade e não são indicadas reduções no consumo de potência. 
 Em (COSTA, 2002; COSTA, 2002a), buscam-se os mesmos objetivos do 
multiplicador Booth, ou seja, alcançar melhores desempenhos e menores consumos de 
potência a partir da redução dos termos dos produtos parciais, mantendo-se a mesma 
regularidade de um multiplicador array. Nestes trabalhos, mostra-se que as novas 
 26 
arquiteturas propostas podem ser estendidas a operações de multiplicação em bases maiores 
utilizando menos níveis lógicos e, desta forma, apresentando menos transições espúrias e 
menor consumo de potência. 
 Este trabalho de dissertação de mestrado busca tornar ainda mais eficientes as 
arquiteturas de multiplicadores apresentadas em (COSTA, 2002) a partir da otimização dos 
diferentes módulos de multiplicação dedicados que compõem a sua estrutura array, além da 
utilização de circuitos somadores compressores que possibilitam uma grande redução nas 
linhas de produtos parciais. 
 
3.2 Operação de Multiplicação na Base 2m em 
Complemento de 2 
 
Nesta Seção é apresentado um resumo das principais características do 
multiplicador array na base 2m proposto em (COSTA, 2002). Esta arquitetura apresenta 
como principais características a realização de operações em complemento de 2 e a 
característica de apresentar a mesma regularidade de um multiplicador array convencional. 
Para operações de uma multiplicação na base 2
m
, os operandos são divididos em 
grupos de m bits. Cada um destes grupos pode ser visto como uma representação de um 
digito em um base 2
m
. Conseqüentemente, a arquitetura de multiplicação na base 2
m 
segue a 
operação de multiplicação básica de números representados na base 2
m
. A operação nesta 
base, em representação em complemento de 2, é mostrada na Equação 3.1. 
 
∑
−
=
+−
−
−
−
−
−−×=×
1
0
1
1
1
11
22''
W
j
jW
jW
W
m
Ww babbABABA 
(3.1) 
 
A Figura 3.1 ilustra uma operação com operadores de W = 4 bits na representação 
binária utilizando a base 4 (m = 2). Para o exemplo mostrado, os termos do produto parcial 
são obtidos pela multiplicação de cada grupo de m bits dos termos multiplicador e 
multiplicando. Desta forma, cada linha do produto parcial é processada para uma 
 27 
multiplicação m x W. Nesta Figura, observam-se três tipos de multiplicação representados 
por Tipo I, Tipo II e Tipo III. Estes módulos são mostrados na Figura 3.2. 
 
 
Fig. 3.1 Exemplo de multiplicação de 4 bits base-4(m=2) em complemento de 2 
 
 
Fig. 3.2 Estrutura geral para multiplicação na base 2
m 
em complemento de 2 
 
Para os W – m bits menos significativos dos operandos podem ser usadas 
multiplicações sem sinal. Os módulos do Tipo I são os módulos sem sinal. Módulos Tipo 
II executam operações de um número sem sinal por um número em complemento de 2. 
Finalmente, o módulo Tipo III (operações de multiplicação em complemento de 2) é 
requerido para qualquer tipo de multiplicação. 
Na Figura 3.3 apresenta-se um exemplo concreto para uma multiplicação na base 4 
(m = 2) e uma largura W = 8 bits. As estratégias utilizadas neste trabalho, propõem a 
otimização dos blocos de multiplicação Tipo I, Tipo II e Tipo III e a redução do número de 
linhas de produtos parciais para a redução do caminho crítico dos circuitos multiplicadores. 
 28 
 
Figura 3.3 - Exemplo de multiplicador array base 4 de 8 bits em complemento de 2 
 
3.3 Multiplicador Booth Modificado 
 
 Nesta Seção apresenta-se uma revisão sobre os aspectos de multiplicação do 
algoritmo Booth Modificado. Este algoritmo tem um melhor desempenho do que o 
 29 
algoritmo Booth original, pois opera na codificação na base 4, enquanto que o algoritmo 
Booth original opera na base 2. 
No Booth Modificado são gerados sinais de controle (0, +MD, +2MD, -MD e -
2MD) , sendo MD é o termo multiplicando, a partir do operando do multiplicador para cada 
grupo de 3 bits, como mostra o exemplo da Figura 3.4 para uma operação de 8 bits. 
 
 
Figura 3.4 - Exemplo de multiplicação de 8 bits usando o algoritmo Booth Modificado 
 
 Um circuito multiplexador produz os produtos parciais, de acordo com o sinal de 
controle codificado. Como se pode observar no exemplo da Figura 3.4, para reduzir o 
número de produtos parciais no multiplicador Booth Modificado (KHATER, 1996), realiza-
se uma operação em grupos de 3 bits no termo multiplicador (MR). Este termo é verificado 
de 2 em 2 bits com sobreposição do terceiro bit. No algoritmo, considera-se um valor zero 
virtual a direita do bit menos significativo. No algoritmo Booth também é utilizada a 
técnica de extensão de sinal, para manter a regularidade da arquitetura (HWANG, 1979). A 
Figura 3.5 apresenta a arquitetura de um multiplicador Booth Modificado de 8 bits. 
 30 
 
Figura 3.5 - Exemplo de arquitetura Booth Modificado de 8 bits 
 
Como pode ser visto na Figura 3.5, são necessários quatro circuitos operandos para 
o cálculo dos termos dos produtos parciais. Esses circuitos são compostos por umcodificador e um multiplexador, que produzem o termo multiplicando de acordo com os 3 
bits no termo multiplicador (MR). Os termos do produto parcial são deslocados pelos 
circuitos somadores, que são também utilizados para produzir o resultado final. 
Observa-se que as células Booth básicas não são simples circuitos somadores, como 
nas arquiteturas array na base 2m. Ao contrário, as células do multiplicador Booth têm que 
realizar operações de soma, subtração e deslocamento a esquerda dos bits do termo 
multiplicando. Esta complexidade torna difícil a implementação de arquitetura Booth em 
bases maiores do que 4. 
 
 3.4 Somador do tipo Carry Save Adder (CSA) 
 
O somador Carry Save (CSA) (KIM, 1998) tem a característica de efetuar a soma de 
três números simultaneamente. A idéia básica é que três números possam ser reduzidos 
para dois, como um compressor 3:2, como mostra o exemplo da Figura 3.6. 
 31 
 
Figura 3.6 - Exemplo de um somador Carry Save 
 
Como pode ser observado na Figura 3.6, somente na recombinação do carry com a 
soma é utilizado um somador onde o carry é propagado. Apenas na última linha de soma é 
que existe a propagação normal do carry a partir da utilização de somadores do tipo Ripple 
Carry. A Figura 3.7 mostra um exemplo de adição de seis números usando o somador 
Carry Save (IMPERIAL, 2004) 
 
Fig. 3.7 Exemplo de soma de números de 4 bits usando a estrutura Carry Save 
 
Como é mostrado na Figura 3.7, o somador Carry Save é apresentado como um 
bloco com três entradas e duas saídas. Neste caso, os somadores completos (full-adder) não 
dependem de outras somas para efetuar sua operação. Cada somador recebe três números e 
 32 
produz dois como saída, tal que RQPSC ++=+∗2 . De fato, pode-se então converter o 
problema de computação RQP ++ para SC +∗2 sem esperar carry algum. Os módulos x2 
mostrados na Figura 3.7 não requerem lógica adicional, sendo somente necessário a 
conexão apropriada dos blocos. A soma final M + 2N representa uma soma normal de dois 
números. 
O somador Carry Save se torna bastante rápido devido ao fato de simplificar as 
saídas de carry ao invés de propagar para a esquerda. Neste trabalho, este somador é 
utilizado na otimização dos blocos dedicados de multiplicação na base 2m . 
 
3.5 Circuitos Somadores Compressores 
 
Um dos objetivos deste trabalho é a aplicação de circuitos somadores eficientes nas 
linhas de produtos parciais dos multiplicadores array para a aceleração da propagação de 
carry ao longo das suas estruturas. Neste contexto, os circuitos compressores aparecem na 
literatura como estruturas eficientes para a operação de soma, pois estes circuitos possuem 
a capacidade de adicionar números com a mínima propagação de carry. 
Em (WEINBERGER, 1981) foi apresentada uma estrutura de soma de números 
chamada “4-2 Carry-Save module" na qual era possível a realização da soma simultânea de 
quatro números. Esta estrutura foi posteriormente aperfeiçoada por (OKLOBDZIJA, 1996). 
Esta estrutura contém uma combinação de células de somadores completos em conexão 
truncada na qual possibilita uma rápida compressão dos produtos parciais. Como mostra a 
Figura 3.8a, um compressor 4:2 possui cinco entradas e três saídas. 
 
 
(a) (b) 
 
Figura 3.8 – Estrutura de um circuito somador compressor 4:2 
 33 
 
 As cinco entradas e a saída da soma possuem o mesmo peso (j), e as saídas Cout e 
Carry possuem peso maior (j+1). Além disto, a saída Cout não é função de Cin. Com isto 
não ocorre a propagação do carry. Para esta implementação as saídas da soma, do carry 
intermediário e do carry (Carry) de saída (Cout) são expressas pelas Equações 3.2, 3.3 e 3.4 
(PARHAMI, 1999). 
 
( )[ ][ ] inCDCBAS ⊕⊕⊕⊕= (3.2) 
CBCABACout ... ++= (3.3) 
( )[ ]( ) inin CDCDCBACarry .. ++⊕⊕= (3.4) 
 
O compressor 4:2 descrito pelas equações acima possui um caminho critico dado 
pela soma dos atrasos de quatro portas lógicas XOR conectadas em série, como mostra a 
Equação 3.2. A Figura 3.8b mostra que este compressor pode ser implementado utilizando 
dois somadores completos (full adders) em série, o que reforça o caminho crítico composto 
pelas 4 portas lógicas XOR. 
 
Tabela 3.1 - Tabela verdade de um compressor 4:2 
Cin=0 Cin=1 A B C D 
Cout Carry Sum Cout Carry Sum 
0 0 0 0 0 0 0 0 0 1 
0 0 0 1 0 0 1 0 1 0 
0 0 1 0 0 0 1 0 1 0 
0 0 1 1 0 1 0 0 1 1 
0 1 0 0 0 0 1 0 1 0 
0 1 0 1 0 1 0 0 1 1 
0 1 1 0 1 0 0 1 0 1 
0 1 1 1 1 0 1 1 1 0 
1 0 0 0 0 0 1 0 1 0 
1 0 0 1 0 1 0 0 1 1 
1 0 1 0 1 0 0 1 0 1 
1 0 1 1 1 0 1 1 1 0 
1 1 0 0 1 0 0 1 0 1 
1 1 0 1 1 0 1 1 1 0 
1 1 1 1 1 1 0 1 1 1 
 
 34 
A Tabela verdade de um compressor 4:2 é mostrada na Tabela 3.1. De fato, o 
resultado de uma operação de soma usando compressor 4:2 será dado por: S+2(Cout + 
Carry). Como pode ser visto em um exemplo da Tabela 3.1, com todos os valores de 
entrada em nível lógico 1 (inclusive o termo Cin), o resultado será dado por 111 que é 
equivalente a: [1+2(1+1)]=5. 
Um aperfeiçoamento na estrutura de um circuito compressor 4:2, usando 
multiplexador é mostrado na Figura 3.9 (OKLOBDZIJA, 1996). Esta estrutura possui um 
caminho critico com seu valor de atraso máximo dado por três portas XOR, o que 
representa um caminho crítico menor do que o mostrado na estrutura da Figura 3.8. Outra 
vantagem deste tipo de estrutura é o fato de que o circuito multiplexador pode ser 
otimizado no nível de transistores utilizando portas de transmissão. (PRASAD, 2001; 
JIANG, 2004; RADHAKRISHNAN, 2000; GOPINEEDI, 2006) 
 
 
Figura 3.9 - Um compressor 4:2 baseado em multiplexador 
 
No capítulo 5 será mostrado o efeito da utilização destes circuitos compressores 
para a redução do número de linhas de produtos parciais dos multiplicadores array na base 
2m. Além disto, será mostrada a extensão do circuito compressor 4:2 para módulos de 
operação 8:2 e 16:2. 
 
 
 
 35 
3.6 Sumário 
 
 Neste capitulo foram apresentados os principais operadores aritméticos abordados 
neste trabalho. Foram apresentadas revisões dos multiplicadores array na base 2m de 
(COSTA, 2002) e multiplicador Booth Modificado. Também foram apresentadas as 
principais características dos somadores Carry Save e Compressor 4:2. A extensão do 
circuito compressor para estruturas maiores 8:2 e 16:2, bem como a utilização destes 
somadores eficientes no multiplicador array na base 2m será apresentado no capítulo 5. 
 
 36 
4. OTIMIZAÇÕES NOS BLOCOS DE 
MULTIPLICAÇÃO NA BASE 2m 
 
Como visto anteriormente, os multiplicadores array na base 2m agregam em seus 
operandos três tipos de multiplicadores dedicados (Tipo I, Tipo II e Tipo III), que variam 
de acordo com o tipo de operação realizada (multiplicações sem sinal e com sinal). A 
Figura 4.1 mostra um exemplo de operando (operando I) com multiplicadores do Tipo I e 
Tipo II. 
 
Figura 4.1 – Exemplo de estrutura do Operando I 
 
O bloco mais básico de multiplicação dos multiplicadores array na base 2m é o bloco 
que opera na base 4 (m=2). Este bloco pode ser facilmente otimizado, tendo-se poucas 
portas lógicas compondo o seu circuito. Para o bloco Tipo I, por exemplo, apenas oito 
portas lógicas são necessárias para a sua implementação e a sua estrutura pode ser vista na 
Figura 4.2. Os blocos de multiplicação Tipo II e Tipo III apresentam praticamente o mesmo 
nível de complexidade. 
 
Figura 4.2 - Representação do bloco Tipo I de multiplicação m=2 
 
 37 
Embora os blocos que operam na base 4 sejam facilmente obtidos, esta mesma 
característica não se aplica para operações em bases maiores do que quatro, onde o maior 
número de entradas dos blocos de multiplicação dificultam otimizações manuais a partir de 
mapas de Karnaugh (como é realizado para blocos m=2). Em (COSTA, 2002) osblocos de 
multiplicação dedicados na base 16 (m=4) são gerados automaticamente pela ferramenta 
SIS. Um arquivo texto com todas as entradas e saídas em PLA (Programmable Logic 
Arrays) é sintetizado na ferramenta SIS. Este arquivo é mapeado em portas lógicas através 
de uma biblioteca (mcnc.genlib) e finalmente convertido para o formato BLIF (Berkeley 
Logic Interchange Format). 
A Tabela 4.1 mostra resultados de área, atraso e consumo de potência para um 
multiplicador array na base 4 utilizando blocos de multiplicação dedicados m=2. Nesta 
Tabela, são mostrados resultados considerando blocos sintetizados na ferramenta SIS a 
partir de descrição em PLA (Original) e considerando blocos otimizados a partir de mapas 
de Karnaugh (Otimizado) (COSTA, 2002). Esta comparação é realizada para mostrar a 
eficiência do processo de otimização dos blocos de multiplicação dedicados. Os resultados 
mostrados na Tabela 4.1, e nas demais tabelas deste trabalho, são obtidos na ferramenta SIS 
(área e atraso) e na ferramenta SLS (potência). Os multiplicadores são todos descritos no 
formato BLIF. O resultado de área representa o número de literais, onde cada literal 
corresponde a dois transistores. O atraso é dado de acordo com o atraso de cada porta 
lógica presente no caminho crítico do multiplicador. A potência média é obtida na 
ferramenta SLS, na tecnologia fishbone de 1.2 micrometros, onde se torna possível verificar 
a atividade de glitching do circuito, visto que nesta ferramenta a estimação de potência é 
realizada no nível de transistores. Para a estimação de potência são utilizados vetores 
randômicos de 10000 pontos para todos os multiplicadores apresentados neste trabalho. 
Este número de pontos é utilizado, pois representa um bom compromisso para a estimação 
de potência, como apresentado em (COSTA, 2002). 
Como pode ser observado na Tabela 4.1, o multiplicador de 16 bits que utiliza blocos 
de multiplicação dedicados otimizados a partir de mapas de Karnaugh apresentam os 
melhores resultados de área, atraso e consumo de potência. Embora este resultado aponte 
para um caminho natural de otimizações para maiores bases, sem a síntese automática a 
partir da ferramenta SIS, torna-se difícil a otimização destes blocos para bases maiores a 
 38 
partir do uso de mapas de Karnaugh. Desta forma, surge a motivação deste trabalho, cujo 
desafio a ser superado é a utilização de técnicas que possam otimizar os blocos de 
multiplicação para grupos de multiplicação maiores do que m=2. 
 
Tabela 4.1 - Resultados para multiplicadores m=2 
Multiplicador 16 bits 
Métricas Original Otimizado Diferença Otim. vs. Orig. (%) 
Área (literais) 5678 4602 -18,95 
Atraso (ns) 231,70 227,80 -1,68 
Potência (mW) 282,70 241,40 -14,61 
 
A seguir são mostradas as técnicas de otimização dos blocos de multiplicação. Na 
primeira parte são mostradas três diferentes técnicas aplicadas ao bloco de multiplicação 
m=4 e os resultados são comparados com o multiplicador apresentado em (COSTA, 2002). 
A seguir, a técnica que apresenta o melhor resultado é aplicada a blocos de multiplicação de 
diferentes bases, cujos resultados são apresentados e comparados. 
 
4.1 Técnicas para otimizações dos blocos de multiplicação 
m=4 
 
As técnicas de otimização apresentadas nesta Seção levam em consideração três 
diferentes estratégias de implementação do bloco de multiplicação Tipo I na base 16 (m=4) 
(PIEPER, 2008). Estas técnicas são naturalmente estendidas para os blocos do Tipo II e 
Tipo III. 
 
4.1.1. Otimização usando blocos de multiplicação m=2 e somadores 
RCA 
 
Nesta primeira alternativa o bloco de multiplicação na base 16 (m=4) utiliza na sua 
estrutura, o bloco de multiplicação mais simples m=2. Os somadores do tipo Ripple Carry 
(RCA) formam uma estrutura em árvore para a composição do bloco de multiplicação, 
como mostra a Figura 4.3(b). 
 39 
 
Figura 4.3 - Bloco de multiplicação (m=4) Tipo I composto por blocos m=2 e RCA 
 
Um exemplo de multiplicação de dois números A e B sem sinal é mostrado na Figura 
4.3(a). São utilizados três tipos de somadores, ou seja, somador completo (FA – Full 
Adder), meio somador (HA – Half Adder) e um somador mais simples (representado por 
2:1 na Figura 4.3), que faz a operação de soma do carry anterior com os dois bits do 
operando. As letras utilizadas ao lado dos somadores são identificadores para os blocos 
utilizados na Figura 4.3(b). Como pode ser visto na Figura 4.3(b), dois bits são 
multiplicados de uma vez e grupos de dois bits das linhas parciais são somados para se 
obter o resultado final. Uma última linha de somadores, do tipo RCA, faz a soma final dos 
resultados parciais obtidos nas somas anteriores. 
Como pode ser observado na Figura 4.3(b), somente um somador completo, três 
meio-somadores e três somadores 2:1 são necessários para implementar a soma da linhas 
dos produtos parciais. Neste bloco, o caminho crítico é composto pela soma dos atrasos de 
um bloco de multiplicação (m=2) do Tipo I, um somador completo, dois meio somadores e 
um somador 2:1, como pode ser observado através da linha pontilhada da Figura 4.3(b). 
 
4.1.2. Otimização usando blocos de multiplicação m=2 e somadores 
CSA 
 
 40 
Nesta alternativa, utilizam-se os mesmos blocos de multiplicação da base 4 (m=2) 
para compor o bloco de multiplicação do Tipo I na base 16. Porém, utiliza-se nesta 
alternativa, o somador CSA (Carry Save Adder) para a soma das linhas parciais. Neste 
somador, três números são somados simultaneamente, como mostrado anteriormente na 
Seção 3.4. Em (FONSECA, 2005), os somadores CSA foram aplicados às linhas de 
produtos parciais do multiplicador array na base 2m. Foram mostradas reduções de área, 
atraso e potência no multiplicador, quando do uso de CSA. Neste trabalho, os somadores 
CSA são utilizados para a composição da árvore de somas do módulo de multiplicação 
dedicado m=4. 
A Figura 4.4(a) mostra um exemplo de multiplicação de dois números sem sinal com 
a respectiva indicação das somas dos produtos parciais gerados por cada bloco de 
multiplicação na base 4. Pode-se notar que usando CSA três números podem ser somados 
simultaneamente. A idéia básica é que estes três números possam ser reduzidos a dois, 
como um compressor 3:2, mantendo os resultados da soma e do carry separados. Uma 
última linha de soma do tipo RCA é responsável pela recombinação dos termos de soma e 
carry gerados pela árvore de somadores CSA. A Figura 4.4(b) mostra o uso do somador 
CSA na estrutura interna do bloco de multiplicação na base 16. 
 
 
Figura 4.4 - Bloco de multiplicação (m=4) Tipo I composto por blocos m=2 e CSA 
 
 41 
Como pode ser visto pela linha pontilhada da Figura 4.4(b), o caminho critico desta 
técnica é composto pela soma dos atrasos de um bloco de multiplicação (m=2) do Tipo I, 
um bloco de soma CSA, um meio somador e um somador completo. O fato de usar CSA 
faz com que haja um bloco a menos de soma no caminho crítico em relação à técnica 
anterior. 
 
4.1.3. Uso de blocos de multiplicação dedicados 4:2 e RCA 
 
Nesta alternativa, utiliza-se um bloco de multiplicação dedicado 4:2 para a 
composição do bloco de multiplicação m=4. Devido ao maior número de entradas deste 
bloco (6 entradas), foi utilizada uma metodologia similar à aplicada ao bloco original na 
base 16, ou seja, a síntese automática do bloco de multiplicação dedicado 4:2 do Tipo I 
através de uma descrição PLA. O bloco gerado é menos complexo do que um bloco de 
multiplicação 4:4, pois este apresenta 44 portas lógicas contra as 385 portas lógicas de um 
módulo de multiplicação 4:4. O exemplo de multiplicação de dois números sem sinal é 
mostrado na Figura 5.5(a). 
 
 
Figura 4.5 - Bloco de multiplicação (m=4) Tipo I composto por blocos de multiplicação 4:2 
 
 
Comopode ser observado na Figura 4.5(b), a partir do uso de blocos de multiplicação 
dedicados 4:2, torna-se necessário apenas uma linha de somadores do tipo RCA para a 
soma dos produtos parciais. 
 42 
O caminho crítico desta alternativa é composto por um bloco de multiplicação 4:2 e 
uma linha de somadores RCA como é mostrado na linha pontilhada da Figura 4.5(b). Como 
também deve ser observado nesta Figura, utiliza-se um bloco de soma dedicado (FA – 3 
bit) para a soma simultânea de operandos de 3 bits. 
 
4.1.4. Análise Comparativa 
 
Nesta Seção, observam-se resultados de área, atraso e consumo de potência de um 
multiplicador array na base 16 (m=4) de 16 bits utilizando as três alternativas para o bloco 
de multiplicação na base 16 do Tipo I. Os multiplicadores com as três alternativas são 
comparados ao multiplicador original, ou seja, o bloco de multiplicação 4:4 que é obtido a 
partir da descrição em PLA e síntese automática na ferramenta SIS. Os principais 
resultados são mostrados na Tabela 4.2. 
 
Tabela 4.2 - Resultados de Área, atraso e potência para multiplicadores array de 16 bits na base 16 
Alternativa Área % Atraso (ns) % Potência (mW) % 
original 15932 -- 234,0 -- 214,09 -- 
m=2 e RCA 7544 -52,65 204,8 -12,47 189,94 -11,28 
m=2 e CSA 8612 -45,94 199,3 -14,83 190,42 -11,05 
blocos 4:2 dedicados 7664 -51,89 200,3 -14,40 200,37 -6,41 
 
Como pode ser observado na Tabela 4.2, os multiplicadores array que utilizam as três 
alternativas propostas neste trabalho apresentam menores valores de área em relação à 
versão original do multiplicador. Isto ocorre devido ao fato das três alternativas usarem 
blocos de multiplicação dedicados mais simples. Também pode ser observado na Tabela 
4.2 que a primeira alternativa (m=2 e RCA) apresenta a menor área entre as alternativas 
analisadas. Isto devido ao fato desta estrutura utilizar blocos de multiplicação na base 4 e 
somadores simples do tipo RCA. 
Apesar do multiplicador com a segunda alternativa (m=2 e RCA) apresentar maior 
área, este multiplicador apresenta o menor valor de atraso entre as estruturas estudadas, 
como pode ser observado na Tabela 4.2. Isto ocorre devido a esta alternativa usar blocos 
simples de multiplicação na base 4 e utilizar somadores CSA que são mais eficientes do 
que os somadores RCA, como é mostrado em (PIEPER, 2007). O uso do somador CSA no 
 43 
bloco de multiplicação da base 16 contribui para a redução da propagação de carry dentro 
da estrutura, pois este transfere o carry na diagonal, como foi mostrado na Seção 3.4, 
resultando assim na redução do caminho critico do circuito. De acordo com a Tabela 4.2, as 
três alternativas são mais eficientes em termos de atraso do que a estrutura original. Na 
verdade, foi observado que a complexidade do bloco original contribui para o aumento do 
caminho critico na sua estrutura interna, o que lhe confere maior valor de atraso, como 
mostrado na Tabela 4.2. 
Como também pode ser observado na Tabela 4.2, os multiplicadores array binários 
usando as três novas alternativas são mais eficientes em termos de consumo de potência 
quando comparados com a estrutura original. Isto ocorre devido a estas três novas 
estruturas apresentarem blocos mais simples e estruturas regulares as quais contribuem para 
uma menor atividade de glitching dentro dos blocos de multiplicação. Em particular, o 
multiplicador com a técnica m=2 e somador RCA no bloco dedicado de multiplicação é o 
que apresenta a menor potência. Entretanto, deve-se observar que a diferença para a 
segunda alternativa, que utiliza a técnica m=2 e somador CSA não é significativa. 
De fato, quando se observa o produto atraso potência (PDP – Power Delay Product), 
observa-se que a segunda alternativa é a que oferece a melhor relação, como pode ser 
observado na Tabela 4.3. Desta forma, de acordo com os resultados apresentados na Tabela 
4.3, define-se a segunda alternativa como a selecionada para a utilização em outros 
multiplicadores com diferentes tamanhos de grupos de m bits, ou seja, operação em 
diferentes bases. 
 Tabela 4.3 – Produto atraso-potência (AP) 
Alternativa Produto atraso-potência(ns.mW) (%) 
original 50097,06 -- 
m=2 e RCA 38899,71 -22,35 
m=2 e CSA 37950,71 -24,24 
blocos 4:2 dedicados 40134,11 -19,88 
 
4.2 Aplicação da segunda técnica (m=2 e CSA) a diferentes valores de 
m 
De acordo com que foi mostrado na Seção anterior, conclui-se que as três alternativas 
propostas são mais eficientes em termos de área, atraso e consumo de potência para o 
multiplicador array binário de 16 bits comparando com a estrutura original. 
 
44
 
 
Figura 4.6 - Exemplo completo de multiplicação de 8 bits m blocos m=4 otimizados Tipo I, Tipo II e Tipo III 
 45 
 
 Sendo que a segunda alternativa demonstrou o melhor resultado na relação atraso 
versus consumo de potência. Desta forma, esta técnica é também aplicada a blocos de 
multiplicação do Tipo II e III que são partes integrantes do bloco operando II do 
multiplicador array. Também, esta técnica é aplicada a diferentes tamanhos de 
multiplicadores (16, 32 e 64 bits) com diferentes grupos de m bits. 
A Figura 4.6 mostra a segunda alternativa de otimização aplicada aos blocos de 
multiplicação Tipo I, Tipo II e Tipo III, para um exemplo de multiplicação de 8 bits (A=-1 
x B=-1). Observa-se que esta técnica pode ser facilmente aplicada aos três blocos de 
multiplicação, tendo-se o mesmo caminho crítico para os três blocos, sendo este composto 
por um bloco de multiplicação m=2, um somador CSA, um FA, um HA. 
 As linhas parciais são obtidas a partir de blocos de multiplicação dedicados de 4 bits 
(m=4). A principal diferença entre as operações está na extensão de sinal que se faz 
necessária nos blocos de multiplicação Tipo II e Tipo III, pois estes operam com números 
com sinal. 
A partir da otimização do bloco m=4 com a segunda alternativa proposta, pode-se 
naturalmente estender esta técnica para diferentes blocos de multiplicação. 
No caso do bloco na base 256 (m=8), pode-se obtê-lo a partir da utilização dos blocos 
m=4, já previamente otimizados, como mostra o exemplo da Figura 4.7, para um exemplo 
de multiplicação de 16 bits sem sinal. 
Nota-se a hierarquia possível na implementação de blocos com diferentes valores de 
m. Na verdade, a partir de estruturas mais simples, pode-se implementar estruturas mais 
complexas. 
No exemplo da Figura 4.7, um módulo m=8 pode ser obtido a partir de uma árvore de 
blocos m=4, que por sua vez são construídos a partir de blocos mais simples m=2. 
Esta característica abre uma perspectiva de exploração de espaço de projeto, onde 
diferentes alternativas podem ser testadas antes da implementação final do circuito. Neste 
caso, a técnica pode ser adaptada para diferentes valores de m, como mostra a Tabela 4.4. 
 
 
 46 
 
Figura 4.7 - Exemplo de uma multiplicação de 16 bits com blocos de multiplicação m=8 otimizados 
 
A Tabela 4.4 mostra também as diferentes possibilidades de implementação de blocos 
de multiplicação a partir de blocos previamente otimizados. Na primeira coluna da Tabela 
são indicados os valores dos blocos de multiplicação dedicados a serem implementados. A 
segunda coluna representa o número de otimizações que foram implementadas para cada 
valor de m. Finalmente, a terceira coluna da tabela mostra o tipo de otimização que utiliza 
os blocos previamente implementados. 
 
Tabela 4.4 - Possibilidades de otimizações dos blocos de multiplicação 
Valor de m Número de Otimizações Característica 
3 1 Otimizado 1: bloco m=2 otimizado + blocos dedicados 1:2 
Otimizado 1: blocos m=2 otimizado 4 2 Otimizado 2: bloco m=3 otimizado + blocos dedicados 1:3 
Otimizado 1: bloco m=4 + blocos dedicados 1:4 5 2 Otimizado 2: bloco m=3 otimizado + bloco m=2 otimizado 
Otimizado

Outros materiais