Sie sind auf Seite 1von 87

UNIVERSIDADE FEDERAL DA BAHIA

ESCOLA POLITCNICA DA UFBA


PROGRAMA DE PS-GRADUAO EM
ENGENHARIA ELTRICA
DEPARTAMENTO DE ENGENHARIA ELTRICA

PROJETO DE UM SISTEMA DE CORREO DE


ERROS EM COMUNICAO MVEL USADO NO
PADRO LTE

Autor
Ilan Schnitman Souza

Orientadora
Ana Isabela de Arajo Cunha

SALVADOR
2013
UNIVERSIDADE FEDERAL DA BAHIA
ESCOLA POLITCNICA DA UFBA
PROGRAMA DE PS-GRADUAO EM
ENGENHARIA ELTRICA
DEPARTAMENTO DE ENGENHARIA ELTRICA

PROJETO DE UM SISTEMA DE CORREO DE


ERROS EM COMUNICAO MVEL USADO NO
PADRO LTE

Autor: Ilan Schnitman Souza


Orientadora: Prof. Dra. Ana Isabela de Arajo Cunha

Dissertao elaborada pelo acadmico Ilan


Schnitman Souza, como parte das exigncias
para concluso do curso de ps-graduao
stricto-senso em Engenharia Eltrica da
Universidade Federal da Bahia, sob a
orientao da professora Dra. Ana Isabela de
Arajo Cunha

SALVADOR
2013
S729 Souza, Ilan Schnitman.
Projeto de um sistema de correo de erros em
comunicao mvel usado no padro LTE / Ilan Schnitman
Souza. Salvador, 2013.
72f. : il. color.
Orientadora: Profa. Dra. Ana Isabela de Arajo de Cunha.

Dissertao (mestrado) Universidade Federal da Bahia.


Escola Politcnica, 2013.

1. Circuitos integrados. 2. Comunicaes digitais. 3. Erro -


correo I. Cunha, Ana Isabela de Arajo. II. Universidade
Federal da Bahia. III. Ttulo.
CDD: 621.381
UNIVERSIDADE FEDERAL DA BAHIA
ESCOLA POLITCNICA DA UFBA
PROGRAMA DE PS-GRADUAO EM
ENGENHARIA ELTRICA
DEPARTAMENTO DE ENGENHARIA ELTRICA

PROJETO DE UM SISTEMA DE CORREO DE


ERROS EM COMUNICAO MVEL USADO NO
PADRO LTE

Autor: Ilan Schnitman Souza


Orientadora: Prof. Dra. Ana Isabela de Arajo Cunha

Banca Examinadora

____________________________________________
Profa. Dra. Ana Isabela de Arajo Cunha

____________________________________________
Prof. Dr. Antnio Cezar de Castro Lima

____________________________________________
Prof. Dr. Paulo Csar Machado de Abreu Farias

____________________________________________
Prof. Dr. Jos Lus Almada Gntzel
EPGRAFE

A moment of convenience, a lifetime of regret


David Moon
DEDICATRIA

A todos os que me ajudaram


AGRADECIMENTOS

professora Ana Isabela por aceitar me guiar neste desafio.

A Vincius Torres dos Reis que dividiu a tarefa da realizao deste projeto.

Ao LSI-TEC pelo apoio e por permitir a publicao deste trabalho.

A todos os que participaram direta ou indiretamente para que este trabalho fosse
realizado.
SUMRIO

LISTA DE ILUSTRAES ................................................................................................... i


LISTA DE TABELAS ........................................................................................................ iii
LISTA DE ABREVIATURAS .............................................................................................. iv
RESUMO ...................................................................................................................... vi
ABSTRACT ....................................................................................................................vii
1. INTRODUO ....................................................................................................... 1
2. CORREO DE ERROS ........................................................................................... 5
2.1. PERSPECTIVA HISTRICA .................................................................................. 5
2.2. ALGORITMOS E OTIMIZAES DO TURBO-CODE.............................................. 18
2.2.1. Algoritmo Log-MAP ........................................................................................ 19
2.2.2. Decodificao em Paralelo .............................................................................. 21
2.2.3. Interleaver ..................................................................................................... 23
3. ARQUITETURA PROPOSTA E IMPLEMENTAO ................................................... 25
3.1. FLUXO DE PROJETO DIGITAL............................................................................ 25
3.2. APRESENTAO DA ARQUITETURA ................................................................. 31
3.3. IMPLEMENTAO........................................................................................... 47
4. DISCUSSO DOS RESULTADOS ............................................................................ 60
4.1. ESTUDO COMPARATIVO ................................................................................. 63
5. CONCLUSO ....................................................................................................... 67
5.1. PROPOSTA DE TRABALHOS FUTUROS .............................................................. 68
6. REFERNCIAS BIBLIOGRFICAS ........................................................................... 69
i

LISTA DE ILUSTRAES
Figura 1: Codificador Convolucional ................................................................................................................. 7
Figura 2: Representao do Grfico em Trelia Relativo ao Codificador Convolucional da Figura 1............. 8
Figura 3: Exemplo de Trelia ........................................................................................................................... 10
Figura 4: Forward Recursion ........................................................................................................................... 11
Figura 5: Backward Recursion ......................................................................................................................... 11
Figura 6: Probabilidade de Transio ............................................................................................................. 12
Figura 7: Codificador Non-Systematic Convolutional ..................................................................................... 14
Figura 8: Codificador Recursive Systematic Convolutional ............................................................................. 14
Figura 9: Estrutura Simplificada do codificador Turbo-Code ......................................................................... 18
Figura 10: Estrutura Simplificada do Decodificador Turbo-Code................................................................... 18
Figura 12: Comparao Sliding Window com Paralelismo ............................................................................. 22
Figura 11: Operaes com o Uso de Sliding Window ...................................................................................... 22
Figura 13: Representao em Alto Nvel do Fluxo de Projeto ......................................................................... 26
Figura 14: Detalhamento das Etapas de Front-End ......................................................................................... 27
Figura 15: Detalhamento das Etapas de Back-End .......................................................................................... 27
Figura 16: Codificador Especificado para o Padro LTE ............................................................................... 31
Figura 17: Demonstrao das Etapas de Decodificao ................................................................................. 36
Figura 18: Incio da Trelia do Codificador do Padro LTE ........................................................................... 36
Figura 19: Transies Intermedirias da Trelia do Padro LTE ................................................................... 36
Figura 20: Gerao dos Tail Bits ..................................................................................................................... 37
Figura 21: Arquitetura de Hardware do Clculo da Probabilidade de Transio .......................................... 38
Figura 22: Arquitetura da SISO ........................................................................................................................ 38
Figura 23: Arquitetura de Hardware das Probabilidades de Estados ............................................................. 39
Figura 24: Clculo da LLR ............................................................................................................................... 41
Figura 25: Clculo da Informao Extrnseca ................................................................................................. 41
Figura 26: Arquitetura do Decodificador ......................................................................................................... 42
Figura 27: Mquina de Estados da Operao de Decodificao ..................................................................... 43
Figura 28: Alimentao dos Dados em uma Arquitetura com 4 SISOs ............................................................ 46
Figura 29: Separao dos Blocos a serem Processados .................................................................................. 47
Figura 30: Representao do Ambiente de Simulao do Sistema ................................................................... 48
Figura 31: Diagrama de Constelao dos Esquemas de Modulao ............................................................... 49
Figura 32: Resultado do FER (ou BLER) vs SNR ............................................................................................. 50
Figura 33: Arquitetura do Interleaver .............................................................................................................. 51
Figura 34: Representao das Interfaces do Bloco do Decodificador ............................................................. 53
Figura 35: Ambiente de Verificao SystemVerilog ......................................................................................... 54
Figura 36: Ambiente de Simulao Bitmatching .............................................................................................. 56
Figura 37: Floorplanning ................................................................................................................................. 57
Figura 38: Leiaute do decodificador ................................................................................................................ 57
Figura 39: Desempenho do Sistema Comparando por Tamanho de Blocos ................................................... 61
ii

Figura 40: Desempenho do Sistema Comparando os Resultados com Diferentes Valores de Iterao ........... 63
iii

LISTA DE TABELAS
Tabela 1: Parmetros do Interleaver ................................................................................................................ 33
Tabela 2: Relao entre o Tamanho do Bloco de Dados e a Quantidade de Processadores Utilizados na
Decodificao .......................................................................................................................................................... 47
Tabela 3: Parmetros para a Simulao Variando o Tamanho do Bloco de Processamento .......................... 61
Tabela 4: Parmetros para a Simulao Variando o Esquema de Modulao ................................................ 62
Tabela 5: Parmetros para a Simulao Variando o Nmero de Iteraes ..................................................... 62
Tabela 6: Tabela Comparativa entre o Decodificador Proposto e Congneres ............................................... 64
iv

LISTA DE ABREVIATURAS

16QAM - 16 Quadrature Amplitude Mudulation


64QAM - 64 Quadrature Amplitude Modulation
APP - A-Posteriori Probability
ARP - Almost Regular Permutation
ASIC - Application Specific Integrated Circuit
AT&T - American Telephone and Telegraph
BER - Bit Error Rate
BFM - Bus Functional Mode
BPSK - Binary Phase-Shift Keying
CI - Circuito Integrado
CMOS - Complementary Metal-Oxide-Semiconductor
DH - Design House
DUT - Device Under Test
EDA - Electronic Design Automation
ESF - Extrinsic Scaling Factor
FER - Frame Error Rate
FIFO - First-In First-Out
GSM - Global System for Mobile Communications
HDL - Hardware Description Language
IP - Internet Protocol
IP - Intellectual Property
LDPC - Low Density Parity Check
LLR - LOG Likelihood Ratio
Log-MAP - Logarithm MAP
LTE - Long Term Evolution
LUT - Look-Up Table
MAP - Maximum A-Posteriori
Max-Log- - Maximum Logarithm MAP
MAMAP
MCT - Ministrio da Cincia e Tecnologia
MIMO - Multiple-Input Multiple-Output
Musti-Vt - Multiple Voltage Threshold
NSC - Non-Systematic Convolutional
PLL - Phase Locked Loop
PVT - Process, Voltage and Temperature
QPP - Quadratic Permutation Polynomial
QPSK - Quadrature Phase-Shift Keying
RSC - Recusive Systematic Convolutional
RTL - Register Transfer Level
SDC - Synopsys Design Constraints
SISO - Soft-Input Soft-Output
SMS - Short Message Service
SoC - System On Chip
SOVA - Soft-Output Viterbi Algorithm
TSMC - Taiwan Semiconductor Manufacturing Company
VHDL - Very High Speed Integrated Circuit HDL
VLSI - Very Large Scale Integration
v

VLSI - Very Large Scale Integration


WCDMA - Wideband Code Division Multiple Access
vi

RESUMO

O presente trabalho prope uma nova arquitetura para o sistema turbo-code de correes de

erro usado no padro de comunicao mvel LTE (Long Term Evolution). Ser estudada a

codificao de canal e o contexto do surgimento do turbo-code, contextualizando este

trabalho e dando uma viso da rea das comunicaes mveis abordados no trabalho.

Como o projeto foi proposto para tecnologia de semicondutores, ser descrita uma breve

introduo metodologia utilizada, detalhando os passos seguidos no projeto e a construo

da arquitetura. Sero reportadas e justificadas as decises tomadas para a otimizao do

hardware.

Foram utilizadas diversas tcnicas de otimizao de harware, como o processamento em

paralelo e a utilizao do algortmo de processamento Log-MAP. As tcnicas so descritas

detalhadamente e suas vantagens e desvantagens so apresentadas, assim como so

justificadas as escolhas de projeto.

Os resultados medidos e estimados sero apresentados, mostrando ento a prioridade

empregada para alguns parmetros em detrimento de outros, sendo assim explicadas as

diferenas entre o desempenho da arquitetura proposta e de outras solues descritas na

literatura.

No projeto foi desenvolvida uma arquitetura visando uma alta confiabilidade de correo de

erros. neste aspecto que este trabalho se destaca dos demais relatados na literatura atual.

Porm, diversos outros aspectos foram levados em considerao como a latncia, o

throughput, area de silcio e consumo de potncia os quais so impactados pela frequncia

de operao e a tecnologia para o qual foi projetado. Os resultados foram bastante

satisfatrios comparativamente, em se ponderar o desempenho em funo da correo de

erros.
vii

ABSTRACT

This work proposes a new turbo-code system architecture for error correction used in LTE

(Long Term Evolution) mobile communication standard. Channel coding will be studied

and the turbo-code creation context, giving the foundation of this work and giving an

overview of the mobile communications area of the project.

As the project intended to be implemented in a semiconductor technology, a brief overview

of the methodology will be presented detailing the steps in this project and the conception

of the architecture. The decisions to optimize the hardware will be reported and explained.

During project design, several hardware optimization techniques were used as parallel

processing and Log-MAP algorithm. The techniques will be detailled described and their

advatages ans disadvantages will be presented. The design choices will be explained.

The measured and estimated results will be presented, showing the priority given to certain

parameters over others, explaining performance differences between the architecture and

other solutions found in the literature.

The architecture designed aims high reliability in error correction. This is the aspect that

distighish this work from othes described in current bibliography. However several other

aspects were considered, as latency, throughput, silicon area and power consuption which

are consequencies of the operation frequency and technology. The results were similar to

other architectures specially considering the error correction performance.


1

1. INTRODUO

O desenvolvimento das tecnologias de comunicao est intimamente relacionado com


os avanos da microeletrnica. Devido popularizao das comunicaes mveis e dos
sistemas computacionais o mercado de semicondutores movimenta uma quantidade de recursos
enorme, chegando a US$180 bilhes de dlares ainda no perodo de 1999-2000 [7].
Desde a dcada de 1940 os primeiros dispositivos de comunicao mveis foram
criados pela Bells Labs [3] e em 1946 comearam a ser homologados pela Comisso Federal de
Comunicaes dos Estados Unidos da Amrica, passando a ser operados pela American
Telephone and Telegraph (AT&T) [1]. O alto consumo de potncia restringia a utilizao
desses aparelhos, porm a configurao da rede de comunicao criada foi determinante para a
criao de um sistema divido em clulas com reutilizao de frequncias [1]. Devido ao alto
custo e baixa capacidade em nmero de usurios, esses sistemas ficaram restritos a poucos
equipamentos, tendo uso praticamente em dispositivos limitado a instalaes em carros [3].
A partir da dcada de 1980 os sistemas de comunicao mveis comearam a ficar
disponveis comercialmente em larga escala [3]. Nos primeiros padres desenvolvidos, tambm
conhecidos como de primeira gerao (1G), os sistemas ainda eram analgicos e proviam
servios de voz apenas [1]. Porm, os dispositivos ainda consumiam muita potncia, eram
caros, tinham baixa capacidade e o servio ainda no era confivel [1].
Com os avanos das tecnologias e das teorias de comunicao digital, criaram-se a
partir do incio da dcada de 1990 os sistemas de segunda gerao (2G), sendo o Global System
for Mobile Communications (GSM) o mais popular e bem sucedido desses [2]. A capacidade j
permitia a incluso de alguns novos recursos, como o servio de mensagens curtas (SMS). A
prpria evoluo desses padres elevou a capacidade original de forma a j permitir recursos
mais avanados, como o acesso internet.
A partir da popularizao das comunicaes mveis em paralelo com o
desenvolvimento da internet, comeou a existir uma demanda crescente por sistemas com
maior capacidade de transferncia de dados. Muitos dos avanos tecnolgicos vistos nas duas
ltimas dcadas se devem ao avano das tecnologias aplicadas aos dispositivos semicondutores.
A partir dos anos 2000 os sistemas de terceira gerao (3G) foram inseridos no mercado
[2] perdurando at os dias atuais. Essa tecnologia permite uma maior taxa de transmisso de
dados, o que fundamental para suprir as necessidades de comunicao e acesso informao
dos consumidores. Porm, os limites impostos so considerveis com o avano do nmero de
usurios e da taxa de transmisso de dados.
2

