Vous êtes sur la page 1sur 107

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PROGRAMA DE PS-GRADUAO EM ENGENHARIA ELTRICA


E INFORMTICA INDUSTRIAL



BRUNO UMBRIA PEDRONI





IMPLEMENTAO EM HARDWARE DE UM
DECODIFICADOR DE VITERBI BASEADO NAS TRELIAS
CONVENCIONAL, PUNCIONADA E MNIMA





DISSERTAO DE MESTRADO





CURITIBA
2009


BRUNO UMBRIA PEDRONI





IMPLEMENTAO EM HARDWARE DE UM
DECODIFICADOR DE VITERBI BASEADO NAS TRELIAS
CONVENCIONAL, PUNCIONADA E MNIMA




Dissertao apresentada ao Programa de Ps-
Graduao em Engenharia Eltrica e Informtica
Industrial da Universidade Tecnolgica Federal do
Paran, como requisito parcial para obteno do
ttulo de Mestre em Cincias rea de
Concentrao: Telemtica.

Orientador: Prof. Dr. Richard Demo Souza
Co-Orientador: Prof. Dr. Volnei Antonio Pedroni




CURITIBA
2009





























Ficha catalogrfica elaborada pela Biblioteca da UTFPR Campus Curitiba


P372i Pedroni, Bruno Umbria
Implementao em hardware de um decodificador de Viterbi baseado
nas trelias convencional, puncionada e mnima / Bruno Umbria
Pedroni. 2009.
105 f. : il. ; 30 cm

Orientador: Richard Demo Souza
Co-orientador: Volnei Antonio Pedroni
Dissertao (Mestrado) Universidade Tecnolgica Federal do Paran.
Programa de Ps-Graduao em Engenharia Eltrica e Informtica
Industrial. rea de Concentrao: Telemtica, 2009
Bibliografia: f. 103-5

1. Viterbi, decodificadores de. 2. Dispositivos lgicos programveis.
3. Decodificadores (Eletrnica). 4. Telecomunicaes. 5. Telemtica.
I. Souza, Richard Demo, orient. II. Pedroni, Volnei A. (Volnei Antonio),
co-orient. III. Universidade Tecnolgica Federal do Paran. Programa de
Ps-Graduao em Engenharia Eltrica e Informtica Industrial. rea de
Concentrao: Telemtica. IV. Ttulo.

CDD 621.3




































Ao Mestre na minha vida, cujo raciocnio e inteligncia
transcendem a lgica; cuja prontido e dedicao transcendem
a paternidade; e cuja aceitao e satisfao pelos momentos da
vida, desapercebidas inclusive por ele mesmo, me inspiram em
respirar fundo e ver o todo.

Minha admirao e metade do meu sangue sero sempre seus.


AGRADECIMENTOS



Universidade Tecnolgica Federal do Paran UTFPR, por me dar a
oportunidade de desfrutar do seu excelente ensino, tanto em termos da qualificao dos
professores, quanto em infra-estrutura, que propiciam uma educao completa.

Ao Richard Demo Souza, o qual foi o orientador preciso para meus estudos,
apoiando-me em uma base quase diria, mostrando sua eterna disposio e interesse
e dando seu voto de confiana em mim. Alm de professor e orientador, tornou-se um
grande amigo meu ao longo destes ltimos anos.

Ao Volnei Antonio Pedroni, por ter co-orientado o meu trabalho e por ser meu pai
e professor nestes ltimos 27 anos.

Ao Ceclio Pimentel e ao Fernando Castaldo, por mostrarem interesse no meu
trabalho e participarem da banca de defesa.

Companhia Paranaense de Energia COPEL, principalmente nas pessoas de
Jos Maria Tiepolo, Gilmar Alfredo Ribas e Cley Jos Vaz Nascimento, pelo incentivo
na realizao deste estudo.

Cludia, Patrcia e Ricardo, por compartilharem comigo o mundo acadmico e
me apoiarem na minha deciso de segui-lo.

minha namorada e futura esposa, Luciana, por mostrar compreenso em todos
os momentos em que os livros e o computador venceram, participando avidamente dos
meus estudos e de todo preparo final. Consegui concluir com xito e manter o foco por
causa do seu apoio e dos nossos planos. Obrigado, querida.

Aos amigos e colegas, que mostraram interesse durante o processo.

RESUMO


PEDRONI, Bruno Umbria. Implementao em hardware de um decodificador de Viterbi
baseado nas trelias convencional, puncionada e mnima. 2009. 105 f. Dissertao
Programa de Ps-Graduao em Engenharia Eltrica e Informtica Industrial da
Universidade Tecnolgica Federal do Paran. Curitiba, 2009.


O decodificador de Viterbi (VD) amplamente utilizado nos sistemas atuais de
comunicao, principalmente os sem fio, onde o consumo de energia crtico. O VD
realiza a decodificao de cdigos convolucionais, os quais podem ser representados
por trelias, sendo que atravs destas que o VD processa a decodificao. Conforme
avaliado por McEliece e Lin, as trelias puncionada e mnima de um cdigo de taxa 2/3
apresentam complexidade reduzida em relao trelia convencional. Nesta
dissertao, foram construdos VDs baseados nestas trs estruturas de trelia do
cdigo de taxa 2/3. Os circuitos dos decodificadores foram implementados em
dispositivos de lgica programvel (PLDs) e em circuitos integrados de aplicao
especfica (ASICs), avaliando o impacto da trelia e sua complexidade sobre o
consumo de energia, o consumo de hardware e a freqncia mxima de operao de
cada VD.


Palavras-chave: Trelia de cdigo convolucional. Decodificador de Viterbi.
Desempenho de decodificador. Dispositivo de lgica programvel. Circuito integrado de
aplicao especfica.





ABSTRACT


PEDRONI, Bruno Umbria. Hardware implementation of a Viterbi decoder based on the
conventional, punctured, and minimal trellises. 2009. 105 f. Dissertao Programa de
Ps-Graduao em Engenharia Eltrica e Informtica Industrial da Universidade
Tecnolgica Federal do Paran. Curitiba, 2009.


The Viterbi decoder (VD) is widely used in modern communication systems, especially
wireless systems, in which power consumption is critical. The VD decodes convolutional
codes, which can be represented by trellis structures, and it is based on these trellises
that the decoder processes. According to McEliece and Lin, the punctured and minimal
trellis structures of a rate 2/3 code present reduced complexity in comparison to the
conventional trellis. In this thesis, VDs based on these three trellis structures of the rate
2/3 code were constructed. The decoder circuits were implemented in Programmable
Logic Devices (PLDs) and in Application Specific Integrated Circuits (ASICs), analyzing
the impact that each trellis and its complexity has on power consumption, hardware
consumption and maximum operating frequency.


Keywords: Convolutional code trellis. Viterbi decoder. Decoder performance.
Programmable Logic Device. Application Specific Integrated Circuit.








LISTA DE FIGURAS


Figura 2.1 Elementos e circuito do codificador para o cdigo (3,2,2,3).......................20
Figura 2.2 Diagrama de estados do cdigo (3,2,2,3). .................................................21
Figura 2.3 Mdulo da trelia convencional para o cdigo (3,2,2,3). ............................24
Figura 2.4 Mdulos de trelia dos cdigos (2,1,2,5) (a) e (4,2,2,5) (b)........................25
Figura 2.5 Mdulo da trelia puncionada para o cdigo (3,2,2,3)................................26
Figura 2.6 Modulo da trelia mnima para o cdigo (3,2,2,3). .....................................27
Figura 2.7 Codificao de uma mensagem formada por 5 palavras. ..........................29
Figura 3.1 Mensagem corrompida por rudo inserido pelo canal.................................34
Figura 3.2 Formao da trelia convencional para decodificao...............................35
Figura 3.3 Traceback na trelia convencional. ............................................................36
Figura 3.4 Decodificao utilizando a trelia puncionada............................................37
Figura 3.5 Decodificao utilizando a trelia mnima. .................................................38
Figura 3.6 Diagrama geral do VD................................................................................38
Figura 3.7 Diagrama de blocos do VD convencional...................................................41
Figura 3.8 Diagrama de blocos do VD puncionado com mltiplos ACSs. ...................43
Figura 3.9 Diagrama de blocos do VD puncionado com ACSs nicos........................44
Figura 3.10 Diagrama de blocos do VD mnimo com mltiplos ACSs.........................46
Figura 3.11 Diagrama de blocos do VD mnimo com ACSs nicos.............................47
Figura 4.1 Mdulo da trelia convencional para o cdigo (3,2,2,3). ............................54
Figura 4.2 HD e ACS do VD convencional. .................................................................55
Figura 4.3 TB do VD convencional..............................................................................56
Figura 4.4 Mdulo da trelia puncionada para o cdigo (3,2,2,3)................................57
Figura 4.5 HD do VD puncionado................................................................................58
Figura 4.6 ACS A do VD puncionado com mltiplos ACSs. ........................................58
Figura 4.7 ACS A do VD puncionado com ACSs nicos.............................................59
Figura 4.8 Mdulo da trelia mnima para o cdigo (3,2,2,3). .....................................60
Figura 4.9 HD do VD mnimo. .....................................................................................60
Figura 4.10 ACS do VD mnimo com mltiplos ACS. ..................................................61
Figura 4.11 ACS A do VD mnimo com ACSs nicos..................................................62

Figura 4.12 ACSs B, C, D, E, F, G e H do VD mnimo com ACSs nicos. ..................62
Figura 5.1 Corte vertical de transistores nMOS e pMOS. ...........................................65
Figura 5.2 Largura (W) e comprimento (L) do canal de um MOSFET.........................65
Figura 5.3 Smbolos dos transistores nMOS e pMOS. ................................................66
Figura 5.4 Inversor CMOS...........................................................................................67
Figura 5.5 Consumo de curto-circuito (energia dinmica). ..........................................68
Figura 5.6 Consumo de capacitncia (energia dinmica). ..........................................69
Figura 5.7 Circuitos com lgica (a) combinacional e (b) seqencial............................70
Figura 5.8 Atraso de propagao. ...............................................................................72


LISTA DE TABELAS


Tabela 2.1 Nomenclaturas possveis para os ns da trelia do cdigo (3,2,2,3).........23
Tabela 2.2 Relao da operao do codificador com a operao da trelia. ..............23
Tabela 4.1 Siglas e nomenclatura dos sinais globais dos VDs. ..................................53
Tabela 6.1 Consumo de energia dos VDs...................................................................78
Tabela 6.2 Registradores do VD convencional. ..........................................................82
Tabela 6.3 Registradores do VD puncionado com mltiplos ACSs.............................82
Tabela 6.4 Registradores do VD puncionado com ACSs nicos.................................82
Tabela 6.5 Registradores do VD mnimo com mltiplos ACSs....................................83
Tabela 6.6 Registradores do VD mnimo com ACSs nicos. ......................................83
Tabela 6.7 Consumo de hardware dos VDs................................................................85
Tabela 6.8 Freqncia mxima de operao dos VDs................................................88
Tabela 7.1 Estimativa da atividade dos transistores dos VDs, por palavra-cdigo. ....93
Tabela 7.2 Consumo de energia dos VDs...................................................................94
Tabela 7.3 Consumo de hardware dos VDs................................................................96



SUMRIO


1. INTRODUO...........................................................................................................13
1.2 MOTIVAO........................................................................................................15
1.3 CONTRIBUIO..................................................................................................16
1.4 ORGANIZAO...................................................................................................16
2. CDIGOS CONVOLUCIONAIS.................................................................................18
2.1 CDIGO E CODIFICADOR CONVOLUCIONAL..................................................19
2.2 TRELIAS............................................................................................................22
2.3 EXEMPLO DE CODIFICAO.............................................................................28
2.4 COMPLEXIDADE DAS TRELIAS.......................................................................29
3. DECODIFICAO DE CDIGOS CONVOLUCIONAIS............................................31
3.1 ALGORITMO DE VITERBI ...................................................................................31
3.2 EXEMPLO DE DECODIFICAO........................................................................33
3.3 COMPONENTES DO DECODIFICADOR ............................................................38
3.4 PARTICULARIDADES DO VD DE ACORDO COM A TRELIA..........................40
4. CIRCUITOS DOS DECODIFICADORES...................................................................49
4.1 ESTRATGIAS DE CONSTRUO E PROCESSAMENTO...............................49
4.2 SINAIS COMUNS AOS VDs.................................................................................52
4.3 O DECODIFICADOR CONVENCIONAL ..............................................................53
4.4 O DECODIFICADOR PUNCIONADO...................................................................56
4.5 O DECODIFICADOR MNIMO..............................................................................59
5. MEDIES E ESTIMATIVAS....................................................................................64
5.1 O TRANSISTOR MOSFET E A LGICA CMOS..................................................64
5.2 CONSUMO DE ENERGIA....................................................................................67
5.3 CONSUMO DE HARDWARE ...............................................................................69
5.4 FREQNCIA MXIMA DE OPERAO............................................................71
6. IMPLEMENTAO DOS DECODIFICADORES EM PLDs.......................................74
6.1 PROGRAMMABLE LOGIC DEVICES E VHDL ....................................................74
6.2 CONSIDERAES SOBRE OS VDs...................................................................76
6.3 RESULTADOS .....................................................................................................77

7. IMPLEMENTAO DOS DECODIFICADORES EM ASICs .....................................90
7.1 SPICE...................................................................................................................91
7.2 CONSIDERAES SOBRE AS SIMULAES E OS VDs .................................91
7.3 CONSUMO DE ENERGIA QUALITATIVO: ATIVIDADE DOS TRANSISTORES.92
7.4 RESULTADOS: CONSUMO DE ENERGIA..........................................................94
7.5 RESULTADOS: CONSUMO DE HARDWARE.....................................................95
8. CONCLUSES..........................................................................................................98
8.1 CONTEDO ABORDADO....................................................................................98
8.2 APRENDIZADO E DIFICULDADES .....................................................................98
8.3 CONCLUSES...................................................................................................100
8.3.1 Consumo de energia...............................................................................100
8.3.2 Consumo de hardware............................................................................100
8.3.3 Freqncia mxima de operao............................................................101
8.3.4 Respostas s perguntas do Captulo 2...................................................101
8.3.5 Concluses finais....................................................................................101
8.4 TRABALHOS FUTUROS E QUESTES EM ABERTO......................................102
REFERNCIAS............................................................................................................103


13
1. INTRODUO

