TÉCNICAS DE PROJETO DE CIRCUITOS DIGITAIS DE BAIXO

Propaganda
Anais do 14O Encontro de Iniciação Científica e Pós-Graduação do ITA – XIV ENCITA / 2008
Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, Outubro, 20 a 23, 2008.
TÉCNICAS DE PROJETO DE CIRCUITOS DIGITAIS
DE BAIXO CONSUMO
Yuri Sá Scaramussa
Divisão de Engenharia Eletrônica – Instituto Tecnológico de Aeronáutica – IEEA – ITA
Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – São Paulo – Brasil.
Bolsista PIBIC-CNPq
[email protected]
Duarte Lopes de Oliveira
Divisão de Engenharia Eletrônica – Instituto Tecnológico de Aeronáutica – IEEA – ITA
Praça Marechal Eduardo Gomes, 50 – CEP 12228-900 – São José dos Campos – São Paulo – Brasil.
[email protected]
Resumo. Na atualidade, muitos sistemas digitais são descritos por uma arquitetura composta de uma rede de controladores
síncronos e datapaths. Eles são alimentados por bateria e são implementados na tecnologia VLSI e/ou FPGAs (Field
Programmable Gate Array). Como a bateria deve ter uma vida longa útil, a redução do consumo de energia é a tarefa mais
importante no projeto destes sistemas. Para reduzir a potência dissipada, diversas estratégias foram propostas na literatura, seja
para o controlador, como para o datapath. Neste artigo apresentamos as diferentes técnicas para redução da potência dissipada e
propomos um método para síntese de controladores síncronos de baixo consumo. O nosso método sintetiza controladores síncronos
que usam latches sincronizados como elementos de memória.
Palavras chave: estimação de consumo de potência, síntese lógica de baixo consumo, chaveamento de relógio, assinalamento de
estados, latch sincronizado.
1. Introdução
Com o avanço da microeletrônica, cada vez mais sistemas digitais de alta complexidade são projetados. Muitos
destes sistemas têm como característica comum serem alimentados por bateria e estão voltados para diferentes
aplicações, tais como: comunicação sem fio, computador portátil, aeroespacial (satélite, mísseis, etc), aviação,
automobilística, médica, etc. Por serem alimentados por bateria é desejável que ela tenha uma vida longa útil, portanto,
a dissipação de potência é um parâmetro muito importante no projeto destes sistemas (Devadas, 1995, Weng, 2003).
Tradicionalmente, os circuitos digitais são implementados com componentes que são construídos com a tecnologia
CMOS. A potência dissipada nos componentes CMOS segue a seguinte expressão (Najm, 1994):
PTM=1/2.C.V2DD.f.N + Qsc.VDD.f.N + Ifuga.VDD (1)
Onde: PTM é a potência total média dissipada, VDD é a tensão de alimentação, f é a freqüência de operação, o fator N é
atividade de chaveamento, isto é, o número de transições na saída de uma porta, e o fator QSC e C são respectivamente a
quantidade de carga e a capacitância (Najm, 1994).
Na equação (1), o primeiro termo representa a potência dissipada dinâmica. O segundo termo representa a potência
dissipada relacionado com a corrente de curto. O terceiro termo representa a potência dissipada estática relacionada
com a corrente de fuga. Na tecnologia CMOS estática a maior fração da potência dissipada ocorre durante a atividade
de chaveamento dos eventos (potência dinâmica) (Najm, 1994). A dissipação da potência media na porta g pode ser
simplificada ao primeiro termo de (1):
Pmédia-g=1/2.Cg.V2DD.f.Nmédia-g
(2)
As técnicas de redução da potência dinâmica são aplicadas nos diferentes níveis do projeto digital (Devadas, 1995).
Na síntese de circuitos digitais síncronos as propostas de redução de potência estão sendo feitas no nível lógico que são:
controle lógico do relógio (gated-clock) (Benini, 1996, 1997; Wu, 2001), Flip-Flops que atuam nas duas margens do
clock (Strollo, 1999; Zhao, 2007), decomposição (Monteiro, 1996,2002), assinalamento de estados (Baccheletta, 2000)
e minimização lógica (Iman, 1995; Tseng, 1997). Na síntese de alto nível as propostas que estão sendo feitas são:
temporizar registradores (“retiming”) (Maheshwari, 1998) e pré-computação (Monteiro,1996).
Em um sistema digital, a parte seqüencial é a maior contribuidora na dissipação de potência. Estudos realizados
indicam que o relógio destes sistemas consome uma grande porcentagem (15% a 45%) da potência do sistema
(Devadas, 1995). Assim, a potência do circuito, pode ser grandemente reduzida se reduzirem à atividade do relógio.
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
Neste artigo apresentamos os principais elementos de consumo de potência na tecnologia CMOS, duas técnicas de
estimação de potência, diferentes técnicas de redução de potência e propomos um método para síntese de controladores
síncronos (máquinas de estado finito – MEF) de baixo consumo. O nosso método parte de uma especificação síncrona
que deve satisfazer a restrição do fluxo de estado. Os nossos controladores são implementados na arquitetura alvo latch
sincronizado standard (ver Fig.1 a versão Mealy). O uso do latch como elemento de memória permite reduzir área,
consumo de energia e aumentar a velocidade. Comparando com os flip-flops, os latches consomem menos energia,
possuem menos transistores e o seu tempo de propagação é menor (Strollo, 1999).
E n tra d a s
Lógica
de
Excitação
Latc hes
D
C lk
C lk
Q
Lógic a
de
S aída
V ariáv eis
de
E s tado
Figura 1. Arquitetura alvo: Latch sincronizado standard modelo Mealy.
O nosso artigo está estrutura na seguinte forma. Na seção 2 apresentamos os conceitos de estimação de potência; na
seção 3 um resumo das técnicas de redução de potência no nível físico; na seção 4 apresentamos as principais técnicas
de redução na síntese lógica e lógica de alto nível; na seção 5 apresentamos o nosso método, ilustrando com um
exemplo. Finalmente na seção 6 as nossas conclusões.
2. Estimação de potência
Para o projetista de circuitos digitais de baixo consumo, o conhecimento da potencia consumida no circuito é um
fator importante, porque define as características da bateria e principalmente define as técnicas de redução de potência
que melhor se enquadram no problema, isto é, que obtêm um melhor desempenho. A seguir, apresentamos um estudo
sobre as fontes de consumo de potência em circuitos digitais (Yeap, 1998).
2.1. Fontes de consumo
Carga e descarga de capacitâncias é a fonte de dissipação de potência mais significativa na parte dinâmica do
circuito. Algumas vezes capacitores são fabricados intencionalmente para se alcançar operações não digitais como um
atraso (“delay”) no sinal ou compartilhar uma carga. No entanto, a maioria dos circuitos CMOS não necessita de
capacitores. Nesses casos, a capacitância se forma devido a efeitos parasitas de interconexões de fios e transistores.
Assim, a estimação e análise da capacitância parasita são importantes não só para se medir o atraso no sinal como
também o consumo de potência.
Correntes reversas são um fenômeno natural dos elementos compostos de semicondutores. Em circuitos com
transistores MOS, há duas maiores fontes de corrente reversa: 1) junção PN reversamente polarizada e 2) corrente
reversa associada a portadores minoritários gerados termicamente de um transistor que teoricamente estaria desligado.
Em circuitos VLSI atuais, a potência consumida pelas correntes reversas ainda é uma fração pequena
(aproximadamente 10%). A redução da mesma é alcançada normalmente por técnicas específicas e aumento da
tecnologia (Devadas, 1995; Yeap, 1998).
Corrente estática é uma corrente causada por um fluxo de corrente DC de Vdd para o terra quando o “pull-up” e
“pull-down” estão ambos conduzindo e a saída da porta não é transitória. Via de regra os circuitos CMOS não tem
corrente estática. Por isso, circuitos com potência dissipada devido a corrente estática devem ser detectados e
prontamente descartados pois: i) quando presente, a corrente estática é a maior fonte de potência dissipada; ii) corrente
estática está freqüentemente associado com funcionamento incorreto e/ou imprevisível do circuito.
2.2. Técnicas de estimação de potência
Estimação de potência, por simulação e por probabilidade são as principais técnicas de estimação (Monteiro, 1996;
Yeap,1998).
2.2.1. Estimação de potência por simulação
As simulações podem ser usadas para estimar potência em vários níveis. Simuladores de circuito como SPICE tem
uma precisão muito boa, mas não podem ser aplicados a uma análise de um chip completo. Simulações lógicas podem
analisar o desempenho de um chip completo, mas não tem uma precisão muito boa e algumas vezes são muito lentos.
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
Logo, como nenhuma técnica de simulação é aplicável em todos os níveis, é usada uma metodologia para verificar
e refinar o resultado.
Por exemplo, um projetista pode começar com simulações no nível de hardware para obter um valor inicial de
potência consumida. Em seguida, utiliza uma simulação no nível de porta lógica para refinar. Verifica que o resultado
está insatisfatório, modifica o design e verifica novamente. SPICE opera resolvendo uma grande matriz de correntes
nodais usando Leis de Kirchoff. Os componentes básicos do SPICE são elementos primitivos do circuito como
resistores, capacitores, indutores, fontes de voltagem e corrente. Elementos mais complexos como diodos e transistores
são construídos de elementos básicos.
SPICE oferece vários modos de simulação, mas o mais útil para simulação de estimação de potência é a análise
transiente. Essa análise envolve a parte DC do circuito no tempo zero e em seguida faz pequenos incrementos no tempo
para simular o comportamento dinâmico do circuito. Os modelos usados no SPICE geralmente são derivados de
processos de caracterização. Cada dispositivo é descrito por dúzias de parâmetros. Normalmente, os modelos são
calibrados por medições físicas feitas do chip a ser medido.
A maior vantagem do SPICE é sua precisão e versatilidade. Pode ser usada para estimar potência dinâmica, estática
e a potência dissipada pela corrente reversa. Modelos de transistores diferentes existem e podem normalmente
representar fenômenos de nível baixo. No entanto, exigem um grande recurso computacional, tornando-a ineficaz no
nível de hardware.
2.2.1.1. Simulação no nível de porta lógica
A ferramenta de simulação no nível de porta lógica mais popular é a simulação lógica dirigida a evento. Eventos
são mudanças lógicas de zeros - uns de rede no circuito em um ponto de tempo particular. Quando uma troca é
realizada na entrada de uma porta, ele pode disparar outro evento na saída da porta depois de certo tempo. A maioria
dos simuladores voltados para portas lógicas também suporta outros estados lógicos como “desconhecido”, “don’t
care” e “alta impedância”, para ajudar o projetista a simular o circuito de forma mais realista. Verilog e VHDL são duas
linguagens populares para esse tipo de simulação.
O princípio básico dessas ferramentas é realizar a simulação lógica para obter informação da atividade de trocas de
zeros – uns. Em seguida, usa essa informação para obter informação de dissipação de potência no circuito.
A maior vantagem é que a equação P=CV²f pode ser computada de forma precisa e rápida. Numa simulação nãológica como SPICE, a noção de freqüência de um nó não é bem definida, pois ela tem uma forma de onda analógica que
é potencialmente não periódica e não digital. Em simulação lógica, a atividade de troca em cada nó pode ser monitorada
e sua freqüência determinada.
2.2.2. Estimação de potência por análise probabilística
Nesse caso, um sinal lógico é visto como um processo aleatório de valor zero ou um, como certa característica
estatística. Nós não sabemos o momento exato em que ocorre uma transição. Ao invés disso, nós só encontramos e
propagamos diversas características estatísticas do sinal, e dessas características estima-se a potência dissipada.
Como um sinal lógico só consiste de uma forma de onda com voltagens zero ou um, a forma mais precisa descrever
um sinal lógico é gravar todas as transições do sinal no tempo exato que ocorreram. Mas como para fins de cálculo
apenas usa-se a freqüência do sinal, apenas registrando esse dado é possível estimar a potência dissipada. Essa é a
grande diferença entre estimação por análise probabilística e por simulação.
A grande vantagem dessa técnica é a eficiência computacional, já que o número de quantidades estatísticas a serem
analisadas geralmente é de uma ordem menor que o número de eventos a serem simulados. A grande desvantagem é a
baixa precisão em alguns casos. Estimação de potência por análise probabilística é uma ferramenta importantíssima
atualmente para o design VLSI.
Define-se freqüência f a metade do número de transições em um determinado período dividido por esse período.
Quando o período não é especificado, define-se freqüência:
lim T →∞
N (T )
2T
A probabilidade estatística p é a porcentagem do tempo que o sinal passa em alta (valor 1). Essa é uma
característica fundamental.
Para estimar a potência consumida, calcula-se as características {pn,fn} das n entradas, e então usando um modelo
matemático, propagar as características estatísticas por todo o circuito. A potência dissipada é então estimada por essas
características propagadas em cada “fan-out”. Para refletir o comportamento real do circuito, o modelo para ser usado
na propagação deve ser desenvolvido cuidadosamente.
Em circuitos lógicos simples, o modelo para propagação a ser empregado é bastante simples. Se a probabilidade de
duas entradas de uma porta AND sejam p1 e p2, a probabilidade da saída é então p1 p2.
A fórmula geral para uma álgebra booleana é fácil. Seja y=f(x1,...xn) , por Shannon, pode-se dizer que:
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
y = xi f xi + xi f x
Logo
i
.
P ( y ) = P ( xi ) P ( f xi ) + P ( xi ) P ( f x )
i
Por exemplo, seja y=abc+c (ver Fig. 2),
P(y)=P(a)P(b+c)+P( a )P(c)=P(a)P(b)+P(c)-P(a)P(b)P(c).
Figura 2. Circuito lógico.
3. Redução de potência no nível físico
No nível físico, duas importantes estratégias para a redução de potência, são: redução da tensão de alimentação e
redução da capacitância.
3.1 Redução da tensão de alimentação
A redução da escala de tensão é a maneira mais efetiva de redução de consumo, já que, conforme explicitado
anteriormente, a potência dinâmica de um sistema é quadraticamente proporcional à voltagem fornecida pela fonte.
Num circuito CMOS, reduzir a voltagem da fonte implica numa redução na velocidade do circuito. Infelizmente,
tecnologia sub-microns como usados em sistemas VLSI atuais, são saturados na velocidade, o que faz com que abaixo
de certas voltagens, o circuito apresente um atraso muito grande. A Fig. 3 mostra a relação tensão e atraso em um
circuito CMOS[Yeap, 1998]. Conforme explicitado, a redução da voltagem para valores abaixo de 2 V provoca uma
queda abrupta na velocidade. Além disso, o aumento da tensão da fonte para valores acima de 3V tem pouco impacto
no desempenho.
Figura 3. Redução de tensão: CMOS
Logo, a abordagem lógica é a redução da voltagem para valores próximos a 3 V. Além disso, quando a redução no
consumo de potência é a meta principal, é interessante reduzir a voltagem em determinadas regiões pagando o preço em
velocidade. Assim, uma técnica utilizada é a de se alterar a arquitetura do circuito, fazendo com que tarefas sejam
executadas paralelamente em voltagens menores. Logo a perda de velocidade é compensada pelo aumento de hardware.
O ponto negativo é o aumento da área do circuito.
3.2. Redução da capacitância
Foi visto anteriormente a dependência direta da potência dinâmica com a capacitância. A capacitância de uma porta
de um CMOS consiste principalmente da capacitância das portas dos transistores (depende da tecnologia e da
quantidade de portas), capacitância dos fios que conectam as portas e a capacitância parasita dos transistores.
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
Atualmente, na maioria dos circuitos, cerca de 50% da capacitância é devida as portas, 40% devida aos fios e 10%
a capacitância parasita. Em circuitos de alta tecnologia, os fios estão sendo responsáveis pela maior parte da
capacitância, pois em circuitos muito pequenos os fios ficam muito próximos um dos outros, gerando uma capacitância
“cross-talk”.
Assim, como a redução da capacitância não só reduz a potência consumida como aumenta a velocidade e reduz a
área do circuito, essa parece ser uma alternativa atraente. No entanto, como a capacitância está ligada apenas à potência
dinâmica, se houver pouca atividade, reduzir a capacitância irá reduzir muito pouco o consumo de potência. Além
disso, circuitos com a mínima capacitância geralmente tem baixo consumo de potência, circuitos de mínimo gasto de
potência não necessariamente têm a mínima capacitância (existem técnicas envolvendo um aumento pequeno da
capacitância aliado á circuitos redundantes para redução do consumo de potência).
4. Redução de potência na síntese lógica
4.1 Chaveamento de relógio
Chaveamento de relógio (“clock gating”) é uma técnica para que o circuito desative o clock de porções do mesmo
que não estão sendo utilizados para determinada tarefa. É o método muito usado para redução de em sinais com clock.
Uma máquina de estados finitos com chaveamento de clock é adquirida modificando a estrutura conforme a Fig. 4a.
Define-se um novo sinal chamado função de ativação (fa) cujo objetivo é parar seletivamente o clock local na máquina
de estados finita, quando a máquina em questão não estiver sendo usada. A estrutura modificada está sendo mostrada na
Fig. 4b. O bloco “L” representa um Latch, transparente quando o clock global está baixo. Perceba que a presença do
latch é necessária para um comportamento apropriado, pois a função de ativação pode ter glitches que não podem ser
propagados para a porta AND quando o clock global estiver em alta. Também perceba que o atraso devido à
computação lógica da função de ativação em uma parte crítica do circuito existente, e seu efeito deve ser computado
durante a verificação do tempo.
Figura 4. a) Clock único, máquina de estados finito baseada em flip-flop; b)Versão gated-clock do mesmo circuito.
O funcionamento do circuito é ilustrado nas Fig. 5a,b. Assumindo que a função de ativação fa se torna válido antes
da subida do clock global, com o sinal fa em baixa e o latch transparente. Se o sinal fa se torna alto, a próxima elevação
do clock global não vai passar pela porta AND e máquina de estados finita não vai ser ativada. Observar que quando o
clock global estiver em alta, o latch não vai ser transparente.
Figura 5. Diagrama temporização: a) uma simples porta AND usada b) um Latch e uma parte AND sendo usadas
Pode-se observar que nesse caso, só há variação na saída se o sinal de Enable estiver em alta. As Fig. 6 e 7
mostram respectivamente o circuito lógico e a sua simulação.
Figura 6. Circuito lógico.
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
Figura 7. Simulação: diagrama de temporização.
4.2. Mapeamento Tecnológico
Mapeamento tecnológico envolve um mapeamento de um bloco lógico usando células de uma determinada
biblioteca. Para redução de consumo, é necessário observar:
- Nós internos de células de bibliotecas normalmente tem menor capacitância que os nós externos
- O tamanho da porta tem um grande impacto na potência consumida
- A menor potência encontrada por mapeamento nem sempre coincide com o menor delay ou área
4.3. Transformações Algébricas
Essa técnica consiste em usar propriedades algébricas para encontrar um circuito com um consumo de potência
menor com a mesma implementação de um dado circuito. As propriedades mais populares usadas para redução de
potência são as de comutativa, associativa e distributiva.
Um ponto a se notar é que no nível de porta lógica, muitas operações algébricas como AND, OR, NAND e XOR,
são comutativas, ou seja, suas entradas podem ser trocadas sem afetar sua funcionalidade. Baseando-se então na
capacitância e na taxa de chaveamento dos sinais externos, as entradas das portas podem ser trocadas, de forma a
conectar a porta de menor capacitância com a rede de maior taxa de chaveamento, reduzindo assim a taxa de consumo.
As propriedades associativa e distributiva de operadores no nível de porta lógica como AND, OR e XOR, e
também operadores a nível RT (register transfer), como somadores e multiplicadores são usadas em uma transformação
para redução de potência chamada de decomposição (Monteiro, 1996). A Fig. 8 ilustra o exemplo e a Fig. 9 a sua
simulação.
Figura 8. Circuito lógico.
Figura 9. Simulação: diagrama de temporização.
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
Nesse caso, vê-se que a entrada de maior atividade afeta mais o circuito (a) do que o (b), tanto diretamente (sendo
entrada das portas na esquerda) como indiretamente (como se pode observar pelas saídas auxiliares).
4.4. Assinalamento de estados
Sabe-se que a especificação de comportamento de uma máquina de estados finitos é visto de forma típica num
gráfico de transições de estados. O projetista do circuito tem liberdade de decidir o número de variáveis de estado e a
codificação de cada estado. Essa liberdade pode ser usada de forma a aperfeiçoar sua implementação, de forma similar
à técnica de manipulação algébrica.
A dissipação de potência das linhas de estado e dos flip-flops podem ser modelados numa formulação matemática
simples. Intuitivamente pensa-se é que a potência pode ser minimizada quando a freqüência de transições na linha de
estados for reduzida. Isso pode ser atingido selecionando códigos de estados que minimizam o número de diferença de
bits entre estados que tem maior probabilidade de sofrerem transições. Em outras palavras, quando uma transição entre
dois estados for provável, tentaremos escolher códigos similares para os dois estados.
No entanto, apenas reduzir a freqüência de transições na linha de estados em uma máquina de estados finitos não
garante redução na potência total dissipada, pois à parte computada na parte combinatória não foi contabilizada. Por
isso, o algoritmo deve contabilizar a lógica combinatória.
Inicialmente, deve-se calcular a probabilidade de transição de estados, que é o limite do valor da atividade de
transição média quando o tempo de observação tende ao infinito. Lembrando-se que a probabilidade de transição é
fortemente dependente do estado inicial, a distribuição de probabilidade pode ser computada simulando a MEF em um
contexto (isso pode ser feito modelando matemática a máquina de estados finito em uma cadeia de Markov).
Após computador as probabilidades, as transformações a serem feitas podem ser relacionadas:
• Eliminar todos estados inalcançáveis, se houver.
• Calcular as probabilidades.
• Remover todos os “self-loops” usando um peso representando sua probabilidade de transação total
• Juntar todos as múltiplas mudanças entre dois estados (nos dois sentidos) em uma única mudança com um peso
igual à soma de todas as probabilidades das múltiplas mudanças.
Após realizarmos isso, pode-se pensar em como escolher o código de cada estado. A idéia principal é reduzir o
número de mudança de variáveis de estado quando a MEF transita entre dois estados adjacentes. Idealmente, a cada
transição só se mudaria uma variável de estado.
4.5. Flip-flops ativados em margem dupla
Essa técnica consiste em utilizar flip-flops que são ativados tanto na subida quanto na descida do clock. Logo, para
um mesmo processamento, esse circuito precisaria da metade do clock. No entanto, sua aplicabilidade em circuitos de
baixa potência atualmente é difícil, pois essa técnica aumenta em muito a complexidade do circuito, o que indica maior
consumo de potência, o que ás vezes é maior do que a economia devido à redução de clock.
Assim, os estudos atuais nessa área estão no sentido de se tentar propor flip-flops ativados em margem dupla mais
simples. A Fig. 10 mostra flip-flops com diferentes ativações.
(a)
(b)
Figura 10. Exemplos de flip-flops possíveis.
5. Redução de potência na síntese de alto nível
5.1 Retiming
Retiming é uma transformação que tem grande potencial para otimização de circuitos seqüenciais. Consiste
basicamente em mover dispositivos de armazenamento entre nós para melhorar a desempenho sem mudar o
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
comportamento da entrada-saída, sem afetar a parte combinatória do circuito. A nível RTL esses dispositivos podem ser
latchs ou flip-flops.
Além de poder reduzir o consumo de potência, essa técnica pode ser aplicada para diversas outras funções como
reduzir o clock e reduzir a área total do circuito. Retiming pode reduzir a potência dissipada num circuito, pois como
registradores podem filtrar glitches, re-alocar registradores irá afetar o número de transições das saídas. Além disso, realocar registradores também pode reduzir a capacitância vista pelas portas.
Uma técnica para reduzir o consumo de potência é procurar os nós que, ao terem um flip-flop inserido em sua
saída, têm sua atividade de transição reduzida. Os nós são escolhidos baseados na quantidade de glitches presentes em
sua saída e na probabilidade dos glitches se propagarem em seus fan-outs.
5.2. Pré Computação
Pré-computação é uma técnica que consiste basicamente em “desligar” módulos inteiros do circuito quando não
usados.
O primeiro passo para a otimização é a síntese de uma lógica de pré-computação, que computa os valores das
saídas para um conjunto de condições de entrada. Se os valores das saídas podem ser pré-computados, o circuito lógico
original pode ser “desligado” no próximo ciclo e não vai ter nenhuma atividade. Como a economia de energia do
circuito “desligado” pode ser até mesmo superada pela energia consumida na pré-computação, a seleção de um bom
conjunto de condições de entrada para o qual os valores da saída são computados é essencial. Além disso, a précomputação aumenta a área total do circuito e pode aumentar até mesmo o clock. As Fig. 11 e 12 mostram
respectivamente um exemplo e a sua simulação. Pode-se observar pelas saídas auxiliares que essa técnica reduz
drasticamente o número de transições (nesse caso, 6 entradas só se propagariam caso as 2 primeiras fossem iguais).
Figura 11. Circuito lógico.
Figura 12. Simulação: diagrama de temporização.
6. Máquinas de estado finito síncronas baseadas em latches
Os controladores síncronos na maioria dos casos são descritos por uma máquina de estado finito síncrona (MEFS).
Elas são implementadas por exemplo, na arquitetura baseada em flip-flops e lógica combinatória. Flip-Flops são
elementos de memória que possuem dois termos de temporização significativos no calculo de desempenho do
controlador, que são: tempo de setup e tempo de propagação [Unger, 1986]. Os esquemas de flip-flops mostram que o
sinal de relógio atua em diversos transistores gerando um alto consumo de energia [Strollo,1999; Zhao, 2007]. Projeto
de controladores síncronos de alto desempenho tem problemas sérios no tratamento do sinal de relógio, por exemplo:
skew clock [Mayers, 2001]. Controladores síncronos de alto desempenho muitas das vezes são implementados em
arquiteturas baseadas em latches sincronizados e lógica combinatória, que elimina o problema de “skew clock”. Estes
controladores operam com sinais de relógio com múltiplas fases, não simétricos e não sobrepondo a parte alta [Bartllet,
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
1991; Champernowne, 1990]. Outra estratégia para síntese de controladores síncronos é através do paradigma
assíncrono [Mayers, 2001]. Este paradigma parte de especificações baseadas em fluxo de dados que não é familiar aos
projetistas do mundo síncrono [Mayers, 2001]: Tabela de fluxo de estados primitiva, Grafo modo rajada (Burst-Mode
Specification) e Grafo de transição de sinais (Signal Transition Graph).
Nesta seção apresentamos o nosso método de síntese de controladores síncronos que permite implementar MEFS
com somente latches sincronizados, usando sinal de relógio de uma única fase. Esta implementação é obtida no
paradigma assíncrono mas parte de uma especificação familiar aos projetistas do mundo síncrono.
6.1. Especificação: Grafo de transição de estados (GTE)
A especificação GTE é uma forma formal e popular de descrever MEFS, onde os vértices representam estados e as
arestas representam transições de estado. Os sinais de entrada são rotulados nas transições de estado como sinais de
nível. Os sinais de saída são de nível, seja rotulado na transição (modelo Mealy) ou seja no estado (modelo Moore). O
GTE não possui nenhuma restrição alem de ter um número finito de estados e transições de estado. O nosso método
aceita GTE que satisfaz o lemma 6.1.
Lemma 6.1 (sem prova). Seja G um GTE, onde {A1, A2,...,AN} é o conjunto de vértices (estados) de G e
{E1,E2,..,EM} é o conjunto de arestas (transições de estados) rotuladas de G. Cada aresta Ei ∈ G é rotulada com o vetor
de sinais de entrada Wi. Seja um vértice Ai ∈ G e as arestas Ej, Ek ∈ G tal que Ej incide em Ai e Ek emerge de Ai. Se
1) ∀ Ei ∈ G temos que em Ei há o rotulo Wi e 2) Wj∩Wk=∅ então a especificação GTE pode ser implementada na
arquitetura Latch sincronizado standard.
Para ilustrar o lemma 6.1, as Fig. 13a,b mostram respectivamente a especificação GTE e a tabela de transição de
estados no modelo Moore. Os vetores dos sinais de entrada nas transições de estado AÆB e BÆC são WAB[ab=00] e
WBC[ab=00]. Como WAB∩WBC≠∅, portanto o GTE não satisfaz o lemma 6.1. A Fig. 14 mostra o GTE que satisfaz o
lemma 6.1
Figura 13. Especificação com lemma 6.1 não satisfeito: a) GTE; b) Tabela de transição de estados.
Figura 14. Especificação GTE: lemma 6.1 satisfeito.
6.2. Método de síntese
O nosso método segue o procedimento clássico da síntese das máquinas de estado finito assíncronas (máquinas de
Huffman) (MacCluskey, 1986; Nowick, 1993). Ele é composto de 4 passos:
1. Se a especificação GTE satisfaz o lemma 6.1, ir para o passo 2, caso contrário pare.
2. Realizar a minimização de estados, onde um par de estados pode ser fundido se o estado final satisfaz o lemma
6.1 (MacCluskey, 1986; Katz, 2003).
3. Realizar a codificação livre de corrida critica para a MEFS minimizada (Nowick, 1993).
4. Obter as equações de excitação livre de risco lógico e as equações de saída na arquitetura alvo (Nowick, 1993).
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
6.3. Exemplo
A Fig. 14 é uma especificação GTE modelo Moore, que será usada para ilustrarmos o nosso método. Esta
especificação satisfaz o lemma 6.1 e está minimizada (passos 1 e 2). As Fig. 15a e 15b mostram respectivamente as
Tabelas de Transição de Estados, a não codificada e a codificada livre de corrida crítica (passo 3). As Fig. 16a e 16b
mostram os mapas de Karnaugh para as equações de excitação livre de risco lógico para D1 e D2. As Fig. 17a e 17b
mostram os mapas de Karnaugh para as equações de saída Z1 e Z2 (passo 4). A Fig. 18 mostra o circuito lógico na
arquitetura latch sincronizado.
Estados
ac
00
01
11
10
A
B
A
A
D
Q1 Q2
ac
00
00
01
01
11
10
00
10
00
B
B
C
C
B
01
01
11
11
01
C
C
C
C
D
11
11
11
11
10
D
C
C
A
D
10
11
11
00
10
(a)
(b)
Figura 15. Tabela de transição de estados: a) não codificada; b) codificada livre de corrida.
Q1 Q2
ac
ac
00
01
11
10
00
01
11
10
00
0
0
0
1
00
1
0
0
0
01
0
1
1
0
01
1
1
1
1
11
1
1
1
1
11
1
1
1
0
10
1
1
0
1
10
1
1
0
0
Q1 Q2
(a)
(b)
Figura 16. Mapas de Karnaugh: a) Lógica de excitação D1; b) lógica de excitação D2.
(a)
Figura 17. Mapas de Karnaugh: a) Lógica de saída Z1; b) lógica de saída Z2.
(b)
a c
Z2
D1 Q 1
Latc h
Q1
C LK
D 2 Q2
Latc h
C LK
Q2
Z1
C LK
Figura 18. Circuito lógico.
7. Conclusões
Neste artigo apresentamos os conceitos de estimação de potência, como também diferentes técnicas de redução de
potência dissipada para circuitos digitais usando a tecnologia CMOS. Neste artigo também apresentamos um método
para síntese de controladores síncronos, que parte de uma especificação GTE baseada em fluxo de estados. A
Anais do XIV ENCITA 2008, ITA, Outubro, 20-23, 2008
,
arquitetura alvo do nosso método usa latches sincronizados como elementos de memória. O uso de latches permite
reduzir área, potência dissipada e tempo de ciclo dos controladores síncronos.
8. Agradecimentos
Agradecemos ao CNPq pelo apoio financeiro (bolsa PIBIC) e Leonardo Romano pelas discussões proveitosas sobre
estimação de consumo de potência.
9. Referências
Devadas, S.and Malik, S., 1995, “A Survey of Optimization Techniques Targeting Low Power VLSI Circuits,” Proc.
32nd ACM/IEEE DAC, pp.242-247.
Weng, Li-Chuan, Wang, X. J. and Liu, B., 2003, “A Survey of Dynamic Power Optimization Techniques”, Proc. Of the
3rd IEEE Int. Workshop on System-on-Chip for Real-Time Applications, pp. 48-52.
Najm, F., 1994, “A Survey of Power Estimation Techniques in VLSI Circuits,” IEEE Trans. On VLSI Systems, vol. 2,
no. 4, December, pp.446-455.
Benini, L. and Micheli, De G., 1996, “Automatic Synthesis of Low-Power Gated-Clock Finite-State Machines”, IEEE
Trans. on CAD of Integrated Circuits and Systems, Vol.15, No.6, June, pp.630-643.
Benini, L. 1997, “In Automatic Synthesis of Sequential Circuits for Lower Power Dissipation,” PhD Thesis, Stanford
University.
Strollo, G. M. et al., 1999, “Power Dissipation in One-Latch and Two-Latch Double Edge Triggered Flip-Flops,” Proc.
6th IEEE Int. Conf. on Electronic, Circuits and Systems, pp.1419-1422.
Zhao, P., McNeely, J., et al., 2007, “Low-Power Clock Branch Sharing Double-Edge Triggered Flip-Flops” IEEE
Trans. On VLSI Systems, vol. 15, no.3, March, pp.338-345.
Wu, Q., Pedram, M. and Wu, X., 2001, “Clock-Gating and Its Application to Low Power Design of Sequential
Circuits”, IEEE Trans. On Circuits and Systems-I: Fundamental Theory and Applications, vol. 47, no.103, March,
pp.415-420.
Baccheletta, P., et al., 2000, “Low-Power State assignment Techniques for Finite State Machines”, IEEE Int.
Symposium on Circuits and systems, Geneva, Switzeriand, May, pp.641-644.
Iman, S. and Pedram, M., 1995, “Two-level Logic Minimization for Low Power,” IEEE/ACM Conf. Int. on CAD
Digest of Technical Papers, pp.433-438.
Nowick, S. M., 1993, “Automatic Synthesis of Burst-Mode Asynchronous Controllers,” PhD thesis, Stanford
University.
Monteiro, J., 1996, “In A Computer-Aided Design Methodology for Low Power Sequential Logic Circuits,” PhD
Thesis MIT.
Monteiro, J. and Oliveira, A. L., 2002, “Implicit FSM Decomposition Applied to Low-Power Design”, IEEE Trans. on
VLSI Systems, Vol. 10, No. 5, October, pp.560-565.
Yeap, G., 1998, “In Practical Low Power Digital VLSI Design,” Ed. Kluwer Academic Pub.
Maheshwari, N., 1998, “In Fast algorithms for retiming large digital circuits,” PhD Thesis, Iowa State University.
Tseng, J.-Mou and J.-Yang Jou, J.-Yang, 1997, “A Power-Driven Two-Level Logic Optimizer. Proc. Of the ASP-DAC,
pp.113-116.
MacCluskey, E. J., 1986, “Logic Design Principles With Emphasis on Testable Semicustom Circuits,” Prentice-Hall.
Katz, R. H., 2003, “Contemporary Logic Design,” The Benjamin/ Cummings Publishing Company, Inc., 2a edition.
Champernowne, A. F. et al., 1990, “ Latch-to-Latch Timing Rules,” IEEE Trans. on Computers, vol.19, no.6, June,
pp.798-808.
Unger, S., 1986, “Clocking Schemas for High-Speed Digital Systems,” IEEE Trans. on Computers, vol. c-35, no. 10,
October, pp.880-895.
Bartlett, K. and Borriello, G., 1991, “ Timing Optimization of Multiphase Sequential Logic,” IEEE Trans. on CAD,
vol.10, no. 1 January, pp.51-62.
Mayers, C. J., 2001, “Asynchronous Circuit Design,” Wiley & Sons, Inc.
Download