O sistema Long Term Evolution (LTE) surgiu para tentar vencer os desafios associados
aos 2G e 3G, criando todo um novo ambiente para o desenvolvimento das comunicaes
mveis, sem que haja a necessidade de compatibilidade [1]. Uma das caractersticas mais
interessantes a de o sistema ser projetado primordialmente para suportar transferncia de
dados via Internet Protocol (IP), inclusive os servios de voz.
O LTE teve como motivao, alm do aumento da taxa de transferncia o melhor
aproveitamento espectral, j que pode enviar mais dados em uma mesma faixa de frequncia.
Essa caracterstica importante para o provedor dos servios j que ir permitir que, para uma
mesma faixa licenciada, mais usurios possam ser atendidos com melhor qualidade.
Outra vantagem dos sistemas LTE a menor latncia associada comunicao, ou seja,
o tempo de resposta do sistema. Para determinadas operaes essa caracterstica fundamental.
Um exemplo a utilizao de voz sobre IP (VoIP) que se torna bastante comprometido ao se
optar por uma rede 3G, sendo no LTE a soluo natural para o servio de voz.
importante lembrar que apesar de estar sendo popularmente denominada uma
tecnologia de quarta gerao (4G), o LTE no atinge originalmente os requisitos para ser
enquadrado nessa categoria.
Para atingir o mximo da capacidade do canal necessria a utilizao de esquemas de
codificao de dados. Um dos mais bem sucedidos codificadores o Turbo-Code, sendo o
principal codificador do LTE.
O Turbo-Code um dos principais blocos do projeto da camada fsica do LTE, como
observado em [3]:
A codificao de canal, e particularmente o decodificador de canal manteve a
reputao de ser a fonte dominante de complexidade de implementao das
comunicaes sem fios, apesar do relativamente recente predomnio das tcnicas
avanadas de antena com suas complexidades associadas.

A teoria de comunicaes determinou um limite terico para as taxas de transmisso de


dados. Para um melhor aproveitamento os sistemas devem transmitir maior taxa possvel. O
limite da capacidade de um canal foi determinado por Claude Shannon, em 1948 [39], como
expresso na equao (1):

. / (1)

onde C a capacidade de transferncia de dados do canal, B a largura de banda e S/N a


relao sinal rudo.
Um sistema de correo de erros pode aproximar as taxas de transmisso desse limite
terico. De fato, ao se utilizar uma codificao complexa o bastante esse limite poderia ser
atingido, porm isso traria uma enorme dificuldade de implementao.
3

Diversos esquemas de codificao foram propostos desde os estudos de Hamming sobre


o desempenho dos sistemas de deteco e correo de erros no combate aos efeitos negativos
do rudo introduzido pelo canal.
No incio da dcada de 1990 foi idealizado o algoritmo do turbo-code [17] atingindo
uma taxa de transferncia prxima ao limite de Shannon. Com o avano das tecnologias esse
esquema de codificao se tornou vivel, sendo crescente a sua utilizao em sistemas de
comunicao modernos. O padro LTE no foge a essa tendncia, adotando o turbo-code como
o principal codificador de canal.

Este trabalho prope uma nova arquitetura para o Turbo-Code especificado no sistema
LTE [18], sendo seu desempenho adequado aos requisitos definidos no padro, com alguns
parmetros de projeto superiores aos encontrados em trabalhos anteriores.
O codificador, como determinado no padro do LTE, bastante simples. Porm, o
decodificador no especificado, dando flexibilidade de implementao. O objetivo principal
desse trabalho apresentar a arquitetura de um processador dedicado, em tecnologia de
circuitos integrados para o decodificador e demonstrar o desempenho atingido pela arquitetura
proposta.
Como objetivos especficos este trabalho pretende:
a. Revisar a teoria de codificao com nfase no Turbo-Code;
b. Revisar o fluxo de projeto digital e justificar o uso desta tecnologia para a realizao do
Turbo-Code;
c. Desenvolver uma nova arquitetura de decodificao Turbo-Code, como parte integrante
do projeto da camada fsica de um sistema LTE em uma tecnologia de circuitos
integrados, passando por todas as etapas desde a modelagem e descrio at a gerao
do leiaute final. Desta forma, objetiva-se criar toda a estrutura de um IP (Intelectual
Property) completo, ou seja, um bloco com boas possibilidades de reso em outros
projetos;
d. Demonstrar a eficincia da soluo desenvolvida, comparando-a a outros projetos
encontrados na bibliografia. Explicar os parmetros das comparaes e como isto afeta
o projeto;
e. Desenvolver um artigo cientfico para publicao em congresso internacional na rea de
microeletrnica, tendo como parmetro o SBCCI (Symposium on Integrated Circuits
and Systems Design)
4

A metodologia para a determinao da eficincia do decodificador importante para


definio do sucesso deste projeto. Assim, para uma anlise sobre a eficincia da arquitetura
desenvolvida foram extrados ou simulados os diversos parmetros de desempenho e algumas
comparaes foram realizadas. Na poca do desenvolvimento do projeto poucos artigos haviam
sido publicados diretamente relacionados com o projeto do turbo-code voltado para a
tecnologia LTE, o que acarretou na importncia da publicao de um artigo relacionado.
Um artigo cientfico foi desenvolvido e publicado no 24 SBCCI [8], em 2011, estando
entre os melhores do congresso, gerando um convite para a publicao de uma verso estendida
na revista relacionada ao congresso. Consequentemente um novo artigo foi desenvolvido e
devidamente publicado na JICS (Journal of Integrated Circuit and Systems), em 2012 [37].
Durante o desenvolvimento alguns blocos correlatos da camada fsica do LTE foram
estudados para se ter uma melhor ideia das restries e do desempenho exigido. A informao
mais imediata relacionada ao throughput do sistema. Esse parmetro a quantidade de
informao processada em um perodo de tempo e est diretamente relacionada com as taxas de
transmisso de dados especificados no padro.
A capacidade de correo de erros fundamental para que se tenha um sistema
confivel e bem projetado. O desempenho pode ser medido atravs da simulao do modelo e
da verificao do projeto. Inicialmente foram especificadas as tolerncias a erros para cada
esquema de modulao e buscou-se o hardware mais otimizado para atender a esses valores.
Pode-se notar que h um compromisso entre o desempenho e os resultados obtidos aps a
implementao. Esse tipo de escolha bastante comum em projetos de ASIC e envolve outros
parmetros como rea, potncia e frequncia de operao.
Para demonstrar o trabalho proposto esta dissertao ser dividida em mais quatro
captulos. Inicialmente, haver uma descrio da codificao de canal, chegando at o turbo-
code e sua verso para o LTE. No captulo seguinte ser apresentada a arquitetura proposta, sua
implementao em hardware. Posteriormente, sero apresentados os resultados de desempenho
atingidos pela arquitetura, comparando-os com outros trabalhos relevantes. Finalmente, no
ltimo captulo ser feita a concluso e observaes finais sobre este trabalho.
5

2. CORREO DE ERROS

Desde que Shannon estabeleceu os limites da capacidade do canal, vrios estudos foram
realizados objetivando sistemas de comunicao mais eficientes. Segundo descrito em [5]
existem quatro requisitos bsicos que podem ser otimizados ao se utilizar um sistema de
codificao em detrimento da necessidade de utilizao de uma maior largura de banda:
- Desempenho com relao aos erros
- Potncia
- Taxa de transferncia de dados
- Capacidade
Nos sistemas de comunicao atuais os ganhos referentes aos quatro requisitos listados so
superiores perda de desempenho associada a uma maior utilizao da banda de transmisso.
O desempenho com relao aos erros o requisito mais evidente, j que um esquema de
codificao ir necessariamente entregar os dados a uma taxa de erros menor do que um
sistema no codificado com uma mesma relao entre o sinal e o rudo do canal. Os sistemas de
deteco e correo de erros inserem informaes redundantes, assim necessitando de uma
maior banda de transmisso para alocar as informaes sobressalentes.
O requisito da potncia bastante interessante, pois se relaciona diretamente com o limite
da capacidade do canal. Uma forma de se aumentar esse limite realizar a transmisso a uma
maior potncia, assim melhorando a relao sinal/rudo. Contudo, essa no uma boa
estratgia, especialmente em se tratando de dispositivos mveis, dependentes de uma fonte
bastante limitada de energia. Portanto, mais eficiente inserir informaes redundantes, o que
permite um desempenho semelhante ao aumento da potncia, porm implicando em um menor
consumo.
A capacidade de transmisso est intimamente ligada ao aumento da taxa de transmisso.
Essa, por sua vez, tambm pode ser vista como uma expanso da relao sinal/rudo j que
estes fatores esto relacionados de uma forma inversamente proporcional. Portanto, um
codificador permite uma relao sinal rudo menor, gerando uma taxa de transmisso maior.

1.1. PERSPECTIVA HISTRICA

O telgrafo considerado o primeiro sistema de comunicao eltrico. Inventado em 1837


por Samuel Morse, curiosamente utilizava um esquema digital de transmisso de dados em que
as letras do alfabeto eram codificadas em pulsos e pausas, o famoso cdigo Morse.
6

Foram os estudos de Nyquist publicado em 1928 [38], ainda baseados no sistema de


telgrafo, que deram incio s teorias de comunicaes digitais modernas. Nesse trabalho
Nyquist props seu famoso teorema da largura mnima de banda para a transmisso de um
sinal. Estabeleceu assim que um determinado smbolo s poderia ser corretamente detectado se
a frequncia da banda tivesse um limite mnimo terico igual ao dobro da frequncia de
smbolos. Portanto, na prtica, para uma determinada banda de transmisso podero ser
enviados smbolos a uma taxa inferior metade da frequncia de banda, assim evitando o efeito
da interferncia intersimblica. Como smbolos podem ser entendidos qualquer tipo de sinal,
portanto, com uma modulao eficiente pode-se alterar a taxa real de transmisso de dados,
permitindo o envio de mais de um bit de informao por smbolo.
Seguinte aos trabalhos de Nyquist [38], Shannon em 1948 [39], baseado em rigorosas
representaes matemticas e estatsticas, estabeleceu a capacidade do canal, inaugurando
assim uma nova rea da engenharia: a teoria da informao. A equao (1) define a capacidade
do canal, tambm chamada de limite de Shannon, mostrando que para um determinado meio de
transmisso, um sinal transmitido a uma potncia especfica pode ser detectado sem ocorrncia
de erros.
Anteriormente a Shannon [39], Hamming [40] havia iniciado os estudos sobre cdigos de
correo de erros. Trabalhando na Bell Telephone Laboratories, ele era uma dos responsveis
por auxiliar outros cientistas quando esses enfrentavam problemas no manuseio dos
computadores, que na poca trabalhavam com rels programados atravs de cartes perfurados
e bastante suscetveis a erros. Aps esperar por clculos importantes para pesquisas dos seus
colegas serem processados por alguns dias e no receber resultados, Hamming relatou que,
irritado, pensou:
Maldio. Se uma mquina pode descobrir que h um erro, porque ela no pode localizar
onde ele est e mudar as configuraes do rel de um para zero ou de zero para um? [9]
Os estudos de Hamming influenciaram bastante o desenvolvimento da teoria de Shannon,
que por sua vez estabeleceu os parmetros para os algoritmos de correo de erros atravs do
limite da capacidade do canal.
Aps os trabalhos de Shannon [39] que deram visibilidade aos estudos de Hamming [40],
Golay em 1949 [41] tambm criou seu prprio mtodo de correo de erros, estendendo o
cdigo de Hamming, e inserido-se tambm como um dos pioneiros da rea. Seu primeiro artigo
fundamental foi na teoria de correo de erros.
Aps a criao de alguns outros mtodos de codificao, como o de Reed-Salomon, Elias
em 1955 [11], props um sistema de codificao baseado em uma mquina de estados finitos
7

chamada de codificao convolucional, em que o sinal codificado depende apenas das entradas
e do estado passado. Esse tipo de codificador tambm ficou conhecido como codificao em
trelia devido sua representao grfica mais usual. Os cdigos convolucionais podem ser
mostrados atravs de um grfico que leva em considerao os estados dos registradores como
uma funo temporal. O exemplo visto em [9] e reproduzido abaixo bastante elucidativo da
forma como ocorre a construo do grfico em trelia. O codificador convolucional mostrado
na Figura 1.

Figura 1: Codificador Convolucional

O grfico em trelia representa como a mquina de estados pode se comportar com o


tempo. Tomando um estado inicial em que todos os registradores tm valor zero, so
representados quais os estados que a mquina pode assumir e as sadas que o codificador pode
apresentar em se tendo as duas possibilidades de entrada. A mquina de estados do codificador
da Figura 1 pode ser representada pelo grfico em trelia da Figura 2.
8

Figura 2: Representao do Grfico em Trelia Relativo ao Codificador Convolucional da Figura 1

As linhas slidas representam as sadas geradas a partir de um bit de entrada de valor zero,
e uma linha tracejada denota a sada do decodificador para uma entrada binria de valor um. Os
ns caracterizam os estados possveis dos registradores do codificador. Os grficos em trelia
tm todos os registradores em zero como estado inicial (representado nesse grfico pelo estado
a=00). Partindo deste estado, a entrada pode levar a dois caminhos na trelia dependendo do
seu valor, ou seja, do dado a ser codificado. Pode-se notar que a partir do tempo t4 a trelia se
repete, no precisando ento haver uma representao formal de todas as possibilidades atravs
do tempo. Essa relao temporal pode ser extrapolada a partir do grfico reduzido.
A grande dificuldade enfrentada na utilizao de esquemas de codificao convolucional se
d na complexidade do decodificador. O problema, para um codificador simples, pode
inicialmente ser reduzido a encontrar o caminho na trelia que apresente a menor probabilidade
de erro se comparado com os possveis caminhos seguidos. Considerando uma sequncia
recebida pelo decodificador, os dados decodificados sero os que esto no caminho com menor
probabilidade de erros - a esse conceito d-se o nome de maximum likelihood.
A funo de erros para cada ramo da trelia ser representada pela distncia entre os dados
recebidos e todas as possibilidades da sequncia. Essas distncias so calculadas pela distncia
de Hamming, para algoritmos de deciso abrupta (o decodificador s interpreta valores
binrios) ou Euclidiana, para algoritmos de deciso suave (o decodificador interpreta smbolos
com mais de um bit cada). A deciso suave, tambm chamada de SISO (Soft-Input Soft-
Output), se d pela utilizao de dados ainda na forma ponderada na entrada do decodificador.
A distncia de Hamming apenas utilizada em sistemas com deciso abrupta, em que cada
dado de entrada do decodificador representado por um bit. Para se calcular a distncia entre
9

essa sequncia recebida e a gerada por uma das possveis sequncias enviadas, basta fazer a
soma da quantidade de bits diferentes entre elas.
J a distncia Euclidiana est relacionada com os smbolos representados por mais de um
bit. Portanto, os sinais de entrada no apresentam apenas dois nveis lgicos. Para o clculo se
considera que os ramos so constitudos pelos sinais sem rudos e a mtrica euclidiana ser
simplesmente a distncia entre o sinal recebido e o sinal sem rudo.
A ideia de encontrar a menor probabilidade de erros parece tentadora de incio, porm essa
estratgia requer um hardware com uma complexidade enorme, pois devero ser computados e
armazenados os dados para cada sequncia possvel.
Esse problema foi amenizado aps Viterbi em 1967 [13] criar um sistema de decodificao
otimizado para os cdigos convolucionais, gerando uma arquitetura mais simples. Porm a
ideia do algoritmo proposto continua sendo o de encontrar o caminho de maior probabilidade
(maximum-likelihood).
Atravs da anlise do grfico de trelia pode-se notar que a cada smbolo interpretado
existiro dois caminhos convergindo para cada n. Portanto, s existir um caminho mais
provvel (menor distncia) at um dado n, assim, podendo eliminar uma das sequncias,
sendo o caminho que no eliminado chamado de sobrevivente. Desta forma, existir sempre
um nmero limitado de sequencias a serem analisadas, reduzindo bastante a complexidade de
implementao.
Em contrapartida, Bahl et al. em 1972 [15] propuseram um decodificador baseado na
seguinte constatao: O algoritmo de Viterbi, por ser um mtodo de decodificao de mxima
probabilidade (maximum-likelihood), minimiza a probabilidade de erros de uma sequncia para
o codificador convolucional. Esse algoritmo no necessariamente minimiza a probabilidade do
erro em um smbolo. O algoritmo proposto em [15] se baseia na ideia de maximizar a
probabilidade a-posteriori (A-Posteriori Probability APP) de cada smbolo ser correto, por
isso fora denominado Maximum A-Posteriori (MAP).
Segundo [14], maximizar as probabilidades a-posteriori por si s leva a um incremento
mnimo em termos de bits errados se comparado com o algoritmo de Viterbi, portanto essa
soluo no foi usada de imediato, j que proporcionava um aumento de complexidade
significativo. Porm, essa informao a-posteriori fundamental para um esquema de
decodificao iterativa.
O exemplo da funcionalidade do algoritmo MAP dado em [14], utilizando a notao
encontrada em [15], bastante elucidativo:
10