De tempos em tempos, invenes revolucionrias surgem e alteram a histria,
de modo que as vidas das pessoas nunca voltam a ser as mesmas. Na histria pessoal
das telecomunicaes surgiram inventores e feitos como: Morse e o seu cdigo na
telegrafia; Marconi e a rdio telegrafia; Tesla e o principio do radar; e Korolev (chefe do
Programa Sputnik Sovitico) e o primeiro satlite artificial, Sputnik 1. Todas estas
invenes e seus autores so conhecidos por disseminar uma tecnologia nova,
deixando seu marco na histria da humanidade. Entretanto, os feitos realizados por
estes inventores e pioneiros advm da contribuio de muitos outros cientistas e
inventores, cujo trabalho propiciou um meio para que idias e aplicaes pudessem
surgir, pessoas que muitas vezes passam desapercebidas na histria. Salv i Campillo
e Smmering e o telgrafo eletromecnico, Braun e sua contribuio conjunta para a
rdio telegrafia e at Fessenden e a modulao de amplitude (AM) na r[adio
transmisso de udio: menos reconhecidos (e conhecidos), mas todos contribuintes
vidos para o que as telecomunicaes so hoje.
Observando assim, faz-se parecer que injustias histricas foram cometidas.
Entretanto, as invenes sozinhas muitas vezes no so suficientes para registrar um
marco, onde uma tecnologia nova consolidada apenas com contribuies que a
viabilizam e tornam-na algo realmente concebvel. Eis a razo de tanta fama dada aos
ps-inventores que exploraram as aplicaes, capacidades e limites das novidades
recm-criadas, mostrando que isto pode causar um impacto ainda maior que a prpria
novidade.
Atualmente, sistemas de comunicao extremamente evoludos so utilizados
sem o usurio sequer dar conta das centenas de anos que foram despendidos para que
a facilidade que ele possui pudesse existir. Dentre as ps-invenes que contriburam
para viabilizar as tecnologias modernas de comunicao aparece o decodificador de
Viterbi (VD): um marco na histria das telecomunicaes e de extrema importncia para
a operao do mundo atual. Criado em 1967 por Andrew J. Viterbi [1], o VD o mtodo
mais utilizado para decodificar cdigos convolucionais [2], os quais so aplicados em
sistemas de comunicao, para melhorar o seu desempenho frente ao rudo. Dentre
14
estes sistemas, destacam-se principalmente os sem fio, como enlaces de satlite,
rdios digitais, televiso digital, redes de sensores sem fio (RSSF) e telefonia celular [2].
Sinais transmitidos dos satlites Terra chegam altamente atenuados e
corrompidos por rudo, porm a capacidade elevada de recuperao de informao do
VD oferece muitas vantagens para este tipo de comunicao, permitindo alcances
maiores, diminuindo o dimetro da antena receptora e reduzindo a potncia do
transmissor. Como o consumo de energia nos sensores das RSSFs tambm um fator
crtico, a simples codificao utilizando cdigos convolucionais e o VD so vitais para
esta aplicao. Novamente, em cada um dos mais de um bilho de aparelhos celulares
no mundo, o VD tambm est presente. Como pode ser visto, em aplicaes de
comunicao sem fio onde o consumo de energia crtico, o VD surge como uma
soluo extremamente eficaz.
Para realizar a decodificao, o VD opera de forma iterativa sobre a trelia do
cdigo convolucional, a qual pode ser obtida a partir do diagrama de estados do cdigo.
Todo cdigo convolucional pode ser representado por uma trelia de estrutura regular,
conhecida como a trelia convencional, porm duas outras representaes de trelia
so possveis: a puncionada e a mnima. Alm da trelia convencional, todo cdigo
possui uma representao atravs da trelia mnima; porm, a trelia puncionada s
existe se o cdigo for um cdigo puncionado, os quais representam apenas uma parte
dos cdigos convolucionais [3]. Estas trs estruturas de trelia so exploradas por
Robert J. McEliece e Wei Lin em [4], onde a complexidade medida em smbolos por
bit para as trelias de alguns cdigos so propostas e comparadas, mostrando que a
complexidade da trelia mnima sempre inferior ou igual s das outras duas. Alm
desta demonstrao, os autores deixam em aberto o impacto das trelias mnimas na
eficincia do algoritmo de VDs construdos com estas. Desta maneira, permanece aqui
a pergunta: trelias com complexidade reduzida possibilitam decodificadores melhores
em termos de operao e construo? Nesta dissertao, esta pergunta pode ser
traduzida da seguinte maneira: o consumo de energia em VDs diretamente
proporcional complexidade da trelia utilizada para implement-lo? Na busca desta
resposta, duas outras caractersticas dos decodificadores sero exploradas: o consumo
de hardware e a freqncia mxima de operao.
15

1.2 MOTIVAO

Devido popularidade do VD, muitas tcnicas j foram empregadas visando
reduo do seu consumo de energia. O porqu disso pode ser explicado pela frao do
consumo de energia em receptores de sistemas de comunicao que representada
pelo VD. Em aparelhos celulares de tecnologia CDMA de segunda gerao, o VD
consome aproximadamente um tero da energia do receptor [5]. J em receptores para
o padro de redes sem fio IEEE 802.11, a decodificao atravs do VD corresponde a
35% do consumo de energia total [6]. Devido a estes percentuais considerveis, a
reduo do consumo de energia do decodificador algo muito explorado [7,8,9,10] e
dever continuar sendo, pois de suma importncia para sistemas de comunicao,
principalmente os que possuem fonte de alimentao limitada (bateria).
Na busca por VDs mais econmicos em termos de energia, so trs as
diferentes estratgias de implementao: modificaes no modo de construir o
hardware; modificaes do algoritmo; e implementaes com diferentes estruturas de
trelia. Para a primeira estratgia, destacam-se os trabalhos [7,8], onde melhorias nas
estruturas das memrias e no roteamento entre os blocos do VD so geralmente os
alvos. J as modificaes do algoritmo [9,10] visam reduo de consumo de energia
com implementaes sub-otimizadas do VD, perdendo um pouco em termos de
capacidade de decodificao, porm ganhando em termos de economia de energia
dissipada. Nesta dissertao, entretanto, o terceiro tipo de estratgia empregado, o
qual analisa as diferentes estruturas de trelia. Para esta anlise, os VDs foram
construdos em circuitos integrados, podendo ser obtidas informaes sobre o consumo
de energia, alm do consumo de hardware e da freqncia mxima de operao de
cada decodificador. A comparao entre as trelias s possvel devido ao fato de que,
apesar das estruturas diferentes entre elas, as trs preservam o desempenho timo do
VD, o qual no ocorre em implementaes com modificaes do algoritmo.
Como no h registros de aplicao da trelia mnima implementada em
hardware, foi escolhido o prprio cdigo apresentado em [4] para a anlise. Neste
artigo, os autores apresentam as trs estruturas de trelia para um cdigo de taxa 2/3,
16
onde a complexidade da trelia puncionada e da trelia mnima metade do valor da
complexidade da trelia convencional. Como em [5,6] os consumos dos VDs
representam aproximadamente um tero do consumo total de energia do receptor, uma
reduo pela metade do consumo de VDs utilizando a trelia mnima (e puncionada, no
caso do cdigo de taxa 2/3 em questo) corresponderia a uma reduo em torno de
15% do consumo total algo realmente benfico para os sistemas de comunicao
sem fio.

1.3 CONTRIBUIO

Os resultados obtidos em [4] deixam em aberto quanto aos impactos que a
complexidade reduzida da trelia mnima pode ter em VDs construdos com estas.
Neste trabalho, o consumo de energia, o consumo de hardware e a freqncia mxima
de operao de VDs para o cdigo de taxa 2/3 considerado em [4] so analisados em
circuitos integrados de lgica programvel (PLDs) e de aplicao especfica (ASICs).
Alm de ser o primeiro registro da implementao da trelia mnima em hardware, com
os resultados obtidos aqui ser possvel avaliar se decodificadores construdos com as
trs diferentes estruturas de trelia deste cdigo trazem benefcios para decodificadores
de cdigos convolucionais, podendo gerar impactos considerveis para a indstria
fabricante de circuitos integrados para sistemas de comunicao.

1.4 ORGANIZAO

A dissertao est dividida essencialmente em quatro partes: cdigos
convolucionais e o decodificador de Viterbi (VD); os circuitos dos VDs; processo de
estimativa e medio do desempenho dos VDs; e a anlise dos resultados.
Para poder explicar o funcionamento do VD, so apresentados conceitos da
comunicao e da codificao convolucional no Captulo 2. No tpico de codificao,
visto o circuito bsico do codificador convolucional e o diagrama de estados para o
cdigo de taxa 2/3, alm das trs estruturas de trelia existentes e suas
17
complexidades para este cdigo [4]. Com estes fundamentos expostos, os blocos e a
operao do VD so apresentados no Captulo 3.
As estratgias de construo e processamento dos decodificadores esto
detalhadas no Captulo 4, identificando as particularidades dos circuitos dos VDs de
acordo com a trelia utilizada na implementao. O Captulo 5 explora a maneira de
estimar o consumo de energia, o consumo de hardware e a freqncia mxima de
operao dos decodificadores. Em seguida, os Captulos 6 e 7 mostram os resultados
obtidos para os circuitos dos VDs construdos em FPGAs e CPLDs (em ingls, Field
Programmable Gate Array e Complex Programmable Logic Device, respectivamente),
atravs da linguagem de programao de hardware VHDL, e em ASIC (em ingls,
Application Specific Integrated Circuit), usando o PSpice. Por ltimo, as concluses
esto expostas no Captulo 8.
O captulo a seguir, portanto, apresenta um breve resumo da teoria da
informao e comunicao, destacando onde e quando a codificao e decodificao
de dados em sistemas de comunicao digital ocorrem e para que servem.

18
2. CDIGOS CONVOLUCIONAIS

Em 1948, Claude E. Shannon apresentou o teorema que identifica a taxa
mxima terica de transmisso de informao em um canal, de acordo com o nvel de
rudo [11]. Shannon demonstrou que em um canal ruidoso com capacidade C e
transmitindo informao a uma taxa R (onde R<C) existem cdigos que permitem que a
probabilidade de erro no receptor seja suficientemente pequena, de modo que
possvel transmitir informao sem erros a qualquer taxa inferior capacidade.
Apesar de determinar o limite terico da capacidade de um canal, Shannon no
demonstrou como obter o mtodo de deteco/correo de erros. Ao longo do tempo
foram descobertos alguns destes mtodos e, na prtica, existem duas maneiras de se
trabalhar com deteco e correo de erros [2]:

1. Pedido Automtico de Repetio (em ingls, Automatic Repeat Request): o
transmissor envia a mensagem com informao redundante e o receptor, ao
decodificar a mensagem e identificar algum erro, solicita a retransmisso da
mensagem original.

2. Correo Antecipada de Erros (em ingls, Forward Error Correction): o
transmissor envia a mensagem com informao redundante de forma que o
receptor, baseando-se nesta informao adicional, consegue corrigir certos tipos
ou quantidades de erros e reconstruir a mensagem originalmente transmitida,
sem a necessidade de solicitar a retransmisso.

A maneira como inserir redundncia na mensagem original, para que a
correo antecipada de erros possa ocorrer, definida pelo tipo de codificao e pelo
cdigo escolhido para o sistema de comunicao digital. Esta transformao da
mensagem original na mensagem (com redundncia) a ser transmitida tambm
conhecida como o processo de codificao da palavra-informao na palavra-cdigo,
onde o tamanho desta, em bits, sempre superior.
19
As duas principais categorias de correo antecipada de erros so os cdigos
de bloco e os cdigos convolucionais [2]. Os cdigos de bloco operam sobre blocos de
informao de tamanho fixo e pr-determinado, sendo que as palavras-cdigo so
geradas baseando-se puramente na palavra-informao atual, no sendo necessrios
elementos de memria no codificador. J os cdigos convolucionais operam de maneira
serial, onde os bits da palavra-informao so inseridos no codificador e a palavra-
cdigo gerada a cada instante de tempo. Para isto, os codificadores convolucionais
utilizam elementos de memria para armazenar os bits prvios para a formao da
palavra-cdigo atual.
As seguintes sees aprofundam sobre as caractersticas dos cdigos
convolucionais, incluindo a estrutura do codificador, o diagrama de estados e as trelias
que representam um cdigo.

2.1 CDIGO E CODIFICADOR CONVOLUCIONAL

Cdigos convolucionais surgiram como uma alternativa para cdigos de bloco e
foram introduzidos por Peter Elias em 1955 [12]. J em 1963, Aaron D. Wyner e Robert
B. Ash trataram os cdigos convolucionais sistematicamente [13]. Atualmente cdigos
convolucionais so amplamente utilizados em sistemas de comunicao com canais
sem fio, como em enlaces de satlite, rdios digitais, televiso digital, redes de
sensores sem fio e telefonia celular [2].
O processo de codificao convolucional simples, ocorrendo de forma
seqencial. Em um cdigo convolucional tem-se, por conveno, que o tamanho (em
bits) da palavra-informao definido como k e o tamanho da palavra-cdigo como n,
resultando em um cdigo com taxa r = k/n (sempre r<1) [2]. Desta maneira, k bits
entram no circuito, so processados e armazenados (cdigos convolucionais possuem
memria), e n bits so gerados na sada do codificador. Este processo repetido
seqencialmente, sempre entrando uma palavra-informao de k bits e saindo uma
palavra-cdigo de n bits.
O circuito do codificador convolucional composto de dois elementos bsicos:
memrias (registradores) e somadores, os quais so representados pelos smbolos das
20
Figuras 2.1(a) e 2.1(b), respectivamente. O arranjo das memrias e suas interligaes
com os somadores so o que definem o codificador, ou seja, definem quais as
palavras-cdigo geradas de acordo com as palavras-informao de entrada [2]. No
circuito do codificador (tambm conhecido como a forma cannica) de r=2/3 ilustrado na
Figura 2.1(c) (extrado de e analisado por McEliece e Lin em [4]), pode-se observar que
os k=2 bits de entrada possuem um elemento de memria cada, onde os somadores
combinam os sinais para formar as n=3 sadas. Por definio, a quantidade de
elementos de memria nos registradores de cada bit de entrada conhecida como v
i
,
com 1ik [2]. O cdigo gerado por este codificador especfico chamado neste
trabalho de cdigo (3,2,2,3), e o porqu desta nomenclatura ser explicado a seguir.



Figura 2.1 Elementos e circuito do codificador para o cdigo (3,2,2,3).

A quantidade de memria presente no circuito do codificador impacta em
quanto uma palavra-cdigo sendo gerada influenciada pelos bits das palavras-
informao anteriores, definindo assim outros dois parmetros do cdigo: a memria e
o comprimento de restrio. A memria de um codificador m definida em [2] como o
tamanho do maior registrador presente no circuito do codificador, sendo que para o
caso da Figura 2.1(c) tem-se m = mx(v
1
,v
2
) = mx(1,1) = 1. O comprimento de
restrio v de um cdigo definido em [2] como a soma das memrias do circuito, ou
seja, v = v
i
. Para o circuito da Figura 2.1(c), o comprimento de restrio v = 1 + 1 = 2.
Alm dos parmetros r, m e v, os cdigos convolucionais tambm possuem
algumas propriedades de distncia entre as palavras geradas, destacando a distncia
livre mnima d
free
. Para melhor compreender a origem deste parmetro e sua
(a) Memria
(b) Somador
(c) Circuito
21
importncia, necessrio primeiramente apresentar o diagrama de estados do
codificador, o qual tambm auxiliar futuramente na construo da trelia do cdigo.
Enquanto a forma cannica representa uma estrutura mais prxima do circuito
fsico do codificador, o diagrama de estados representa uma forma mais terica da
operao do codificador, demonstrando a transio entre os estados de suas
memrias, os sinais necessrios para percorrer estas transies e os sinais gerados ao
percorr-las. O diagrama de estados do codificador da Figura 2.1(c), gerador do cdigo
(3,2,2,3), est ilustrado na Figura 2.2.


Figura 2.2 Diagrama de estados do cdigo (3,2,2,3).

A quantidade de estados do codificador definida pela quantidade de
elementos de memria presentes no mesmo, resultando em um nmero de estados
igual a 2
v
[2]. Como pode ser observado na Figura 2.2, o diagrama de estados deste
codificador possui 2
2
= 4 estados. Os nomes dos estados so definidos pelos valores
atuais das memrias, podendo assumir, neste codificador, os valores de S
0
=A=00,
S
1
=B=01, S
2
=C=10 e S
3
=D=11. O bit da esquerda representa a memria de u
1
e o
bit da direita representa a memria de u
2
. Os valores dos n=3 bits nos ramos, formados
22
por v
1
v
2
v
3
, representam as palavras-cdigo geradas pelo codificador ao tramitar de um
estado da memria para outro.
Atravs do diagrama de estados, a distncia livre mnima d
free
de um cdigo
pode ser definida como a mensagem de menor peso (soma da quantidade de bits 1
nas palavras-cdigo que compem a mensagem) originando no estado S
0
=00 e
retornando ao estado S
0
, desconsiderando o ciclo de peso nulo em torno do estado S
0

[2]. Para o cdigo (3,2,2,3), pode ser observado que a mensagem de menor peso que
pode ser gerada partindo de S
0
e retornando ao mesmo a seqncia de palavras-
cdigos de S
0
S
1
S
0
, equivalente a 001 101. Somando todos os bits 1 nesta
mensagem resulta em uma d
free
=3 para este cdigo. Com isto garantido que:
1) erros de (d
free
/2) = 1 bit podem ser corrigidos;
2) erros de d
free
-1 = 2 bits podem ser detectados.

Com os quatro principais parmetros do cdigo definidos, possvel agora
classificar o cdigo da Figura 2.1(c) como um cdigo (n,k,v,d
free
) = (3,2,2,3),
esclarecendo a origem de sua nomenclatura. Na prxima seo ser demonstrada a
construo da trelia convencional deste cdigo, a qual baseada em seu diagrama de
estados, alm das trelias puncionada e mnima.

2.2 TRELIAS

A forma cannica e o diagrama de estados do codificador foram apresentados
na seo anterior, onde a primeira assemelha-se com o circuito real do codificador e o
segundo representa a transio entre os estados das memrias do codificador. O
diagrama de estados pode tambm ser convertido em uma terceira representao
grfica: a trelia. Nesta seo so apresentadas as trs estruturas de trelia que
representam um cdigo convolucional: a trelia convencional, a trelia puncionada e a
trelia mnima. As estruturas convencional e mnima existem para todos os cdigos,
enquanto as trelias puncionadas existem apenas para cdigos puncionados [3].
Trelias so formas de representar cdigos em estruturas de rvores, de modo
que cada n na estrutura representa um estado (valor atual das memrias) e os ramos
23
que ligam estes ns representam as transies entre os estados do codificador. Os
rtulos dos ramos identificam as palavras-cdigo geradas pelo codificador ao transitar
de um estado para outro. Pode-se, assim, definir as seguintes caractersticas da
construo de um mdulo de trelia:
a. o nmero de ns uma funo de v;
b. o nmero de ramos que entra em cada n uma funo de k;
c. e o tamanho de cada rtulo uma funo de n.

Os ns da trelia podem ser identificados por letras ou nmeros, sendo estes
representativos dos estados das memrias do codificador, podendo seguir uma
nomenclatura conforme a Tabela 2.1.

Memria do codificador Nome do n
m1 m2
Nmero
(decimal) Texto
0 0 0 A
0 1 1 B
1 0 2 C
1 1 3 D
Tabela 2.1 Nomenclaturas possveis para os ns da trelia do cdigo (3,2,2,3).

A relao das operaes do codificador com as operaes da trelia est apresentada
na Tabela 2.2.

Etapa Codificador Trelia
1 Estado atual da memria M- N atual o que representa M-
2 Palavra-informao atual alterar a
memria do codificador para M+
Transio do n atual para o n
representando M+ devido palavra-
informao atual
3 As interligaes das memrias e
somadores definem a palavra-cdigo
gerada, de acordo com M- e a
palavra-informao atual
O rtulo do ramo do n atual
(representando M-) ao novo n
(representando M+) define a palavra-
cdigo gerada
Tabela 2.2 Relao da operao do codificador com a operao da trelia.

A seguir esto apresentados os trs tipos de mdulo de trelia para o cdigo
(3,2,2,3), identificando as suas particularidades.

24
A trelia convencional

A representao clssica de um cdigo em estrutura de rvore, a trelia
convencional, pode ser facilmente obtida atravs do diagrama de estados do
codificador. A estrutura (ou mdulo) da trelia convencional composta de uma fase
(duas colunas de ns, interligados pelos ramos) e, como pode ser vista na Figura 2.3,
possui as seguintes caractersticas:
a. nmero de fases = 1;
b. nmero de ns por fase = 2
v
= 4;
c. nmero de ramos que entra em cada n = 2
k
= 4;
d. tamanho de cada rtulo = n = 3 bits.


Figura 2.3 Mdulo da trelia convencional para o cdigo (3,2,2,3).

A gerao de uma palavra-cdigo na trelia convencional segue a seqncia
apresentada na Tabela 2.2. Portanto, de acordo com o estado atual e o prximo estado
(definido pelos valores das memrias e palavra-informao atuais), certo percurso
tomado na trelia, gerando a palavra-cdigo identificada pelo rtulo do ramo deste
percurso.

A trelia puncionada

A classe de cdigos puncionados [3] uma subclasse dos cdigos
convolucionais, ou seja, nem todo cdigo convolucional pode ser obtido atravs do
25
processo de puncionamento. Para criar um cdigo puncionado, deve-se primeiro
comear com um mdulo de cdigo convolucional (n,k,v,d
free
) = (N,1,v,d
free
) e repeti-lo k
vezes, resultando em um cdigo convolucional (kN,k,v,d
free
). Se agora forem
puncionados kN-n bits dos rtulos dos ramos, obtido um cdigo convolucional
(n,k,v,d
free
), onde d
free
e d
free
no so necessariamente iguais.
Para obter o cdigo (3,2,2,3) em anlise, inicia-se com o mdulo de trelia do
cdigo (2,1,2,5) da Figura 2.4(a). Depois, mais um mdulo deste mesmo cdigo
(2,1,2,5) concatenado ao primeiro, obtendo um novo mdulo, agora com duas fases.
Desta maneira, o mdulo de trelia do cdigo (4,2,2,5) da Figura 2.4(b) obtido [3].



Figura 2.4 Mdulos de trelia dos cdigos (2,1,2,5) (a) e (4,2,2,5) (b).

Como o objetivo o cdigo convolucional (3,2,2,3), basta puncionar o bit menos
significativo (LSB) dos ramos da segunda fase da trelia exibida na Figura 2.4(b). Com
isto, obtm-se o mdulo da trelia puncionada da Figura 2.5, a qual possui as seguintes
caractersticas:
a. nmero de fases = k = 2;
b. nmero de ns por fase = 2
v
= 4;
c. nmero de ramos que entra em cada n por fase = 2
k*
= 2 (onde k*=1 o k do
cdigo original (N,1,v,d
free
));
d. tamanho de cada rtulo => n(fase 1)=2 bits e n(fase 2)=1 bit.

(a) Cdigo (2,1,2,5) (b) Cdigo (4,2,2,5)
26
O nmero de ns por fase no foi alterado pois o cdigo inicial j possua v=2. Como o
valor de k em cada fase igual a 1, e no se altera com o puncionamento, apenas dois
ramos entram em cada n por fase agora [4]. Os rtulos dos ramos so os nicos
elementos que variam de acordo com a fase.


Figura 2.5 Mdulo da trelia puncionada para o cdigo (3,2,2,3).

A palavra-cdigo gerada pela trelia puncionada formada pela concatenao
dos dois bits do ramo selecionado na primeira fase com o bit do ramo selecionado na
segunda fase. Portanto, se certo percurso for tomado na trelia puncionada, possvel
perceber que a palavra-cdigo gerada pelos rtulos de seus ramos a mesma que
aquela gerada pela trelia convencional, (para esta mesma transio de estados),
demonstrando que ambas representam o mesmo cdigo (3,2,2,3) gerado pelo circuito
da Figura 2.1(c).

27
A trelia mnima

O terceiro tipo de trelia considerada a trelia mnima, cuja representao
existe para todos os cdigos. A trelia mnima para cdigos convolucionais foi proposta
por Robert J. McEliece, demonstrando a construo dos mdulos de trelia mnima [14]
e a complexidade dos mesmos [4], este em conjunto com o Wei Lin. No mesmo perodo
em que os autores de [4] estavam estudando trelias mnimas, Sidorenko e Zyablov
tambm propuseram sua prpria maneira de construir trelias mnimas para cdigos
convolucionais [15]. O nome dado trelia mnima advm da complexidade dela, a qual
ser o assunto da prxima seo.
Todo cdigo pode ser representado por uma matriz, chamada de matriz
geradora. Atravs de manipulaes desta matriz, McEliece mostrou que possvel
obter para todos os cdigos uma trelia equivalente convencional ou seja, geradora
do mesmo cdigo , porm com complexidade reduzida. Detalhes sobre matrizes
geradoras e como obter as trelias mnimas no so apresentados nesta dissertao,
pois o foco a aplicao das trelias em hardware e os impactos que cada estrutura de
trelia tem sobre os circuitos. Portanto, para o estudo necessrio apenas analisar as
caractersticas do mdulo de uma trelia mnima. O mdulo da trelia mnima do cdigo
(3,2,2,3) aparece na Figura 2.6, extrado de [4].


Figura 2.6 Modulo da trelia mnima para o cdigo (3,2,2,3).

28
Observando a Figura 2.6, possvel obter as seguintes informaes sobre a
estrutura da trelia:
a. nmero de fases = n = 3;
b. nmero de ns => inicia e termina com 2
v
= 4 ns;
c. nmero de ramos que entra em cada n por fase => ramos(fase1)=1,
ramos(fase2)=2 e ramos(fase3)=2;
d. tamanho de cada rtulo = 1 bit.

Novamente, se uma transio especfica entre dois estados for selecionada,
concatenando-se os trs bits dos ramos (um bit por ramo tomado), so geradas as
mesmas palavras-cdigo das trelias convencional e puncionada. Vale destacar que o
nmero de fases da trelia mnima sempre igual a n e o nmero de fases com ns de
deciso (ns com mais de um ramo entrando) sempre igual a k, tornando sua
estrutura menos regular que as outras duas j analisadas. Apesar desta estrutura
irregular da trelia mnima, ela possui a vantagem de apresentar complexidade no
mximo igual da trelia convencional, caracterstica que ser vista na seo 2.4.

2.3 EXEMPLO DE CODIFICAO

No exemplo a seguir demonstrado o processo de codificao de uma
mensagem utilizando o circuito do codificador.

Considere a mensagem u = 11 00 10 01 00, composta de 5 palavras-informao,
entrando no codificador (estado inicial = S
0
). Aps cinco progresses na codificao, a
seqncia v = 110 011 111 111 101, formada por 5 palavras-cdigo, gerada na
sada do circuito. Analisando os cinco instantes diferentes do circuito da Figura 2.7,
pode-se observar que os futuros valores dos elementos de memria (em verde) so os
valores da palavra-informao atual (em vermelho), com os bits X, entrando em
seguida no codificador, representando valores indiferentes dos bits de informao da
prxima mensagem. A composio dos n=3 bits (em azul) a palavra-cdigo gerada.
29

Figura 2.7 Codificao de uma mensagem formada por 5 palavras.

A codificao iniciou no estado S
0
=00 e, por ter a ltima palavra-informao =
00, retornou as memrias para o estado S
0
, de modo que a prxima mensagem a ser
codificada conseqentemente iniciar em S
0
. Cdigos com este caracterstica de
codificao so conhecidos como cdigos terminados, sendo este um detalhe
importante que ser levado em considerao no processo de decodificao, visto no
Captulo 3.

2.4 COMPLEXIDADE DAS TRELIAS

O termo complexidade de trelia pode ser definido de vrias maneiras [16],
entretanto ser utilizada a definio que representada pelo nmero de smbolos dos
ramos por bit codificado, chamada aqui de simplesmente smbolos por bit. Esta
complexidade foi aplicada em [4] e os autores argumentam que ela proporcional
complexidade computacional do algoritmo de Viterbi, utilizado na implementao do
VD. Para obter o valor da complexidade, soma-se o nmero de smbolos (bits) nos
rtulos dos ramos do mdulo da trelia em todas as fases e divide-se o total por k. Para
30
as trelias convencional e puncionada possvel obter a complexidade atravs das
seguintes equaes [4]:
TC
conv
= (n/k) . 2
v+k
smbolos/bit (2.1)
TC
punc
= (n/k) . 2
v+1
smbolos/bit (2.2)

Para as trelias convencional e puncionada das Figuras 2.3 e 2.5, respectivamente,
calcula-se que TC
conv
= 24 smbolos/bit e TC
punc
= 12 smbolos/bit. Portanto, para o
cdigo (3,2,2,3), a complexidade da trelia puncionada metade do valor da
complexidade da trelia convencional.
J a complexidade da trelia mnima, por esta ser construda a partir de
manipulaes da matriz geradora e por no possuir uma estrutura regular, calculada
atravs da matriz geradora do cdigo ou atravs de anlise grfica, sendo esta
segunda maneira a utilizada aqui. Observando a Figura 2.6 e sabendo que cada ramo
da trelia mnima representa apenas um bit, basta somar o nmero de ramos da trelia
e dividir por k. Portanto, TC
min
= 24/k = 12 smbolos/bit: a mesma complexidade que da
trelia puncionada e metade da complexidade da trelia convencional.
Apesar de no ter sido apresentado o decodificador ainda, mas lembrando que
o VD construdo a partir de uma trelia, pode-se comear a pensar sobre o impacto da
complexidade sobre os circuitos decodificadores. Ser que uma complexidade reduzida
de trelia reflete em circuitos mais simples? Ou possivelmente circuitos que demandam
menos computaes para se obter os mesmos resultados? Ser que a estrutura
irregular da trelia mnima no implicar na construo de um VD mais complexo?
Estas perguntas sero respondidas para o cdigo (3,2,2,3) ao longo da dissertao e,
para poder entender a importncia delas um pouco melhor, o Captulo 3 apresenta a
seguir o processo de decodificao, especificamente atravs do decodificador de
Viterbi.

31
3. DECODIFICAO DE CDIGOS CONVOLUCIONAIS

No Captulo 2 foram apresentados cdigos convolucionais, mostrando o
codificador do cdigo (3,2,2,3) e o processo de codificao. Neste captulo sero
abordados os temas necessrios para converter uma mensagem codificada de volta na
mensagem original, comeando pelo algoritmo que torna possvel a decodificao e
depois o decodificador que realiza a operao do algoritmo.

3.1 ALGORITMO DE VITERBI

Cdigos convolucionais foram criados por Peter Elias em 1955 como uma
alternativa para cdigos de bloco [12]. Logo em seguida John Wozencraft e Barney
Reiffen propuseram a decodificao seqencial como um mtodo eficiente de
decodificao para cdigos convolucionais com comprimento de restrio elevado [17].
Em 1963 James Massey props a decodificao de limiar (do ingls, threshold
decoding) [18], menos eficiente que a decodificao seqencial, porm de
implementao mais simples, gerando assim aplicaes prticas com cdigos
convolucionais em transmisso digital por telefone, satlite e canais de rdio [2].
Apesar destes dois mtodos sub-otimizados - mtodos que no garantem a
melhor seqncia decodificada - terem surgido, foi apenas em 1967 que Andrew J.
Viterbi props um algoritmo de mxima verossimilhana, oferecendo o melhor
desempenho do ponto de vista probabilstico [1]. De fcil implementao para cdigos
de comprimento de restrio baixo [2], o algoritmo de Viterbi, tambm conhecido como
o decodificador de Viterbi (VD), realiza a decodificao de forma iterativa, no sendo
necessrio recorrer extensiva anlise de todas as palavras do alfabeto do cdigo.
O algoritmo de Viterbi popularizou-se nos anos 70, quando passou a ser muito
utilizado nos sistemas de comunicao espacial por satlite da NASA [19,20]. Hoje em
dia, o VD pode ser encontrado principalmente em sistemas de transmisso digital de
vdeo e aplicaes de transmisso sem fio com fonte de energia limitada (bateria),
como aparelhos celulares e redes de sensores sem fio.
32
No Captulo 2 foi apresentado o processo de codificao, mostrando o circuito
codificador e as trelias do cdigo (3,2,2,3). O VD ser utilizado, portanto, para realizar
o processo reverso da codificao, a decodificao. Atravs da redundncia inserida
pelo codificador, o VD tenta obter uma mensagem decodificada igual originalmente
transmitida. Utilizando-se a trelia do cdigo para decodificar a mensagem, o VD (para
deciso abrupta) opera da seguinte maneira em cada fase do mdulo da trelia:
1) A palavra-cdigo recebida.
2) As distncias de Hamming entre a palavra-cdigo recebida e as palavras-cdigo
esperadas so calculadas.
3) As distncias calculadas so somadas s mtricas atuais de seus respectivos
ramos.
4) Cada n analisado individualmente: a menor soma (distncia de Hamming +
mtrica atual) considerada a vencedora. O ramo da mtrica vencedora
armazenado e a mtrica atualizada.

Estas 4 etapas ocorrem para cada palavra-cdigo recebida. Depois de gerada a trelia
inteira, com um mdulo para cada n bits da mensagem, a obteno da mensagem
original ocorre atravs do processo de traceback. O traceback analisa os percursos
vencedores de trs para frente e as palavras-informao so obtidas de acordo com os
ramos escolhidos para chegar no n em questo.
Na etapa 2 da decodificao, para que a transio de um estado para outro
ocorra, somente algumas palavras-cdigo podem ser geradas: as palavras-cdigo
representadas pelos rtulos dos ramos que entram em cada n. Para calcular as
distncias de Hamming entre a palavra-cdigo recebida e as esperadas, como foi
utilizada decodificao com deciso abrupta, basta somar a quantidade de bits
diferentes em cada posio das palavras. Por exemplo, as palavras 101 e 110, com
o bit da esquerda sendo o mais significativo, possuem distncia (entre si) de 2, pois
diferem nos bits 1 e 0 (em negrito).
Para o cdigo (3,2,2,3), as etapas da operao do VD utilizando a trelia
convencional podem ser traduzidas da seguinte maneira:
1. A palavra-cdigo de n=3 bits recebida;
33
2. As distncias de Hamming entre a palavra-cdigo e os rtulos dos ramos da
trelia so calculadas;
3. As distncias so somadas s mtricas atuais de cada n;
4. As menores somas que entram em cada n so consideradas as vencedoras,
sendo que o ramo vencedor armazenado e a mtrica atualizada com esta
soma.

Aps o recebimento de todas as palavras-cdigo, o processo de traceback ocorre na
trelia completa. Iniciando no estado S
0
=A=00, lembrando que o cdigo terminado,
as palavras-informao necessrias para gerar as transies entre os ramos
vencedores so obtidas pelo decodificador e a mensagem decodificada formada.
Para os casos das trelias puncionada e mnima, o VD opera da mesma
maneira no processo de traceback. J nas atualizaes das mtricas, a trelia
puncionada executa as atualizaes k=2 vezes por palavra-cdigo recebida, por possuir
duas fases, e a trelia mnima executa as atualizaes n=3 vezes por palavra-cdigo,
devido s suas trs fases. Entretanto, na trelia mnima a comparao das somas
(distncia + mtrica) no necessria em n-k fases do mdulo da trelia, por apenas
um ramo entrar em cada n nestas fases. Na trelia mnima do cdigo (3,2,2,3), no h
ns de deciso na primeira fase e na quarta etapa do VD executada apenas a
atualizao das mtricas com as menores, e nicas, somas.

3.2 EXEMPLO DE DECODIFICAO

Para validar a operao dos VDs para cada trelia, podem ser utilizadas as
mensagens do exemplo da Seo 2.4. Considerando a mensagem u=11 00 10 01 00
e sua verso codificada v=110 011 111 111 101, suponhe que a transmisso de v
pelo canal de comunicao resulte em uma mensagem corrompida, a qual recebida
como v = 100 011 111 110 101, todas exibidas na Figura 3.1.

34

Figura 3.1 Mensagem corrompida por rudo inserido pelo canal.

Como o segundo e dcimo segundo bits (em vermelho) foram corrompidos pelo rudo
presente no canal, o decodificador fica encarregado de gerar a mensagem u, de 5
palavras-informao, na expectativa de obter a mensagem original u.
O processo de decodificao, com cada estrutura de trelia, est representado
nas Figuras 3.2 a 3.5. Nestas, cada trelia composta de 5 mdulos, por estarem
decodificando mensagens compostas de 5 palavras-cdigo. Nas trelias, os nmeros
sobre os ns indicam as mtricas atuais dos ns, os ramos com traos mais largos so
os ramos vencedores e os ramos com traos mais finos so os ramos que foram
rejeitados por apresentarem soma (distncia + mtrica) mais elevadas ou perderam no
critrio de desempate. O percurso formado pelos ramos de traos mais largos constitui
o percurso vencedor, que ser analisado pelo traceback para obteno da palavra
decodificada.
Vale destacar que na anlise da operao dos decodificadores foi utilizado
cdigo terminado, o qual consiste em as memrias do codificador comearem e
terminarem a codificao de uma mensagem no estado S
0
. Isto ocorre simplesmente
aplicando, para o cdigo (3,2,2,3), 00 como a ltima palavra-informao da
mensagem, de modo que a prxima mensagem a ser codificada j iniciar
automaticamente no estado S
0
. No processo de decodificao esta uma informao
adicional que levada em considerao na formao da trelia (partindo do estado S
0
)
e no traceback, de modo que este tambm sempre inicia a sua operao no estado S
0
.

Decodificao com a trelia convencional

Iniciando sempre no estado S
0
=A por ser um cdigo terminado, a trelia
formada de acordo com as palavras-cdigo que so recebidas (os n=3 bits acima de
35
cada mdulo da trelia, na Figura 3.2). No primeiro mdulo, a palavra-cdigo 100 foi
recebida e analisada, gerando as seguintes distncias:
1) distncia A-A = distncia entre 100 e 000 = 1;
2) distncia A-B = distncia entre 100 e 001 = 2;
3) distncia A-C = distncia entre 100 e 111 = 2;
4) distncia A-D = distncia entre 100 e 110 = 1.


Figura 3.2 Formao da trelia convencional para decodificao.

Como a mtrica inicial de A nula e no h ns de deciso neste primeiro
mdulo, as mtricas de cada n foram atualizadas com as prprias distncias
calculadas. J nos demais mdulos, h deciso entre qual o ramo com a menor soma
que entra em cada n. Por exemplo, analisando o n B no segundo mdulo, as
seguintes somas entram nele:
1) distncia A-B + mtrica A = distncia entre 011 e 001 + 1 = 2;
2) distncia B-B + mtrica B = distncia entre 011 e 100 + 2 = 5;
3) distncia C-B + mtrica C = distncia entre 011 e 111 + 2 = 3;
4) distncia D-B + mtrica D = distncia entre 011 e 010 + 1 = 2.

Sendo que as somas dos ramos A-B e D-B apresentaram o mesmo valor, foi definido
como critrio de desempate que o ramo do n mais acima o vencedor. No caso do n
B, as somas de A e de D empataram (soma = 2), tornando o ramo do n A o vencedor.
36
Formada a trelia inteira, a gerao das palavras-informao ocorre atravs do
traceback. A Figura 3.3 destaca em vermelho o percurso vencedor da decodificao,
sendo que as palavras-informao geradas em cada mdulo so simplesmente os
valores das memrias neste instante; lembrando que isso ocorre devido s linhas dos
bits de entrada do codificador possurem apenas um elemento de memria em seus
registradores.


Figura 3.3 Traceback na trelia convencional.

Iniciando sempre no estado A no final da trelia (cdigo terminado), o traceback
ocorre de trs para frente, verificando sempre qual foi a palavra-informao necessria
para que a transio especfica ocorresse. Por exemplo, do final do quarto mdulo ao
final do quinto mdulo da trelia, houve uma transio do estado B para o estado A, a
qual indica que a palavra-informao 00 foi codificada neste instante; e isto era
esperado, pois um cdigo terminado. J entre o terceiro e quarto mdulos, houve uma
transio de C para B, indicando que a palavra-informao neste instante foi a 01.
Desta maneira, repetindo este processo mais trs vezes, a palavra-informao u=11
00 10 01 00 obtida e a decodificao, apesar dos dois bits errados na mensagem
recebida, foi capaz de corrigir os erros inseridos pelo canal.
Em resumo, a decodificao o processo de anlise do percurso vencedor, de
modo que as transies entre os estados (ns) indicam quais foram os bits de entrada
necessrios para gerar estas transies especficas. Os processos de decodificao
utilizando as trelias puncionada e mnima esto apresentados a seguir, com a
formao da trelia e o traceback presentes nas mesmas figuras.
37

Decodificao com a trelia puncionada

Como foi visto anteriormente, a operao do VD com a trelia puncionada a
mesma que para a trelia convencional, com a diferena da atualizao das mtricas
duas vezes por mdulo, devido s duas fases da trelia puncionada. O traceback
tambm opera da mesma maneira, porm apenas os ns em vermelho na Figura 3.4
so os que definem as palavras-informao decodificadas, estes ocorrendo uma vez
por mdulo. Apesar desta diferena, pode-se observar que a mensagem decodificada
foi a seqncia u=11 00 10 01 00, a mesma que para a trelia convencional e,
novamente, corrigida dos dois erros inseridos pelo canal.


Figura 3.4 Decodificao utilizando a trelia puncionada.


Decodificao com a trelia mnima

Novamente, apesar dos bits serem analisados individualmente na trelia
mnima conforme mostra a Figura 3.5, a mesma mensagem u=11 00 10 01 00 foi
corretamente obtida. Isso mostra que, apesar das estruturas dos mdulos das trelias
serem diferentes, os VDs obtiveram os mesmos resultados, o qual era previsto, pois as
trs trelias representam o mesmo cdigo [4].

38

Figura 3.5 Decodificao utilizando a trelia mnima.

3.3 COMPONENTES DO DECODIFICADOR

Para realizar as quatro etapas do VD, so necessrios trs componentes: o
Hamming distance calculator (em ingls, calculador das distncias de Hamming), o
Add-Compare-Store (em ingls, Somar-Comparar-Armazenar) e o Traceback
[7,8,21,22]. Na Figura 3.6 pode ser vista a disposio de cada um destes blocos dentro
do decodificador do cdigo (3,2,2,3), onde cw representa a palavra-cdigo recebida,
hds as distncias de Hamming calculadas, metrics as mtricas, path a memria de
percursos vencedores e dw a palavra decodificada.


Figura 3.6 Diagrama geral do VD.

39
Estes componentes realizam funes especficas no VD e suas particularidades
esto detalhadas a seguir.

Hamming distance calculator (HD)
O bloco HD do decodificador responsvel por calcular a diferena entre a
palavra-cdigo recebida e as palavras-cdigo esperadas (aquelas presentes nos ramos
da trelia). As distncias de Hamming entre as palavras so passadas ao bloco Add-
Compare-Store, onde so utilizadas para escolher os melhores percursos dentro do
mdulo da trelia e obter as novas mtricas. Apenas um bloco HD utilizado no
decodificador.
Sinais de entrada: a palavra-cdigo recebida.
Sinais de sada: as distncias de Hamming entre a palavra recebida e as palavras
esperadas (rtulos dos ramos).

Add-Compare-Store (ACS)
O bloco ACS executa as funes de soma (Add), comparao (Compare) e
armazenamento (Store). Apesar de este bloco ser usualmente chamado de Add-
Compare-Select [8,22,23], o outro nome foi utilizado aqui pois neste bloco que as
mtricas so armazenadas, enfatizando o ponto-de-vista de hardware do VD.
A parte Add do ACS soma as mtricas atuais com as distncias de Hamming
calculadas, oriundas do HD. A cada ramo que entra no n atribudo um somador. Os
resultados destas somas so repassados ao Compare, onde a busca pela menor
mtrica ocorre. O ramo vencedor ento armazenado e a mtrica atualizada no Store.
Portanto, cada n possui uma memria de mtrica e uma memria de percursos
(conjunto de ramos) vencedores.
Sinais de entrada: as distncias de Hamming geradas pelo HD e as mtricas
atuais, alm dos percursos intermedirios no caso das trelias puncionada e mnima
(a ser visto na Seo 3.4).
Sinais de sada: as mtricas atualizadas e os percursos vencedores armazenados,
alm dos percursos intermedirios no caso das trelias puncionada e mnima.

40
Traceback (TB)

Aps a formao da trelia inteira, ou seja, aps o recebimento de todas as
palavras-cdigo que compem a mensagem codificada (incluindo a parte terminada
do cdigo), os percursos vencedores so repassados ao bloco TB, onde as palavras
decodificadas sero obtidas. Comeando de trs para frente e iniciando no estado
S
0
=A=00 (cdigo terminado), o TB analisa os percursos vencedores e decodifica as
palavras em cada mdulo.
Sinais de entrada: os percursos vencedores.
Sinais de sada: a mensagem decodificada.

3.4 PARTICULARIDADES DO VD DE ACORDO COM A TRELIA

Os blocos HD, ACS e TB do decodificador, definidos na seo anterior, foram
vistos por enquanto de forma genrica. Aqui esto detalhadas as particularidades dos
VDs de acordo com a trelia utilizada. Para todos os decodificadores, foram definidas
mtricas formadas por 3 bits, podendo variar entre 0 e 7 (decimal). Os somadores dos
ACSs foram construdos com lock-on-overflow LOV, limitando o valor mximo das
mtricas em 7 (decimal) mesmo quando um overflow da soma resultaria em uma
mtrica menor. Nas prximas figuras, o valor das mtricas est identificado
simplesmente pela letra do n, ou seja, os sinais A, B, C e D representam as mtricas
dos ns A, B, C e D, respectivamente. Alm destes sinais, hd0 a hd7 representam as
distncias de Hamming entre a palavra-cdigo cw recebida e os rtulos 000 a 111
dos ramos, path representam os percursos vencedores de cada n e dw representa a
palavra decodificada.

Trelia convencional

A trelia convencional possui uma estrutura regular, com apenas uma fase.
Esta fase possui 2
v
=4 ns, com 2
k
=4 ramos entrando em cada n. A Figura 3.7 mostra
41
o decodificador com a trelia convencional, tambm chamado de decodificador, ou VD,
convencional.

- HD: este bloco calcula a distncia de Hamming entre a palavra-cdigo (n=3 bits)
recebida e as 2
n
=8 possveis palavras-cdigo. Como a distncia entre a palavra-
cdigo recebida e uma palavra-cdigo representada pelo rtulo de um ramo varia
entre 0 e 3 (decimal), os sinais de sada deste bloco so 8 pares de bits.

- ACS: cada um dos 2
v
=4 ns possui um somador por ramo (total de 2
k
=4
somadores por n), junto com um comparador de 2
k
=4 entradas para a anlise das
mtricas. Como cada n possui uma mtrica, so necessrias 4 memrias de
mtricas e 4 memrias de percursos vencedores.

- TB: depois de recebida e processada a mensagem codificada, as 2
v
=4 memrias
de percursos vencedores so repassadas ao bloco TB para a obteno da
mensagem original (baseando-se na mensagem codificada recebida).


Figura 3.7 Diagrama de blocos do VD convencional.

42
Trelia puncionada