A Figura 3 mostra uma trelia de terminao curta com sete sees, usada como exemplo.
O sinal transmitido , -, e os smbolos de informao so ,
- ou seja, existem dois bits de terminao (tail bits) que levam o codificador de volta
ao estado zero.
O propsito final do algoritmo o clculo das probabilidades a-posteriori, tais como
, | - ou , | -, onde y a sequncia recebida observada na sada do canal, do qual a
sequncia transmitida . Porm, conceitualmente, mais imediato calcular a probabilidade
de o codificador atravessar uma transio especfica da trelia; ou seja,
, | -, onde o estado no tempo , e o estado no tempo .O
algoritmo calcula essa probabilidade como um produto de trs termos, conforme expresso em
(2).

, | - , -
( )

( ) ( ) ( ) (2)
( )

Os valores de so variveis internas do algoritmo e so calculados pela forward


recursion, definida em (3).
( ) ( ) ( ) (3)

Figura 3: Exemplo de Trelia

A forward recursion avalia os -valores no tempo dos -valores calculados previamente


no tempo , e a soma sobre todos os estados m no tempo que conectam ao estado m
no tempo . A forward recursion ilustrada na Figura 4. Os valores de so inicializados
como ( ) ( ) ( ) ( ) . Isto automaticamente fora condio em que
o codificador comear no estado 0.
11

Figura 4: Forward Recursion

Os -valores so calculados por um procedimento anlogo, chamado de backward


recursion, definido em (4).

( ) ( ) ( ) (4)

Os -valores so inicializados por ( ) ( ) ( ) ( ) forando a


condio de trmino da trelia. A soma se d sobre todos os estados m no tempo , no qual
o estado m no tempo t se conecta. A backward recursion ilustrada na Figura 5.

Figura 5: Backward Recursion

Os valores de so as probabilidades de transio condicional e so entradas para o


algoritmo. ( ) a probabilidade conjunta de o estado no tempo ser e
ser recebido, sendo calculado por (5).
( ) ( | ) , | - ( | )
(5)
12

onde o primeiro termo, , | -, a probabilidade de transio a priori e


relacionada probabilidade de .
O segundo termo, ( | ), simplesmente a probabilidade de transio condicional do
canal dado que o smbolo seja transmitido. Note que o simbolo associado com a transio
do estado .
As probabilidades dos smbolos a posteriori , | - podem ser calculadas a partir das
probabilidades a priori de transio, somando todas as transies correspondentes a e,
separadamente, somando todas as transies correspondentes a , para obter:

, | - , - (6)
( )

(7)
, | - , -
( )

Na Figura (6), a transio slida corresponde a e a transio tracejada corresponde a


.

Figura 6: Probabilidade de Transio

A descrio formal detalhada foi demonstrada em [15], bem como o algoritmo passo-a-
passo. A operao foi posteriormente alterada por Berrou, Glavieux e Thitimajshima em [17]
para se adequar ao caso da decodificao do turbo-code.
Como j citado, o algoritmo MAP de difcil implementao em hardware, j que requer
muitas multiplicaes de nmeros que necessitam de muitos bits para a sua correta
representao. Alm de requerer que a trelia seja percorrida ao menos duas vezes para o
clculo das componentes e . Uma alternativa bastante interessante a de realizar as
operaes no domnio logartmico, o que possibilita a reduo das operaes mais complexas.
Essa otimizao ser mostrada posteriormente nesse trabalho.
13

Durante um longo perodo essa decodificao no foi utilizada, por sua complexidade e
baixo ganho de desempenho com relao ao algoritmo de Viterbi [13]. O algoritmo MAP s foi
novamente discutido depois da criao dos turbo-codes, j que esses requeriam a informao a
posteriori de cada bit.
Durante muito tempo diversos estudos foram realizados e vrias arquiteturas de codificao
foram propostas no sentido de usar mais esquemas de codificao de forma concatenada (por
exemplo, usar o codificador Reed-Solomon em srie com um convolucional, como citado em
[14]). Os codificadores convolucionais eram uma boa alternativa como um dos codificadores a
serem concatenados. Para uma decodificao iterativa era preciso que as informaes no
fossem abruptas, mas que houvesse um refinamento da informao. Com isso, algoritmos de
deciso suave foram mais estudados. A melhor alternativa neste perodo e com as
configuraes desenvolvidas era a de utilizar os decodificadores do tipo SOVA (Soft-Output
Viterbi Algorithm).
O turbo-code mudou esse panorama propondo uma arquitetura em paralelo, onde dois
codificadores convolucionais recebiam a mesma entrada, porm com os dados permutados.
A criao do turbo-code foi proposta por Berrou, Glavieux e Thitimajshima em 1993 [17],
causando uma grande revoluo no desenvolvimento dos codificadores, j que atingia
desempenho prximo ao estimado pelo limite de Shannon. Assim, o turbo-code se tornou
dominante como codificador de canal para comunicaes digitais. A sua implementao porm
era desafiadora, sendo ainda atualmente um dos blocos mais complexos na implementao dos
sistemas de comunicao.
Primeiramente, [17] define um novo arranjo para realizar a codificao convolucional. Este
novo esquema j tinha um ganho de desempenho se comparado com os que vinham sendo
usados. Os codificadores sistemticos so aqueles que enviam, alm do sinal codificado, a
prpria entrada. Contudo, sabido que os codificadores convolucionais no sistemticos (Non-
Systematic Convolutional NSC) apresentam uma melhor resposta de erros para uma relao
sinal rudo alta [17]. A nova classe de codificadores chamados de convolucionais sitemticos
recursivos (Recursive Systematic Convolutional RSC) foi proposta por [17], sendo superior
aos NSC para qualquer relao sinal rudo em altas taxas de codificao. Neste caso, so
enviados sinais de sistemtico (que igual entrada) e de paridade (resultado das operaes do
codificador). Exemplos de codificadores NSC e RSC so mostrados nas Figuras 7 e 8, extradas
de [17].
14

Figura 7: Codificador Non-Systematic Convolutional

Figura 8: Codificador Recursive Systematic Convolutional

Deve-se notar que no codificador NSC representado ambas as sadas so de sinais de


paridade, enquanto na figura do RSC, o bit de paridade e o bit de sistemtico.
Sabe-se que a decodificao com deciso suave proporciona um ganho de desempenho
considervel para algoritmos iterativos. O logaritmo da razo das probabilidades (Log
Likelihood Ratio LLR) uma importante informao para o aprimoramento da decodificao.
A LLR pode ser calculada atravs da funo de probabilidades descrita por (8):
* + (8)
( )
* +

sendo * +, a probabilidade a posteriori (APP) do dado .


A formalizao do algoritmo proposto por [15] foi modificado por [17] para o clculo de
um codificador RSC, levando em considerao sua estrutura recursiva. Os passos descritos so
(algumas notaes foram modificadas para melhor compatibilidade com [17]):
15

Considerando um RSC com comprimento K (quantidade de bits do codificador) em um


tempo k, os estados do codificador podem ser representados por:

( ) (9)

Sendo a entrada dos registradores de deslocamento com o dado de entrada , como


representado na Figura 8. O estados inicial e final do codificador, e , so iguais a zero.
A entrada do decodificador pode ser representada por * + onde
( ) so os sinais capturados que passam por um demodulador ou outro
processamento semelhante. Logo, a probabilidade conjunta para um estado m definida por:

( ) * + (10)

sendo ento a probabilidade a posteriori (APP) definida por:

* + ( ) (11)

A LLR ento fica:


( ) (12)
( )
( )

Para o clculo da probabilidade conjunta, trs funes de probabilidade so usadas,


descritas por (13).
* +
( ) * + (13.a)
* +

* + (13.b)
( )
* +

( ) * + (13.c)

Pode-se notar que ( ) e ( ) so referentes s probabilidades de estado e


( ) se refere probabilidade de transio entre estados, sendo esta varivel calculada
pelas funes de probabilidades descritas em (14):
( ) ( )
( ) (14)

( )
16

onde:
- ( ) representa a probabilidade de transio do canal
condicionada a ( ). Contudo, pode ser desmembrado nas
variveis recebidas, separadamente sistemtico e paridade.
- ( ) a probabilidade de, tendo-se uma entrada, os
registradores transitem entre estados. Esta varivel sempre 1 ou 0, j que apenas uma entrada
especfica leva a mquina entre estados determinados.
- ( ) a probabilidade de mudana de um estado para outro especfico.
Este fator relacionado com a probabilidade da entrada do codificador. Esta componente
chamada de probabilidade a priori.
A probabilidade conjunta pode ser reescrita como:
* + (15)
( )
* +

Atravs de algumas transformaes em (15), obtm-se:

( ) ( ) ( ) (16)

Por sua vez, ( )e ( ) podem ser calculados recursivamente atravs das funes de
probabilidade de transio entre os estados, equaes 17 e 18, calculando a probabilidade de
estados desde as primeiras amostras e desde a ltima amostra para ( ) e ( ),
respectivamente:

(17)

(18)

Assim, os passos do algoritmo de Bahls modificado por Berrou ficam:


- Passo 1: Inicializar as probabilidades ( )e ( ) levando em considerao que os
registradores sempre comeam e terminam com valores 0. Portanto:
( ) ( )
( ) ( )
- Passo 2: Para cada recebido, so calculadas as probabilidades ( )e ( ).
17

- Passo 3: Quando toda a sequncia for recebida, ( ) calculado e multiplicado


por ( ) de forma a obter ( ) e posteriormente a LLR associada a cada .
Dessa forma, a decodificao de uma RSC formalizada na forma de um algoritmo,
utilizando recursividade para o clculo das probabilidades de estados. O algoritmo mais
simples de entender graficamente atravs das figuras (4), (5) e (6).
O clculo da LLR reescrito como:

(19)

E a probabilidade de transio representada pelas entradas independentes:


( ) (20)
( ) ( )

Levando em considerao que um dos sinais do codificador diretamente a entrada de


dados, a parte referente informao do sistemtico, ( ), no
clculo de ( ) independente do clculo dos estados e , logo a LLR pode ser
fatorada em:

( ) ( ) ( ) ( ) (21)
( )
( ) ( ) ( ) ( )

A primeira parte da soma diz respeito apenas entrada do sistemtico, j a segunda parte se
refere redundncia inserida. Este fator representa a informao extrnseca, que, por sua vez,
no depende da informao do sistemtico.
O codificador turbo-code constitudo por dois RSCs idnticos em paralelo, com a entrada
para um deles passando por uma funo de interleave, que embaralha os dados de entrada,
alterando a sua ordem de uma forma pseudo aleatria de tal modo a permitir a reconstruo na
ordem natural dos dados. Este esquema pode ser visto na Figura 09.
18

Figura 9: Estrutura Simplificada do codificador Turbo-Code

Pode-se notar que os codificadores recebem a mesma informao, porm os bits so


recebidos em uma sequncia diferente.
O decodificador iterativo usa a informao contida em uma sequncia de paridade para que
refine a decodificao do seguinte. Um esquema de decodificador representado na Figura 10.

Figura 10: Estrutura Simplificada do Decodificador Turbo-Code

Na Figura 10, w representa a informao extrnseca e as entradas de sistemtico do segundo


decodificador so os dados decodificados pelo primeiro. Uma informao importante que os
decodificadores no podem ser alimentados por dados correlatos, para evitar a correlao entre
os dados gerados pelos codificadores e as entradas.

1.2. ALGORITMOS E OTIMIZAES DO TURBO-CODE

Apesar de ser apresentado na forma de um algoritmo e de ser realizvel, a decodificao do


turbo-code ainda tem um grau de complexidade muito elevado e sua implementao e
19

utilizao na prtica no seriam possveis nas formas apresentadas at ento. Para reduzir a
complexidade, algumas otimizaes foram desenvolvidas, gerando uma forma bastante
simplificada do processador SISO.

1.2.1. Algoritmo Log-MAP

Segundo Robertson [16], o algoritmo apresentado por Bahls e modificado por Berrou
mesmo na sua forma recursiva apresenta um grau de complexidade alto. Isso se deve
representao numrica, ao uso de funes no lineares e ao nmero elevado de somadores e
multiplicadores. A sua representao no domnio logartmico resolve o problema numrico e
reduz a complexidade computacional.
No formalismo subsequente adotamos a notao:

( ) ( ) (22)

As relaes necessrias para o clculo da LLR (posteriormente as componentes sero


separadas) no domnio logartmico so desenvolvidas como mostrado em [16]:

( ) ( ( )) ( ) ( ( )) (23)

Logo:

( ) ( ( ) ( ))
( )
(24)

( ( ) ( ))
( )

De acordo com [4]:

( ) ( ( )
( | |
)) ( ) ( | |
) (25)

Inicialmente, aproximando-se a relao em (25) por ( ) ( ) pode-se


generalizar:
( ) (26)
* +
20

A funo de mximo pode ser recursivamente calculada fazendo-se a comparao sempre


sobre duas componentes. Assim, combinando as equaes (24), (25) e (26), obtm-se:
( ) ( ( ) ( )) ( ( ) ( )) (27)
( ) ( )

Analogamente, para ( ) ( ( )), temos:


( ) ( ( ) ( )) ( ( ) ( )) (28)
( ) ( )

Assim, a LLR fica:


( ) ( ( ) ( ) ( ))
( )
(29)
( ( ) ( ) ( ))
( )

Decompondo como nas equaes (14) e (20), a LLR fica:


( ) ( ( ) ( ) ( ))
( )

( ) * + (30)
( ( ) ( ) ( ))
( )

( ) * +

A informao, a priori, pode ento ser calculada para ( )


por:
* + * | + (31)
( ) ( ) ( )
* + * | +

Portanto:

* | + ( ) ( ( )
) ( ) ( ( )) (32)

De forma similar, para ( ):

* | + ( ( )) (33)

Essa simplificao chamada de Max-Log-MAP devido utilizao das funes de


mximo e da composio logartmica das variveis. Essa soluo apresenta um desempenho
sub-timo, j que a aproximao gera uma diferena de desempenho com relao ao clculo
logartmico. Uma forma de minimizar esta queda de desempenho utilizando uma funo de
21

correo baseada na componente no computada. Esta soluo se aproxima bastante da


resposta tima no domnio logartmico. Este algoritmo denominado de Log-MAP e tem sua
aproximao da funo logartmica representada por:
| |
( ) ( ) ( ) (34)
( ) (| |)

onde ( ) a funo de correo. Consequentemente, pode-se provar que a expresso


( ) pode ser calculada com exatido. Supondo que ( )
sabido. Ento:
( ) ( )
( ) |) (35)
(|
( ) (| |)

Assim, todas as funes de mximo sobre dois valores tm uma funo de correo. Como
consequncia, por corrigir a cada passo a aproximao feita pelo Max-Log-MAP, o algoritmo
MAP original foi preservado.
Todavia, o clculo de ( ) continua tendo um algo grau de complexidade. Como soluo,
uma tabela com os valores pr-calculados pode ser inserida. Pode ser mostrado que poucos
valores j atendem a critrios bastante elevados de desempenho.

1.2.2. Decodificao em Paralelo

A implementao serial descrita por [17] e reproduzida anteriormente atravs da Figura 10,
a forma iterativa do algoritmo de decodificao. Esta forma apresenta uma latncia muito
elevada, impactando assim no desempenho do sistema.
Uma forma de reduzir o tempo de operao da decodificao a implementao paralela
intra-SISO. Dobkin et al. [20] mostrou a arquitetura paralela para o decodificador MAP,
comparando o seu resultado com uma implementao utilizando janelas deslizantes (sliding-
window).
As janelas deslizantes so uma forma de acelerar a decodificao de forma a comear o
clculo das componentes antes da concluso do recebimento de todos os valores de entrada.
Um exemplo grfico mostrado por [20] da utilizao das janelas deslizantes pode ser visto na
Figura 11. Neste caso, primeiramente todos os dados so recebidos, posteriormente as
22

componentes so calculadas e, finalizando, a componente calculada juntamente com a


LLR:

Figura 11: Operaes com o Uso de Sliding Window

Porm a soluo de janelas deslizantes reduz apenas o tempo do clculo de uma


componente ( neste caso). Um algoritmo mais agressivo foi proposto por [20] em que
algumas SISOs operam em paralelo, dividindo os dados em sub-blocos de processamento de
tamanho W. Quanto menor o valor de W, menor a latncia associada. O maior empecilho a
operao do interleaver. Contudo, um projeto correto permite a utilizao desta tcnica.
Posteriormente neste texto ser apresentada uma das tcnicas de interleaver.
A Figura 12 representa o tempo de processamento para uma arquitetura de janelas
deslizantes sequencial e uma totalmente paralela, onde N o tamanho da palavra a ser
processada:

Figura 12: Comparao Sliding Window com Paralelismo


23

Existe uma queda de desempenho associada descontinuidade do clculo das componentes


de estado e . Neste sentido, algumas tcnicas podem ser aplicadas para minimizar este
efeito. Uma delas fazer a sobreposio dos clculos: o fim dos sub-blocos se estende alm do
comeo do bloco subsequente, o que faz com que o clculo seja mais apurado.

1.2.3. Interleaver

Segundo [22], o propsito do interleaver no turbo-code assegurar que os padres de


informao que causam palavras de baixo peso para o primeiro codificador no sejam
embaralhados gerando padres de baixo peso para o segundo codificador, portanto melhorando
o peso do espectro do cdigo.
Ainda segundo [22], otimizaes de espalhamento do interleaver so desejveis para
convergncia rpida e uma boa propriedade de distncia do cdigo. Grandes distncias abaixam
o ponto em que a curva de bit error rate (BER) planifica (piso de erros) e cresce a inclinao
da curva de BER.
O interleaver, como dito anteriormente, tem papel fundamental para permitir o uso de
certas tcnicas de paralelizao do decodificador. Segundo [21]:
A seleo da codificao turbo foi cuidadosamente considerada durante a fase de estudo
do item do LTE para alcanar requisitos rgidos. Aps a comparao com diversos
codificadores de alto desempenho (e.g., turbo codes, LDPC, etc) baseado na complexidade,
flexibilidade e compatibilidade, foi decidido usar o turbo code WCDMA existente com um
novo contention free interleaver, permitindo uma paralelizao eficiente do decodificador para
altas taxas. Seguindo deliberaes do grupo de trabalho, o Permutador Quase Regular (Almost
Regular Permutation ARP) e o Permutador Polinomial Quadrtico (Quadratic Permutation
Polynomial QPP) emergiram como as solues mais promissoras para os requisitos do LTE,
sendo o QPP selecionado.
Uma conteno ocorre quando em uma arquitetura em paralelo, dois processadores SISO
tentam acessar o mesmo banco de memria ao mesmo tempo. A utilizao de um interleaver
que no prev paralelizao requer hardware especializado para tratar as contenes, o que
gera uma soluo pouco eficiente. Um contention-free interleaver com M sub-blocos de
tamanho W deve respeitar a seguinte relao:
( ) ( ) (36)
24

Onde a funo de interleave ( )/deinterleave ( ), e para


todo .
Uma forma de otimizar a utilizao das memrias garantir que todos os processadores
SISO acessem o mesmo endereo de memria a cada momento. Para isso, o interleaver deve
seguir a funo:

( ) ( ) (37)

Para todo e .
Esse o tipo de funo selecionada para o sistema LTE, assim permitindo a decodificao
em paralelo com uma implementao recursiva que leva a um hardware simples.
25

2. ARQUITETURA PROPOSTA E IMPLEMENTAO

O objetivo deste captulo o de introduzir a metodologia de desenvolvimento de circuitos


integrados digitais, justificar as decises de projeto e descrever a arquitetura adotada.
A arquitetura adotada a grande contribuio deste trabalho, j que foi pensada e
desenvolvida para otimizar o processo de decodificao e atender a objetivos especficos de
desempenho. Para tal, algumas tcnicas para projeto do decodificador turbo-code foram
estudadas e algumas adotadas na medida em que afetam parmetros estabelecidos.
2.1. FLUXO DE PROJETO DIGITAL

Com o evoluo da tecnologia de fabricao de circuitos integrados CMOS permitindo um


avano na miniaturizao dos dispositivos e consequentemente da complexidade alcanada
pelos circuitos microeletrnicos, os desafios de projeto ficaram maiores. Uma das grandes
preocupaes na microeletrnica o de atingir a excelncia tcnica aliada a uma preocupao
com o tempo de execuo, pois o momento de lanar o produto no mercado fundamental para
o sucesso de uma soluo (time to marketing). Esta preocupao j est em evidncia h algum
tempo e definiu os rumos do fluxo de projetos adotado em SoCs. J em 2002 [24] se
questionava:
Como chegaremos l (projetos com 12 milhes de portas lgicas)? Para qualquer
varivel envolvida com a soluo, uma coisa clara: a habilidade de influenciar a
avaliao de propriedades intelectuais (Intellectual Property - IP) pelo reuso de projeto
ser pedra fundamental invarivel para qualquer combate efetivo questo de
produtividade. IPs reusveis so essenciais para atingir a qualidade em engenharia e a
realizao no prazo de circuitos com muitos milhes de portas lgicas. Sem o reuso, a
indstria de eletrnicos simplesmente no ser capaz de manter o ritmo com o desafio
de entregar dispositivos melhores, mais rpidos e mais baratos aos consumidores..

neste contexto que se aplica o projeto desenvolvido, j que este teve como requisito
bsico poder ser comercializado como um IP separado da camada fsica do LTE. Desta forma,
este se torna um projeto completo, percorrendo assim todas as etapas tradicionais do fluxo de
projetos digitais.
Diversas so as representaes do fluxo de projeto, cada autor organizando as etapas da
forma que melhor lhe convm. Embora, todos sigam os mesmos passos bsicos, diferindo
apenas na forma e no no contedo. Em [25] foi ilustrada uma forma bastante simplificada os
passos do design e suas respectivas etapas de verificao:
26

Figura 13: Representao em Alto Nvel do Fluxo de Projeto

A Figura 13 mostra as transformaes realizadas em cada etapa do projeto, reduzindo o


nvel de abstrao at chegar ao seu leiaute final. Tambm h uma partio entre o Front-End e
o Back-End, esta estrutura pode ser entendida como a poro em que somente transformaes
lgicas ou fsicas so realizadas. Partindo dos requisitos do produto, criada uma especificao
funcional. Por sua vez, aps o trabalho de projeto do RTL e a passagem pela sntese lgica,
uma especificao estrutural mais comumente conhecida como netlist gerada. Aps o trmino
desta etapa, a sntese fsica realizada gerando o leiaute final do projeto. Todas essas etapas
vm em conjunto com fases de verificao. Essas tarefas so detalhadas por [25] nas Figuras 14
e 15.
27

Figura 14: Detalhamento das Etapas de Front-End

Figura 15: Detalhamento das Etapas de Back-End

Na Figura 14 est representado o fluxo de desenvolvimento do Front-End, em que


inicialmente a especificao e, atravs de funes lgicas e matemticas, evolui para uma
descrio em portas lgicas, entretanto ainda sem as informaes fsicas completamente
definidas.
28

Uma etapa que no claramente mostrada na Figura 14, que pode ser adicionada entre a
especificao e o desenvolvimento do RTL descrita em [26]. Nesta etapa, a especificao
modelada em uma linguagem de alto nvel como C/C++ ou Matlab de forma a validar os
conceitos da especificao. Uma descrio desta etapa feita por [26] reproduzida a seguir:
Uma vez que voc tenha concludo a especificao detalhada do sistema, voc
deve provar novos conceitos que voc props para a implementao. Por exemplo, voc
pode ter desenvolvido um novo algoritmo ou uma nova arquitetura, os quais voc quer
implementar. Estes ainda no foram provados, ao invs de provar a sua adequao para
o projeto, voc precisa usar linguagens de alto nvel como C ou Matlab e testar os
cdigos para todas as combinaes possveis que voc poder encontrar posteriormente
no hardware real quando voc implementar o design. At mesmo os padres no podem
ser tomados como garantia e necessitam ser testados antes dos demorados cdigos
Verilog. Quando voc tiver certeza que os conceitos esto funcionando, este ser o
momento correto de se comear o projeto de hardware.

Aps a modelagem, as funes a serem implementadas so escritas na forma de uma


linguagem de descrio de hardware (Hardware Description Language - HDL). Esta etapa
denominada de RTL (Register Transfer Level), pois o projetista j revela onde os elementos de
memria so colocados na lgica, ou seja, quais sinais sero registrados. Algumas definies de
RTL so comentadas abaixo:
RTL, ou nvel de transferncia de registradores, um mtodo de descrever o
comportamento do hardware em software usando uma linguagem de descrio de
hardware (HDL). Em qualquer linguagem de descrio de hardware (Verilog ou
VHDL), existem duas abordagens diferentes para descrever um bloco de hardware. Um
mtodo consiste em descrev-lo apenas pelo seu comportamento. A outra abordagem
descrever o sistema de uma forma estrutural, ou seja, para atingir as funes pretendidas
so descritos blocos bsicos cujas funcionalidades so sabidas e bem definidas. Nesta
abordagem, uma descrio Verilog ou VHDL do sistema criada quando os
engenheiros de hardware sabem aproximadamente quais portas lgicas eles querem e
onde elas estaro. [27]

RTL significa nvel de transferncia de registradores, significando que o dado transferido


em um sistema realiza-se atravs de registradores [28]
Um cdigo RTL caracterizado pelo fluxo de controle direto atravs do cdigo;
compreendido por subcircuitos conhecidos que so conectados juntos de uma forma simples
[29]
Esta a funo mais importante durante o projeto, j que ir definir os limites das
otimizaes das etapas subsequentes. Um dos grandes motivos para a realimentao entre o
Back-End e o Front-End se d exatamente na alterao do RTL para permitir que o projeto do
Back-End possa atingir certos requisitos.
A verificao do RTL uma etapa bastante trabalhosa, consistindo basicamente de uma
verificao formal. Algumas metodologias esto sendo desenvolvidas nos ltimos anos,
baseadas na evoluo da linguagem Verilog para a linguagem SystemVerilog, que possibilitou
29

a introduo de muitas funes novas para a simulao, incluindo a algumas caractersticas


que permitem o uso de estruturas com orientao a objetos. Porm, o conceito bsico prevalece,
que o de se comparar um modelo de referncia (tambm chamado de Golden Model) com o
RTL a ser verificado, aplicando estmulos iguais aos dois modelos e comparando suas sadas.
Normalmente, esse modelo pode ser diretamente derivado do modelo desenvolvido aps a
especificao.
Durante o Front-End ainda so realizadas as etapas de sntese e as respectivas verificaes.
Uma etapa bsica que acompanha o RTL a descrio dos requisitos temporais (Timing
Constraints), j que o projetista de Front-End que consegue definir cada requisito e restrio
para o que foi projetado. Estas informaes so descritas em um arquivo no formato SDC
(Synopsys Design Constraints). A partir dos arquivos SDC e do RTL, realizada a sntese
lgica, que tem como principal objetivo reduzir o projeto RTL de mais alto nvel para o nvel
de portas lgicas, porm sem apresentar as caractersticas fsicas completas. Por todo o fluxo
digital as transformaes se do sempre tendo como objetivo principal atender aos requisitos de
tempo.
O resultado final de todas as etapas de sntese mostradas na Figura 14 um netlist, ou seja,
um arquivo com a descrio das funes atravs de portas lgicas. As etapas de verificao
tambm so mostradas, consistindo na anlise de temporizao, anlise de potncia, uma
verificao funcional (no obrigatria) e uma verificao formal comparando atravs de uma
prova matemtica que o netlist equivale ao RTL.
O fluxo de Back-End simplificadamente representado pela Figura 15. Normalmente, as
etapas de sntese so automatizadas, embora guiadas pelo julgamento humano [25]. de
extrema importncia o conhecimento de todas as etapas percorridas pelas ferramentas de EDA
(Eletronic Design Automation) para poder solucionar qualquer dificuldade e para obter os
melhores resultados das ferramentas.
Na Figura 15 mostrado que o primeiro passo aps a sntese lgica o placement. Uma
etapa anterior pode ser adicionada se o projeto tiver nveis hierrquicos ou mdulos que no
obedecem s clulas padro, como memrias ou Hard-IPs. Assim, a descrio das etapas
representadas na Figura 15 segundo [27] so reproduzidas a seguir:
Floorplanning: a primeira grande etapa do projeto fsico. As tarefas chaves incluem
analisar o tamanho do projeto (rea de silcio), selecionar o encapsulamento, posicionar as
entradas e sadas, posicionar as macroclulas (tais como clulas de memria, clulas analgicas
e clulas de funo especial), planejar a distribuio de potncia e de clocks e particionar a
hierarquia.
30

Placement: O posicionamento uma etapa chave para o projeto fsico. Como o nome
sugere, o posicionamento o processo de posicionar as clulas ou procurar a melhor
localizao para cada clula do netlist dentro do floorplan. uma atividade crucial, pois um
posicionamento pobre consome mais rea, alm de prejudicar o desempenho da velocidade do
chip. Posicionamento ruim geralmente leva a uma tarefa de roteamento difcil e, algumas vezes,
impossvel.
Route: Aps a etapa de placement, a exata localizao das clulas e os seus pinos so
fixados. O prximo passo completar fisicamente as interconexes definidas no netlist. Isso
implica no uso de fios (metais) para conectar os terminais relacionados em cada fio. O processo
de encontrar os leiautes geomtricos para os fios chamado de roteamento (routing). Como um
requisito, os fios roteados devem estar confinados a uma rea. Adicionalmente, os fios no
devem estar curto-circuitados. Em outras palavras, os fios no devem ter uma interseo com
outros.
O objetivo do processo de roteamento depende da natureza do projeto. Em projetos de
propsito-geral, suficiente minimizar o comprimento dos fios enquanto completa as
conexes. Em projetos de alto desempenho, crucial o roteamento de cada fio de forma a
atingir os requisitos de temporizao. Fios de propsito-especfico, como o de clock e o terra,
requerem um tratamento especial.
Parasitic Extraction: Aps as clulas serem posicionadas, as conexes eltricas so feitas
por fios metlicos. As clulas e os fios tm resistncia e capacitncia que afetam a propagao
de corrente atravs deles. Como consequncia, h um impacto no tempo de propagao do
sinal. A Extrao de Parasitas o processo de extrair os valores exatos das resistncias e
capacitncias associadas a cada segmento de metal, de modo que seu impacto no atraso do sinal
possa ser determinado precisamente.
Timing Analysis: Verificao temporal o processo de comprovar que o leiaute do chip
pode operar at a frequncia definida para o produto. Diferentemente da verificao funcional,
a qual busca a funcionalidade do chip, a verificao temporal foca na velocidade do chip. Outra
diferena entre as duas verificaes que a de temporizao deve ser realizada em todos os
casos limites (corner cases) de processo, temperatura e tenso (Process, Voltage and
Temperature PVT). Um produto confivel deve rodar temperatura desejada com
transistores fracos/fortes, resistncia dos metais e vias alta/baixa, e com tenso fornecida
alta/baixa. Antes do projeto ser mandado para a manufatura, o comportamento de temporizao
em todas as combinaes destas condies tm que ser testadas com os requisitos do projeto.
31

2.2. APRESENTAO DA ARQUITETURA

O Turbo-Code do sistema LTE definido em [18], consistindo apenas da especificao da


codificao como mostrado na Figura 16 e da definio do interleaver.

Figura 16: Codificador Especificado para o Padro LTE

A Figura 16 mostra dois codificadores convolucionais de 8 estados em paralelo, ligados por


um interleaver, resultando em uma taxa de codificao de . A cada bit de dados existiro 3 bits

codificados. Na Figura 16 as linhas pontilhadas representam o caminho de dados para a criao


dos tail bits, que levam o sistema ao estado em que todos os registradores tomam valor lgico
zero.
Em operao normal, apenas trs sinais so enviados e ao final de um bloco de dados, o
sistema deve ser levado ao estado conhecido em que todos os registradores so zero, gerando
assim os tail bits.
As sadas de dados do codificador so um bit do sistemtico e dois de paridade, sendo a
unidade de codificao composta por trs registradores. Os trs sinais devem ser enviados
concatenados entre si, sendo os bits modulados na seguinte sequncia:
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (38)
0 1
32

Usando a relao das sadas com o sinal codificado, tem-se:


( )

( ) (39)

( )

E os tail bits completam a sequncia e so definidos por [12]:


( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) (40)

( ) ( ) ( ) ( )

Portanto, a sequncia de transmisso de dados para um bloco de entrada de K bits ter


bits, com os ltimos 12 representando os bits de terminao.
Outra definio a funo de gerao do interleaver e os seus parmetros, que so dados
pela equao (41). A Tabela 1 mostra os valores dos parmetros necessrios para os clculos
[18].

( ) (41)
()
33

Tabela 1: Parmetros do Interleaver

t K f1 f2 t K f1 f2 t K f1 f2 t K f1 f2
1 40 3 10 48 416 25 52 95 1120 67 140 142 3200 111 240
2 48 7 12 49 424 51 106 96 1152 35 72 143 3254 443 204
3 56 19 42 50 432 47 72 97 1184 19 74 144 3328 51 104
4 64 7 16 51 440 91 110 98 1216 39 76 145 3392 51 212
5 72 7 18 52 448 29 168 99 1248 19 78 146 3456 451 192
6 80 11 20 53 456 29 114 100 1280 199 240 147 3520 257 220
7 88 5 22 54 464 247 58 101 1312 21 82 148 3584 57 336
8 96 11 24 55 472 29 118 102 1344 211 252 149 3648 313 228
9 104 7 26 56 480 89 180 103 1376 21 86 150 3712 271 232
10 112 41 84 57 488 91 122 104 1408 43 88 151 3776 179 236
11 120 103 90 58 496 157 62 105 1440 149 60 152 3840 331 120
12 128 15 32 59 504 55 84 106 1472 45 92 153 3904 363 244
13 136 9 34 60 512 31 64 107 1504 49 846 154 3968 375 248
14 144 17 108 61 528 17 66 108 1536 71 48 155 4032 127 168
15 152 9 38 62 544 35 68 109 1568 13 28 156 4095 31 64
16 160 21 120 63 560 227 420 110 1600 17 80 157 4160 33 130
17 168 101 84 64 576 65 96 111 1632 25 102 158 4224 43 264
18 176 21 44 65 592 19 74 112 1664 183 104 159 4288 33 134
19 184 57 45 66 608 37 76 113 1696 55 954 160 4352 477 408
20 192 23 48 67 624 41 234 114 1728 127 96 161 4416 35 138
21 200 13 50 68 640 39 80 115 1760 27 110 162 4480 233 280
22 208 27 52 69 656 185 82 116 1792 29 112 163 4544 357 142
23 216 11 36 70 672 43 252 117 1824 29 114 164 4608 337 480
24 224 27 56 71 688 21 86 118 1856 57 116 165 4672 37 146
25 232 85 58 72 704 155 44 119 1888 45 354 166 4736 71 444
26 240 29 60 73 720 79 120 120 1920 31 120 167 4800 71 120
27 248 33 62 74 736 139 92 121 1952 59 610 168 4864 37 152
28 256 15 32 75 752 23 94 122 1984 185 124 169 4928 39 462
29 264 17 196 76 768 217 48 123 2016 113 420 170 4992 127 234
30 272 33 68 77 784 25 98 124 2048 31 64 171 5096 39 158
31 280 103 210 78 800 17 80 125 2112 17 66 172 5120 39 80
32 288 19 36 79 816 127 102 126 2176 171 136 173 5184 31 96
33 296 19 74 80 832 25 52 127 2240 209 420 174 5248 113 902
34 304 37 76 81 848 239 106 128 2304 253 216 175 5312 41 166
35 312 19 78 82 864 17 48 129 2368 367 444 176 5376 251 336
36 320 21 120 83 880 137 110 130 2432 265 456 177 5440 43 170
37 328 21 82 84 896 215 112 131 2496 181 468 178 5504 21 86
38 336 115 84 85 912 29 114 132 2560 39 80 179 5568 43 174
39 344 193 86 86 928 15 58 133 2624 27 164 180 5632 45 176
40 352 21 44 87 944 147 118 134 2688 127 504 181 5696 45 178
41 360 133 90 88 960 29 60 135 2752 143 172 182 5760 161 120
42 368 81 46 89 976 59 122 136 2816 43 88 183 5824 89 182
43 376 45 94 90 992 65 124 137 2880 29 300 184 5888 323 184
44 384 23 48 91 1008 55 84 138 2944 45 92 185 5962 47 186
45 392 243 98 92 1024 31 64 139 3008 157 188 186 6016 23 94
46 400 151 40 93 1056 17 66 140 3072 47 96 187 6080 47 190
47 408 155 102 94 1088 171 204 141 3136 13 28 188 6144 263 480
34

So 188 possveis tamanhos das sequncias, que variam de 40 a 6144 bits, dependendo de
diversos fatores, como a relao sinal/rudo. Essa definio feita atravs de sistemas de
controle externos ao turbo-code durante a codificao. Esta informao tambm enviada ao
decodificador, de modo que este ento sabe previamente o tamanho da sequncia a ser
decodificada.
O projeto consiste na implementao VLSI do decodificador do sistema LTE, tomando
alguns outros requisitos, como, por exemplo, a frequncia. A frequncia de operao bastante
importante para o sucesso em atingir o desempenho previsto pelo sistema, porm causa um
grande impacto no consumo de potncia, o que para um dispositivo mvel bastante relevante.
Inicialmente foi considerada, baseada nos outros blocos do sistema LTE, que a frequncia
de operao ficaria limitada a aproximadamente 120 MHz. Esta discusso ser melhor
abordada em outra seo.
Para melhorar o desempenho do turbo-code projetado, as otimizaes citadas no primeiro
captulo foram usadas. A implementao do algoritmo Log-MAP obrigatria para a
minimizao do hardware implementado, causando uma perda de desempenho mnima. O
paralelismo tambm foi explorado como forma de reduzir a latncia e aumentar o throughput
do sistema. Isso se d simplesmente pelo fato de que um bloco de dados pode ter seu tempo de
processamento reduzido em at oito vezes, portanto o hardware estaria disponvel para
processamento em um tempo menor, suportando assim taxas de processamento maiores.
Outro bloco que tem seu processamento muito otimizado o interleaver, cuja
implementao se apresenta bastante complicada para o clculo das posies, j que faz o uso
da funo de resto da diviso, que uma operao muito complexa de ser sintetizada, gerando
um hardware pouco eficiente. Este clculo pode ser reduzido bastante se for levado em
considerao que os endereos sero calculados sempre de forma sequencial. Isto leva
reduo da funo de resto de diviso que passa a ser implementada apenas por comparadores e
subtratores interagindo recursivamente, como demonstrado a partir das equaes (42) a (45):

( ( )) (42)
( )

( ( ) ( )) ( ) (43)

(44)
( ) ( () ) ((( ) ) )

( ) ( () ) ((( () ) ) ) (45)
35

Sendo um registrador com o valor agregado do somatrio de 2 , demonstrando assim a


recursividade possvel na implementao do interleaver. Isso s possvel, pois o sistema
sempre se iniciar na posio zero, continuando o processamento sequencialmente. Neste
formato pode-se ver claramente uma reduo grande no hardware a ser implementado, sendo a
funo do resto de diviso por um nmero qualquer constituda apenas por comparaes e
subtraes, j que os valores nunca ultrapassam em trs vezes o valor do quociente da diviso,
limitando os valores a serem calculados os restos de diviso. No h, assim, a necessidade de se
usar a funo completa de resto de diviso diretamente em hardware, apenas comparando com
os trs primeiros mltiplos de K e subtraindo os valores correspondentes.
Portanto, para o codificador, todos os dados so armazenados antes que se comece o
processamento, j que os dados de entrada para o codificador que processa depois do
interleaver podero ser acessados em qualquer ordem. Isto leva necessidade de essas
informaes estarem todas disponveis para que no se tenha que parar o processamento at a
entrada atingir a posio necessria. O decodificador tambm obedece a este requisito.
Esta otimizao do interleaver minimizou o hardware associado, uma vez que sendo
descrito e sintetizado na sua forma original, o interleaver necessitaria da introduo de um
nvel de pipeline, o que elevaria sua latncia, gerando um projeto com aproximadamente 34 mil
portas lgicas equivalentes. Contudo, introduzindo-se a otimizao, atinge-se, para o mesmo
nvel, aproximadamente 1500 portas lgicas equivalentes, sem nvel de pipeline. Isso leva a um
hardware que ocupa menos rea de silcio e realiza a operao mais rapidamente.
Com a funo de interleave implementada em hardware, o projeto do codificador segue o
descrito na especificao e mostrado na Figura 16, sendo necessrio apenas sincronizar as
sadas vlidas com o momento do interleaver.
A arquitetura do decodificador pode ser inicialmente entendida atravs da Figura 17, em
que aparecem dois processadores SISO, um processando os dados de forma regular e o outro
processando os dados que passaram pelo interleaver. A operao iterativa, sendo que cada
SISO alimenta o outro de forma a refinar os resultados obtidos. importante notar tambm que
os dados de realimentao entre os processadores devem passar necessariamente pelo processo
de interleave ou de-interleave.
36

Figura 17: Demonstrao das Etapas de Decodificao

O processador SISO, realizado pelo algoritmo Log-MAP, inicialmente calcula os valores da


probabilidade de transio entre estados. O processamento inclui possveis estados de entrada
do codificador que permitem a sada codificada ser zero ou um.
A relao das entradas com os possveis estados pode ser vista nas Figuras 18 a 20.

Figura 18: Incio da Trelia do Codificador do Padro LTE

Figura 19: Transies Intermedirias da Trelia do Padro LTE


37

Figura 20: Gerao dos Tail Bits

A Figura 18 mostra o incio da operao de codificao, enquanto a Figura 19 descreve a


operao normal da mquina de estados. Uma informao relevante consiste nos valores dos
dados codificados. A Figura 20 trata da terminao da trelia, em que o sistema levado ao
estado em que todos os registradores tm valor zero. Neste caso, os dois sinais de codificao
so mostrados, tanto o sinal de paridade como o de sistemtico.
Partindo destas figuras podem ser inferidos quais so os estados que levam a sada a um
valor especfico. Dessa informao pode-se calcular a probabilidade de transio de estados.
Este clculo feito no domnio logartmico assim sendo simplificado. Uma multiplicao de
quatro variveis resulta em uma soma, e trs possveis inversores de sinal. Tomando-se como
ponto de partida as equaes (14) e (20), chega-se a:
( )
( ( )) ( ( )) (46)
( ( ))

Todos os elementos da soma so processados de acordo com as possibilidades de transio


de cada estado para outro especfico, portanto o clculo feito para cada estado possvel. No
caso do sistema LTE, desesseis valores sero calculados para cada estgio do processamento,
referentes a duas transies possveis para cada estado. importante notar que todos os valores
j so tratados no domnio logartmico e o resultado esperado tambm deve ser representado
neste domnio, o que torna desnecessrio o clculo logartmico. Este processamento j ser
feito no momento da aquisio e demodulao dos sinais recebidos.
A arquitetura que representa os clculos desenvolvidos para obter o valor das
probabilidades de transio de estados pode ser vista na Figura 21.
38

Figura 21: Arquitetura de Hardware do Clculo da Probabilidade de Transio

Na Figura 21, ( ), ( ) e ( ) so, respectivamente, os fatores referentes ao


sistemtico, paridade e o valor a priori. E os dados extrados da LUT (Look-Up Table) so os
valores possveis em cada transio.
O clculo dos fatores de probabilidade e incorre em um hardware semelhante, podendo
ser reusado numa mesma sequncia de clculo pois esses dois elementos no sero calculados
no mesmo momento. Como uma forma de otimizar o tempo de processamento, o clculo de
feito no comeo e armazenado. Posteriormente, o clculo de relizado e o resultado do
processamento apresentado. Este esquema mostrado na Figura 22.

Figura 22: Arquitetura da SISO

Seguindo as equaes (27), (28) e (35) o hardware necessrio para realizar o clculo das
probabilidades de estados representado na Figura 23 (a representao est levando em
considerao , porm, para o clculo do o hardware idntico):
39

Figura 23: Arquitetura de Hardware das Probabilidades de Estados


40

Inicialmente, faz-se a soma da probabilidade de transio com a probabilidade de estados


para os dois possveis caminhos da trelia, para cada estado, e compara-se os resultados para
obter o maior valor. Obtm-se assim, a probabilidade de a trelia se encontrar em um estado
especfico baseado nos sinais recebidos e no estado anterior (ou posterior, no clculo do ). O
mximo entre esses valores representa, inicialmente, o resultado sub-timo obtido pelo
algoritmo max-log-MAP. Aps este estgio, diversos fatores de correo so aplicados para se
obter um melhor desempenho atravs do algoritmo Log-MAP.
O clculo dos fatores de correo so feitos a partir de Look-Up Tables LUTs, que so
tabelas com os valores linearizados dos resultados de uma funo logartmica. Os valores dos
fatores de correo so tomados em relao subtrao dos valores de entrada da funo de
mximos.
O valor final do clculo das funes de probabilidade de estados obedecem funo
otimizada do algoritmo Log-MAP. So calculadas oito funes de probabilidade em cada
estgio de processamento, j que cada estado tem uma probabilidade especfica para cada sinal
de entrada do decodificador.
O clculo da LLR feito atravs da subtrao dos valores da probabilidade de a entrada do
codificador ter sido zero ou um. Portanto, a arquitetura seguida pelo hardware apresentada na
Figura 24.
41

Figura 24: Clculo da LLR

importante ressaltar, pela anlise da Figura 24, que os ndices dos componentes , e
das somas so combinados de forma a obedecer as possveis transies entre os estados. Por
exemplo, o sinal que representa a probabilidade de o sistema estar no estado 1 e acabar no
estado 5 calculado baseando-se nas probabilidades e dos estados 1 e 5, respectivamente, e
da probabilidade de a mquina fazer a transio entre estes estados.
A informao extrnseca pode ento ser calculada, j que parte integrante do clculo da
LLR. Porm, pela facilidade de implementao, os dados extrnsecos so extrados do valor da
LLR obtido. A implementao em hardware representada na Figura 25.

Figura 25: Clculo da Informao Extrnseca


42

Na Figura 25, os dados obtidos pelo processamento da SISO so subtrados da informao


a priori calculada nas iteraes anteriores. Em operao iterativa o resultado da LLR que
representa a tendncia do valor dos dados a serem decodificados, sendo usado na deciso final
(hard-decision). J a informao extrnseca ser realimentada no sistema de forma a reforar ou
anular tendncias da escolha a cada iterao, tornando-se assim a informao a priori para a
prxima etapa de iterao. Esta estrutura da realimentao mostrada na Figura 26.

Figura 26: Arquitetura do Decodificador

Na Figura 26 pode ser observado que o processador SISO reutilizado tanto para a
decodificao, com os dados na sequncia permutada pelo interleaver, como na sequncia
normal. Os dados inicialmente so demodulados (esta etapa realizada fora do bloco do Turbo-
Code), este processo podendo ser feito na forma tradicional. Contudo, o padro LTE prev o
uso de MIMO, permitindo diversidade espacial com o uso de mais de uma antena. Os dados so
ento demultiplexados, separados nos sinais de sistemtico e nos de paridade. Estes dados tm
que ser armazenados em memrias, j que sero utilizados a cada iterao. O processador SISO
ento alimentado pelos sinal de sistemtico, por um de paridade e pela informao extrnseca
gerada na iterao anterior.
Para leitura do sistemtico e da informao extrnseca, de forma a ser compatvel com o
sinal de paridade da sequncia permutada, necessita-se da funo de interleaver. Este bloco
exatamente igual ao usado no codificador. Os resultados gerados pela funo do interleaver
representam os endereos a serem usados durante a leitura dos dados nas memrias. A
informao extrnseca a ser escrita na memria, quando os dados so processados na sequncia
43

com interleaver, deve seguir este mesmo padro, para que, na forma direta, os sinais sejam
coerentes.
Uma otimizao feita neste projeto a sequncia de processamento dos dados. No incio de
cada bloco, so processados os sinais na sequncia permutada do interleaver, j que assim o
throughput pde ser otimizado em parte pelo fato de a ltima etapa de processamento se dar na
sequncia linear, o que permite a escrita de novos dados de entrada na sequncia em que so
lidos e processados os antigos. Desta forma, tambm o tempo de escrita na leitura no um
perodo obrigatrio de inatividade do processador SISO. Outra contribuio desta sequncia de
processamento que a sada dos dados aps todas as iteraes ser realizada e logo enviada,
no precisando desfazer o processo da permutao do interleaver, que haveria caso o
processamento se iniciasse com a sequncia linear.
A sequncia de processamento representada pela mquina de estados ilustrada na Figura
27.

Figura 27: Mquina de Estados da Operao de Decodificao

Na Figura 27, SISO1 representa a etapa de processamento em que os dados advm do


codificador que alimentado diretamente com a sequncia de entrada. J a SISO2 o
processamento com a utilizao dos dados que passam pelo interleaver.
44

No caso do Turbo-Code implementado, alguns sinais de protocolo foram inseridos para


facilitar o controle do sistema. O sink_valid, representado na mquina de estados, um sinal de
entrada que, quando em valor lgico positivo, demonstra ao bloco Turbo-Code que existe uma
nova informao de dados a ser decodificada. Desta forma, o bloco anterior controla a entrada
de dados, sem seguir uma regra rgida.
Em aplicaes normais, o processo de decodificao finalizado quando o sistema atinge
certo nmero de iteraes estabelecidas ou quando o decodificador converge para um valor. No
caso do projeto descrito neste trabalho, apenas a primeira opo foi implementada. Esta escolha
foi feita como uma especificao do projeto, para facilitar a concluso. Porm, um benefcio
tambm obtido o de ter latncias fixas para cada tamanho de bloco possvel, tornando assim o
controle mais simples.
A mquina de estados tambm evidencia duas etapas do processamento da SISO, chamadas
de IN e OUT. Estas receberam estas denominaes pois o processamento feito inicialmente
apenas lendo os valores de entrada e calculando o valor de . J na segunda etapa, os valores
so novamente lidos, porm as sadas j tm dados vlidos.
importante notar tambm que o clculo da probabilidade de transio de cada estado
feito nas duas etapas de processamento, j que esta informao usada para o clculo das
componentes diretas e inversas de probabilidade de estados. mais simples e eficaz refazer
esta operao a guard-la para posteriormente utiliz-la.
Apesar das otimizaes feitas, esta arquitetura ainda apresenta um throughput baixo se
comparado com o especificado pelo padro LTE. Uma forma de atingir este objetivo a
replicao do hardware completo, que traria um aumento significativo em rea. O prprio
padro foi idealizado, atravs do projeto do interleaver, para atender a uma paralelizao do
processamento. Esta arquitetura paralela permite quebrar as sequncias de decodificao para
que, assim, sejam processados blocos menores de dados, o que faz o fluxo ser maior. Neste
caso, o aumento de hardware ser apenas na parte do processamento, no impactando nas
memrias, que se mostrou como o bloco que ocupa a maior rea.
O interleaver tem papel fundamental para permitir a paralelizao do hardware e da
otimizao para atingir o throughput necessrio. O interleaver apresentado apenas como uma
funo mostrada na equao (41), com os valores de referncia da Tabela 1. A otimizao para
realizar a operao de forma sequencial e reduzir o clculo do resto de diviso por subtrao e
comparao foi mostrada na equao (45). Contudo, para demonstrar a possibilidade do uso da
arquitetura em paralelo, algumas outras manipulaes so necessrias.
45

Inicialmente, importante ressaltar que nem todos os blocos tiraro proveito do


paralelismo. Este fato est ligado a uma queda de desempenho significativa ao se dividir a
operao em sequncias pequenas. Isso se d, pois, quando esta otimizao usada, os estados
iniciais das variveis de probabilidade de estados no so conhecidos, o que no caso de
sequncias mais longas compensado pela melhor preciso dos dados realimentados e da outra
varivel de estado. Portanto, o particionamento foi feito em escalas diferentes, baseadas no
tamanho das sequncias. Os blocos podem no ter diviso do processamento, assim como
podem ser particionados em duas, quatro ou oito sequncias de dados. O limite de 8 sequncias
foi tomado com base em uma anlise de desempenho e na dificuldade da implementao do
interleaver.
Para um particionamento da sequncia em dois blocos de tamanho menor, levado em
considerao que a constante de inicializao da equao (45) sempre um valor mpar, que
e so sempre pares e que o clculo do endereo sempre submetido operao de resto de
diviso. Portanto, o endereo de permutao de uma posio com a correspondente na outra
metade da sequncia dado pela equao 47.

( ) (47)
( )

Pela operao de resto de diviso, todos os elementos mltiplos de um valor inteiro de K


podem ser eliminados, levando simplificao:

( ) (48)
( )

(49)
( )
( () )

Esta relao demonstra que quando se divide a sequncia em dois blocos, pode-se garantir
que cada processamento se dar em memrias separadas, ou seja, os dados a serem processados
em um modo com o interleaver sero obtidos cada um em uma metade dos dados. A mesma
demonstrao pode ser feita para o caso em que se divide a sequncia em quatro e oito blocos,
como pode ser visto nas equaes (50).

( ) (50)
( )

(51)
( )
( )
46

Como os tamanhos dos blocos que faro a paralelizao com quatro processadores so

sempre mltiplos de 16 e mpar, o que gera a relao . / ( ), o clculo se

reduz a:

( ( )) (52)
( )

(53)
( )
( ( ))

Levando em conta a relao entre as sequncias acessadas, as equaes (52) e (53) podem
ser reescritas na forma:

( ( )) (54)
( ) ()

(55)
( )
( () ( ))

Para oito processadores, mltiplo de 64, o que conduz a:


( ) (56)
( )
( )

(57)
( ( ) ( )( )))
( )