A estrutura da trelia puncionada um tanto quanto regular por ela ser formada
por uma concatenao de dois mdulos de uma trelia cuja taxa de cdigo r=1/2. A
trelia puncionada , portanto, composta de k=2 fases, com 2
v
=4 ns em cada fase e
2
k*
=2 ramos entrando em cada n, onde k*=1 o nmero de bits da palavra-informao
da trelia que originou a trelia puncionada. A primeira fase da trelia possui ramos que
representam os primeiros 2 bits da palavra-cdigo. J na segunda fase, como os bits
mais significativos foram puncionados para totalizar 3 bits de palavra-cdigo, os ramos
representam apenas o terceito bit da palavra-cdigo. Devido ao mdulo da trelia
puncionada ser formado por 2 fases, surgiram ento duas maneiras diferentes de
construir o decodificador puncionado. A primeira utiliza 4 blocos ACS na primeira fase e
mais 4 blocos ACS na segunda fase, conhecida aqui como decodificador puncionado
com mltiplos ACSs. A segunda maneira utiliza apenas 4 blocos ACS, os quais so
reutilizados na segunda fase tambm, conhecida aqui como decodificador puncionado
com ACSs nicos.

- HD: como as duas fases da trelia puncionada possuem rtulos dos ramos com
quantidades diferentes de bits, o bloco HD calcula a distncia de Hamming entre
os primeiros dois bits da palavra-cdigo e os bits dos rtulos dos ramos da
primeira fase, podendo variar entre 0 e 2 (decimal). Depois o HD calcula a
distncia entre o terceiro bit da palavra-cdigo e os bits dos rtulos dos ramos da
segunda fase, variando apenas entre 0 e 1 (decimal). Os sinais de sada deste
bloco so 4 pares de bits na primeira fase e 4 pares bits na segunda, com o bit
mais significativo destes ltimos igual a 0.

- ACS (mltiplos ACSs): no decodificador utilizando a trelia puncionada, cada n
possui um somador por ramo (total de 2
k*
=2 somadores por n), junto com um
comparador de 2
k*
=2 entradas para a anlise das mtricas. Alm da diferena na
quantidade de componentes do ACS em relao ao do decodificador
convencional, o VD puncionado utiliza uma memria intermediria (ver Figura 3.8,
43
sinal int_path) para armazenar os percursos vencedores entre as fases. Este
conceito foi introduzido de modo a manter reduzido o tamanho da memria de
percursos vencedores e aproveitar tambm o bloco TB utilizado no decodificador
convencional. Salienta-se que s vivel a aplicao dos percursos intermedirios
para simplificar a memria de percursos vencedores caso o cdigo apresente a
caracterstica de 2
k
2
v
. Desta maneira, os percursos intermedirios so os
percursos vencedores da primeira fase da trelia. Na segunda fase, portanto, o
percurso armazenado na memria definitiva de percursos vencedores (path) o
percurso intermedirio do n de origem do percurso vencedor da segunda fase.
Devido ao cdigo apresentar 2
k
2
v
, armazenando apenas o percurso intermedirio
na memria de percursos vencedores suficiente para conhecer-se o percurso
inteiro pelo mdulo da trelia.


Figura 3.8 Diagrama de blocos do VD puncionado com mltiplos ACSs.

44
Como ser visto no prximo captulo, os sinais gerados pelo HD para o VD
puncionado com mltiplos ACSs so separados por fase da trelia. Isto possibilita a
utilizao de somadores mais simples nos ACSs da segunda fase da trelia, devido
s distncias calculadas nesta fase serem formadas por apenas um bit.

- ACS (ACSs nicos): como a quantidade de ns por fase constante na trelia
puncionada, possvel um decodificador onde a estrutura de somadores e
comparadores aproveitada em ambas as fases. Idem ao outro VD puncionado,
h 2 somadores e 1 comparador por n, porm estes so utilizados em ambas as
fases da trelia puncionada. O VD puncionado com ACSs nicos est exibido na
Figura 3.9, sendo que a principal diferena deste para o outro VD puncionado na
seleo dos sinais de percursos intermedirios e no momento de atualizao das
mtricas. Aqui a deciso para armazenar o percurso intermedirio ou o percurso
vencedor definitivo ocorre internamente no ACS, alm das mtricas serem
atualizadas em ambas as fases.


Figura 3.9 Diagrama de blocos do VD puncionado com ACSs nicos.

- TB: este bloco idntico ao empregado no decodificador convencional.

Trelia mnima

Devido estrutura irregular da trelia mnima, a construo do VD tambm
seguiu uma metodologia menos regular. Como ocorreu para os VDs puncionados, so
45
tambm possveis duas formas diferentes de construir o VD utilizando a trelia mnima:
uma que utiliza blocos ACS diferentes para cada fase da trelia e outra que reaproveita
os mesmos ACSs em cada fase. Ambas formas de construo esto apresentadas a
seguir.

- HD: como os rtulos dos ramos nas n=3 fases da trelia so formados por apenas
um bit, as distncias entre o bit da palavra-cdigo recebida e os rtulos podem
variar entre 0 e 1. Desta maneira, o HD gera sinais de apenas um bit: 0 quando o
bit recebido for igual ao esperado e 1 quando for diferente.

- ACS (mltiplos ACSs): sendo que cada fase da trelia mnima possui uma
quantidade diferente de ns, este primeiro mtodo de construo utiliza um bloco
ACS por n do mdulo da trelia (ver Figura 3.10). Como os ns da primeira fase
da trelia no so ns de deciso, a parte Compare dos ACSs aqui no
necessria. Na segunda fase, h 4 ns com 2 ramos entrando em cada n;
portanto, h dois somadores em cada ACS, com um comparador de 2 entradas
para a anlise das mtricas. Nesta fase da trelia, a memria intermediria
novamente empregada para armazenar os percursos vencedores, sendo requerida
uma por n. Na terceira fase, h 2
v
=4 ns, de modo que cada ACS novamente
analisa duas somas (2 somadores e um comparador com duas entradas por n),
agora armazenando na memria definitiva os percursos vencedores.

46

Figura 3.10 Diagrama de blocos do VD mnimo com mltiplos ACSs.

- ACS (ACSs nicos): nesta segunda tcnica de construo, ilustrada na Figura
3.11, quatro blocos ACS so utilizados nos 4 ns superiores da trelia, sendo re-
aproveitados nas n=3 fases. Como os quatro ns inferiores da segunda fase da
trelia simplesmente realizam um soma e armazenam a mtrica, eles possuem
apenas as partes Add (com um somador) e Store do ACS. A operao do VD com
esta tcnica ocorre simplesmente comparando uma soma com ela mesma na
primeira fase, e realizando as comparaes das duas somas que entram em cada
n na segunda e terceira fases. Ou seja, na primeira fase na realidade no
ocorrem comparaes, mas como os blocos ACSs so os mesmos nas 3 fases, se
forem comparadas duas somas com os mesmos valores, evidentemente a mtrica
atualizada s poder ser a prpria soma. Na segunda e terceira fases da trelia, a
operao do VD a mesma que para a primeira tcnica de construo. O sinal
47
phase (em ingls, fase) seleciona quais dados so inseridos no ACS de acordo
com a fase atual.


Figura 3.11 Diagrama de blocos do VD mnimo com ACSs nicos.

- TB: este bloco idntico ao empregado no decodificador convencional.


Aparentemente a tcnica de construo com ACSs nicos mais til e simples
que a primeira. Entretanto, este tcnica exige uma seleo mais complexa dos sinais
que entram nos ACSs, de modo que h um roteamento maior nos circuitos, tornando-a
tambm um tanto quanto elaborada.

O Captulo 3 abordou os temas de decodificao de cdigos convolucionais,
mostrando os passos necessrios para executar o algoritmo de Viterbi. Foram
examinados tambm os decodificadores e suas particularidades de acordo com a trelia
utilizada para implement-los. primeira vista, atravs dos diagramas de blocos,
supe-se que os dois decodificadores que utilizam mltiplos ACSs no sero
vantajosos para serem construdos por utilizarem vrios elementos a mais que os
outros decodificadores. J o VD convencional e os VDs com ACSs nicos
48
apresentaram diagramas de blocos mais concisos, de modo que a mesma estrutura dos
ACSs pde ser reutilizada em todas as fases da decodificao.
O prximo captulo apresenta os circuitos especficos dos VDs, detalhando as
estratgias utilizadas para implement-los. Os sinais internos dos circuitos e a
dimenso dos mesmos tambm sero apresentados, mostrando os instantes exatos em
que as etapas de decodificao ocorrem. Alm de verificar a validao da
complexidade das trelias em termos de consumo de energia dos VDs, esta dissertao
visa validar se o consumo de hardware e a freqncia mxima de operao dos
decodificadores tambm esto ou no relacionados com a complexidade, de modo que
de fundamental importncia analisar cada circuito digital utilizado na construo dos
decodificadores para manter a comparao entre eles justa.
49
4. CIRCUITOS DOS DECODIFICADORES

No Captulo 3 foi apresentado o VD, alm de como ocorre a decodificao
utilizando as trelias convencional, puncionada e mnima. Neste captulo, os circuitos
dos decodificadores utilizando os trs tipos de trelias so apresentados, servindo de
base para os circuitos implementados. Primeiramente, porm, sero vistas as
estratgias empregadas na construo dos circuitos e no processamento de dados nos
decodificadores, de acordo com a trelia utilizada.

4.1 ESTRATGIAS DE CONSTRUO E PROCESSAMENTO

Certas consideraes sobre os decodificadores foram expostas no Captulo 3.
Alm dos blocos HD e ACS variarem de acordo com a trelia selecionada para realizar
a decodificao, o conceito de percurso intermedirio foi tambm introduzido. Abaixo
esto detalhadas estas estratgias utilizadas na construo dos decodificadores.

Estratgias de construo

1) Percursos intermedirios (do ingls, intermediate paths)
O conceito de percursos intermedirios foi introduzido como uma estratgia de
extrema vantagem para os decodificadores por duas razes: reduo do tamanho dos
registradores de percursos vencedores e reduo de memria e processamento do
bloco de traceback (TB). Nas trelias puncionada e mnima, os percursos intermedirios
foram inseridos para armazenar os nomes dos percursos vencedores nas fases
anteriores ltima. Isto , a primeira fase da trelia puncionada possui ns de deciso,
sendo necessrio armazenar os percursos vencedores neste instante. Isto poderia
ocorrer de duas maneiras: registrando os percursos vencedores em todas as fases da
trelia ou armazenando temporariamente os percursos vencedores e registrando-os na
memria definitiva dos percursos apenas ao final do mdulo da trelia.
A primeira maneira de implementao mais simples, porm acarreta em um
consumo significativo de hardware (flip-flops do tipo D DFFs), pois varia de acordo
50
com a quantidade de palavras sendo decodificadas L. Nas trelias puncionada e
mnima, como o nmero de fases com ns de deciso equivalente a k, os VDs
puncionado e mnimo possuiriam ento uma memria de percursos vencedores o dobro
(k=2) do tamanho daquela do VD convencional. Como o nmero de bits (com um DFF
utilizado por bit) para representar o nome de um n igual a 2, so necessrios
2.2
v
.L=8L DFFs para armazenar os percursos vencedores no decodificador
convencional. J nos decodificadores puncionado e mnimo, haveria um acrscimo de
8L DFFs. Alm disto, a memria do traceback dos decodificadores sofreria tambm um
aumento na mesma proporo.
A segunda maneira, apesar de tornar a operao do ACS mais complexa, reduz
o consumo de hardware do circuito, de modo que o acrscimo de DFFs torna-se
constante, independente do nmero de palavras sendo decodificadas. Como o nome de
cada n representado por 2 bits, para o cdigo (3,2,2,3) h um acrscimo de apenas
2.2
v
=8 DFFs. Caso fosse escolhido um cdigo com um k mais elevado, a mesma regra
seria vlida, pois a memria de percursos intermedirios seria reaproveitada
(sobrescrita) a cada fase com ns de deciso. Vale lembrar que os percursos
intermedirios s podem ser aplicados desta maneira devido ao cdigo (3,2,2,3)
apresentar 2
k
2
v
. Nos decodificadores puncionado e mnimo, foi utilizada esta segunda
maneira de implementao.

2) ACSs: as duas maneiras de construir
Como foi visto no Captulo 3, os decodificadores puncionado e mnimo possuem
duas possveis estruturas. No VD puncionado, a quantidade de ns a mesma em
ambas as fases, diferenciando os ACSs apenas no armazenamento do percurso
intermedirio (fase 1) ou do percurso vencedor definitivo (fase 2). O VD puncionado
com ACSs nicos diferencia este armazenamento internamente, enquanto o VD
puncionado com mltiplos ACSs armazena o percurso intermedirio nos ACSs da
primeira fase e armazena o percurso vencedor nos ACSs da segunda fase. J em
ambas as estruturas do VD mnimo, a primeira fase apresenta 4 mtricas que so
atualizadas apenas na primeira fase do mdulo da trelia, com as outras 4 mtricas
sendo reaproveitadas no mtodo com ACS nicos, mas triplicadas no mtodo com
51
mltiplos ACSs. Alm disto, o VD puncionado com mltiplos ACSs utiliza somadores um
pouco mais simples nos ACSs da segunda fase, se comparado com os somadores (re-
aproveitados na segunda fase) do VD puncionado com ACSs nicos.

3) ACS e TB: minimizando os registradores dos percursos
Esta estratgia foi utilizada para reduzir o consumo de hardware nos trs tipos
de decodificadores. Como foi empregado um cdigo terminado, sabe-se de antemo
que a ltima palavra a ser codificada sempre 00. Desta maneira, como o n de
origem da decodificao ser sempre o S
0
=A=00, o primeiro percurso vencedor no
precisa ser armazenado, eliminando um par de DFFs por n na memria de percursos
vencedores. Na memria de traceback dois DFFs por n tambm podem ser
eliminados, pois a ltima palavra a ser decodificada ser sempre 00. Alm destas
duas situaes, quando o ltimo percurso vencedor est para ser armazenado na
memria de percursos vencedores, ou seja, quando a ltima palavra codificada est
para completar o L-simo mdulo da trelia, o percurso vencedor dos ns pode ser
armazenado diretamente na memria de traceback. Como a memria de percursos
vencedores no precisa conter este ltimo percurso, h uma reduo de mais dois
DFFs por n da trelia. Apesar de esta tcnica reduzir a quantidade de hardware
despendido, a reduo ocorre de forma igual para todos os decodificadores, servindo
apenas como uma estratgia de reduo da quantidade total de DFFs.

Estratgias de processamento

1) Clocks do sistema: gated clocks
O termo clock gating origina-se do ingls e consiste na tcnica de utilizar o
clock apenas quando necessrio, de forma a reduzir o consumo de energia. Para obter
isto, pode-se utilizar, por exemplo, portas lgicas AND, onde o clock um dos sinais de
entrada da porta e o outro sinal habilita ou no a passagem do clock para partes
especficas do circuito. Com isto, os DFFs que armazenam as mtricas, os percursos
vencedores e os percursos do traceback ficam estveis durante uma parcela maior do
52
tempo, diminuindo a atividade de chaveamento dos circuitos e conseqentemente
reduzindo o consumo de energia.
Esta tcnica amplamente utilizada em processadores e ASICs em geral [24],
porm em alguns circuitos integrados como CPLDs e FPGAs, devido estrutura
robusta de roteamento do clock nos mesmos, clock gating foi visto no ser a estratgia
mais interessante. Os decodificadores elaborados em VHDL, portanto, no utilizaram
esta tcnica, sendo que a habilitao de seus DFFs foi realizada apenas atravs do
pino de enable, mostrando uma reduo no consumo de energia se comparado com os
circuitos implementados com clock gating.

2) Bloco HD: atualizado apenas quando necessrio
Similar ao que ocorre nos DFFs com clock gating, os HDs nos decodificadores
foram construdos de forma a reduzir o consumo de energia, diminuindo a atividade de
chaveamento dos circuitos que calculam as distncias de Hamming. Para isto, os sinais
de entrada dos HDs so atualizados apenas quando uma computao de distncias
deve ocorrer, ou seja, a palavra-cdigo (ou bits dela) armazenada serialmente em
DFFs, sendo repassada a um outro conjunto de DFFs apenas quando o clculo
necessrio. No decodificador mnimo, como h n=3 fases, isto no ocorre; porm, nos
decodificadores puncionado e convencional, o HD no necessita operar continuamente,
trazendo grande vantagem em termos de consumo de energia principalmente no
convencional.

4.2 SINAIS COMUNS AOS VDs

Nos circuitos das Sees 4.3 a 4.5, alguns sinais esto presentes em vrios
circuitos dos decodificadores, sendo que as suas abreviaes ou siglas facilitam a
exibio nas figuras. Na Tabela 4.1, os sinais mais utilizados nos VDs esto listados,
onde os valores dentro de colchetes aps os nomes dos sinais indicam os bits que
compem os sinais, ou seja, a dimenso destes.
53

Funo Nomes do sinal
Bit codificado (entrada) coded_bit[0] cb[0]
Palavra-cdigo code_word[2:0] cw[2:0]
Palavra decodificada (sada) dec_word[1:0] dw[1:0]
Contador de bits bit_count[1:0] bc[1:0]
Contador de palavras word_count[3:0] wc[3:0]
Distncia de Hamming hd0[1:0] a hd7[1:0]
Mtricas mA[2:0] a mD[2:0]
Percursos vencedores
pathA1[L-1:0], pathA0[L-1:0] a
pathD1[L-1:0], pathD0[L-1:0]
Percursos intermedirios
int_pathA1[L-1:0], int_pathA0[L-1:0] a
int_pathD1[L-1:0], int_pathD0[L-1:0]

Tabela 4.1 Siglas e nomenclatura dos sinais globais dos VDs.

Os VDs foram construdos de modo que os bits da palavra-cdigo so lidos e
armazenados em cada borda positiva de clock; j as mtricas e os percursos so
atualizados na borda negativa de clock. As mtricas em todos os VDs so
reinicializadas no momento em que word_count=L e bit_count=3, ou seja, no
processamento do ltimo bit da mensagem codificada, sendo que esta informao foi
omitida das figuras.
Vale destacar tambm que s mtricas foi atribuda a dimenso de 3 bits e o
cdigo formado por L=15 palavras. Para os percursos vencedores, como os nomes
dos ns so formados por 2 bits, tem-se que pathA1 o bit mais significativo da
memria de percursos vencedores do estado S
0
=A=00, e pathA0 o bit menos
significativo.


4.3 O DECODIFICADOR CONVENCIONAL

Antes de apresentar o circuito do decodificador convencional, convm revisar a
estrutura da trelia convencional, lembrando que ela apresenta uma disposio regular
dos ns e ramos, como pode ser observado na Figura 4.1.

54

Figura 4.1 Mdulo da trelia convencional para o cdigo (3,2,2,3).

As Figuras 4.2 e 4.3 ilustram o circuito VD convencional, com os comentrios
dos blocos e elementos do decodificador em vermelho. Como pode ser visto na Figura
4.2(a), a segunda estratgia de processamento Bloco HD: atualizado apenas quando
necessrio foi aplicada ao HD, de modo que os sinais hd0 a hd7 permanecem
estticos at o terceiro bit da palavra-cdigo ser recebido. Quando uma borda positiva
de clock ocorre e o bit atual o segundo, o bit counter incrementa a contagem de bits
para 3, ao mesmo tempo em que n=3 DFFs registraram a palavra-cdigo cw recebida.
Como somadores e comparadores utilizam estes sinais gerados pelo HD, manter estes
estticos reduz a atividade (chaveamento) dos circuitos combinacionais que os
procedem, reduzindo conseqentemente o consumo de energia. O circuito do
comparador de 4 entradas do VD convencional pode ser observado na Figura 4.2(b),
sendo que este circuito composto, na realidade, de trs comparadores de 2 entradas
(COMP), alm de um multiplexador que seleciona o bit menos significativo do percurso
vencedor. Portanto, neste circuito quatro somas (sumX) so analisadas e os valores da
mtrica (metric) e do percurso vencedor (path(1) e path(0)) so repassados parte
Store do ACS.
A memria dos percursos vencedores pathX utilizou a terceira estratgia de
construo ACS e TB: minimizando os registradores dos percursos , porm ainda
manteve um par de DFFs a mais. Isto porque os blocos dos circuitos construdos em
CPLDs e FPGAs ficariam um pouco mais complexos se o TB ficasse encarregado de
obter este ltimo percurso vencedor diretamente da sada do comparador (COMP).
Alm disto, esta estratgia simplesmente para reduzir o consumo de hardware, tendo
o mesmo impacto em todos os VDs, independentemente da trelia utilizada.
55


Figura 4.2 HD e ACS do VD convencional.

O traceback, na Figura 4.3, opera na borda de descida de clock quando
bit_count=1, e inicializado (o estado atual do TB = 00 e a memria dos percursos
vencedores repassada memria de TB) quando uma nova mensagem recebida
(word_count=1). Como o TB analisa os percursos vencedores de trs para frente, os
valores armazenados nos paths so invertidos em relao aos armazenados na
memria de traceback.
(a) Circuito do HD e dos ACSs
(b) Comparador
de 4 entradas
56

Figura 4.3 TB do VD convencional.