Com as equaes anteriores fica demonstrada a possibilidade da implementao de uma


arquitetura paralela, como a ilustrada na Figura 28 para o caso de quatro processadores SISO:

(a) (b)

Figura 28: Alimentao dos Dados em uma Arquitetura com 4 SISOs


47

As linhas contnuas representam uma ligao permanente, j que os bits de paridade so


sempre lidos de forma sequencial, mesmo quando estes so gerados com os dados recebidos na
forma permutada. O mesmo no ocorre com os sinais de sistemtico e da informao
extrnseca, que devem ser lidos de qualquer memria. Nesta relao, os processadores SISO
no acessam a mesma memria ao mesmo tempo. Esta relao mostrada na Figura 28b.
A paralelizao do processamento das sequncias de decodificao foi definida conforme a
Tabela 2.

Tabela 2: Relao entre o Tamanho do Bloco de Dados e a Quantidade de Processadores Utilizados na


Decodificao

1
2
3
4
O processamento em paralelo gera um grande problema relacionado com o
desconhecimento das condies iniciais, pois o turbo-code tem como pressuposto que a
mquina de estados se inicie e termine no estado em que todos os registradores se encontram no
valor lgico zero. Portanto, os valores da probabilidade de estado no so muito confiveis nos
pontos de corte da janela a ser processada. A soluo adotada foi estender o clculo da
informao extrnseca de forma a prover uma melhor realimentao. A soluo mostrada na
Figura 29.