Como na codificao o prximo estado na trelia a prpria palavra-
informao atual, o TB utiliza-se apenas do nome do estado atual para deduzir qual foi
a palavra-informao necessria para chegar at aquele ponto. Por esta razo, no
necessrio um circuito combinacional Comb (na Figura 4.3) no TB do cdigo (3,2,2,3).

4.4 O DECODIFICADOR PUNCIONADO

Vrios conceitos aplicados ao VD convencional podem ser aproveitados nos
VDs puncionado e mnimo, entretanto, o conceito de percursos intermedirios aparece
somente nestes dois. A trelia puncionada do cdigo (3,2,2,3), vista na Figura 4.4,
formada por k=2 fases, com as quantidades de ns e ramos por n constantes em
ambas as fases. Devido a esta quantidade de fases, o VD puncionado possui um bloco
HD que calcula distncias para os dois primeiros bits da palavra-cdigo, e depois
57
calcula distncias para o terceiro bit. O bloco de traceback foi omitido nas figuras
seguintes pois o mesmo que foi construdo para o VD convencional.


Figura 4.4 Mdulo da trelia puncionada para o cdigo (3,2,2,3).

Como pode ser observado na Figura 4.5, a seguir, a segunda estratgia de
processamento Bloco HD: atualizado apenas quando necessrio foi novamente
aplicada ao HD, sendo que agora so necessrios dois sub-blocos (HD e HD) para
realizar o clculo das distancias de Hamming. O HD calcula as distncias entre os
primeiros dois bits da palavra-cdigo e o rtulo dos ramos da primeira fase. J o HD
calcula as distncias entre o terceiro bit da palavra-cdigo e o rtulo dos ramos da
segunda fase, sendo que o bit menos significativo (LSB) dos rtulos destes foi
puncionado. Com o puncionamento do LSB, resulta em calcular hd0 para os ramos com
os rtulos 00 e 01 na primeira fase, e calcular hd1 para os ramos com os rtulos 10
e 11 na primeira fase.
Na prtica, os sinais dos blocos HD e HD do VD puncionado com mltiplos
ACSs foram inseridos nos somadores da primeira e segunda fases, respectivamente,
sem ser necessrio o multiplexador (MUX). Com isto, foi possvel utilizar somadores
mais simples nos ACSs da segunda fase deste decodificador, realizando somas de 1 bit
(distncias calculadas) com 3 bits (mtricas), conforme ser visto na Figura 4.6. Alm
disto, foram construdos comparadores de duas entradas para os VDs puncionados por
apenas dois ramos entrarem em cada n na trelia puncionada, reduzindo em mais de
um tero o tamanho deste circuito em relao ao do VD convencional.

58

Figura 4.5 HD do VD puncionado.

VD puncionado com mltiplos ACSs

A Figura 4.6 mostra o circuito do ACS (do n A) do VD puncionado com
mltiplos ACSs. A principal diferena entre os dois est em os ACSs da primeira fase
armazenarem os percursos intermedirios e os ACSs da segunda fase armazenarem os
percursos vencedores definitivos. Pode ser observado tambm que a quantidade de
somadores e registradores de mtricas foi duplicada, com somadores mais simples
sendo utilizados na segunda fase.


Figura 4.6 ACS A do VD puncionado com mltiplos ACSs.

59
VD puncionado com ACSs nicos

O circuito do ACS (do n A) do VD puncionado com ACSs nicos est ilustrado
na Figura 4.7. O processamento deste ACS um pouco diferente do ACS do VD
convencional devido seleo dos sinais. Na primeira fase da trelia, apenas dois
estados (ou ns) podem chegar ao estado A: o prprio A e o C. Devido a isto, o
int_pathA pode assumir apenas os valores A=00 ou C=10, sendo que o COMP
seleciona qual ser armazenado de acordo com a menor soma da primeira fase. Na
segunda fase, quando bit_count=3, a memria de percursos vencedores receber o
valor de int_pathA ou de int_pathC, sendo que agora o COMP seleciona qual ser
armazenado de acordo com a menor soma da segunda fase.


Figura 4.7 ACS A do VD puncionado com ACSs nicos.


4.5 O DECODIFICADOR MNIMO

Expandindo os conceitos aplicados aos VDs puncionados, possvel ento
obter o circuito do VD mnimo. So duas as formas de constru-lo: com mltiplos ACSs
e com ACSs nicos. As duas maneiras de construir o decodificador so bastante
distintas, sendo a primeira mais simples, porm exigindo uma quantidade maior de
60
hardware; a segunda maneira implica em um roteamento complexo, alm da seleo de
vrios sinais utilizando MUXs em cada uma das n=3 fases da trelia. A Figura 4.8
mostra novamente a estrutura da trelia mnima do cdigo (3,2,2,3).


Figura 4.8 Mdulo da trelia mnima para o cdigo (3,2,2,3).

Para compensar os blocos ACS mais complexos, o HD do VD mnimo o mais
simples dos trs, consistindo de apenas um DFF para registrar o bit codificado cb e de
um inversor, o qual gera hd1. O HD do decodificador mnimo est exibido na Figura 4.9.


Figura 4.9 HD do VD mnimo.

Como tambm ocorreu com os VDs puncionados, foram construdos
comparadores de duas entradas para os VDs mnimos por apenas dois ramos entrarem
em cada n de deciso na trelia mnima, reduzindo em mais de um tero o tamanho
deste circuito em relao ao do VD convencional.
61
VD mnimo com mltiplos ACSs


Figura 4.10 ACS do VD mnimo com mltiplos ACS.

Como no h ns de deciso na primeira fase da trelia mnima, no foram
armazenadas informaes sobre os percursos nesta fase. Na segunda fase, a Figura
4.10 mostra que os percursos intermedirios so os nicos elementos de memria de
percursos (4 ns x 2 DFFs), enquanto as memrias definitivas dos percursos
vencedores esto presentes apenas na terceira fase (4 ns x 2(L-1) DFFs).

VD mnimo com ACSs nicos

O circuito do ACS (do n A) do VD com ACSs nicos est representado na
Figura 4.11, agora com uma quantidade reduzida de memria, porm com roteamento
62
e seleo de sinais mais complexos. Os ACSs dos demais ns esto ilustrados na
Figura 4.12.


Figura 4.11 ACS A do VD mnimo com ACSs nicos.


Figura 4.12 ACSs B, C, D, E, F, G e H do VD mnimo com ACSs nicos.


63
Como so analisados no mximo dois ramos por n em cada fase da trelia
mnima, a estrutura do ACS do VD com ACSs nicos ficou bastante similar ao ACS do
VD puncionado com ACSs nicos, mas com trs principais diferenas: (i) necessrio
armazenar as mtricas mE, mF, mG e mH; (ii) as somas so de 1 bit (hd0 ou hd1) com
3 bits (mtricas); e (iii) a seleo dos sinais de entrada ocorre nas n=3 fases do mdulo
de trelia. A diferena (ii) implica em um somador um pouco mais simples, reduzindo
um pouco o consumo de energia e de hardware. Devido diferena (iii), os ACSs do
VD mnimo atualizam as mtricas nas trs fases, portanto os MUXs dos ACSs devem
analisar o valor de bit_count, e no apenas uma condio do mesmo (por exemplo,
bit_count=3 no VD puncionado).

As principais diferenas entre os circuitos dos VDs foram apresentadas, dando
enfoque individual aos trs blocos dos decodificadores: HD, ACS e TB. Os primeiros
dois sofrem modificaes considerveis de acordo com a trelia utilizada. O TB,
entretanto, devido utilizao dos percursos intermedirios, pde ser reaproveitado,
reduzindo tambm o seu consumo de hardware e facilitando o processo de
decodificao. Com base nos circuitos definidos neste captulo, foi possvel construir os
decodificadores em circuitos integrados. Para depois obter o consumo de energia, o
consumo de hardware e a freqncia mxima de operao dos VDs, algumas
informaes especficas de circuitos eletrnicos sero apresentadas no Captulo 5.
64
5. MEDIES E ESTIMATIVAS

Para obter valores de consumo de energia, consumo de hardware e freqncia
mxima de operao dos decodificadores, necessrio um aprofundamento sobre
como mensurar estes parmetros. Os fatores que influenciam cada um destes sero
apresentados, alm de como gerar estimativas que se aproximam de valores prticos.
Entretanto, para esclarecer a origem dos fatores, necessrio antes apresentar o
elemento bsico que torna possvel a construo de circuitos digitais complexos em
circuitos integrados de rea extremamente reduzida: o transistor MOSFET. Alm disto,
quando os circuitos so construdos com MOSFETs aplicando a lgica CMOS, o
consumo de energia particularmente, a esttica pode tornar-se muito baixo.

5.1 O TRANSISTOR MOSFET E A LGICA CMOS

O transistor de efeito de campo MOSFET (do ingls, Metal Oxide
Semiconductor Field Effect Transistor), ou simplesmente MOS, popularizou-se no incio
dos anos 70 quando a Intel lanou seu primeiro microprocessador integrado, o Intel
4004, composto de apenas MOSFETs [25]. O MOSFET composto de um
semicondutor tipicamente o silcio (Si) que acrescentado de quantidades
controladas de impurezas, de modo a criar um substrato dopado. Dependendo do tipo
de dopante, o substrato pode ser do tipo n, quando acrescentado de elementos do
grupo V da tabela peridica (P, As, Sb), ou do tipo p, quando acrescentado de
elementos do grupo III (B, Al, Ga, In). Substratos do tipo n apresentam maior
quantidade de eltrons livres, enquanto substratos do tipo p apresentam maior
quantidade de lacunas livres.
No substrato so criadas ilhas com materiais de tipo contrrio aos utilizados na
fabricao do substrato. Em substratos do tipo n so criadas ilhas p+ altamente
dopadas (o + indica que a quantidade de dopante muito maior que a quantidade
usada no substrato); em substratos do tipo p so criadas ilhas n+ altamente dopadas.
Nos transistores, estas ilhas so chamadas de fonte e dreno, em ingls source e drain,
respectivamente. Entre estas ilhas e paralela ao substrato existe uma lmina,
65
conhecida como porta (do ingls, gate), que controla a passagem ou no de corrente
entre a fonte e o dreno. A regio de substrato abaixo da porta, entre a fonte e o dreno,
chamada de canal, pois neste local que eltrons (canal n) ou lacunas (canal p) so
induzidos de modo a criar um caminho para a passagem de corrente entre as duas
ilhas. A Figura 5.1 ilustra um corte vertical de um transistor nMOS (substrato p, ilhas n+
e canal de eltrons) e de um pMOS (substrato n, ilhas p+ e canal de lacunas).


Figura 5.1 Corte vertical de transistores nMOS e pMOS.

O tamanho de um transistor MOSFET definido pelas dimenses de seu canal,
particularmente a largura W e o comprimento L do mesmo. A Figura 5.2 ilustra o corte
horizontal de um MOSFET, onde estas dimenses esto especificadas. A tecnologia
MOS define qual o tamanho dos transistores construdos e usualmente definida pelo
parmetro , o qual metade da menor dimenso de tecnologia. A menor dimenso de
canal geralmente definida pela razo de largura por comprimento do canal e
definida como W/L = 3/2. Para uma tecnologia MOS de 90nm, por exemplo, tem-se
que =45nm e W/L = 135nm/90nm. Estes parmetros so importantes na construo
dos transistores e tm impacto direto no consumo de energia.


Figura 5.2 Largura (W) e comprimento (L) do canal de um MOSFET.
66
Quando utilizados em circuitos digitais, a operao dos transistores MOSFET
pode ser resumida de uma forma simples [26]:
- O transistor nMOS atua como uma chave fechada (ligado, conduzindo) quando
sua tenso de entrada (na porta) est em nvel alto (nvel lgico 1) e como
uma chave aberta quando sua tenso de entrada est em nvel baixo (nvel
lgico 0).
- O transistor pMOS atua como uma chave fechada (ligado, conduzindo) quando
sua tenso de entrada (na porta) est em nvel baixo (nvel lgico 0) e como
uma chave aberta quando sua tenso de entrada est em nvel alto (nvel
lgico 1).

A anlise do comportamento dos transistores est baseada nestas consideraes,
sendo que detalhes mais profundos de como eltrons e lacunas so induzidos para
formar os canais no sero abordados. Basta ter em mente que para que os MOSFETs
atuem desta maneira, o corpo do tipo p do nMOS deve ser aterrado (nvel de tenso
baixo, nvel lgico 0) e o corpo do tipo n do pMOS deve ser ligado em V
DD
(nvel de
tenso elevado, nvel lgico 1). Os smbolos dos transistores nMOS e pMOS, com os
pinos identificados, esto ilustrados na Figura 5.3.


Figura 5.3 Smbolos dos transistores nMOS e pMOS.

Dentre as vrias configuraes dos transistores MOSFET, ou seja, as maneiras
de interlig-los, a CMOS (do ingls, complementary MOS) a mais utilizada. Na lgica
CMOS, para cada transistor nMOS existe o seu complementar pMOS. Com isto, alm
de no serem necessrios resistores nos circuitos (os quais consomem muita rea de
Si), o consumo de energia fica extremamente reduzido, principalmente em termos de
consumo esttico, ou seja, quando os transistores no esto chaveando [26].

67
5.2 CONSUMO DE ENERGIA

Para demonstrar estas particularidades da lgica CMOS, uma explicao da
operao do inversor digital apresentada a seguir.
O inversor CMOS o circuito lgico mais bsico e composto de apenas 2
transistores (1 nMOS e 1 pMOS). A Figura 5.4 ilustra o circuito do inversor, onde pode
ser observado que o transistor pMOS (superior) est com a fonte (source) conectada ao
V
DD
(nvel lgico 1, indicado pela seta) e o transistor nMOS (inferior) com a fonte
conectada ao terra (nvel lgico 0, indicado pela barra). Desta maneira, quando o sinal
de entrada (nas portas dos transistores) for a=0, o canal do pMOS formado e este
conduz (atuando como uma chave fechada), de modo que a tenso no dreno igual
da fonte. J o nMOS nesta situao atua como uma chave aberta e no afeta a tenso
de seu dreno. Desta maneira, a tenso de sada, medida nos drenos, praticamente a
tenso da fonte do pMOS, ou seja, a=1. Quando o contrrio ocorre, ou seja, a=1, o
pMOS fica aberto e o nMOS conduz, de modo que a tenso de sada a tenso da
fonte do nMOS, ou seja, a=0. Com isto, o sinal de sada do circuito o inverso do
sinal de entrada.


Figura 5.4 Inversor CMOS.

Com o circuito do inversor CMOS em mente, pode-se definir dois tipos de
energia: esttica (P
est
) e dinmica (P
din
). Como foi mencionado anteriormente, circuitos
empregando lgica CMOS possuem consumo de energia esttica muito reduzido,
devido a um dos transistores ora o pMOS, ora o nMOS estar sempre desativado
enquanto no h alterao de estado na entrada. Apesar de o consumo de energia
esttica apresentar valores consideravelmente inferiores aos da energia dinmica, na
68
medida em que a tecnologia de fabricao de CIs evolui e os transistores tornam-se
cada vez menores, as correntes de fuga destes comeam a pesar no consumo total dos
circuitos.
Constituinte da maior parte do consumo de energia em circuitos com lgica
CMOS, o consumo de energia dinmica pode ser dividido em duas: consumo de curto-
circuito (P
cc
) e consumo de capacitncia (P
cap
) [26], de modo que

P
din
= P
cc
+ P
cap
(5.1)

O consumo de curto-circuito P
cc
ocorre quando h uma mudana de estado dos
transistores e, por um breve instante, ambos os transistores pMOS e nMOS esto
ativos. A Figura 5.5 ilustra este evento, onde o canal dos transistores est representado
como uma resistncia neste instante. Para obter o valor de P
cc
necessrio integrar a
corrente de curto-circuito I
cc
e multiplicar pela tenso de alimentao do circuito V
DD
.
Vale destacar que h consumo de energia dinmica por curto-circuito tanto na transio
de 0 para 1 quanto de 1 para 0.


Figura 5.5 Consumo de curto-circuito (energia dinmica).

Quando ocorre uma transio de 0 para 1 em um n do circuito, despendida
certa quantidade de cargas para carregar a capacitncia equivalente deste n. Na
Figura 5.6, por exemplo, pode ser observada a capacitncia equivalente C
D
vista pelos
drenos dos transistores. Enquanto a=1, o nMOS conduz, de modo que a sada fica em
a=0 e o capacitor C
D
permanece descarregado. Quando h uma transio de a=1
para a=0, o pMOS passa a conduzir e o nvel de tenso nos drenos comea a subir na
medida que C
D
vai carregando, at atingir o nvel mximo de tenso V
DD
.

69

Figura 5.6 Consumo de capacitncia (energia dinmica).

Portanto, para obter P
cap
necessrio integrar o produto i(t).V
DD
, onde i(t)
representa a corrente de carga de C
D
. Sendo que a carga necessria para carregar
completamente C
D
Q
cap
=C
D
.V
DD
e considerando ciclos de carga e descarga completos
ocorrendo a cada T segundos (freqncia f=1/T), possvel concluir que [26]:

P
cap
= C
D
. V
DD
2
. f (5.2)

Quando a transio dos sinais de entrada dos transistores muito rpida
(vertical) ou quando o capacitor C
D
grande (na ordem de pF), P
cap
predomina sobre
P
cc
no consumo de energia dinmica. Sendo tambm que o consumo de energia
dinmica consideravelmente superior ao consumo de energia esttica, pode-se
concluir que o consumo de energia de um circuito proporcional:
a. ao quadrado da tenso de alimentao;
b. capacitncia equivalente do circuito;
c. freqncia de operao do circuito.


5.3 CONSUMO DE HARDWARE

O consumo de hardware de um circuito advm da quantidade e do tamanho dos
transistores necessrios para constru-lo, alm do roteamento, em alguns casos. Os
componentes de um circuito podem ser construdos de diversas maneiras, com o tipo
de lgica definindo se so necessrios elementos de memria para realizar a funo
especifica do circuito. Como ser visto no Captulo 6, a quantidade de hardware
necessria para construir circuitos em Programmable Logic Devices (em ingls,
70
dispositivos de lgica programvel), ou PLDs, comumente dividida em funes, ou
elementos, de lgica combinacional e em registradores. Registradores equivalem a
elementos de memria e so circuitos de lgica seqencial. J em Application Specific
Integrated Circuits (em ingls, circuitos integrados de aplicao especifica), ou ASICs, o
consumo de hardware traduzido diretamente pela quantidade de transistores
utilizados na construo dos circuitos.
A definio bsica de circuito combinacional todo circuito cujos valores de
sada dependem exclusivamente dos valores de entrada atuais [26]. Desta maneira,
so circuitos que no possuem memria e podem ser criados a partir de portas lgicas
e chaves. Exemplos de circuitos combinacionais so as prprias portas lgicas,
multiplexador, somador/subtrator e multiplicador/divisor. Dentre estes citados, as portas
lgicas e multiplexadores se enquadram em circuitos combinacionais lgicos, enquanto
que somadores/subtratores e multiplicadores/divisores se enquadram em circuitos
combinacionais aritmticos, por realizarem operaes aritmticas. O modelo genrico
de um circuito combinacional pode ser visto na Figura 5.7(a). O consumo de circuitos
combinacionais depende da complexidade do circuito sendo implementado, e
mensurado geralmente em termos de elementos ou funes nos PLDs.


Figura 5.7 Circuitos com lgica (a) combinacional e (b) seqencial.

Em contrapartida, circuitos seqenciais so aqueles cujas sadas dependem de
algum valor anterior do sistema, portanto necessitam de memria. Alm de elementos
de memria, circuitos seqenciais necessitam de um sinal de clock que controla o
andamento do sistema, usualmente junto com um sinal de reset, que reinicializa o
sistema para um estado pr-definido. Apesar de circuitos seqenciais possurem
memria, eles quase sempre possuem alguma lgica combinacional. Conforme visto na
Figura 5.7(b), circuitos seqenciais podem ser modelados como um bloco
(a) (b)
71
combinacional e um bloco seqencial (contendo elementos de memria e suas
interligaes), com uma realimentao do segundo para o primeiro. Dentre os tipos de
elementos de memria que constituem os circuitos seqenciais, os flip-flops do tipo D
(DFF) destacam-se entre os mais utilizados em circuitos integrados, inclusive nos
dispositivos de lgica programvel [26]. Portanto, para cada bit de informao que
necessita ser armazenado nos circuitos dos decodificadores consumido um DFF.
Convm-se destacar, porm, que hoje em dia, com a reduo do tamanho dos
transistores, o consumo de hardware no um fator to significativo na construo de
circuitos integrados quanto era at a alguns anos.

5.4 FREQNCIA MXIMA DE OPERAO

A freqncia mxima de operao de um circuito definida pelo tempo de
propagao e estabilizao dos nveis de tenso (ou corrente) dos circuitos. Circuitos
digitais, os quais operam com apenas dois nveis de tenso, sofrem impacto,
principalmente, pelo tempo de propagao. O tempo de propagao o tempo que
demora para que um estmulo de entrada se propague at a sada do circuito, e
decorrente da quantidade de circuito que h entre os ns de entrada e sada do sinal. A
Figura 5.8 demonstra este tipo de atraso.
Desta maneira, o percurso dentro de um circuito que possui o maior tempo de
propagao o que define o menor tempo entre amostras T
min
. A freqncia mxima de
operao f
max
definida, portanto, como o inverso do menor perodo de amostra, ou
seja, f
max
=1/T
min
.

72

Figura 5.8 Atraso de propagao.

No caso dos decodificadores, aqueles que apresentam uma freqncia mxima
mais elevada podem operar com um maior throughput, ou seja, podem decodificar mais
informao que decodificadores com menor freqncia mxima, no mesmo intervalo de
tempo. A implicncia, porm, de um circuito operar em uma freqncia maior
diretamente no consumo de energia, como foi visto na eq. (5.2).
De acordo com esta mesma equao, parecer-se-ia trivial simplesmente
diminuir a tenso de alimentao do circuito para que o consumo de energia fosse
reduzido. Porm, reduzindo a tenso dos transistores faz com que o tempo de carga
dos ns do circuito torne-se maior, reduzindo a freqncia mxima de operao do
mesmo. H, portanto, uma medida de desempenho de circuitos que leva em
considerao a velocidade do circuito e o seu consumo de energia, conhecida como
produto potncia-atraso. Desta maneira, a tenso de alimentao dos circuitos V
DD
no
pode ser reduzida indefinidamente, sendo que outros fatores intrnsecos dos
transistores devem ser levados em considerao para que o produto potncia-atraso
seja otimizado [26].

Com estes detalhes em mente, possvel agora analisar os circuitos dos
decodificadores individualmente. Os circuitos foram construdos em PLDs e em ASICs,
sendo que em ambos o consumo de hardware facilmente obtido. J a freqncia
mxima de operao possvel ser obtida atravs do software de desenvolvimento dos
73
circuitos dos PLDs, porm torna-se invivel analis-la em ASICs pois o software
utilizado para o desenvolvimento dos mesmos no possui esta funcionalidade e uma
anlise emprica torna-se dispendiosa. O consumo de energia ainda mais complexo.
O software de desenvolvimento dos PLDs dispe de uma funcionalidade que estima o
consumo de energia (esttica e dinmica) baseando-se em uma simulao do
decodificador, porm apenas de forma aproximada. J nos ASICs, os valores de
consumo de energia foram obtidos atravs da anlise da corrente consumida para
realizar a decodificao de uma seqncia de palavras-cdigo inseridas no sistema.
Nos Captulos 6 e 7 esto detalhados os resultados obtidos para os VDs construdos
em PLDs e em ASICs, respectivamente.

74
6. IMPLEMENTAO DOS DECODIFICADORES EM PLDs

Para verificar o consumo de energia e de hardware, alm da freqncia mxima
de operao dos decodificadores, estes foram construdos em CIs de hardware
programvel, ou PLDs (do ingls, Programmable Logic Devices). Devido ao custo
consideravelmente baixo e simples maneira de programao, onde o desenvolvedor
pode criar circuitos digitais complexos atravs de uma linguagem de programao,
PLDs tornaram-se extremamente populares e esto atualmente presentes em um
grande nmero de sistemas digitais comerciais. Atravs da linguagem de descrio
VHDL possvel criar inmeros circuitos digitais, incluindo decodificadores de Viterbi.
Neste captulo, uma breve histria sobre como surgiram os PLDs
apresentada, indicando as diferenas bsicas entre CPLDs e FPGAs, alm da
linguagem de descrio de hardware VHDL, que torna possvel a configurao de
circuitos nos PLDs. Os circuitos dos VDs foram desenvolvidos utilizando a linguagem
VHDL e os resultados de consumo de energia, consumo de hardware e freqncia
mxima de operao foram analisados no Quartus II [27], software da Altera.

6.1 PROGRAMMABLE LOGIC DEVICES E VHDL

PLDs so circuitos integrados capazes de ser programados a nvel de
hardware. Introduzidos praticamente ao mesmo tempo nos anos 70, os primeiros CIs
desta categoria foram os dispositivos Programmable Array Logic PALs (em ingls,
lgica de arranjo programvel), desenvolvidos pela Monolithic Memories, e os
dispositivos Programmable Logic Array - PLAs (em ingls, arranjo de lgica
programvel), desenvolvidos pela Signetics, os quais eram capazes de implementar
apenas simples circuitos combinacionais. Logo aps a introduo destes componentes,
PLDs com registradores em seus terminais de sada foram criados, possibilitando a
implementao de circuitos seqenciais. No incio dos anos 80, a Lattice Semiconductor
lanou os Generic PALs GALs (em ingls, PALs genricos), onde portas lgicas e
multiplexadores foram acrescentados aos registradores de sada, formando assim as
macro-clulas. Todos estes circuitos integrados (PALs, PLAs e GALs) so conhecidos
75
hoje como Simple PLDs SPLDs (em ingls, PLDs simples). Em meados dos anos 80,
duas novas estruturas de PLDs foram criadas: os Complex PLDs - CPLDs (em ingls,
PLDs complexos) e as Field-Programmable Gate Arrays - FPGAs (em ingls, arranjos
de portas programveis no campo).
CPLDs so componentes compostos de vrios GALs, os quais so interligados
atravs de sofisticados mecanismos de roteamento e so muito utilizados em
aplicaes de alta densidade, alta velocidade e baixo custo. Uma caracterstica dos
CPLDs que sua configurao no-voltil.
FPGAs diferem de CPLDs em vrios aspectos, principalmente em estrutura
(formadas basicamente por uma matriz de portas lgicas), tecnologia e custo. Devido
sua estrutura diferente e quantidade superior de registradores em relao aos CPLDs,
as FPGAs so mais utilizadas em projetos complexos, que requerem alta velocidade de
processamento, como sistemas de telecomunicaes. FPGAs tambm diferem dos
CPLDs em termos de memria de configurao, sendo neste caso voltil.
Apesar dos diferentes arranjos de lgica combinacional e da diferena na
quantidade de registradores, CPLDs e FPGAs possuem algumas similaridades cruciais
para a construo dos decodificadores. Em PLDs, o sinal de clock roteado
estrategicamente dentro dos CIs. A linha de clock distribuda para os setores do
componente visando reduzir as perdas do sinal de clock e fazer com que o atraso deste
sinal, chegando nos diversos setores, seja mnimo e uniforme. Devido a isto, no
convm aplicar a estratgia de clock gating, apresentada no Captulo 4, pois se o sinal
de clock passar por portas ANDs, por exemplo, o roteamento do clock ser alterado de
sua linha original, fazendo com que possam surgir diferenas no instante em que DFFs
registram as informaes. Com estas diferenas, informaes podem ser
incorretamente processadas e, conseqentemente, armazenadas com valores
incorretos.
PLDs possuem um grande nmero de clulas lgicas, as quais so compostas
basicamente de portas lgicas, MUXs e registradores. O contedo, a disposio e a
maneira de interligar estas clulas lgicas o arranjo o que difere CPLDs de
FPGAs. Apesar disto, em ambos os tipos de PLDs, os nicos registradores encontrados
so data flip-flops (DFFs), com pinos de enable, reset e preset. Os circuitos dos
76
componentes dos VDs foram construdos baseando-se nos circuitos apresentados no
Captulo 4. Entretanto, devido disposio e disponibilidade das clulas lgicas dentro
dos PLDs, nem sempre o circuito elaborado em VHDL o efetivamente construdo. O
Quartus II, compilador do cdigo VHDL e gerador do arquivo de programao do PLD,
procura construir os circuitos da melhor maneira possvel em termos de roteamento
mais curto, de mnima rea utilizada e de consumo de energia reduzido para o PLD,
resultando em equaes lgicas nem sempre iguais porm, sempre compatveis
com o que foi implementado em VHDL. Para este estudo, o Quartus II foi tambm
utilizado para verificar o funcionamento dos decodificadores atravs de simulaes e o
consumo de energia atravs da funo PowerPlay Power Analyzer [28].
Very High Speed Integrated Circuits Hardware Description Language VHDL
(em ingls, linguagem de descrio do hardware de circuitos integrados de velocidade
altssima) foi utilizada para o desenvolvimento dos VDs. A linguagem VHDL teve seu
desenvolvimento iniciado em 1981, sob o patrocnio do Departamento de Defesa dos
Estados Unidos, devido necessidade de se ter uma linguagem padro para descrever
a estrutura e funes de CIs. Em 1987, o IEEE aprovou o primeiro padro desta
linguagem atravs da Norma IEEE 1076-87 [29]. Quatro revises j foram realizadas
desde 1987, e o padro atual a Norma IEEE 1076-2008.

6.2 CONSIDERAES SOBRE OS VDs

A seguir esto apresentados os resultados obtidos para os VDs. Vale lembrar
que foram construdos dois contadores: o contador de bits e o contador de palavras.
Como o cdigo (3,2,2,3) possui n=3, o contador de bits conta de 1 a 3, iniciando sempre
em 0; para isto foi criado um contador de 2 bits. Como foi utilizado um cdigo formado
por 15 palavras-cdigos, foi construdo um contador de 4 bits para realizar esta funo.
Os VDs foram analisados em 1 CPLD, da famlia MAX II, e em 4 FPGAs, das famlias
Cyclone II, Cyclone III, Stratix II e Stratix III, todos decodificando uma seqncia de 500
mensagens (de 45 bits cada) aleatrias e operando com um clock de 10MHz.
77
6.3 RESULTADOS

Os resultados dos testes realizados nos PLDs esto separados por consumo de
energia, consumo de hardware e freqncia mxima de operao.

Consumo de energia

Utilizando do PowerPlay Power Analyzer, no Quartus II, foi possvel obter uma
estimativa da potncia dissipada (conseqentemente, consumo de energia) nos PLDs.
O consumo nos PLDs dividido em potncia dinmica, esttica e nos pinos (I/Os).
Como a atividade dos sinais nos pinos dos decodificadores a mesma, independente
da trelia utilizada para constru-lo, este consumo foi deixado de fora da relao. Desta
maneira, foram apresentadas as potncias dissipadas (em mW) de acordo com o
dispositivo utilizado, segregando as potncias dinmica, esttica e total dissipadas
(incluindo consumo dos I/Os). A coluna da direita mostra a relao da potncia
dinmica do VD com a potncia dinmica do VD convencional.
O Quartus II possui a funo de otimizao de energia durante a compilao do
cdigo VHDL, de modo que ele constri o circuito visando reduo de consumo de
energia. Os resultados de consumo apresentados na Tabela 6.1 so referentes a
decodificadores compilados sem esta funo. Entretanto, os circuitos dos
decodificadores foram tambm analisados com esta funo habilitada, sendo que a
reduo de consumo de energia no mostrou alteraes significativas frente os
resultados j obtidos sem a otimizao. Inclusive, em alguns casos, a otimizao gerou
circuitos cujo consumo de energia era superior ao consumo apresentado pelo circuito
compilado sem otimizao, razo pela qual estes resultados no constam na tabela
seguinte.


78


Potncia Dissipada (mW)
Famlia Dispositivo Viterbi decoder Dinmica Esttica Total %
Convencional 12,83 39,62 59,55 100,0
Puncionado mltiplos ACSs 9,35 39,62 56,07 72,9
Puncionado ACSs nicos 10,65 39,62 57,37 83,0
Mnimo mltiplos ACSs 9,09 39,62 55,81 70,8
MAX II EPM570F100C4
Mnimo ACSs nicos 12,12 39,62 58,84 94,5
Convencional 1,04 18,00 31,19 100,0
Puncionado mltiplos ACSs 0,84 18,00 30,86 80,8
Puncionado ACSs nicos 0,98 18,00 30,98 94,2
Mnimo mltiplos ACSs 0,78 18,00 30,79 75,0
Cyclone II EP2C5AF256A7
Mnimo ACSs nicos 1,05 18,00 31,03 101,0
Convencional 0,66 46,14 56,36 100,0
Puncionado mltiplos ACSs 0,63 46,12 56,35 95,5
Puncionado ACSs nicos 0,64 46,12 56,34 97,0
Mnimo mltiplos ACSs 0,52 46,12 56,22 78,8
Cyclone III EP3C5E144A7
Mnimo ACSs nicos 0,67 46,12 56,37 101,5
Convencional 1,83 303,00 326,16 100,0
Puncionado mltiplos ACSs 1,45 302,99 325,49 79,2
Puncionado ACSs nicos 1,92 302,99 325,95 104,9
Mnimo mltiplos ACSs 1,68 302,99 325,71 91,8
Stratix II EP2S15F484C3
Mnimo ACSs nicos 2,05 303,00 326,10 112,0
Convencional 1,01 398,09 435,54 100,0
Puncionado mltiplos ACSs 0,80 397,92 426,12 79,2
Puncionado ACSs nicos 0,80 397,54 425,75 79,2
Mnimo mltiplos ACSs 0,81 398,00 426,21 80,2
Stratix III EP3SE50F484C2
Mnimo ACSs nicos 1,14 397,70 426,25 112,9
Tabela 6.1 Potncia dissipada (consumo de energia) nos VDs.


79
Conforme a Tabela 6.1, ao contrrio do exposto no Captulo 5, onde o consumo
de energia esttica em circuitos com lgica CMOS praticamente desprezvel em
relao ao de energia dinmica, em PLDs este consumo tende a ser muito elevado. Isto
porque a potncia esttica dissipada (consumo de energia esttica) nos PLDs fornecido
pelo PowerPlay Power Analyzer , na realidade, a potncia dissipada para manter o
dispositivo ligado e operando, e praticamente independente da atividade interna dos
sinais. Por esta razo, pode ser observado que h pouca variao deste consumo entre
os PLDs. Contudo, vale destacar que em todos os circuitos implementados a potncia
esttica dissipada muito superior dinmica, sendo que a potncia esttica
representa pelo menos 57% da potncia total, no caso do PLD da Cyclone II. J a
potncia dinmica dissipada representa no mximo 20% da potncia total, sendo que a
potncia dinmica dissipada nas FPGAs gira em torno de 1% da potncia total devido
ao circuito do VD utilizar, proporcionalmente, poucas clulas lgicas nestes dispositivos.
Como o consumo de energia esttica independe praticamente do circuito
implementado, o real consumo a ser analisado para descobrir qual decodificador
consome menos o consumo de energia dinmica. Considerando isto, pode-se
observar dois comportamentos dos decodificadores na Tabela 6.1:
(i) Na maioria dos PLDs utilizados, os VDs puncionados e o VD mnimo com
mltiplos ACSs apresentaram consumos prximos entre si e inferiores aos
dos demais VDs.
(ii) Curiosamente, o VD mnimo com ACSs nicos no apresentou o melhor
desempenho e, em alguns casos, consumiu mais energia dinmica que o VD
convencional.

Estes resultados podem ser originados pelo fato dos decodificadores com
trelia puncionada e com trelia mnima realizarem comparaes de somas (distncias
calculadas + mtricas) mais simples, pois apenas dois ramos entram em cada n por
fase. Entretanto, esta simplificao pode ser contra-argumentada pela menor
quantidade de atualizaes das mtricas que ocorrem no VD convencional, em relao
aos outros VDs, alm do VD convencional no necessitar dos percursos intermedirios.
J, analisando os VDs mnimos, seus consumos deveriam estar mais prximos devido


80
aos dois realizarem as mesmas operaes. Com isto em mente, duas possveis
explicaes para os resultados mais favorveis para os VDs puncionados e o VD
mnimo com mltiplos ACSs seriam:
(i) A maneira como os circuitos principalmente combinacionais so construdos
nos PLDs pode impactar no consumo. Considerando que a principal diferena
dos circuitos combinacionais entre os VDs so os blocos HD e os somadores
e comparadores dos ACSs, o Quartus II pode implement-los de uma
maneira favorvel aos VDs puncionados e ao mnimo com mltiplos ACSs.
(ii) Os dois VDs mnimos apresentaram consumos distintos possivelmente pela
quantidade e complexidade superiores de roteamento presentes no VD
mnimo com ACSs nicos. Trilhas e conexes internas nos circuitos
aumentam a capacitncia equivalente do circuito, fazendo com que mais
carga seja demandada para carregar os ns, aumentando o consumo do
circuito.

Apesar dos resultados obtidos e das hipteses levantadas, o consumo de
energia dinmica ainda pouco se comparado com o consumo total do circuito. Por
esta razo, foi pesquisada a confiabilidade dos valores obtidos pelo PowerPlay Power
Analyzer, a qual foi obtida atravs de contato por e-mail com a equipe de suporte da
Altera. Estes informaram que h uma tolerncia de 15% para o consumo total de
energia obtido pelo Quartus II. Entretanto, aps inmeras tentativas em obter
informaes sobre a preciso do consumo dinmico, a equipe de suporte da Altera
concluiu que os valores obtidos pelo software servem apenas para estimar o consumo
de energia do circuito, de modo que o consumo real de energia deve ser medido na
prtica.
Apesar de ter sido possvel tentar analisar o consumo real de um PLD, pela
dificuldade de obter o consumo de energia de apenas o PLD tendo em vista que este
pertencia a uma placa de desenvolvimento e outros perifricos tambm estavam ligados
e consumindo energia , decidiu-se examinar o consumo de energia dos VDs em outro
software, o PSpice. Alm disto, como pode ser observado na Tabela 6.1, a relao do
consumo de energia depende muito do dispositivo utilizado, sendo que os percentuais


81
da coluna da direita no seguem um padro bem definido, dando indcios de resultados
difceis de serem precisamente obtidos. Os decodificadores foram, portanto,
construdos a nvel de transistor atravs da linguagem SPICE e seus resultados sero
apresentados no Captulo 7.
Vale destacar que os circuitos foram tambm construdos com a estratgia de
clock gating, porm em todos os VDs o consumo de energia mostrou-se ser superior.
Por esta razo, foi optado por utilizar o pino de enable dos DFFs para impedir
chaveamentos desnecessrios dos mesmos. Alm disto, o PowerPlay Power Analyzer
possibilita a visualizao do consumo de energia por bloco do circuito, mostrando que o
consumo de energia dinmica do bloco TB representa em torno de 5% a 15% do
consumo total de energia dinmica dos VDs. Devido a este valor ser uma parcela
consideravelmente pequena do consumo total, optou-se por analisar os circuitos
mantendo-se o bloco TB.

Consumo de hardware

A quantidade de elementos combinacionais e registradores nos circuitos pode
ser obtida atravs do Quartus II. O bloco HD, o Add do ACS e o Compare do ACS so
todos circuitos de lgica combinacional, sendo que a complexidade dos mesmos
impacta na quantidade de portas lgicas e multiplexadores utilizados para constru-los.
Registradores so utilizados para cada bit de informao que armazenado nos
circuitos. Os sinais registrados nos VDs esto listados nas Tabelas 6.2 a 6.6 a seguir,
junto com suas dimenses (em bits) indicando a quantidade de DFFs utilizados. Vale
lembrar que foi aplicada a terceira estratgia de construo ACS e TB: minimizando
os registradores dos percursos nos decodificadores, de modo que so necessrios
apenas 14 DFFs para armazenar os percursos vencedores de cada n. Alm disto, a
segunda estratgia de processamento Bloco HD: atualizado apenas quando
necessrio foi tambm aplicada nos decodificadores.


82

VD convencional
Bloco Sinal Quantidade Bits Total de DFFs
VD Contador de bits 1 3 3
VD Contador de palavras-cdigo 1 4 4
VD Registrador de bit 1 2 2
HD Registrador de palavra-cdigo 1 3 3
ACS Mtrica 4 3 12
ACS Percurso vencedor 4 2 x 14 112
TB Memria de TB 4 2 x 14 112
VD Palavra decodificada 1 2 2
TOTAL 250
Tabela 6.2 Registradores do VD convencional.

VD puncionado com mltiplos ACSs
Bloco Sinal Quantidade Bits Total de DFFs
VD Contador de bits 1 3 3
VD Contador de palavras-cdigo 1 4 4
VD Registrador de bit 1 1 1
HD Registrador de palavra-cdigo 1 3 3
ACS Mtrica 8 3 24
ACS Percurso intermedirio 4 1 4
ACS Percurso vencedor 4 2 x 14 112
TB Memria de TB 4 2 x 14 112
VD Palavra decodificada 1 2 2
TOTAL 265
Tabela 6.3 Registradores do VD puncionado com mltiplos ACSs.

VD puncionado com ACSs nicos
Bloco Sinal Quantidade Bits Total de DFFs
VD Contador de bits 1 3 3
VD Contador de palavras-cdigo 1 4 4
VD Registrador de bit 1 1 1
HD Registrador de palavra-cdigo 1 3 3
ACS Mtrica 4 3 12
ACS Percurso intermedirio 4 1 4
ACS Percurso vencedor 4 2 x 14 112
TB Memria de TB 4 2 x 14 112
VD Palavra decodificada 1 2 2
TOTAL 253
Tabela 6.4 Registradores do VD puncionado com ACSs nicos.