Figura29: Separao dos Blocos a serem Processados

2.3. IMPLEMENTAO

Todos os processos para a realizao do fluxo completo de desenvolvimento do projeto


digital foram realizados dentro do ambiente de EDA da Cadence Design Systems, desde a
simulao at a gerao do leiaute final. Exceo feita modelagem do sistema, que no caso
especfico de comunicao digital se optou por utilizar o Matlab por motivos explicados
posteriormente.
48

Aps a especificao do projeto, as definies das arquiteturas mostradas na seo anterior


foram realizadas em conjunto com a modelagem do sistema. Isto se deu para que houvesse a
possibilidade de testar as novas definies e estimar o desempenho atingido. O objetivo
realizar um balanceamento entre a otimizao do hardware e a queda do rendimento dos
algoritmos, sendo este balanceamento fundamental para chegar a uma soluo otimizada.
O modelo do sistema foi inicialmente realizado em Matlab devido s facilidades de clculos
matriciais e de estruturas de processamento de sinais. Outra informao importante para a
utilizao desta ferramenta e sua linguagem a da compatibilidade, j que o modelo de toda a
camada fsica do LTE foi descrito usando a mesma linguagem. Porm, ao partir para um
modelo mais prximo ao que seria sintetizado para hardware, o sistema se tornou muito lento,
com as simulaes tomando muito tempo de processamento. A alternativa encontrada foi de
modelar os clculos crticos em uma linguagem que permite um maior controle e que tenha
uma interface mais direta com o processador, acelerando assim o tempo de processamento. A
linguagem escolhida para este trabalho especfico foi a linguagem C, j que de fcil acesso e
de conhecimento usual, alm de poder ser facilmente integrada ferramenta Matlab.
Com a modelagem, tambm pode ser feita uma anlise detalhada do desempenho atingido
pelo sistema. Para isso, um ambiente de simulao foi criado, com a gerao de dados, um
codificador, um modulador, um modelo do canal, um demodulador e finalmente o
decodificador. A sada do decodificador deve ser igual entrada gerada e o desempenho
medido pela quantidade de erros nesta comparao. O ambiente de simulao mostrado na
Figura 30.

Figura 30: Representao do Ambiente de Simulao do Sistema

Os dados de estmulo so gerados aleatoriamente e reservados para uma futura comparao.


Estes sinais passam pelo codificador que insere a redundncia necessria. O modulador neste
sistema apenas mapeia alguns bits para um smbolo, que posteriormente tem seu sinal
adicionado de um rudo gaussiano. As informaes tomam um formato floating-point, podendo
tomar qualquer valor, como um sinal analgico. Os dados inicialmente digitais, com valores
discretizados, passam para um formato contnuo. Para gerar a interferncia inerente ao canal de
49

comunicao, so criados valores aleatrios representando um rudo branco. Esta forma de


modelar o canal compatvel com a maior parte das situaes possveis. Um rudo branco
representado como uma funo estatstica gaussiana de mdia zero. J a amplitude da
interferncia do canal controlada pela simulao de forma a estimular o sistema em diversas
condies.
O demodulador faz uma primeira estimativa dos valores recebidos. Finalmente, os dados
so inseridos no decodificador, que, por sua vez, realiza a decodificao dos dados. Uma das
medidas de desempenho consiste na porcentagem dos bits decodificados erroneamente, quando
comparados com a sequncia original. Outro parmetro interessante e bastante usado o erro
de frame (Frame Error Rate FER ou Block Error Rate BLER), em que apenas um bit
errado implica que todos os dados esto comprometidos.
O tipo de modulao prevista pela especificao, podendo ser BPSK (Binary Phase Shift
Keying), QPSK (Quadrature Phase Shift Keying), 16QAM (Quadrature Amplitude
Modulation) e 64QAM. Os diferentes esquemas de modulao permitem enviar mais bits em
um mesmo canal de comunicao. O aumento da quantidade de informao enviada reduz a
robustez do sistema, j que o demodulador tem menos margem para a deteco do smbolo,
sendo portanto mais suscetvel ao rudo. O diagrama de constelaes de cada um dos esquemas
de modulao evidencia esta relao, como ilustrado na Figura 31.

Figura 31: Diagrama de Constelao dos Esquemas de Modulao

No ambiente de simulao, esta operao se baseia apenas no mapeamento dos bits de sada
do codificador para os smbolos referentes ao esquema de modulao pretendido. Para a
aferio do desempenho atingido, dois componentes so testados: o esquema de modulao e o
rudo inserido. O desempenho medido com base nessas duas variveis. Quanto mais distantes
os smbolos so representados, mais imunes ao rudo, e portanto, melhor o desempenho do
decodificador.
Uma anlise importante se refere resposta para cada modulao em relao ao nvel de
rudo inserido, ou seja, a imunidade ao rudo propiciada por cada esquema de modulao. Para
50

isso, o grfico da Figura 32 mostra a resposta de cada esquema de modulao ao rudo, tendo
sido fixado o nmero de iteraes e o tamanho do bloco:

Figura 32: Resultado do FER (ou BLER) vs SNR

Pode-se notar claramente a diferena entre os esquemas de modulao, tornando a escolha


da modulao dependente da quantidade de rudo mensurado para o canal de comunicao.
O sinal ento demodulado em um esquema de clculo da maior probabilidade, entregando
um valor ponderado (soft-bits). Esta operao tenta reproduzir de forma simplificada o
funcionamento do decodificador MIMO, sem as melhorias geradas pelo uso de mltiplas
antenas. Estes valores que so tomados como entrada para o decodificador sendo calculados
apenas para a simulao do sistema, no representando o bloco que realmente ser integrado ao
decodificador.
O bloco responsvel pela deteco dos valores recebidos tambm chamado de LLR j que
faz uma estimativa, entregando uma probabilidade logartmica. Para isso, este bloco recebe os
valores complexos do sinal e gera os novos sinais de probabilidade logartmica.
O bloco do interleaver foi realizado de forma a utilizar as otimizaes previstas para o
clculo sequencial dos valores como mostrado pelas equaes (42) a (45). Assim, o hardware
fica na forma mostrada abaixo:
51

Figura 33: Arquitetura do Interleaver


52

Neste caso, o interleaver ir calcular os valores de posio dos dados em uma sequncia
crescente (quando usada para o processamento da probabilidade de estados direta), assim como
na sequncia decrescente (para o clculo de ). Estas funes devem ser realizadas pelo mesmo
hardware devido inicializao no caso de se fazer na ordem decrescente. Porm, como
descrito anteriormente, o processamento se iniciar pela probabilidade , o que leva operao
do interleaver a comear um ciclo antes, de forma a completar o clculo at o fim, para deixar
o sistema no estado adequado.
A operao do interleaver feita em duas etapas. Na primeira, o acmulo da constante
representando a componente ((( () ) ) ) da equao (45). Este
registrador inicializado com o valor de para representar estes componentes na equao
(45), j que este valor deve ser adicionado em todos os ciclos de clculo.
A segunda etapa de processamento, representada na Figura 33, realiza a parte incremental
do valor do acumulador com o endereo anterior calculado pelo interleaver. Alguns
comparadores e subtratores (soma para a operao decrescente) so usados para a operao de
mdulo.
Como citado anteriormente, alguns sinais foram inseridos para facilitar a tarefa de controle
da camada fsica do LTE, bem como tornar o ambiente do IP mais controlvel. Desta forma, o
decodificador tem suas entradas e sadas como ilustrado na Figura 34.
53

Figura 34: Representao das Interfaces do Bloco do Decodificador

A Figura 34 apresenta todos os sinais de entrada e sada do turbo-decoder. Alguns sinais


genricos, como a entrada do relgio e o reset do sistema, so apresentados no topo. Os sinais
de hadshaking so os controles para a comunicao entre blocos. O sinal sink_sop (sink start of
operation) representa o momento de incio do recebimento de dados. Este sinal vai tomar o
valor lgico 1 apenas no comeo da operao de cada bloco de processamento. J o sink_valid
fica em estado alto por todo o perodo em que valores de entradas vlidos so apresentados nas
entradas de dados. O sink_ready um sinal que permite um bloco parar o processamento do
bloco anterior, de forma a no permitir que nenhum novo dado seja recebido. No caso do turbo-
code, devido grande latncia inerente operao, sempre que o processador esteja ocupado, o
bloco no poder receber dados novos. Operaes inversas e anlogas so realizadas pelos
sinais source_sop, source_valid e source_ready.
Os sinais de parmetros so definies passadas para cada bloco de processamento, sendo
fixas por toda a operao. O tamanho do bloco uma das informaes importantes que deve
preceder os dados. Esta informao deve ser passada para os mdulos posteriores da camada
fsica. Como a entrada pode mudar entre um bloco e outro, para manter a coerncia o tamanho
do bloco que foi processado deve ser informado. O nmero de iteraes tambm um
parmetro necessrio e definido internamente ao sistema LTE, porm fora do decodificador.
54

Finalmente, so apresentadas as interfaces de dados de processamento. As trs entradas so


o sistemtico e as duas de paridade, todas na forma ponderada. As sadas de dados podem ser
at oito, cada uma com a sada de cada processador.
Todo o decodificador foi descrito atravs da linguagem Verilog, assim como alguns outros
blocos fora do turbo-code, para facilitar a integrao e o processamento.
A etapa de verificao funcional de extrema importncia para garantir o correto
funcionamento do turbo-decoder. Para esta tarefa foram usadas duas abordagens, em
momentos e com finalidades diferentes.
Inicialmente foi utilizado um ambiente de verificao semelhante ao descrito para o modelo
em Matlab. Para a realizao desta tarefa, alguns conceitos bsicos das novas metodologias de
verificao foram usados, como programao orientada a objetos. O ambiente foi montado
usando a linguagem SystemVerilog, que representa uma extenso do Verilog com diversas
estruturas que permitem uma programao orientada a objetos. Os resultados so baseados nos
parmetros de BER e FER, tendo que se aproximar aos encontrados na simulao do modelo
Matlab. A estrutura montada mostrada na Figura 35.