83
VD mnimo com mltiplos ACSs
Bloco Sinal Quantidade Bits Total de DFFs
VD Contador de bits 1 3 3
VD Contador de palavras-cdigo 1 4 4
VD Registrador de bit 3 1 3
ACS Mtrica 16 3 48
ACS Percurso intermedirio 4 1 4
ACS Percurso vencedor 4 2 x 14 112
TB Memria de TB 4 2 x 14 112
VD Palavra decodificada 1 2 2
TOTAL 288
Tabela 6.5 Registradores do VD mnimo com mltiplos ACSs.

VD mnimo com ACSs nicos
Bloco Sinal Quantidade Bits Total de DFFs
VD Contador de bits 1 3 3
VD Contador de palavras-cdigo 1 4 4
VD Registrador de bit 1 1 1
ACS Mtrica 8 3 24
ACS Percurso intermedirio 4 1 4
ACS Percurso vencedor 4 2 x 14 112
TB Memria de TB 4 2 x 14 112
VD Palavra decodificada 1 2 2
TOTAL 262
Tabela 6.6 Registradores do VD mnimo com ACSs nicos.

Analisando as tabelas anteriores, fica evidente que os VDs com mltiplos ACSs
apresentam a maior quantidade de registradores. O VD mnimo com mltiplos ACSs
utiliza 288 DFFs, devido a este apresentar n=3 fases em que as mtricas so
atualizadas. J o VD convencional apresenta a menor quantidade de DFFs apenas
250 , pois as mtricas neste decodificador so atualizadas apenas uma vez por
palavra-cdigo recebida e, tambm, no apresenta percursos intermedirios.
A Tabela 6.7 a seguir relaciona o consumo total de elementos lgicos, incluindo
elementos de lgica combinacional e registradores. A quantidade destes elementos
lgicos utilizados para construir um circuito no necessariamente a soma dos
elementos combinacionais com os registradores. Isto porque, conforme visto na seo
6.1, as clulas lgicas dos PLDs possuem circuitos combinacionais e tambm
registradores, de modo que o Quartus II constri o circuito de acordo com a


84
disponibilidade destas clulas e com o roteamento entre elas. Portanto, parte da lgica
combinacional e parte da lgica seqencial do VD podem estar na mesma clula lgica,
sendo que o consumo real de hardware melhor representado pelo consumo total de
elementos lgicos, presente na Tabela 6.7. A coluna da direita desta tabela mostra a
relao do consumo total de hardware do VD com o consumo total de hardware do VD
convencional. O consumo total de hardware dos dispositivos da famlia Stratix exibido
em percentual da quantidade total de hardware disponvel nos mesmos.


85

Consumo de Hardware
Famlia Dispositivo Viterbi decoder Combinacional Registradores Total %
Convencional 291 250 403 100,0
Puncionado mltiplos ACSs 244 265 358 88,8
Puncionado ACSs nicos 207 253 322 79,9
Mnimo mltiplos ACSs 243 288 354 87,8
MAX II EPM570F100C4
Mnimo ACSs nicos 220 262 334 82,9
Convencional 291 250 405 100,0
Puncionado mltiplos ACSs 239 265 351 86,7
Puncionado ACSs nicos 208 253 325 80,2
Mnimo mltiplos ACSs 235 288 348 85,9
Cyclone II EP2C5AF256A7
Mnimo ACSs nicos 212 262 328 81,0
Convencional 291 250 405 100,0
Puncionado mltiplos ACSs 239 265 353 87,2
Puncionado ACSs nicos 208 253 325 80,2
Mnimo mltiplos ACSs 235 288 348 85,9
Cyclone III EP3C5E144A7
Mnimo ACSs nicos 212 262 328 81,0
Convencional 134 250 3% -
Puncionado mltiplos ACSs 102 265 3% -
Puncionado ACSs nicos 73 253 2% -
Mnimo mltiplos ACSs 126 288 3% -
Stratix II EP2S15F484C3
Mnimo ACSs nicos 105 262 3% -
Convencional 132 250 <1% -
Puncionado mltiplos ACSs 102 265 <1% -
Puncionado ACSs nicos 71 253 <1% -
Mnimo mltiplos ACSs 126 288 <1% -
Stratix III EP3SE50F484C2
Mnimo ACSs nicos 104 262 <1% -
Tabela 6.7 Consumo de hardware dos VDs.


86
Apesar da quantidade superior de registradores nos demais decodificadores, o
VD convencional apresentou o maior consumo de hardware em todos os PLDs
testados. Devido lgica combinacional mais complexa do VD convencional, com
comparadores de 4 entradas os quais equivalem a 3 comparadores de 2 entradas,
acrescentado de um MUX de 2 entradas , foram necessrios mais elementos lgicos
para implement-lo. J o VD puncionado com ACSs nicos teve o melhor desempenho,
seguido muito prximo do VD mnimo com ACSs nicos. Esperar-se-ia que uma
reduo de hardware poderia resultar tambm em uma reduo de consumo de energia
dinmica, por o circuito apresentar uma capacitncia equivalente menor. Porm, isto
no garantido, pois se o hardware diminui, mas h um aumento em maior proporo
da atividade do circuito, aumentar-se-ia o consumo de energia dinmica. Desta
maneira, mais provvel que pela reutilizao dos blocos ACS foi demandado um
roteamento mais complexo entre as clulas lgicas, o qual resultou em uma
capacitncia equivalente maior nos circuitos dos VDs com ACSs nicos, elevando,
portanto, o consumo de energia.
Devido ao VD convencional consumir mais energia dinmica na maioria dos
casos testados e tambm consumir mais hardware em todos os casos, fica evidente
que h uma relao entre estes dois consumos. Porm, quando se chega a consumos
de hardware um pouco mais prximos como o caso dos VDs com mltiplos ACSs
versus os VDs com ACSs nicos , esta relao entre os consumos de energia
dinmica e hardware comea a no valer, sendo que detalhes mais profundos sobre a
construo dos circuitos so necessrios para concluir de fato qual o melhor circuito em
ambos os termos.




87
Freqncia mxima de operao

Como ocorreu com o consumo de energia, a freqncia mxima de operao
influenciada pela complexidade de roteamento dos circuitos. O Quartus II calcula a
freqncia mxima de operao de um circuito atravs do maior tempo de propagao
do sinal do n origem ao n destino dentro do circuito (caminho crtico). Em outras
palavras, dentre todos os ns do circuito, o que possui o maior tempo de atualizao
em algum momento que ocorre variao o que define a freqncia mxima do
sistema, sendo que no possvel aplicar um clock com tempo menor que o tempo de
estabilizao do nvel de tenso deste n.
Os resultados deste experimento esto na Tabela 6.8, podendo ser observado
que em todos os casos os VDs com mltiplos ACSs apresentaram os melhores
resultados. Comparando estes resultados com os obtidos para o consumo de energia
dinmica, pode ser observada uma forte correlao, destacando o melhor desempenho
para os VDs com mltiplos ACSs. Como o roteamento interno destes dois VDs mais
simples que o dos VDs com ACSs nicos, o tempo de propagao dos sinais tambm
menor, resultando em freqncias mximas de operao maiores. A coluna da direita
mostra a relao da freqncia mxima de operao do VD com a freqncia mxima
de operao do VD convencional.


88

Famlia Dispositivo Viterbi decoder Freqncia Mxima (MHz) %
Convencional 36,63 100,0
Puncionado mltiplos ACSs 49,83 136,0
Puncionado ACSs nicos 34,78 94,9
Mnimo mltiplos ACSs 66,35 181,1
MAX II EPM570F100C4
Mnimo ACSs nicos 44,39 121,2
Convencional 66,43 100,0
Puncionado mltiplos ACSs 92,56 139,3
Puncionado ACSs nicos 67,16 101,1
Mnimo mltiplos ACSs 108,72 163,7
Cyclone II EP2C5AF256A7
Mnimo ACSs nicos 80,01 120,4
Convencional 69,97 100,0
Puncionado mltiplos ACSs 110,94 158,6
Puncionado ACSs nicos 89,06 127,3
Mnimo mltiplos ACSs 125,72 179,7
Cyclone III EP3C5E144A7
Mnimo ACSs nicos 105,60 150,9
Convencional 112,23 100,0
Puncionado mltiplos ACSs 179,15 159,6
Puncionado ACSs nicos 133,37 118,8
Mnimo mltiplos ACSs 168,86 150,5
Stratix II EP2S15F484C3
Mnimo ACSs nicos 133,51 119,0
Convencional 147,67 100,0
Puncionado mltiplos ACSs 217,68 147,4
Puncionado ACSs nicos 180,57 122,3
Mnimo mltiplos ACSs 233,21 157,9
Stratix III EP3SE50F484C2
Mnimo ACSs nicos 187,83 127,2
Tabela 6.8 Freqncia mxima de operao dos VDs.


89
Com todos estes dados apresentados, permanece, porm, uma questo em
aberto: qual o melhor VD? A resposta, no momento, seria: depende. Depende do que
realmente mais crtico para o sistema, mas depende tambm de qual PLD foi utilizado.
- Se for em termos de consumo de energia com FPGAs, os VDs com mltiplos
ACSs seriam o ideal.
- Se for para utilizar FPGAs das famlias Cyclone II e III, os VDs com mltiplos ACSs
apresentaram os melhores resultados e parecidos entre si, com o VD mnimo se
destacando um pouco mais em termos de freqncia mxima de operao.
- Se for para utilizar CPLDs das famlias Stratix II e III, o VD puncionado com
mltiplos ACSs seria o recomendado, a no ser se o PLD fosse operar em uma
freqncia um pouco maior, restando o VD mnimo com mltiplos ACSs.
- Se o fator crtico for simplesmente consumo de hardware, o VD puncionado com
ACSs nicos seria ideal.

Em resumo, os VDs puncionado e mnimo apresentaram desempenhos
parecidos, ambos substancialmente superiores ao VD convencional, tornando
interessante construir VDs com estas variaes da trelia para o cdigo (3,2,2,3).
Para confirmar os resultados de consumo de energia e consumo de hardware
obtidos atravs do Quartus II, os circuitos foram tambm construdos em PSpice,
atravs da linguagem SPICE. Apesar dos valores de consumo de hardware e de
freqncia mxima de operao fornecidos pelo Quartus II serem bastante confiveis, o
consumo de energia, pelas razes de impreciso citadas anteriormente, ser analisado
mais profundamente no Captulo 7.


90
7. IMPLEMENTAO DOS DECODIFICADORES EM ASICs

Para validar os resultados obtidos com os circuitos apresentados no Captulo 6,
os decodificadores foram tambm construdos em circuitos integrados de aplicao
especfica ASIC (do ingls, Application Specific Integrated Circuit). Em outras
palavras, um ASIC um circuito integrado fabricado especificamente para atender a
uma certa aplicao no caso, implementao dos VDs. Circuitos digitais construdos
em ASICs so formados por transistores, sendo que as caractersticas destes
elementos, como largura e comprimento do canal e tipo de substrato, so estipuladas
pelo desenvolvedor. A grande vantagem de ASICs sobre PLDs que em ASICs apenas
os circuitos desejados so construdos, ao contrrio de PLDs, que j possuem uma
estrutura interna e apenas o roteamento entre as clulas lgicas configurado na
construo dos circuitos. Por esta razo, circuitos construdos em ASICs podem ter
melhor aproveitamento de rea do circuito integrado.
Como, por um lado, ASICs possuem a vantagem de seus circuitos poderem ser
construdos da maneira desejada, em contrapartida h a necessidade de especificar
cada elemento do circuito. Partindo de um material semicondutor em branco,
necessrio que resistores, diodos, transistores, e qualquer outro elemento de circuitos
eletrnicos sejam manualmente desenhados no ASIC. Antes de mandar um chip
dedicado ser fabricado, conveniente verificar o comportamento do circuito
implementado. Para isto, pode-se utilizar softwares onde os componentes eletrnicos
so especificados textualmente em termos de seus valores e dimenses e
simulaes dos mesmos podem ser realizadas. Para os circuitos dos VDs, foi optado
em utilizar o software PSpice, sendo que a anlise de consumo de energia foi realizada
de forma grfica, observando as formas de onda dos sinais dos circuitos geradas nas
simulaes. J o consumo de hardware simplesmente a quantidade de transistores
utilizados para construir os circuitos, dado o qual conhecido pois todos os circuitos
precisam ser definidos pelo projetista.



91
7.1 SPICE

Simulation Program with Integrated Circuit Emphasis - SPICE (em ingls,
programa de simulao com nfase em circuitos integrados) foi desenvolvido no
Electronics Research Laboratory na Universidade da California em Berkeley, nos EUA.
SPICE um simulador de circuitos eletrnicos utilizado para validar a integridade e
analisar o comportamento do circuito antes do CI ser fabricado e foi apresentado pela
primeira vez em 1973 [30]. Como os custos de fabricao so relativamente elevados,
conveniente analisar o circuito previamente, assegurando-se do seu comportamento.
Dentre os vrios simuladores, destaca-se o PSpice, criado em 1984 pela MicroSim,
sendo encontrado atualmente no OrCAD, da Cadence Design Systems. O PSpice
possibilita a simulao de circuitos eletrnicos e a anlise do comportamento dos
mesmos atravs das formas de onda de corrente e tenso em todos os componentes
incluindo resistores, capacitores, diodos, transistores, entre outros presentes nos
circuitos e nos ns que os interligam [31].

7.2 CONSIDERAES SOBRE AS SIMULAES E OS VDs

Os circuitos dos VDs foram todos construdos utilizando-se apenas transistores
MOSFET. Alm disto, os transistores foram interligados aplicando a lgica CMOS, salvo
alguns circuitos (chaves e multiplexadores) que foram construdos com lgica
transmission gate. Em ambas estas lgicas, tem-se que para cada nMOS h tambm
um pMOS, de modo que a quantidade total de transistores utilizados para construir um
dado circuito formada metade por nMOS e metade por pMOS.
Foram realizadas diversas simulaes nos circuitos para obter o consumo de
energia. Os primeiros circuitos foram construdos utilizando um modelo mais atual do
MOSFET (BSIM 3v3.1), porm as simulaes foram realizadas em um tempo muito
elevado, demorando alguns dias para simular uma mensagem composta de apenas 15
palavras-cdigo, ou seja, 45 bits. Por esta razo foram alterados os transistores para
um modelo mais antigo (MOS2), onde menos efeitos secundrios do MOSFET mais
presentes em transistores menores (0.5m) so analisados, resultando equaes


92
um pouco mais simples (porm sem eliminar nenhum dos parmetros fundamentais).
Com este modelo, foi possvel analisar seqncias de 20 mensagens (formadas por 45
bits cada), com cada simulao durando, em mdia, trs dias.
Como a mobilidade das lacunas menor que a dos eltrons, usualmente
constri-se transistores pMOS com o dobro da largura (W) de canal dos nMOS,
mantendo o mesmo comprimento do canal (L) [26]. Os transistores utilizados nos
circuitos dos VDs foram construdos com as seguintes dimenses:
- nMOS: W=3m e L=2m;
- pMOS: W=6m e L=2m.

Foi aplicado um clock global de 100kHz nos VDs, sendo alimentados com uma tenso
V
DD
=3,3V. Para obter o consumo de energia, foi analisada a corrente i(t) consumida
pelo circuito, oriunda da fonte de alimentao. Integrando o produto V
DD
.i(t) e dividindo
pelo intervalo de tempo [32], foi possvel obter os valores de potncia de cada circuito
(na ordem de micro-Watts).

7.3 CONSUMO DE ENERGIA QUALITATIVO: ATIVIDADE DOS TRANSISTORES

Antes de apresentar os resultados de consumo de energia dos VDs, possvel
obter (qualitativamente) uma estimativa do mesmo analisando a atividade de cada
componente dos VDs individualmente, considerando quantas vezes o estado do
componente alterado, por palavra-cdigo recebida. Em outras palavras, estimado
quantos transistores so acionados nos componentes de cada VD no intervalo de
tempo de uma palavra-cdigo. Os valores obtidos nestas estimativas so meramente
aproximaes, porm servem de base para o que ser esperado do PSpice para os
resultados de consumo de energia. A Tabela 7.1 a seguir mostra as funes realizadas
dentro de cada VD e a utilizao, medida em transistores, dos componentes ao longo
de uma palavra-cdigo, a qual obtida pelo produto da quantidade de transistores dos
componentes da funo com a taxa de atividade (utilizao) dos mesmos. A coluna da
direita mostra o percentual de atividade do respectivo VD em relao atividade do VD
convencional.


93

Funo / Operao
VD
C
l
o
c
k
s

e

f
l
a
g
s

C
o
n
t
a
d
o
r
e
s

P
a
l
a
v
r
a
-
c

d
i
g
o

H
D

A
C
S

T
B

T
o
t
a
l

%
Convencional 224 288 228 90 5014 3008 8852 100,0
Puncionado com mltiplos ACSs 304 288 128 40 4886 3008 8654 97,8
Puncionado com ACSs nicos 338 288 128 88 5046 3008 8896 100,5
Mnimo com mltiplos ACSs 304 288 60 6 5782 3008 9448 106,7
Mnimo com ACSs nicos 186 288 60 6 5902 3008 9450 106,8

Tabela 7.1 Estimativa da atividade dos transistores dos VDs, por palavra-cdigo.

Os valores da Tabela 7.1 indicam que, se a estimativa realmente precisa, os
VDs mnimos apresentam um consumo de energia maior que o do VD convencional.
Alm disto, os dois VDs puncionados, apesar de realizarem as mesmas funes e suas
estruturas serem praticamente iguais, apresentam atividades de transistores no muito
prximas. Isto ocorre devido ao VD puncionado com ACSs nicos utilizar os mesmos
somadores nas k=2 fases da trelia, os quais foram construdos para somar 4 bits
(mtricas) com 2 bits (distncias calculadas). J o VD puncionado com mltiplos ACSs
utiliza um somador mais simples na segunda fase da trelia, aproveitando o fato da
distncia calculada nesta fase ser formada por apenas um bit.
Os VDs mnimos apresentaram uma atividade total de transistores similares.
Entretanto, como o VD com mltiplos ACSs utiliza clocks distintos (atravs de clock
gating) para atualizar as mtricas em cada fase da trelia, este VD apresentou uma
atividade maior de clocks e flags. Isto j no ocorre com o VD com ACSs nicos devido
a este utilizar a mesma memria de mtricas nas n=3 fases; porm, o bloco ACS deste
VD apresenta atividade mais elevada devido aos multiplexadores utilizados para a
seleo de sinais.
Apesar destas prvias consideraes, vale destacar dois aspectos da
estimativa do consumo de energia e do PSpice:


94
1. A estimativa considera que toda palavra-cdigo recebida afetar o circuito
em praticamente o mximo de sua atividade, sendo que, na prtica, nem
toda palavra-cdigo recebida afeta os estados de todos os ns e DFFs dos
circuitos. Por esta razo, foram realizadas simulaes compostas de uma
longa seqncia de palavras-cdigo, aleatoriamente geradas, representando
uma situao mais real.
2. O PSpice no leva em considerao o roteamento dos circuitos. Devido a
isto, possvel que o consumo de energia dos VDs com ACSs nicos, os
quais apresentam, na prtica, roteamento mais complexo, no se assemelhe
tanto ao valor real do consumo de energia.


7.4 RESULTADOS: CONSUMO DE ENERGIA

Como foi mencionado anteriormente, o consumo de energia dos VDs foi obtido
atravs da anlise das formas de onda geradas pela simulao dos circuitos, na
decodificao de 20 mensagens seqenciais (compostas de 15 palavras-cdigo cada).
A Tabela 7.2 mostra estes resultados, sendo que a coluna direita mostra o consumo
de energia do respectivo VD em relao ao VD convencional.

VD Consumo de Energia ( W) %
Convencional 45,86 100,0%
Puncionado com mltiplos ACSs 44,40 96,8%
Puncionado com ACSs nicos 45,03 98,2%
Mnimo com mltiplos ACSs 51,41 112,1%
Mnimo com ACSs nicos 52,60 114,7%

Tabela 7.2 Consumo de energia dos VDs.

Como pode ser observado, o VD puncionado com mltiplos ACSs mostrou
realmente ser o de menor consumo de energia, confirmando a estimativa.
Curiosamente, o VD puncionado com ACSs nicos apresentou um consumo melhor que
o do VD convencional, ao contrrio do que estava previsto para ele. Isto mostra que a
palavra-cdigo recebida impacta bastante o consumo de energia do circuito. Alm disto,


95
como os VDs puncionados realizam as mesmas operaes e a nica diferena mais
significativa destas operaes est no somador um pouco mais complexo do VD com
ACSs nicos, o consumo destes VDs ficou muito prximo. Este resultado do consumo
de energia entre os VDs puncionados ficou bastante similar ao obtido com os PLDs.
Em contrapartida, como os VDs mnimos diferem entre si em termos de seleo
de sinais, pode-se concluir que os multiplexadores do VD com ACSs nicos contribuem
com uma parcela proporcionalmente considervel do consumo de energia. Tambm
obtido para os PLDs, o resultado do consumo de energia entre os VDs mnimos ficou
similar, mostrando que o VD com mltiplos ACSs mais econmico. Apesar disto,
ambos os VDs mnimos apresentaram consumo superior ao do VD convencional, sendo
que nos PLDs o VD com mltiplos ACSs apresentou menor consumo que o VD
convencional em todos os casos analisados. Com isto possvel concluir que a
estrutura mais complexa do comparador do VD convencional exige uma maior utilizao
de clulas lgicas nos PLDs, alm de um roteamento mais complexo entre elas,
elevando o consumo de energia. J no PSpice, alm do roteamento interno dos
circuitos no ser contemplado, impactando em parte no consumo de energia, os
circuitos so elaborados de maneira diferente dos implementados em PLDs. A estrutura
dos circuitos dos VDs mnimos no PSpice, junto com o fato destes atualizarem as
mtricas n=3 vezes por palavra-cdigo, justificam as estimativas da Tabela 7.1, de
modo que nos ASICs os VDs mnimos realmente apresentam-se menos econmicos
que o VD convencional.

7.5 RESULTADOS: CONSUMO DE HARDWARE

O consumo de hardware dos VDs obtido atravs do PSpice, que contabiliza
quantos transistores foram utilizados nos circuitos. A Tabela 7.3 mostra os resultados
obtidos, lembrando que metade dos transistores nMOS e a outra pMOS, devido aos
tipos de lgica aplicados nos circuitos.


96

VD Transistores MOSFET %
Convencional 8624 100,0%
Puncionado com mltiplos ACSs 8466 98,2%
Puncionado com ACSs nicos 7388 85,7%
Mnimo com mltiplos ACSs 9312 108,0%
Mnimo com ACSs nicos 7964 92,3%

Tabela 7.3 Consumo de hardware dos VDs.

Se for desconsiderado o roteamento, analisando apenas a rea de circuito
integrado ocupada pelos transistores, os resultados novamente so parecidos com os
dos PLDs para os VDs puncionados, porm diferem para os VDs mnimos. Isto mostra
que os comparadores do VD convencional so circuitos que utilizam muitas clulas
lgicas nos PLDs, se comparado com os demais circuitos dos VDs. Ao utilizar mais
clulas lgicas, o roteamento interno do circuito torna-se mais complexo, afetando
tambm, neste caso, o consumo de energia.

Atravs destes resultados, possvel obter as seguintes concluses sobre os
circuitos construdos em ASICs e analisados no PSpice:
1. Como o roteamento interno dos circuitos no foi contemplado pelo PSpice, o
consumo de energia dos VDs mnimos foram, em parte, desfavorveis se
comparado com o consumo do VD convencional e com os resultados
obtidos para os PLDs.
2. A seleo dos sinais no VD mnimo com ACSs nicos realmente eleva o
consumo de energia, conforme foi tambm observado nos PLDs.
3. As maneiras diferentes com que o PSpice e o Quartus II implementam os
circuitos dos VDs implicam em resultados divergentes, principalmente para
os VDs mnimos.

Portanto, a construo dos circuitos em PSpice deixou claro que os VDs
puncionados so realmente favorveis em termos de consumo de energia e de
hardware. J no possvel obter uma concluso definitiva sobre os consumos dos
VDs mnimos. Devido maneira diferente de construir circuitos no PSpice e em PLDs,


97
os consumos dos circuitos elaborados no PSpice foram bastante divergentes dos
resultados do Quartus II, mostrando que cada caso deve ser analisado individualmente
de acordo com o tipo de circuito integrado utilizado.


98
8. CONCLUSES

Este captulo contempla os assuntos abordados ao longo da dissertao, alm
do contedo estudado durante o Mestrado e as dificuldades encontradas para chegar
nos resultados. Por fim esto apresentadas as concluses da dissertao e os
trabalhos futuros que podero ser realizados tendo em vista os resultados aqui obtidos.

8.1 CONTEDO ABORDADO

A seguir esto listados os assuntos apresentados e discutidos ao longo da
dissertao:
a. Cdigos convolucionais e suas caractersticas;
b. O codificador e o diagrama de estados do cdigo (3,2,2,3);
c. As trelias do cdigo (3,2,2,3) e as complexidades;
d. Decodificao usando o algoritmo de Viterbi;
e. O decodificador de Viterbi (VD) e seus componentes;
f. Particularidades dos VDs de acordo com a trelia utilizada;
g. Os circuitos dos VDs e as estratgias de construo e processamento;
h. Medies e estimativas do consumo de energia, do consumo de hardware e da
freqncia mxima de operao dos VDs;
i. Resultados dos VDs construdos PLDs;
j. Resultados dos VDs construdos em ASICs.


8.2 APRENDIZADO E DIFICULDADES

Os dois assuntos mais explorados ao longo da dissertao foram a estrutura do
VD e a implementao dos VDs em circuitos eletrnicos. O Captulo 4 mostra o
resultado que surgiu aps muita anlise das trelias e da operao do VD. Com esta
anlise foram levantadas as estratgias de construo e processamento dos
decodificadores, as quais possibilitaram a implementao do VD com as trs trelias.


99
Foram identificadas as vantagens e desvantagens dos VDs construdos, de acordo com
a trelia utilizada, visando, principalmente, preservar uma comparao justa entre os
circuitos implementados. Os VDs foram construdos em PLDs atravs da linguagem de
programao de hardware VHDL, utilizando o Quartus II, e em ASICs atravs do
PSpice, com os circuitos definidos neste a nvel de transistor.
O Captulo 5 abordou a metodologia de estimativa e medio do consumo de
energia, do consumo de hardware e da freqncia mxima de operao dos VDs.
Conforme visto, a segunda e terceira caractersticas dos decodificadores foram
facilmente obtidas para os PLDs com o Quartus II. J os resultados em termos de
consumo de energia mostraram que os VDs com mltiplos ACSs so mais econmicos
que o VD convencional, porm deixaram indcios de impreciso, devido relao de
consumo entre os VDs variar consideravelmente de acordo com o PLD utilizado. Aps
inmeras tentativas em obter a preciso da estimativa de consumo de energia gerada
pelo Quartus II atravs do suporte da Altera, foi decidido analisar se era possvel sanar
esta dvida construindo os VDs em ASICs, desenvolvendo os circuitos, agora, a nvel
de transistor.
Os circuitos dos VDs foram, portanto, analisados com o PSpice, mostrando que
o consumo de energia ainda algo difcil de se obter, principalmente por dois fatores: (i)
pelo PSpice tomar um considervel tempo para realizar as simulaes dos circuitos dos
decodificadores, chegando a demorar vrios dias para simular a decodificao de uma
nica mensagem; (ii) e pelos circuitos elaborados em PSpice serem construdos de
maneira diferente daqueles implementados em PLDs, devido s caractersticas prprias
de PLDs (estrutura interna fixa, configurando apenas as interligaes entre as clulas
lgicas e seus componentes) e ASICs (circuito especificado a nvel de transistor). Alm
disto, o PSpice no leva em considerao o roteamento interno do circuito algo que
influencia o consumo de energia. Em relao ao consumo de hardware, pode haver
discrepncias de acordo com tipo de circuito integrado utilizado (PLD ou ASIC),
novamente por causa das particularidades destes dispositivos e pelo PSpice no
contemplar o roteamento. Portanto, os resultados divergentes de consumo de energia e
hardware entre o PSpice e o Quartus II mostram que certas caractersticas dos circuitos
so amplamente influenciadas pelo software compilador na escolha das clulas


100
lgicas e roteamento interno destas e pelo desenvolvedor na lgica aplicada e na
maneira de construir os circuitos.

8.3 CONCLUSES

As concluses a seguir esto apresentadas para cada uma das caractersticas
analisadas para os decodificadores do cdigo (3,2,2,3). O quarto item expe as
concluses finais.

8.3.1 Consumo de energia
Para implementaes em PLDs: O consumo de energia medido um pouco
menor nos VDs com mltiplos ACSs (na ordem de 75% a 95% do VD
convencional, dependendo do dispositivo escolhido). Para os VDs com ACSs
nicos, a vantagem pequena, podendo inclusive ser pior do que o VD
convencional para o caso do VD mnimo.
Para implementao em ASIC: O consumo dos VDs puncionados
praticamente na mesma ordem do VD convencional. No entanto, o consumo
medido para os VDs mnimos significativamente pior (na ordem de 113% do
VD convencional).

8.3.2 Consumo de hardware
Para implementaes em PLDs: O consumo de hardware medido (em relao
ao VD convencional) menor tanto nos VDs puncionados quanto nos VDs
mnimos. Porem, como esperado, o consumo dos VDs com ACSs nicos foi
menor (cerca de 80% do consumo do VD convencional) do que aquele dos VDs
com mltiplos ACSs (na ordem de 85% do VD convencional).
Para implementao em ASIC: O consumo de hardware medido (em relao ao
VD convencional) do VD puncionado com mltiplos ACSs similar ao do VD
convencional, porem o VD puncionado com ACSs nicos vantajoso (cerca de
85% dos transistores consumidos no VD convencional). No caso do VD mnimo
com ACSs nicos o consumo um pouco menor (cerca de 92%), porem
desvantajoso (na ordem de 108%) para o VD mnimo com mltiplos ACSs.


101
8.3.3 Freqncia mxima de operao
Para implementaes em PLDs (somente estas foram medidas): As
freqncias mximas medidas para os VDs puncionados e mnimos foram
superiores s do VD convencional em praticamente todas as implementaes,
destacando os VDs com mltiplos ACSs: o VD puncionado com 135% a 160% e
o VD mnimo com 150% a 180%, em relao ao VD convencional.

8.3.4 Respostas s perguntas do Captulo 2
Foram levantadas algumas perguntas ao final do Captulo 2, as quais podem
ser respondidas da seguinte maneira:
Ser que uma complexidade reduzida de trelia reflete em circuitos mais
simples?
o No. Os circuitos das trelias puncionada e mnima possuem uma
estrutura mais complexa em termos de seleo de sinal e de memria de
percursos intermedirios, apesar de poderem apresentar um consumo
menor de hardware (se comparados com o VD convencional).
Ou possivelmente circuitos que demandam menos computaes para se obter os
mesmos resultados?
o Sim. Distncias de Hamming, somas e comparaes mais simples foram
realizadas nos VDs puncionados e mnimos.
Ser que a estrutura irregular da trelia mnima no implicar na construo de
um VD mais complexo?
o Sim, principalmente quando utilizando a estratgia de ACSs nicos,
tornando a seleo de sinais do VD mnimo bastante complexa.

As respostas acima mostram a complexidade de construo dos circuitos dos
decodificadores, alm de algumas vantagens observadas nas implementaes. As
concluses finais, a seguir, resumem o que foi observado ao longo deste trabalho.

8.3.5 Concluses finais
Apesar de alguns pontos complicados de serem analisados, pode-se concluir
que h uma grande vantagem em construir os VDs com as variaes das trelias


102
quando se visa velocidades maiores de processamento dos decodificadores em PLDs.
Quanto ao consumo de hardware, pode-se esperar uma reduo moderada se
comparado com o VD convencional. Em termos de consumo de energia, as
perspectivas so menos conclusivas, mas de se esperar uma reduo mnima a
moderada. Porm, conforme recomendado pelo prprio pessoal de suporte da Altera, a
melhor maneira de se obter valores precisos de consumo de energia analisando
individualmente cada circuito na prtica, valendo isto tanto para PLDs quanto para
ASICs. Apesar das vantagens que os VDs puncionados e mnimos apresentaram em
alguns dos casos analisados, a complexidade das trelias apresentadas em [4] no se
traduziu como um parmetro preciso para o desempenho dos decodificadores.

8.4 TRABALHOS FUTUROS E QUESTES EM ABERTO

Aps toda a anlise e trabalho realizados ao longo deste Mestrado, alguns
trabalhos futuros podem surgir baseando-se nas questes abertas listadas a seguir.

a. Existe outra medio de complexidade das trelias que se traduz melhor para os
resultados obtidos?
b. Como a estrutura da trelia mnima do cdigo (3,2,2,3) pouco regular,
possvel que um cdigo com uma trelia mnima que possui a mesma quantidade
de ns em todas as fases apresente um VD mnimo com melhor desempenho?
c. Como foi analisado apenas um cdigo, possvel que cdigos com outras taxas
ou tamanhos de palavra-informao e/ou palavra-cdigo apresentem resultados
mais favorveis ao VD convencional?
d. Os valores apresentados pelo Quartus II e pelo PSpice so confiveis? Seria
interessante fabricar um chip dedicado contendo os VDs para medir o consumo
real de energia, bem como a freqncia mxima de operao.


103
REFERNCIAS


[1] VITERBI, A. J. Error bounds for convolutional codes and an asymptotically
optimum decoding algorithm, IEEE Trans. Inform. Theory, vol. 13, no. 2, p. 260-269,
abr. 1967.


[2] COSTELLO, D. J.; LIN, S. Error Control Coding. Upper Saddle River: Pearson
Prentice Hall, 2nd ed., 2004.


[3] CAIN, J. B.; CLARK Jr., G. C.; GEIST, J. M. Punctured Convolutional Codes of
Rate (n-1)/n and Simplified Maximum Likelihood Decoding. IEEE Trans. Info.
Theory, Vol. IT-25, no. 1, p. 97-100, jan. 1979.


[4] MCELIECE, R. J.; LIN, W. The Trellis Complexity of Convolutional Codes. IEEE
Trans. Inform. Theory, vol. 42, no. 6, p. 1855-1864, nov. 1996.


[5] KANG, I.; WILSON Jr., A. N. Low-power Viterbi decoder for CDMA mobile
terminals. IEEE J. Solid-State Circuits, vol. 33, p. 473-482, mar. 1998.


[6] BOUGARD, B. et al. Energy-scalability enhancement of wireless local area
network transceivers. Proc. IEEE Workshop on Signal Processing Advances in
Wireless Communications, p. 449-453, jul. 2004.


[7] KIVIOJA, M.; ISOAHO, J.; VNSK, L. Design and Implementation of Viterbi
Decoder with FPGAs. Journal of VLSI Signal Processing 21, p. 5-14, maio 1999.


[8] CHANG, Y.; SUZUKI, H.; PARHI, K. K. A 2-Mb/s 256-State 10-mW Rate-1/3 Viterbi
Decoder. IEEE Journal of Solid-State Circuits, vol. 35, no. 6, p. 826-834, jun. 2000.


[9] ALLAN, G.; SIMMONS, S. A VLSI implementation of an adaptive-effort low-
power Viterbi decoder for wireless communications. Canadian Conference on
Electrical and Computer Engineering, vol. 2, p. 1183-1188, maio 2001.


[10] TESSIER, R. et al. A Reconfigurable, Power-Efficient Adaptive Viterbi Decoder.
IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 13-4, p. 484-
488, abr. 2005.


104


[11] SHANNON, C. E. A mathematical theory of communication. Bell System
Technical Journal, vol. 27, p. 379-423 e 623-656, jul. e out. 1948.


[12] ELIAS, P. Coding for Noisy Channels. I.R.E. Convention, record part 4, vol. 3,
p.37-46, 1955.


[13] WYNER, A. D.; ASH, R. B. Analysis of Recurrent Codes. IEEE Trans. Inform.
Theory, vol. IT-9, p. 143-156, jul. 1963.


[14] MCELIECE, R. J. On the BCJR trellis for linear block codes. IEEE Trans. Inform.
Theory, vol. 42, no. 4, p. 1072-1092, jul. 1996.


[15] SIDORENKO, V.; ZYABLOV, V. Decoding of convolutional codes using a
syndrome trellis. IEEE Trans. Inform. Theory, vol. 40, no. 5, p. 1663-1666, set. 1994.


[16] VARDY, A. Trellis Structure of Codes. Elsevier, Handbook of Coding Theory, p.
1989-2118, 1998.


[17] WOZENCRAFT, J. M.; REIFFEN, B. Sequential Decoding (Research
Monograph), The MIT Press / John Wiley and Sons, mar. 1961.


[18] MASSEY, J. L. Threshold Decoding. Massachusetts: MIT Press, abr. 1963.


[19] HELLER, J. A.; JACOBS, I. M. Viterbi Decoding for Satellite and Space
Communications. IEEE Trans. on Communication Technology, vol. 19, no 5, part 1, p.
835-848, out. 1971.


[20] STEPHENS, R.; PELLET, M. Joint NASA/ESA Telemetry Channel Coding
Guideline: Issue 1. NASA/ESA Working Group (NEWG) Publication, jan. 1982.


[21] GEMMEKE, T.; GANSEN, M.; NOLL, T. G. Implementation of Scalable Power
and Area Efficient High-Throughput Viterbi Decoders, IEEE Journal of Solid-State
Circuits, vol. 37, no. 7, p. 941-948, jul. 2002.




105
[22] SUN, F.; ZHANG, T. Parallel High-Throughput Limited Search Trellis Decoder
VLSI Decoder, IEEE Trans. on VLSI Systems, vol. 13, no. 9, p. 1013-1022, set. 2005.


[23] SWAMINATHAN, S.; TESSIER, R.; GOECKEL, D.; BURLESON, W. A
Dynamically Reconfigurable Adaptive Viterbi Decoder. International Symposium on
FPGAs, Session: Innovative Applications, p. 227-236, fev. 2002.


[24] EMNETT, F.; BIEGEL, M. Power Reduction Through RTL Clock Gating. SNUG,
San Jose, 2000.


[25] INTEL CORPORATION. Intel's First Microprocessor - The Intel 4004.
Disponvel em: <www.intel.com/museum/archives/4004.htm>.
Acesso em: 31 maio 2009.


[26] PEDRONI, V. A. Digital Electronics and Design, with VHDL. San Francisco:
Morgan Kauffman / Elsevier, jan. 2008.


[27] ALTERA CORPORATION, Quartus II 7.2 Handbook. Out. 2007.
Disponvel em: <www.altera.com>.


[28] ALTERA CORPORATION, PowerPlay Power Analysis, Quartus II 9.0 Handbook.
Vol. 3, mar. 2009.


[29] IEEE STANDARD VHDL LANGUAGE REFERENCE MANUAL. IEEE Std 1076-
1987, mar. 1988.
Disponvel em: <www.ieee.org>.


[30] NAGEL, L. W; PEDERSON, D. O. SPICE (Simulation Program with Integrated
Circuit Emphasis), Memorandum No. ERL-M382. University of California, Berkeley,
abr. 1973.


[31] CADENCE DESIGN SYSTEMS. PSpice 10.0 User Guide. Jun. 2003.


[32] HARRIS, D.; WESTE, N. CMOS VLSI Design: A Circuits and Systems
Perspective. Addison Wesley, 3rd ed., 2004.


Resumo

PEDRONI, Bruno Umbria. Implementao em hardware de um decodificador de Viterbi
baseado nas trelias convencional, puncionada e mnima. 2009. 105 f. Dissertao
Programa de Ps-Graduao em Engenharia Eltrica e Informtica Industrial da
Universidade Tecnolgica Federal do Paran. Curitiba, 2009.

O decodificador de Viterbi (VD) amplamente utilizado nos sistemas atuais de
comunicao, principalmente os sem fio, onde o consumo de energia crtico. O VD
realiza a decodificao de cdigos convolucionais, os quais podem ser representados
por trelias, sendo que atravs destas que o VD processa a decodificao. Conforme
avaliado por McEliece e Lin, as trelias puncionada e mnima de um cdigo de taxa 2/3
apresentam complexidade reduzida em relao trelia convencional. Nesta
dissertao, foram construdos VDs baseados nestas trs estruturas de trelia do
cdigo de taxa 2/3. Os circuitos dos decodificadores foram implementados em
dispositivos de lgica programvel (PLDs) e em circuitos integrados de aplicao
especfica (ASICs), avaliando o impacto da trelia e sua complexidade sobre o
consumo de energia, o consumo de hardware e a freqncia mxima de operao de
cada VD.

Palavras-chave: Trelia de cdigo convolucional. Decodificador de Viterbi.
Desempenho de decodificador. Dispositivo de lgica programvel. Circuito integrado de
aplicao especfica.


rea de Conhecimento
3.04.00.00-7 Engenharia Eltrica
3.04.06.00-5 Telecomunicaes
3.04.03.03-0 Circuitos Eletrnicos
1.03.04.01-0 Hardware


Nmero da Ata
Dissertao N 510

Vous aimerez peut-être aussi