Figura 35: Ambiente de Verificao SystemVerilog

Na Figura 35 representada uma arquitetura mista em que os elementos de programao


orientada a objetos se integram a blocos descritivos que modelam alguns processos que
ocorrem nos sistemas de comunicao, porm sem usar um modelo de referncias devido ao
longo tempo de simulao. Os dados de verificao so gerados no bloco Driver no formato de
um pacote de dados (PKT data_item). Os dados gerados so controlados atravs de variveis
de aleatoriedade, que determinam parmetros para a gerao dos dados. O pacote de dados
inclui o tamanho do bloco a ser codificado/decodificado, o nmero de iteraes, o tipo de
55

modulao escolhida e os bits de informao. Os dados, ento, so enviados ao codificador


atravs de um modelo funcional do barramento (BFM Bus Functional Model), que gera sinais
de controle e sinalizao, bem como a temporizao da operao. O codificador , juntamente
ao decodificador, um dispositivo sob teste (DUT Device Under Test), j que estes so os
blocos que realmente se deseja verificar. O BFM tambm desempenha a funo de receber os
dados decodificados e empacot-los, para finalmente serem comparados com a entrada. O
bloco do Checker responsvel por esta anlise de desempenho, computando quantos bits
errados ainda restaram aps a decodificao.
Os blocos no englobados no Agent so estruturas que simulam o comportamento do
sistema de comunicao desde a codificao at a decodificao. Os dados codificados so
modulados, passam por um bloco que simula um canal sofrendo rudo branco e os dados so
demodulados. Algumas FIFOs (First In First Out) foram utilizadas para controlar o fluxo de
dados. Esta estrutura bastante similar apresentada para a simulao do modelo Matlab.
Uma segunda abordagem usada na verificao do turbo-code foi a de utilizar os dados da
simulao do modelo e comparar com o comportamento do sistema projetado. O modelo
Matlab criado foi modificado para que todas as variveis atendessem a um limite de bits.
Assim, todos os valores devem ser exatamente iguais no modelo Matlab e no RTL. Este
processo , apesar de trabalhoso e custoso, bastante interessante para manter a coerncia entre
os dois modelos. Desta forma, todas as anlises de desempenho podem ser feitas em um estgio
inicial apenas com os blocos descritos em Matlab. Esta metodologia de verificao
denominada de bitmatch devido ao fato de os resultados serem exatamente iguais (bit a bit). A
Figura 36 demonstra o modelo em Matlab integrado ao ambiente. importante lembrar que a
gerao feita anteriormente simulao RTL.
56

Figura 36: Ambiente de Simulao Bitmatching

Nesta arquitetura, os sinais so gerados e processados no Matlab e as entradas e resultados


so guardados em arquivos de referncia. Estes valores alimentam os modelos RTL e tm os
valores finais comparados aos obtidos com o Matlab. Neste caso, apenas o decoder
verificado. Outro ambiente especfico para o codificador tambm foi realizado.
Com o projeto devidamente verificado, a descrio RTL finalmente processada para
realizar a sntese.
A implementao fsica do projeto foi realizada na tecnologia de 65 nanmetros da
fabricante (foundry) TSMC. No caso das bibliotecas das memrias, estas, foram geradas a
partir de um sintetizador provido pela empresa fornecedora de IPs, ARM, em parceria com o
fabricante. O processo de sntese foi feito de forma a atingir os requisitos necessrios. Por ser
um bloco interno camada fsica, os requisitos de tempo no so crticos nas portas de entrada
e sada, porm a frequncia de 120 MHz crtica, j que algumas etapas de processamento
intenso so de difcil realizao no perodo especificado. Este valor de frequncia ser discutido
com maior profundidade posteriormente. Alguns blocos de soma de valores representados com
muitos bits precisaram ser alterados para atingir o requisito de tempo.
Um processo iterativo teve que ser realizado para minimizar o nmero de bits das variveis
nos caminhos crticos. Este procedimento foi realizado durante a modelagem e aprimorado
conforme a projeto foi sendo desenvolvido. No ambiente de simulao do modelo, a preciso
na representao das variveis foi alterada e ajustada, de forma a se obter a menor rea de
silcio estimada, e ainda atender aos requisitos de desempenho previamente estabelecidos.
Uma etapa crtica o planejamento do posicionamento das memrias. Como a arquitetura
proposta incorre na utilizao de uma grande quantidade de memria integrada, o floorplan
57

de extrema importncia para que estas estruturas sejam corretamente posicionadas. As


memrias ocupam a maior parte da rea dedicada ao decodificador, especificamente 82%. Esta
etapa de floorplanning e a ocupao do espao pelas memrias podem ser vistas na Figura 37.

Figura 37: Floorplanning

Os espaos entre as memrias so definidas pela prpria fabricante, e os espaos restantes


so as localidades onde toda a lgica envolvida ser implementada, ficando o leiaute final
como ilustrado na Figura 38.

Figura 38: Leiaute do decodificador

Como pode ser percebido, as memrias representaram um grande problema na


implementao do projeto de um decodificador. Esta afirmao ratificada por [14]:
A situao dos turbo codes complicada de avaliar, j que a maior parte da
complexidade do decodificador reside nos requisitos de armazenamento dos grandes
blocos que necessitam de gerenciamento e processamento das memrias. As unidades
computacionais ocupam menos de 10% da rea do VLSI. Porm, processar grandes
blocos uma necessidade requerida pela complexidade do processador.

A Figura 37 mostra as memrias usadas para as entradas dos processadores SISO e as


memrias internas a este bloco. Estas memrias so imprescindveis para o correto
funcionamento do sistema, j que as operaes so feitas iterativamente e em etapas, os
resultados parciais tendo que ser armazenados para futuro uso. Outra necessidade a de
58

armazenar os dados de entrada do sistema, j que estes so usados diversas vezes. Todas essas
memrias foram includas no leiaute final, sendo consideradas como parte do sistema do
decodificador.
Das memrias mostradas nas Figuras 37 e 38, as necessrias para armazenar os dados de
entrada do decodificador so 8 memrias de 768 posies, totalizando 6144 posies para as
informaes de sistemtico e de paridades. As informaes armazenadas nas memrias so
representadas por 9 bits, representao esta determinada por um estudo detalhado do
comprometimento do desempenho. Com o uso em conjunto com outros blocos, especialmente o
MIMO, esta representao pode mudar. Na configurao atual, o sistema requer 24 memrias
(8 para sistemtico, paridade1 e paridade2) de 768 posies e 9 bits para armazenar os dados de
entrada. J no caso da informao extrnseca, so necessrios os mesmos 9 bits para represent-
la, j que esta deve ser coerente com as outras entradas da SISO.
Os processadores SISO, como visto na Figura 22, devem armazenar o resultado do clculo
da probabilidade reversa de estados ( ). A preciso desta varivel tambm foi bastante
estudada, j que causa um impacto grande na implementao. Este dado tambm registrado
em 8 memrias de 768 posies, porm cada palavra ocupa 12 bits. Esta quantidade e o
tamanho das memrias afetaram significativamente os resultados referentes rea obtida por
este projeto.
Ao todo, a rea de silcio ocupada ficou , sendo a maior parte referente s
memrias.
O consumo de potncia considerado neste projeto como um requisito bsico. Isto se d
pela flexibilidade pretendida, de forma que este bloco possa ser usado no projeto de um
dispositivo mvel, o que sugere uma economia de bateria como sendo fundamental para o
sucesso do produto. Foi feito apenas um estudo do pior caso de consumo, no levando em
considerao as otimizaes possveis na implementao.
Apenas a otimizao do clock-gating foi usada durante a implementao fsica do projeto.
Esta tcnica consiste em desligar o sinal de relgio nos flip-flops onde o sinal de enable est
presente e leva o registrador a manter o estado antigo. No caso de o sinal de enable indicar que
o valor deve ser repetido, o sinal de relgio permanece estvel. O registrador dissipa energia
quando o relgio est ativo, mesmo com as entradas estveis. Portanto, esta tcnica reduz o
consumo na rvore de clock e o consumo inerente ao flip-flop, porm s atinge o consumo
dinmico, no reduzindo o leakage presente em tecnologias com menores dimenses.
Com as geometrias dos processos encolhendo abaixo de 90 nm, a corrente de fuga
(leakage) do dispositivo cresce drasticamente [27]. Com isso, diversas otimizaes podem ser
59

realizadas, como multi-Vt (clulas com dopagem diferente, o que diminui o leakage, sendo
contudo bem mais lentas). Outra otimizao a de Power-Shutoff, que consiste em desligar a
alimentao de partes do sistema que no esto sendo usadas momentaneamente - isto leva a
uma economia tanto de potncia dinmica como esttica. Esta tcnica poderia ser usada no
projeto desenvolvido, pois, nos casos em que o sistema no operasse com as 8 SISOs atuando,
as inativas poderiam ser desligadas. Estas tcnicas no foram usadas devido ao grande desafio
imposto, especialmente de verificao, e a no necessidade de se ter todas as possibilidades no
estgio de desenvolvimento, mas, o pior caso de consumo. Neste caso, a potncia estimada
atravs da anlise esttica 296,2 mW.
Apesar do crescimento da potncia esttica, a dinmica ainda dominante. Uma forma de
diminuir o consumo dinmico simplesmente promover a diminuio da frequncia do
sistema, j que existe uma relao de proporo direta entre eles. Assim a frequncia de todo o
projeto da camada fsica foi limitada a 120 MHz. Esta escolha no aleatria, mas ditada pela
facilidade em se conseguir essa frequncia na implementao de PLLs.
A reduo da frequncia tanto diminui o consumo diretamente, como indiretamente
contribui para a utilizao de circuitos mais lentos, que consomem menos, j que com um
requisito de tempo menor, as ferramentas podem otimizar o hardware para haver uma
economia de energia.
60

3. DISCUSSO DOS RESULTADOS

Para um estudo apurado da eficcia do IP desenvolvido, diversos aspectos devem ser


considerados, principalmente os que se relacionam ao desempenho na correo de erros, rea
de silcio ocupada, ao consumo de potncia, frequncia usada e tecnologia utilizada. O grau
de paralelismo e o nmero de iteraes permitidas tambm devem ser considerados quando se
realiza uma comparao entre as solues encontradas.
A escassez de trabalhos realizados especificamente para o padro LTE e as diversas
definies de projeto tambm dificultam um estudo comparativo detalhado. A utilizao do
padro LTE permite o uso de certas tcnicas de paralelismo inexistentes em outros projetos.
Alguns resultados de desempenho foram mostrados anteriormente, e ao se fazer uma anlise
comparativa deve-se aprofundar este estudo. O desempenho quanto correo de erros foi
definido como um requisito inicial do projeto. A apurao da capacidade de correo de erros
s pode ser feita a partir de simulaes, para o qu usado o modelo em Matlab. Diversos
fatores influenciam a simulao, sendo o desempenho sempre estimado com relao a estes
parmetros.
A capacidade de correo de erros medida atravs de simulaes variando os seguintes
fatores:
- Tamanho do bloco de dados a ser decodificado
- Modulao empregada
- Relao sinal/rudo
- Nmero de iteraes
- Quantidade de bits que representa cada varivel
Com exceo do ltimo parmetro, os outros podem ser facilmente alterados para se ter
uma anlise de desempenho do projeto como em [30]. A seguir, so apresentadas algumas
anlises:
I) A Figura 39 mostra os resultados das simulaes usando os parmetros definidos na
Tabela 3. Como pode ser notado, desempenho do decodificador varia dependendo
do tamanho, em bits, do bloco a ser decodificado.
No caso deste trabalho, uma particularidade com relao ao paralelismo empregado
deve ser notada, j que o sistema tem uma relao fixa entre o tamanho do bloco e o
nvel de paralelismo usado, no podendo dissociar estes elementos.
Pode-se notar que quanto maior o tamanho do bloco de processamento maior sua
eficcia em corrigir erros, devido maior distncia livre. Ou seja, o codificador
61

mais robusto. Porm, quando existem transies entre os nveis de paralelismo, esta
relao no seguida, j que a quebra da cadeia de decodificao causa uma
operao sobre blocos menores e mais incertezas, devido falta de continuidade na
trelia.

Tabela 3: Parmetros para a Simulao Variando o Tamanho do Bloco de Processamento

Parmetro de Simulao Valor


Tamanho do bloco de processamento 576, 672 e 768
(bits)
Esquema de Modulao QPSK
Nmero de Iteraes 5

Figura 39: Desempenho do Sistema Comparando por Tamanho de Blocos

II) A Tabela 4 exibe as especificaes da simulao e a Figura 32 mostra os resultados


obtidos do desempenho em funo da capacidade de correo de erros para cada
tipo de modulao possvel.
62

A modulao escolhida baseada no rudo estimado. A decodificao no ser


diretamente influenciada pelo esquema de modulao, mas a estimativa inicial dos
valores recebidos atravs do canal ser menos acurada para modulaes mais
complexas.
Esquemas de modulao diferentes iro atuar em faixas de rudo. O BPSK o mais
imune a rudos, sendo, portanto utilizado quando o sinal est com a qualidade muito
ruim. Porm, a capacidade de envio de altas taxas de fluxo de informao limitada.
Por outro lado, o esquema 64QAM possibilita um fluxo intenso de envio de dados,
porm muito sensvel a rudos.

Tabela 4: Parmetros para a Simulao Variando o Esquema de Modulao

Parmetro de Simulao Valor


Tamanho do bloco de processamento 40
Esquema de Modulao BPSK, QPSK, 16QAM, 64QAM
Nmero de Iteraes 6

III) Na Tabela 5 so exibidos os parmetros de simulao e os resultados para uma


variao do nmero de iteraes so mostrados na Figura 40. O nmero de iteraes
um importante parmetro a ser observado j que afeta dois dos principais
requisitos do sistema, que so: a capacidade de correo de erros e o throughput.
Quanto mais iteraes, mais refinado ser o resultado, diminuindo ento os
resultados errados, a melhora, contudo, no sendo linear. Porm, quanto mais
iteraes, maior a demora no processamento de um bloco de dados, o que leva
consequentemente a uma queda no throughput.

Tabela 5: Parmetros para a Simulao Variando o Nmero de Iteraes

Parmetro de Simulao Valor


Tamanho do bloco de processamento 768
Esquema de Modulao QPSK
Nmero de Iteraes 5, 6, 7, 8
63

Figura 40: Desempenho do Sistema Comparando os Resultados com Diferentes Valores de Iterao

Os resultados esperados e descritos em [30] podem ser comprovados atravs dos grficos
mostrados nas Figuras 32, 39 e 40. Estas anlises so importantes para estabelecer um
parmetro de comparao. Outros trabalhos encontrados na literatura tm resultados diversos e
muitas vezes negligenciam a apresentao destes dados, o que dificulta a tarefa de comparao.
A prxima seo tem como objetivo a comparao entre os resultados encontrados neste
trabalho com outros existentes na literatura.

3.1. ESTUDO COMPARATIVO

A validao do projeto realizado deve ser feita comparando-se a soluo encontrada com
outros trabalhos encontrados na literatura. Porm, devem-se levar em considerao os objetivos
estabelecidos para cada projeto.
Como discutido anteriormente, existem muitos fatores que influenciam a implementao do
decodificador turbo-code, tornando assim a comparao mais complexa. Devido escassez de
trabalhos voltados diretamente arquitetura LTE, muitos autores acabam por fazer
comparaes entre decodificadores de padres diferentes. Outra dificuldade ocorre devido
64

diferena de tecnologia empregada na implementao fsica do projeto. Como dito


anteriormente, o desempenho com relao capacidade de correo de erros tambm acaba
tornando este estudo mais complexo.
As principais variveis diretas abordadas na comparao e que influenciam na mesma so:
a rea de silcio ocupada, o throughput e o consumo de potncia. Estes parmetros so
diretamente relacionados com definies iniciais do projeto, como, por exemplo, a frequncia
de operao, a tecnologia usada, nvel de paralelismo, desempenho com relao correo de
erros. Este desempenho, por sua vez, influenciado pela quantidade de iteraes usadas e pela
preciso das variveis (quantidade de bits).
Os trabalhos mais relevantes, bem como seus resultados so mostrados na Tabela 6.

Tabela 6: Tabela Comparativa entre o Decodificador Proposto e Congneres

Referncia [31] [32] [33] [34] [35] [36] Proposto


Max-Log Max-Log Max-Log
Algoritmo MAP LogMAP - LogMAP LogMAP
MAP MAP MAP
Nveis de
64 4/8 8 1/2/4/8 32 8 1/2/4/8
Paralelismo
Iteraes 6 5,5 8 8 6 8 8
Frequncia (MHz) 400 302 300 275 200 250 120
Throughput (bit/s) 1,28 G 100 M 150 M 129 M 711 M 100 M 75 M
Tecnologia (nm) 65 130 65 90 65 130 65
rea (mm) 8,3 3,57 2,1 2,1 - 10,7 6,7
Consumo de
845 69 300 219 - - 296,2
Potncia (mW)
Estas arquiteturas usam uma melhoria do algoritmo Max-Log MAP tradicional com o esquema de fator de escala
extrnseco (extrinsic scaling factor ESF)

Algumas anlises podem ser extradas dos dados mostrados na Tabela 6. importante
ressaltar que estes resultados no so mostrados com relao capacidade de correo de erros.
Os trabalhos mostram uma diversidade de algoritmos empregados, dividindo-se entre a
opo LogMAP, Max-Log MAP e o Max-Log MAP modificado pela tcnica de fator de escala
extrnseco. O algoritmo modificado reduz o fator de correo, em cada estgio de
processamento, por uma escala no valor da informao extrnseca, incorrendo em uma perda
baixa de desempenho. A grande vantagem seria a reduo da operao da incluso do fator de
correo. Como as operaes no foram uma parte crtica do projeto, esta otimizao no se faz
necessria, sendo adotada apenas por alguns autores e no sendo uma soluo universal.
65

O nvel de paralelismo, como discutido anteriormente, afeta diretamente a latncia e,


consequentemente, o throughput do sistema, j que divide operaes longas em vrias menores.
Neste caso, deve ser levada em considerao a perda de desempenho ocasionada pelo
processamento sobre blocos menores. Para blocos maiores esta perda menos sentida, j que
estas configuraes j tm uma melhor resposta na reduo de erros. Assim, apenas trabalhos
que visam taxas de throughput muito altas usam mais nveis de paralelismo. Tais requisitos s
se fazem necessrios em projetos voltados para estaes rdio-base, que no o caso do
trabalho discutido neste texto.
O nmero de iteraes est diretamente ligado ao requisito da capacidade de correo de
dados e ao throughput. Quanto mais iteraes o sistema permitir, maior a capacidade de
correo de erros. Contudo, h um momento em que o ganho associado no representa uma
vantagem se comparado com a latncia inserida. Um estudo deve ser feito para atingir os
requisitos de correo de erros, sem violar o throughput especificado.
A frequncia de operao do turbo-code uma varivel bastante importante, uma vez que
afeta muitos dos requisitos do sistema. A relao mais bvia com o throughput, j que um
aumento na frequncia ocasiona um processamento mais rpido sobre um mesmo bloco de
dados. Com isso, ocorre um maior consumo de potncia associado, pois estas variveis tem
relao direta entre si.
Um aumento na frequncia tambm tem um impacto na rea ocupada pelo projeto devido s
clulas utilizadas para realizar uma mesma operao lgica. Existem clulas padro de uma
biblioteca que podem realizar uma mesma funo, porm com caractersticas fsicas diferentes.
Clulas menores so mais lentas e consomem menos energia. Assim, ao se operar em
frequncias muito elevadas, a sntese requer clulas mais rpidas, portanto maiores e menos
eficientes no consumo.
Como descrito anteriormente, este trabalho foi especificado para fazer parte de um projeto
da camada fsica do padro LTE, portanto a frequncia tem que ser compatvel com o proposto
para o projeto completo. A frequncia poderia ser alterada para melhorar o throughput, j que
esta relao praticamente linear. Para o dobro da frequncia, o throughput cresceria na mesma
proporo. Devido relao com outros blocos, foi adotado o relgio com uma frequncia de
120 MHz. Portanto, efetuando um escalamento de frequncias, pode-se verificar que o
throughput atingido neste trabalho da mesma ordem do throughput de trabalhos similares.
A rea de silcio ocupada por um projeto um parmetro importante na anlise do IP do
turbo-code. Isso se d pelos problemas causados por circuitos integrados muito grandes. E,
66

considerando-se que o turbo-code apenas um dos blocos constituintes da camada fsica do


LTE, o tamanho do IP bastante importante para uma soluo tima.
Circuitos integrados muito grandes sofrem com diversos problemas, como o
encapsulamento, a alimentao e principalmente a porcentagem de chips perfeitos (no que se
refere a defeitos de manufatura. Esses fatores influenciam no grau de dificuldade do projeto da
placa bem como no preo unitrio do circuito integrado.
A rea deste projeto de decodificador turbo-code est diretamente relacionada com o
desempenho na correo de erros, pois a rea das memrias representa mais de 80% de todo o
IP. Estas memrias devem representar os dados de entrada, a informao extrnseca e uma das
probabilidades de estados. A preciso destas variveis ir afetar tanto a rea da memria quanto
o desempenho.
Este trabalho teve como objetivo original atingir um desempenho na correo de erros
superior aos trabalhos existentes na literatura, a rea acabou sendo maior que a esperada
inicialmente. Porm, fazendo-se uma comparao com [32], percebe-se o uso de variveis com
uma preciso muito inferior, o que resultar em uma queda de desempenho. Contudo, esta
anlise no simples, pois no so explicitados todos os parmetros de simulao. O mesmo
ocorre para [33]. Por outro lado, [34] no revela dados suficientes para a comparao das
variveis internas ao projeto.
67

4. CONCLUSO

O trabalho mostrou uma arquitetura proposta para o sistema turbo-code aplicada ao padro
LTE. Foi realizada uma descrio do padro, porm limitando-se ao tema da codificao de
canal.
O trabalho est inserido no mbito de um projeto completo da camada fsica do padro
LTE, visando a criao de um IP especfico.
Para contextualizar o trabalho, foi realizada uma perspectiva histrica, desde o teorema de
Nyquist [38], que limita a taxa de amostragem, passando pelos trabalhos de Shannon [39], que
estabelecem o limite terico do canal e os sistemas de correo de erros que perseguem este
limite, e chegando, finalmente, ao turbo-code, que apresenta um desempenho muito prximo
do limite.
Tambm foi mostrado o fluxo de projeto digital que foi seguido neste trabalho. Neste caso,
o embasamento terico vem em conjunto com o conhecimento prtico para a realizao de
circuitos integrados em silcio. Comeou-se pela descrio RTL, tendo na verificao uma
importante ferramenta, e concluiu-se com a implementao fsica. O nvel de detalhamento no
foi muito alto devido ao escopo limitado do trabalho.
Finalmente, as etapas desenvolvidas foram apresentadas. Foi dado um enfoque especial na
arquitetura do hardware, pois, esta a grande diferenciao entre este e outros trabalhos.
Algumas etapas auxiliares se destacam, como a verificao e a criao de um modelo de
referncia, no qual as ideias das arquiteturas puderam ser testadas antes da implementao.
Os resultados foram ento comparados com outros trabalhos encontrados na literatura
corrente. Esta anlise se mostrou complicada devido aos diferentes parmetros que cada
trabalho assume. Porm, os resultados foram satisfatrios dentro dos requisitos propostos,
principalmente devido grande capacidade de correo de erros.
Este projeto se mostrou superior a todos os que puderam ser comparados com relao
capacidade de correo de erros, contudo, este ganho de desempenho causa uma deteriorao
dos outros parmetros de comparao. Ainda assim, o projeto apresentou caractersticas
similares ou superiores a outros trabalhos. Como se props ter uma alta fidelidade na correo
de erros, os outros parmetros foram otimizados de forma a que esse no se deteriorasse. A rea
de silcio ocupada diretamente afetada, j que para uma maior capacidade de correo, as
operaes so feitas em uma preciso mais elevada, consequentemente, maior a rea ocupada.
A latncia tambm afetada indiretamente atravs no nmero de iteraes. Quanto mais
68

iteraes, mais preciso o resultado, elevando consequentemente o tempo de espera para o


clculo.
Outro fator importante na comparao foi a frequncia de operao do decodificador. Como
este projeto foi pensado para ser inserido em um contexto maior, integrado a outros blocos da
camada fsica do padro LTE, a velocidade de funcionamento teve que obedecer a um valor
especfico, inferior ao utilizado pelos outros trabalhos descritos na literatura. Este parmetro
tem uma relao praticamente linear com o throughput e a latncia, fatores estes, fundamentais
para a comparao de resultados.

4.1. PROPOSTA DE TRABALHOS FUTUROS

Apesar do xito alcanado para o desempenho do sistema, o projeto, por se tratar de um IP,
poderia ter uma maior flexibilidade com relao utilizao de mais otimizaes, em
detrimento de uma queda no desempenho a ser avaliada pelo possvel usurio. Assim, o
desempenho, dependendo da aplicao, poderia no ser o objetivo principal, mas um hardware
menor ou com um maior throughput.
Uma anlise interessante para medir o desempenho do sistema a integrao dele com os
blocos mais prximos, o que permite uma viso mais ampla do funcionamento do circuito
integrado e da capacidade de correo de erros. Os principais blocos so o Rate Matching, que
trata de ajustar o nmero de bits de acordo com a taxa de codificao necessria, para isso
retirando ou repetindo os bits originais. Outro bloco interessante o MIMO, que o
responsvel pela recepo dos dados atravs de mltiplas antenas. Assim, a anlise fica mais
completa, j que adiciona a melhora de desempenho proveniente do MIMO.
69

6. REFERNCIAS BIBLIOGRFICAS

[1] - Dahlman, E., Parkvall, S., Skld, J., Beming, P., 3G Evolution HSPA for Mobile
Broadband, Second Edition, Academic Press - Elsevier, 2008
[2] Cox, C., An Introduction to LTE LTE, LTE Advanced, SAE and 4G Mobile
Communications, John Wiley and Sons, 2012
[3] Sesia, S., Toufik, I., Baker, M., LTE The UMTS Long Term Evolution From Theory to
Practice, Wiley, 2009
[4] Proakis, J. G., Digital Communications, Fourth Edition, McGraw-Hill, 2000
[5] Sklar, B., Digital Communications Fundamentals and Application, Second Edition,
Prentice Hall P T R, 2000
[6] Haykin, S., Communication Systems, Fouth Edition, John Wiley and Sons, 2001
[7] Andr de Amaral Arajo, Paulo Bastos Tigre, Srgio Bampi, Srgio Francisco Alves
Mrcio Wohlers de Almeida, Programa Nacional de Microeletrnica Contribuies para a
Formulao de um Plano Estruturado de Aes, Secretaria de Poltica de Informtica
Ministrio de Cincias e Tecnologia, Braslia 2002.
[8] Reis, V. T., Souza, I. S., A 65nm VLSI Implementation for the LTE Turbo Decoder,
2011, Proceedings of the 24th Symposium on Integrated Circuits and Systems Design, SBCCI,
pp, 155 - 160
[9] IEEE Annals of the History of Computing, Vol. 20, No. 2, 1998

[10] P.M. Csar, Breve Introduo Teoria dos Cdigos Corretores de Erros, Colquio de

Matemtica da regio Centro-Oeste, Novembro 2009.

[11] P. Elias, Coding for noisy channels, IRE Conv. Rec., pt. IV, pp. 37-46, 1955

[12] P. Elias, Error-free Coding, IRE Professional Group on Information Theory, vol. 4,

issue 4, pp. 29-37, 1954

[13] A. J. Viterbi, Error Bounds for Convolutional Codes and an Assymptotically Optimum

Decoding Algorithm, 1967, IEEE Transactions on Information Theory 13 (2): 260269.

[14] C. B. Schlegel, L. C. Prez, Trellis and Turbo Coding, 2004, IEEE Press: John Wiley

and Sons
70

[15] L.Bahl, J.Cocke, F.Jelinek, and J.Raviv, "Optimal Decoding of Linear Codes for

minimizing symbol error rate", IEEE Transactions on Information Theory, vol. IT-20(2),

pp.284-287, March 1974.

[16] P. Robertson, P. Hoe her, E. Villenbrun, Optimal and Sub-Optimal Maximum a

Posteriori Algorithms Suitable for Turbo Decoding, Eur. Trans. Telecommun., Vol. 8, pp.

119-125, March/April 1997

[17] C. Berrou, A. Glavieux, and P.Thitimajshima, Near Shannon limit error-correcting

coding and decoding: Turbo-codes in Proc. ICC 93, pp. 1064-1070, May 1993.

[18] 3GPP TS 36.212 version 9.1.0 Release 9, 3GPP

[19] Fundamentals of Turbo Codes, Bernard Sklar

[20] Dobkin, R., Peleg, M., Ginosar, R., Parallel VLSI Architecture for MAP Turbo Decoder

in PIMRC, pp. 384-388, 2002.

[21] Nimbalker, A., Blankenship, Y., Classon, B., Blankenship, T. K., ARP and QPP

Interleavers for LTE Turbo Coding WCNC proceedings, 2008.

[22] Dobkin, R., Peleg, M., Ginosar, R., Parallel Interleaver Design and VLSI Architecture for

Low-Latency MAP Turbo Decoders, IEEE Transactions on Very Large Scale Integration

(VLSI) Systems, Vol. 13, n 4, Abril 2005.

[23] D. A. Guimares, Noes sobre Decodificao Turbo: Um Estudo de Caso para os

Cdigos SPC-TPC, Departamento de Telecomunicaes Inatel.

[24] M. Keating, P. Bricaud, Reuse Methodology Manual For System-on-a-Chip Designs

Kluwer Academic Publishers, 3 Edio, 2002

[25] N. Weste, D. Harris, CMOS VLSI Design A Circuit and Systems Perspective, Pearson

Education, 3 Edio, 2005

[26] Digital VLSI Systems Design A Design Manual for Implementation of Projects on

FPGA and ASIC Using Verilog, S. Ramachandran, 2007, Springer


71

[27] VLSI Circuit Design Methodology Demystified A conceptual Taxonomy, Liming Xiu,

Wiley-Interscience, 2007

[28] Bob Zeidman, Verilog Designers Library, Prentice Hall. 1999

[29] Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL

Design, McGraw Hill, 2005

[30] Huahua, W. and Wenwen, L., Analysis of Turbo Decoding Algorithm in LTE System,

9th International Conference on Fussy Systems and Knowledge Discovery, 2012

[31] Sun, Y., Cavallaro, J. R., Efficient hardware implementation of a highly-parallel3GPP

LTE/LTE-advance turbo decoder, INTEGRATION, the VLSI journal, Elsevier, 2011

[32] Studer, C., Benkeser, C., Belfanti, S., Huang, Q., Design and Implementation of a Parallel

Turbo-Decoder ASIC for 3GPP-LTE, IEEE Journal of Solid-State Circuits, Vol. 46, N 1,

January 2011

[33] May, M., Ilnseher, T., When, N., Raab, W., A 150Mbit/s 3GPP LTE Turbo Code

Decoder, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2010.

[34] Wong, C. C., Lee, Y. Y., Chang, H. C., A 188-size 2.1 mm Reconfigurable Turbo

Decoder Chip with Parallel Architecture for 3GPP LTE System, Symposium on VLSI Circuits

Digest of Technical Papers, 2009

[35] Sun, Y., Zhu, Y., Goel, M., Cavallaro, J. R., Configurable and Scalable High Throughput

Turbo Decoder Architecture for Multiple 4G Wireless Standards, IEEE International

Conference on Application-Specific Systems, Architectures and Processors (ASAP), 2008

[36] Kim, J. H., Park, I. C., A Unified Parallel Radix-4 Turbo Decoder for Mobile WiMAX

and 3GPP-LTE, IEEE Custom Integrated Circuits Conference (CICC), 2009

[37] Souza, I. S., Reis, V. T., A VLSI Design for The LTE Turbo Decoder, 2012, Journal of
Integrated Circuits and Systems, JICS, Vol. 7, n 1, pp, 16 - 22
[38] Nyquist, H., Certain Topics in Telegraph Transmission Theory, 1928, Transactions of
the American Institute of Electrical Engineers, Vol. 47, Issue 2, pp, 617 - 644
72

[39] Shannon, C. E., A Mathematical Theory of Communication, 1948, The Bell System
Technical Journal, Vol. 27, pp, 379 - 423
[40] Hamming, R. W., Error Detecting and Error Correcting Codes, 1950, The Bell System
Technical Journal, Vol. 29, pp, 147 - 160
[41] Golay, M. J. E., Notes on Digital Coding, 1949, Proc. IRE, 37, pp, 567