universidade federal da bahia - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 representa˘c~ao...

108
UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLIT ´ ECNICA PROGRAMA DE P ´ OS-GRADUAC ¸ ˜ AO EM ENGENHARIA EL ´ ETRICA Joaquim Ranyere Santana de Oliveira SOFT-IP CONFIGUR ´ AVEL PARA REALIZAC ¸ ˜ AO DE FUNC ¸ ˜ OES DE JANELAMENTO EM HARDWARE DISSERTAC ¸ ˜ AO DE MESTRADO Salvador Outubro de 2016

Upload: doannguyet

Post on 27-Apr-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

UNIVERSIDADE FEDERAL DA BAHIA

ESCOLA POLITECNICA

PROGRAMA DE POS-GRADUACAO EM ENGENHARIA ELETRICA

Joaquim Ranyere Santana de Oliveira

SOFT-IP CONFIGURAVEL PARA REALIZACAO DE FUNCOES

DE JANELAMENTO EM HARDWARE

DISSERTACAO DE MESTRADO

Salvador

Outubro de 2016

Page 2: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Pagina em branco

Page 3: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Joaquim Ranyere Santana de Oliveira

SOFT-IP CONFIGURAVEL PARA REALIZACAO DE FUNCOES

DE JANELAMENTO EM HARDWARE

Dissertacao de Mestrado apresentada ao

Programa de Pos-graduacao em Engenharia

Eletrica, PPGEE, da Universidade Federal

da Bahia, como parte dos requisitos

necessarios a obtencao do tıtulo de Mestre

em Engenharia Eletrica.

Orientadores: Wagner Luiz Alves de Oliveira

Paulo Cesar Machado de

Abreu Farias

Salvador

Outubro de 2016

Page 4: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Oliveira, Joaquim Ranyere Santana de

Soft-IP Configuravel para Realizacao de Funcoes de

Janelamento em Hardware/Joaquim Ranyere Santana de

Oliveira. – Salvador: UFBA/PPGEE, 2016.

XX, 86 p.: il.; 29, 7cm.

Orientadores: Wagner Luiz Alves de Oliveira

Paulo Cesar Machado de Abreu Farias

Dissertacao (mestrado) – UFBA/PPGEE/Programa de

Engenharia Eletrica, 2016.

Referencias Bibliograficas: p. 73 – 80.

1. IP-Cores. 2. Janelamento de Sinais. 3.

Circuitos Integrados Digitais. 4. Ajuste de Curvas e

Interpolacao. I. Oliveira, Wagner Luiz Alves de et al..

II. Universidade Federal da Bahia, PPGEE, Programa de

Engenharia Eletrica. III. Tıtulo.

Page 5: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

iii

Page 6: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

iv

Page 7: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

A minha querida mae, Mirian Santana de

Oliveira, heroına capaz de abdicar de si em

prol dos meus estudos. Espero que esse

trabalho a deixe orgulhosa por ser um dos

frutos de sua dedicacao.

v

Page 8: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

vi

Page 9: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Agradecimentos

Agradeco em especial a minha mae, Mirian Santana de Oliveira, meu maior espelho

na busca do conhecimento e do bem, e ao meu pai, Valdo Lopes de Oliveira, que

sempre me apoia incondicionalmente em qualquer que seja a situacao.

A minha companheira Beth, por esta sempre ao meu lado, sendo meu refugio

nas intemperies, e quem presencia e compartilha de meus exitos e alegrias.

Ao professor Wagner Luiz Alves de Oliveira, pelas sugestoes e crıticas sobre a

monografia proposta, dando-me o devido encorajamento para concluir o trabalho.

Aos meus familiares e amigos, que de alguma maneira contribuıram para minha

formacao como pessoa e como pesquisador.

Obrigado por todos os incentivos!

vii

Page 10: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

viii

Page 11: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

”Aprender e a unica coisa de que a mente

nunca se cansa, nunca tem medo e nunca

se arrepende.”

(Leonardo da Vinci)

ix

Page 12: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

x

Page 13: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Resumo da Dissertacao apresentada a PPGEE/UFBA como parte dos requisitos

necessarios para a obtencao do grau de Mestre em Engenharia Eletrica (M.Sc.)

SOFT-IP CONFIGURAVEL PARA REALIZACAO DE FUNCOES DE

JANELAMENTO EM HARDWARE

Joaquim Ranyere Santana de Oliveira

Outubro/2016

Orientadores: Wagner Luiz Alves de Oliveira

Paulo Cesar Machado de Abreu Farias

Programa: Engenharia Eletrica

Este trabalho apresenta o desenvolvimento de um Soft-IP-Core destinado a rea-

lizacao de operacoes de janelamento em sistemas de processamento digital de sinais.

O IP desenvolvido realiza o processo de janelamento a partir da interpolacao linear

de um sub-conjunto de pontos da funcao, obtido previamente por uma rotina em

Matlab disponibilizada no conjunto de arquivos do projeto. O IP apresenta tambem

a caracterıstica de ser altamente configuravel, podendo adaptar-se a diferentes ta-

manhos de palavra em notacao de ponto fixo, bastando para tal o usuario modificar

os parametros definidos em um arquivo de configuracao.

Como forma de validar e garantir a robustez do IP, todo o trabalho foi reali-

zado tomando por base metodologias de desenvolvimento de projetos de circuitos

integrados digitais, mais especificamente o fluxo de desenvolvimento para disposi-

tivos ASIC. Como caso de uso, implementou-se, do RTL ate o GDSII, um modulo

de janelamento constituinte de um decodificador de audio para o padrao MPEG-2

AAC-LC. Analises e verificacao funcional, a partir de um modelo de referencia cri-

ado em Matlab, tambem foram realizadas, mostrando a conformidade do Soft-IP

com os resultados de calculos esperados.

xi

Page 14: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Por fim, analisou-se a eficiencia em termos de area da proposta de interpolacao,

comparando-a com solucoes da literatura de modelos convencionais, relativos ao

armazenamento direto dos pontos, e modelos desenvolvidos com a tecnica CORDIC.

xii

Page 15: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Abstract of Dissertation presented to PPGEE/UFBA as a partial fulfillment of the

requirements for the degree of Master of Science (M.Sc.)

CONFIGURABLE SOFT-IP TO PERFORM WINDOWING FUNCTIONS IN

HARDWARE

Joaquim Ranyere Santana de Oliveira

October/2016

Advisors: Wagner Luiz Alves de Oliveira

Paulo Cesar Machado de Abreu Farias

Department: Electrical Engineering

This work presents the development of a Soft-IP-Core for windowing operations

on digital signal processing systems. The developed IP performs the windowing

process from the linear interpolation of a sub-set of points, previously obtained by

a Matlab routine available in the set of project files. The IP is highly configurable

and adaptable to different word sizes in fixed-point notation through parameter

modifications specified by the user in a configuration file.

In order to validate and ensure the IP robustness, all the work has been carried

out based on digital integrated circuits design development methodologies, specifi-

cally the ASIC design flow. As an use case, it has been implemented from RTL to

GDSII levels a windowing module belonging to a MPEG-2 AAC-LC audio decoder

system. Analysis and functional verification, from a reference model created in Mat-

lab, have also been performed, showing that the Soft-IP is in accordance with the

expected calculations results.

Finally, it has been analyzed the efficiency of interpolation model by area criteria,

comparing it with literature solutions for both approaches, directed storage and

CORDIC.

xiii

Page 16: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Sumario

Lista de Figuras xvi

Lista de Tabelas xviii

1 Introducao 1

1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.1.2 Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Estrutura da Dissertacao . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Fundamentacao Teorica 8

2.1 Janelamento em Analise Espectral . . . . . . . . . . . . . . . . . . . . 8

2.2 Janelamento na Modelagem de Filtros FIR . . . . . . . . . . . . . . . 11

2.3 Ajuste de Curvas e Interpolacao Linear . . . . . . . . . . . . . . . . . 15

2.4 Aritmetica em Ponto Fixo . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4.1 Propriedades de Representacao no Formato Q . . . . . . . . . 17

2.5 Analise de Erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.5.1 Relacao Sinal-Ruıdo . . . . . . . . . . . . . . . . . . . . . . . 22

3 Fluxo de Desenvolvimento de CIs Digitais 24

3.1 Fluxo ASIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2 Projeto em Alto Nıvel (Nıvel de Sistema) . . . . . . . . . . . . . . . . 26

3.2.1 Especificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2.2 Microarquitetura . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 Projeto Logico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.3.1 Codificacao RTL . . . . . . . . . . . . . . . . . . . . . . . . . 27

xiv

Page 17: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

3.3.2 Sıntese logica . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4 Projeto Fısico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.1 Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.4.2 Particionamento . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4.3 Planejamento de Energia . . . . . . . . . . . . . . . . . . . . . 34

3.4.4 Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.4.5 CTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.4.6 Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.4.7 Analises de Signoff . . . . . . . . . . . . . . . . . . . . . . . . 40

3.5 Verificacao Funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Metodos e Desenvolvimento da Proposta 45

4.1 Sistema em Alto Nıvel . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.1.1 Representacao da Tabela de Dados da Compactacao dos Pontos 49

4.2 Arquitetura Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.3 Verificacao Funcional . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5 Resultados do Trabalho 60

6 Conclusoes 71

Referencias Bibliograficas 73

A Trabalho Publicado 81

A.1 Trabalho Publicado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

A.1.1 Artigo em Congresso . . . . . . . . . . . . . . . . . . . . . . . 81

xv

Page 18: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Lista de Figuras

2.1 FFT – Intervalo de amostragem que se repete ao longo do tempo . . 9

2.2 FFT – problema de continuidade de um sinal . . . . . . . . . . . . . 10

2.3 FFT – problema de vazamento espectral . . . . . . . . . . . . . . . . 10

2.4 Efeito do janelamento no sinal de entrada . . . . . . . . . . . . . . . 11

2.5 Filtro ideal e sua resposta ao impulso . . . . . . . . . . . . . . . . . . 12

2.6 FIR – truncamento e deslocamento . . . . . . . . . . . . . . . . . . . 13

2.7 Efeito do janelamento no sinal de entrada . . . . . . . . . . . . . . . 14

2.8 Remontagem de uma funcao a partir de um conjunto de retas . . . . 16

2.9 Ponto Q divide as partes de uma palavra em formato Q . . . . . . . . 17

2.10 Representacao binaria de ponto fixo Q sem sinal . . . . . . . . . . . . 18

2.11 Representacao binaria de ponto fixo Q com sinal . . . . . . . . . . . . 18

2.12 Soma em ponto fixo sem sinal . . . . . . . . . . . . . . . . . . . . . . 20

2.13 Soma em ponto fixo com sinal . . . . . . . . . . . . . . . . . . . . . . 20

2.14 Multiplicacao em ponto fixo . . . . . . . . . . . . . . . . . . . . . . . 21

3.1 Macro etapas do fluxo de projeto de CIs . . . . . . . . . . . . . . . . 24

3.2 Descricao comportamental Verilog de um somador de 6 bits . . . . . 28

3.3 Modelo de fluxo de dados entre registradores e celulas logicas . . . . . 28

3.4 Modelo estrutural com descricao de portas logicas . . . . . . . . . . . 29

3.5 Diagrama de etapas do fluxo ASIC da netlist ao GDSII . . . . . . . . 32

3.6 Alocacao das areas do core e de E/S em um leiaute . . . . . . . . . . 33

3.7 Topologias de planejamento de energia em projetos ASIC . . . . . . . 35

3.8 Estimativa de posicao das celulas no placement global . . . . . . . . . 36

3.9 Correcao do posicionamento pos-placement detalhado . . . . . . . . . 37

3.10 Distribuicao do clock em um leiaute . . . . . . . . . . . . . . . . . . . 38

xvi

Page 19: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

3.11 Roteamento – visao de camadas . . . . . . . . . . . . . . . . . . . . . 38

3.12 Roteamento – organizacao da area em g-cells . . . . . . . . . . . . . . 39

3.13 Arquivos onde se aplica analise de conformidade (LVS e LEC) . . . . 41

4.1 Exemplo do algoritmo de busca das retas que formarao a funcao . . . 48

4.2 Esquema da tabela de dados das retas . . . . . . . . . . . . . . . . . 50

4.3 Janelas Kaiser de 64 pontos para α = [0, 2, 4, 6, 8, 10, 30] . . . . . . 51

4.4 Janelas Kaiser de 64, 128, 256 e 512 pontos para α = 4 . . . . . . . . 51

4.5 Arquitetura de blocos do Modulo de Janelamento . . . . . . . . . . . 55

4.6 Diagrama de sinais do protocolo do Modulo de Janelamento . . . . . 56

4.7 Maquina de estados finita do Modulo de Janelamento . . . . . . . . . 56

4.8 Ambiente de verificacao desenvolvido para o IP . . . . . . . . . . . . 58

5.1 Decodificador de audio MPEG AAC-LC UFBA/UEFS/Brazil-IP . . . 61

5.2 SNR das retas para janela KBD de 2048 amostras . . . . . . . . . . . 62

5.3 SNR das retas para janela KBD de 256 amostras . . . . . . . . . . . 62

5.4 SNR das retas para janela seno de 2048 amostras . . . . . . . . . . . 63

5.5 SNR das retas para janela seno de 256 amostras . . . . . . . . . . . . 63

5.6 Erro relativo para janela seno de 256 amostras . . . . . . . . . . . . 64

5.7 Erro relativo para janela seno de 2048 amostras . . . . . . . . . . . . 64

5.8 Erro relativo para janela KBD de 256 amostras . . . . . . . . . . . . 65

5.9 Erro relativo para janela KBD de 2048 amostras . . . . . . . . . . . . 65

5.10 Relatorio de sıntese para KBD de 2048 amostras . . . . . . . . . . . . 66

5.11 Relatorio de sıntese para KBD de 256 amostras . . . . . . . . . . . . 67

5.12 Vista ameba com a separacao logica dos blocos . . . . . . . . . . . . . 68

5.13 Placement das celulas e arvore de clock realcada . . . . . . . . . . . . 69

5.14 Ring e stripes da rede de energia . . . . . . . . . . . . . . . . . . . . 69

5.15 Leiaute apos roteamento dos fios . . . . . . . . . . . . . . . . . . . . 70

xvii

Page 20: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Lista de Tabelas

4.1 Quantidade de bits necessarios para representar α com 16 bits de

precisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.2 Quantidade de bits necessarios para representar α com 24 bits de

precisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.3 Portas de entrada e saıda do Modulo de Janelamento . . . . . . . . . 55

5.1 Bits usados para representar as funcoes de janelamento no MPEG2-

AAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.2 Comparacao de areas entre solucao proposta, solucao convencional e

CORDIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

xviii

Page 21: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Siglas

AAC-LC Advanced Audio Coding - Low Complexity .

ASIC Application-Specific Integrated Circuit (Cir-

cuito integrado de Aplicacao Especıfica).

CAD Computer Aided Design.

CI Circuito Integrado.

CMOS Complementary Metal-Oxide-Semiconductor .

CORDIC COordinate Rotation DIgital Computer

(Computador Digital para Rotacao de

Coordenadas).

CPF Common Power Format .

DFM Design for Manufacturing .

DFT Discrete Fourier Transform (Transformada

Discreta de Fourier).

DRC Design Rule Checking .

DSP Digital Signal Processor (Processador Digital

de Sinais).

EDA Electronic Design Automation.

FFT Fast Fourier Transform (Transformada

Rapida de Fourier).

FIR Finite Impulse Response.

xix

Page 22: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

FPGA Field-Programmable Gate Array (Arranjo de

Portas Programavel em Campo).

GDSII Graphic Database System II.

GPU Graphics Processing Unit (Unidade de Proces-

samento Grafico).

HDL Hardware Description Language (Linguagem

de Descricao de Hardware).

IIR Infinite Impulse Response.

IP Intelectual Property .

KDB Kaiser e Kaiser-Bessel Derived .

LEC Logical Equivalence Check .

LVS Layout Versus Schematic.

MPEG-2 Moving Pictures Experts Group-2.

RTL Register-Transfer Level .

SDC Synopsys Design Constraints .

SNR Signal-to-Noise Ratio (Relacao Sinal-Ruıdo).

SOC System-on-Chip (Sistema-em-um-chip).

STA Static Timing Analysis .

VHDL VHSIC Hardware Description Language.

xx

Page 23: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 1

Introducao

Nas ultimas decadas, rapidos avancos na tecnologia de projeto e fabricacao de Cir-

cuitos Integrados (CI) digitais causaram uma revolucao na area de processamento

de sinais, e o rapido crescimento da internet fixa e movel, combinada com a busca in-

cansavel do homem por informacao, adicionaram mais combustıvel a essa revolucao

[1]. Hoje em dia, quase todos os sinais sao representados e processados digital-

mente, possibilitando as mais variadas aplicacoes de processamento de sinais: tele-

comunicacoes, tratamento e reconhecimento de audio e voz, area biomedica, proces-

samento de imagens, sensoriamento remoto e radares, entre outras [1]. Em geral,

essas aplicacoes utilizam a manipulacao do espectro do sinal ou necessitam que seja

feito algum processo de filtragem. Em ambos os casos, uma das tecnicas utilizadas

para reduzir a perda espectral e melhorar a manipulacao do sinal amostrado e a de

janelamento de sinais [2].

Quando os sinais sao convertidos para uma forma digital, geralmente ha a divisao

dos mesmos em blocos discretos, para possibilitar algum tipo de tratamento extra

apos a conversao – tal conversao possibilita o processamento deste sinal atraves de

sistemas computacionais. Para evitar efeitos indesejados nas transicoes entre tais

blocos de sinais, estes sao frequentemente ponderados por uma funcao janela, que

atua sobre o sinal em ambas extremidades dos blocos. Uma janela e uma funcao

matematica que tem valor zero fora de um intervalo escolhido – assim, quando um

sinal e multiplicado por uma funcao janela, o produto tambem tem valor zero fora

deste intervalo [2]. A aplicacao dessas funcoes encontra-se em grande parte dos

sistemas de processamento digital de sinais, razao pela qual tais funcoes sao de

1

Page 24: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

extrema importancia nessa area de estudo, tendo forte impacto sobre o espectro do

sinal ao permitir, essencialmente, um trade-off entre as resolucoes de tempo e de

frequencia [1].

O processo de janelamento, convencionalmente, e desenvolvido no domınio do

tempo, pela simplicidade analıtica e facilidade de implementacao/processamento em

relacao ao domınio da frequencia, que tem um custo computacional alto em virtude

do uso de transformadas [3]. Alem disso, algumas funcoes janela nao apresentam

uma funcao analıtica precisa no domınio da frequencia [4], como e o caso das funcoes

Kaiser e Kaiser-Bessel Derived (KDB).

Implementacoes de algoritmos para aplicacoes que envolvam o uso de funcoes

janela sao, em geral, sistemas complexos de processamento de sinais formados por

diferentes modulos, responsaveis por funcoes especıficas, onde parte destes modulos

demanda um alto uso de recursos computacionais. Esses sistemas sao desenvolvi-

dos em grande parte usando a metodologia System-on-Chip (Sistema-em-um-chip)

(SOC) [5, 6], a qual realiza a integracao de variados blocos do sistema dentro de

um unico chip. Esses blocos sao pre-desenvolvidos e pre-verificados funcionalmente,

sendo conhecidos como Intelectual Property (IP) - Cores [7, 8], e podem correspon-

der a processadores embarcados, memorias, interfaces de E/S, blocos analogicos, blo-

cos de comunicacao, perifericos e componentes para execucao de funcoes especıficas.

IP-Cores podem ser classificados em Soft-Cores, Firm-Cores e Hard-Cores [9,

10]. Os Soft-Cores oferecem o mais alto grau de flexibilidade de modificacao e

consistem em restricoes de projeto, testbenches, informacoes de validacao e um con-

junto de arquivos em Hardware Description Language (Linguagem de Descricao de

Hardware) (HDL), independentes da tecnologia de processo de fabricacao de semi-

condutores. Os Firm-Cores tem flexibilidade intermediaria e contem informacoes

mais estruturadas, geralmente na forma de uma netlist em nıvel de celulas logicas,

pronta para processos de mapeamento e roteamento em uma tecnologia de processo

alvo. Ja os Hard-Cores sao mascaras e modulos dependentes de tecnologia que

contem informacoes fısicas de leiaute, possuindo desempenho bem definido, porem

sem a flexibilidade de migrar de tecnologia ou modificar alguma caracterıstica [7].

IP-Cores podem ser desenvolvidos pelos proprios projetistas do sistema ou ad-

quiridos de terceiros. A adocao de uma implementacao baseada em IP-Cores, com

2

Page 25: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

enfase em re-uso, pode ser uma resposta efetiva para um conjunto de problemas

enfrentados por projetistas de chips complexos, tais como [11]:

• Aumento da dificuldade de verificacao, com a crescente complexidade dos Cir-

cuitos Integrados;

• Fechamento de temporizacao (timing closure) mais difıcil, com questoes rela-

cionadas a tecnologias submicrometricas;

• Diversidade da equipe de desenvolvimento, com diferentes nıveis de conheci-

mento e areas de especializacao, estando muitas vezes espalhada por todo o

mundo;

• Alto ındice de mudancas no fluxo de projeto, nas ferramentas Electronic De-

sign Automation (EDA) e orientacoes, prejudicando o uso direto de projetos

similares ja prontos; e

• Pressoes de time-to-market, demandando um rapido desenvolvimento do pro-

jeto.

Esse ultimo problema, relacionado ao tempo de duracao do projeto, e substan-

cialmente melhorado pelo reuso de IP-Cores. Uma metodologia eficaz de projeto

baseada em blocos requer uma extensa biblioteca de blocos reutilizaveis [5]. Por

conta disso, os desenvolvedores de IP-Cores devem empregar uma metodologia de

projeto que produza consistentemente blocos reutilizaveis, partindo do princıpio de

que um bloco deve ser extremamente facil de integrar no projeto global, alem do

princıpio de que um bloco deve ser tao robusto que o engenheiro responsavel pela

integracao nao precise realizar verificacao funcional interna no mesmo [12]. Inicia-

tivas de contribuicao colaborativa, tais como OpenCores [13] e Librecores [14], se

justificam como forma de aporte as bibliotecas internas de projetos – contribuicoes

academicas e empresariais para estas iniciativas aumentarao a confiabilidade dos IP-

Cores fornecidos, atraves da melhoria com aumento do uso, dos testes e depuracoes.

Alem dos problemas citados acima, a qualidade dos resultados em termos de

desempenho, area e consumo constitui chave para o sucesso de um projeto [11].

Por isso, em suas decisoes, os engenheiros de sistema precisam escolher entre usar

uma tecnologia mais barata, com menor densidade de transistores, ou usar uma

3

Page 26: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

tecnologia mais atual, com maior densidade, porem mais cara. Esta escolha implica

diretamente no tempo ate o mercado (time-to-market) do projeto, uma vez que

o uso de densidades menores implica em tempo maior de desenvolvimento mas,

em contrapartida, com custo final por unidade menor. Em sistemas especialistas

em que o custo por unidade e o item prioritario, empresas de desenvolvimento de

chips (design-houses) priorizam a reducao da area e a busca por algoritmos mais

eficientes que reduzam este aspecto drasticamente. Por outro lado, este trade-off

tambem implica em algumas perdas relacionadas ao processamento e a precisao dos

resultados do sistema. Essa problematica e inerente aos sistemas com janelamento,

nos quais varias funcoes janela podem ser desenvolvidas/empregadas de acordo com

diferentes requisitos para a minimizacao do lobulo lateral e da faixa dinamica, por

exemplo. Na literatura nao existem, porem, muitas arquiteturas de janelamento com

foco na eficiencia de hardware, o que nao ocorre com proposicoes de arquiteturas

para outras partes normalmente presentes nestes sistemas, como, por exemplo, as

muitas disponıveis para realizar Fast Fourier Transform (Transformada Rapida de

Fourier) (FFT) [15, 16, 17]. As arquiteturas para janelamento conhecidas podem

ser elencadas em dois tipos, quanto aos recursos utilizados:

Convencional: armazena todos os dados da funcao janela em um dispositivo de

memoria, acarretando em um uso relevante de area, porem com baixo uso de

processamento; e

Funcao direta no hardware: realiza a obtencao, em tempo de execucao, dos pon-

tos da funcao janela, sendo mais flexıvel e acarretando em um uso maior de

recursos de processamento e area.

A implementacao convencional em hardware [18, 19] de funcoes janela utiliza tabelas

de consulta que geram, com o aumento do comprimento de palavra, uma maior area

e mais complexidade na temporizacao de relogio. Alem do mais, essas tabelas nao

permitem que o usuario defina variacoes no tamanho da janela. Ja na implementacao

direta, existem algumas alternativas que propoem calculos da funcao janela atraves

de artifıcios matematicos, como o COordinate Rotation DIgital Computer (Com-

putador Digital para Rotacao de Coordenadas) (CORDIC) [20, 21, 22], os quais

permitem flexibilidade no tamanho da janela [23]. No geral, implementacoes diretas

4

Page 27: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

entregam uma resposta que permite altas taxas de processamento e transferencia

de dados [24] e, apesar dos esforcos para reducao da area [25, 26, 27, 28], ainda

apresentam um alto uso de recursos.

No que tange aos sistemas especialistas, o desenvolvimento de hardwares vol-

tados a uma aplicacao especıfica (Application-Specific Integrated Circuit (Circuito

integrado de Aplicacao Especıfica) (ASIC)), como o caso de sistemas com janela-

mento, prescinde em grande parte do uso de tecnologias de vanguarda (high-end).

Para se ter uma ideia, no ultimo relatorio da PwC sobre o impacto da China na

industria de semicondutores [29], paıs responsavel por grande parte da producao

mundial de Circuito Integrados (CIs), apenas 12,4% das empresas chinesas traba-

lham com tecnologia de 90 nm ou menores. No mesmo relatorio, mostra-se que o

paıs continua ainda modesto no aumento da migracao para tecnologias de fabricacao

menores. Isso implica que a eficiencia nos criterios de area, processamento e con-

sumo baseia-se mais em esforcos na otimizacao dos algoritmos e modulos internos,

do que propriamente no abandono de tecnologias de fabricacao com nos tecnologicos

intermediarios (middle-end). Esses esforcos geram divisas e propriedades intelectu-

ais que contribuem, por exemplo, para o fato de que o desenvolvimento de CIs seja

o setor que mais cresceu na fatia de mercado chines: de 6,5% em 2003 para 22,1%

em 2014 (dados do mesmo relatorio).

Neste contexto, o presente trabalho seguiu a linha de dar maior esforco a oti-

mizacao do uso de area. Assim, durante a analise de diferentes formas de imple-

mentacao, surgiu a ideia de armazenamento parcial dos dados da funcao janela,

como alternativa ao alto uso de memoria da arquitetura convencional, atraves da

reducao da quantidade de pontos pela tecnica de ajuste de curvas, o que pode ser

uma solucao simples e bastante viavel para os engenheiros de sistemas utilizarem no

caso de menor disponibilidade de recursos.

Na busca por flexibilidade e diminuicao do uso de recursos, o objetivo princi-

pal deste trabalho consistiu no fornecimento de um Intellectual Property (IP) Soft-

Core parametrizavel, desenvolvido e disponibilizado como uma solucao de hardware

que possa ser utilizada dentro de sistemas de processamento de sinais com janela-

mento. Por ser um Soft-Core, o IP pode ser implementado em Field-Programmable

Gate Array (Arranjo de Portas Programavel em Campo) (FPGA) – quando nem o

5

Page 28: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

custo unitario relativamente alto e nem o consumo de energia sao fatores crıticos

da aplicacao [30] – ou implementado em ASIC – para aplicacoes de maior volume e

menor area e consumo.

Como prova de conceito, o trabalho implementou o Soft-IP em ASIC, seguindo

o fluxo basico de desenvolvimento de projetos de CIs, ordenado por suas etapas

basicas principais. A primeira acao consistiu na concepcao e modelagem do sis-

tema de janelamento, usando linguagem Matlab. Em seguida, foi escrito o codigo

Register-Transfer Level (RTL) em Verilog, objetivando a implementacao logica das

funcionalidades e especificacoes do modelo. Na sequencia, realizou-se a verificacao

funcional, para garantir que o RTL esta de acordo com as especificacoes iniciais. Por

fim, criou-se uma descricao de conectividade atraves da sıntese logica, cuja evolucao

do projeto fısico resultou num leiaute em formato Graphic Database System II (GD-

SII), com no tecnologico de 180 nm. Os resultados gerados durante o fluxo ASIC

serao entao utilizados nas discussoes desta dissertacao.

1.1 Objetivos

1.1.1 Objetivo Geral

O objetivo desse trabalho e desenvolver um Soft-IP Core generico e flexıvel que

realiza funcoes de janelamento em hardware, atraves da interpolacao linear dos

pontos.

1.1.2 Objetivos Especıficos

• Criacao de um modelo de ajuste de curvas que gere automaticamente as partes

reconfiguraveis do IP;

• Criacao de um modelo de referencia e de um ambiente para verificar o IP;

• Desenvolvimento da parte generica do IP em RTL, de maneira parametrizavel;

• Verificacao funcional do RTL gerado para o IP;

• Validacao do uso do Soft-IP em um fluxo de hardware ASIC; e

6

Page 29: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

• Comparacao e avaliacao da solucao gerada em ASIC em diferentes aspectos de

concepcao de CIs, com enfase na reducao de area.

1.2 Estrutura da Dissertacao

A fundamentacao teorica necessaria para a realizacao deste trabalho e apresentada

no Capıtulo 2.

O Capıtulo 3 apresenta as principais atividades inerentes a um fluxo de projeto

para circuitos integrados digitais. Desta forma, os Capıtulos 2 e 3 servem de base

para as proposicoes apresentadas nos demais Capıtulos.

No Capıtulo 4 e apresentada a arquitetura geral do IP proposto e seu funcio-

namento, bem como o sistema desenvolvido para gerar os arquivos de configuracao

para a aplicacao final.

Os resultados obtidos no Capıtulo 4 sao discutidos no Capıtulo 5, o qual apre-

senta um estudo de caso sobre uma aplicacao do IP e sua validacao em ASIC.

Finalmente, o Capıtulo 6 apresenta as conclusoes gerais do trabalho.

7

Page 30: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 2

Fundamentacao Teorica

O processo de janelamento esta presente em basicamente todas as aplicacoes que

envolvem analise espectral usando FFT, sendo tambem bastante comum em algo-

ritmos de construcao de filtros Finite Impulse Response (FIR). Estes dois conceitos

sao tratados a seguir neste capıtulo, como possıveis aplicacoes do trabalho desen-

volvido. Ja as secoes sobre ajuste de curvas, aritmetica em ponto fixo e analise de

erro, apresentam conceitos que foram utilizados diretamente no desenvolvimento do

produto.

2.1 Janelamento em Analise Espectral

E muito comum informacoes serem codificadas nas senoides que formam um sinal.

Contudo, todos os campos da ciencia e engenharia apresentam casos de medidas onde

sinais de maior magnitude podem mascarar outros sinais no domınio do tempo, o que

torna a analise espectral (domınio da frequencia) uma ferramenta util na analise de

informacoes chaves para identificacao, descricao e manipulacao desses sinais, quais

sejam: a frequencia, a fase e a amplitude dos componentes senoidais [31].

A analise espectral encontra aplicacoes em diversos campos: monitoracao de

vibracoes, modelos de economia, meteorologia, astronomia, analise da fala, reco-

nhecimento de voz, sistemas de radar e de sonar, medicina, sismologia, sistemas de

controle etc. [32, 33].

A Discrete Fourier Transform (Transformada Discreta de Fourier) (DFT) e

usada para estimar o conteudo de frequencia de sinais que originalmente sao sequencias

8

Page 31: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

representadas por valores no tempo. A FFT e um metodo que implementa de forma

extremamente eficiente o calculo da DFT num Digital Signal Processor (Processa-

dor Digital de Sinais) (DSP), FPGA e hardwares especıficos. Na analise espectral, a

FFT realiza o calculo a partir de blocos de amostras dos sinal de entrada, chamados

de intervalos de amostragem [34]. O algoritmo de FFT baseia-se na hipotese de que

intervalos de amostragem sao repetidos ao longo do tempo, como na Figura 2.1.

Figura 2.1: FFT – Intervalo de amostragem que se repete ao longo do tempo

O ponto em que se inicia a amostragem pode afetar o espectro do sinal. Quando

o intervalo de amostragem compreende um perıodo multiplo do perıodo do sinal de

entrada (Figura 2.2a), o resultado e um sinal mais proximo do espectro correto no

domınio da frequencia. Ja em um intervalo de amostragem que nao corresponde a um

numero inteiro do perıodo do sinal de entrada (Figura 2.2b), um efeito indesejavel

notado e a apresentacao de descontinuidades nas extremidades do intervalo do sinal

de entrada assumido, causando o aparecimento de frequencias inexistentes (fictıcias)

no espectro desse sinal. Na pratica isso se traduz na forma de um ruıdo de fundo e

o espectro gerado a partir dessa janela sofre mudancas em relacao ao sinal original –

esse efeito e chamado de vazamento espectral [34]. A Figura 2.3a mostra um numero

inteiro de perıodos amostrado em um intervalo e seu espectro correspondente, com as

componentes de frequencia bem definidas nas linhas de resolucao da FFT, enquanto

a Figura 2.3b mostra um sinal amostrado em um intervalo de amostragem nao

multiplo de seu perıodo, de modo que sua potencia e espalhada por todo o espectro

de potencia (ha um vazamento de energia a partir de uma linha de resolucao da

FFT em todas as outras linhas).

9

Page 32: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(a) Entrada periodica no intervalo

de amostragem

(b) Entrada nao periodica no inter-

valo de amostragem

Figura 2.2: FFT – problema de continuidade de um sinal

(a) Intervalo de amostragem multiplo do sinal de entrada

(b) Leakage em intervalo de amostragem nao multiplo do sinal de entrada

Figura 2.3: FFT – problema de vazamento espectral

10

Page 33: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

A multiplicacao do intervalo de amostragem por uma funcao que seja zero nas

extremidades do intervalo e tenha valores significativos na regiao central produzira

um efeito de aproximacao do espectro esperado para cada intervalo de amostragem,

corrigindo o problema de descontinuidade nas extremidades do intervalo de amos-

tragem. A Figura 2.4 mostra como a FFT passa a assumir o sinal de entrada dentro

de um intervalo apos o janelamento.

Figura 2.4: Efeito do janelamento no sinal de entrada

2.2 Janelamento na Modelagem de Filtros FIR

O termo filtragem refere-se ao processamento de um sinal no domınio do tempo ou

da frequencia, o qual em um conceito mais estrito, e realizado por um sistema que

permite a passagem de certos componentes de frequencia e rejeita totalmente todos

os outros. Porem num contexto mais amplo, qualquer sistema que modifica certas

frequencias em relacao a outras frequencias e um considerado um processo de filtra-

gem [35]. Os filtros digitais podem ser caracterizados, quanto ao comportamento,

em filtros FIR e filtros Infinite Impulse Response (IIR) [35].

Para um filtro ser implementado em DSP ou hardware especıfico, frequentemente

e feita a opcao pelo uso de filtros FIR ao inves de IIR [36]. O metodo de desenvol-

vimento de um filtro FIR, a partir de um filtro IIR ideal, envolve a aproximacao da

resposta ao impulso ideal por um filtro que possa ser realizado na pratica. Ha muitas

11

Page 34: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

tecnicas disponıveis e todas elas sao baseadas em algum criterio de aproximacao ou

quao bem seja a resposta do filtro desenvolvido, em comparacao a resposta desejada

do filtro. O modelo mais popular e a tecnica de otimizacao direta. O metodo mais

simples, porem, e o truncamento da resposta ao impulso ou metodo de janelas[35].

A resposta em frequencia de um filtro passa baixa ideal e dada pela Equacao 2.1

e sua resposta ao impulso e dada pela Equacao 2.2.

Hd(ejω) =

1, 0 ≤ |ω| ≤ ωc

0, ωc < |ω| < π

(2.1)

hd[n] =sin(ωcn)

πn,−∞ ≤ n ≤ ∞ (2.2)

A Figura 2.5 mostra a resposta em frequencia de um filtro passa-baixa ideal e

sua resposta ao impulso.

Figura 2.5: Filtro ideal e sua resposta ao impulso

Toda resposta desejada de um filtro Hd(ejω) para filtro nao recursivo e uma

funcao periodica em ω e perıodo 2π, podendo ser representada como uma serie de

Fourier [2] dada pela Equacao 2.3.

Hd(ejω) =

∞∑n=−∞

hd[n]e−jωn (2.3)

Os coeficientes da serie de Fourier podem ser reorganizados como sendo igual a

resposta ao impulso de um filtro digital, como na Equacao 2.4.

hd[n] =1

∫ π

−πHd(e

jω)ejωdω (2.4)

Em geral, a funcao hd[n] projetada e de tamanho infinito e nao-causal. O metodo

mais simples de modelar um filtro FIR e truncar a serie de Fourier por um tamanho

desejado para o filtro de N amostras (N ımpar) – Figura 2.6a – e entao aplicar um

12

Page 35: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

deslocamento de N−12

amostras para a direita para torna-lo causal – Figura 2.6b.

Desse modo, e obtida a resposta ao impulso do filtro desejado, definida pela Equacao

2.5.

(a) Truncamento da resposta ao impulso

(b) Resposta ao impulso deslocada de N−12 amostras

Figura 2.6: FIR – truncamento e deslocamento

h[n] =

1, 0 ≤ n ≤ N − 1

0, diferente.

(2.5)

A equacao 2.5 e uma operacao de janelamento retangular, e a resposta ao impulso

do filtro pode ser reescrita pela Equacao 2.6:

h[n] = hd[n]ω[n] (2.6)

onde ω[n] e uma janela retangular definida por 2.7:

ω[n] =

1, 0 ≤ n ≤ N − 1

0, diferente.

(2.7)

13

Page 36: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

A compreensao das caracterısticas da resposta em frequencia do filtro projetado

e mais imediata quando analisado o efeito do janelamento no domınio da frequencia.

Esta operacao e representada por uma convolucao de Hd(ejω) com a resposta em

frequencia de uma janela retangular dada pela Equacao 2.8 – graficamente repre-

sentada pela Figura 2.7.

H(ejω) =1

∫ π

−πHd(e

jθ)W (ej(ω−θ))dθ (2.8)

Figura 2.7: Efeito do janelamento no sinal de entrada

Fonte: [1]

A resposta em frequencia resultante de um filtro passa-baixa, como a da Figura

2.7, nao e plana, uma vez que tem ondulacoes na banda de passagem e na banda de

rejeicao – a transicao entre as bandas de passagem e de rejeicao nao e brusca e ha

uma significativa banda de transicao entre elas. Estas caracterısticas do filtro sao

decorrentes do truncamento direto do IIR [1].

Quando Hd(ejω) e convoluıdo com a resposta da janela, o lobulo principal da

janela resulta em uma banda de transicao entre as bandas de passagem e de rejeicao.

Os lobulos laterais da janela dao origem as ondulacoes na banda de passagem e na

banda de rejeicao. Dessa forma, a largura da transicao de um filtro FIR passa-

baixa, desenvolvido segundo o metodo de janelas, e proporcional a largura do lobulo

principal da janela, enquanto as ondulacoes sao proporcionais aos nıveis dos lobulos

laterais da janela [1]. Os efeitos dessas caracterısticas e que determinam a escolha

da classe de janelas que melhor se adeque ao filtro projetado.

14

Page 37: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

2.3 Ajuste de Curvas e Interpolacao Linear

Um dos objetivos do IP desenvolvido e a diminuicao da area ocupada pelo circuito.

Uma forma direta de atingir tal objetivo e atraves da reducao do conjunto de dados

utilizados para representar os pontos que formam uma funcao de janelamento. Neste

contexto, podem ser utilizadas tecnicas de ajustes de curvas que, por meio de um

escopo reduzido de pontos fundamentais, podem prover dados com uma aproximacao

satisfatoria do conjunto completo de pontos da funcao [37].

O ajuste de curvas e uma tecnica que nao garante exatidao, mas torna possıvel

descrever uma gama enorme de curvas a partir de aproximacoes. A interpolacao

e a tecnica utilizada para o ajuste de curvas onde os dados da funcao devem ser

mais exatos e conhecidos[38, 39]. Por outro lado, a tecnica da regressao e utilizada

onde os dados exibem um grau de erro ou ruıdo significativos e a curva reconstruıda

representa apenas uma tendencia geral dos dados [38, 39]. Devido a necessidade de

maior precisao, este trabalho adotou a tecnica de interpolacao.

A interpolacao e um metodo que permite construir um novo conjunto de pontos

de uma curva a partir de um conjunto discreto de dados, particionados em uma

sequencia de funcoes simples [39]. Ao utilizar funcoes mais simples para estimar

pontos de uma funcao mais complexa, surge um erro inerente que varia de acordo

com o metodo de interpolacao utilizado – contudo, em muitos casos, o ganho na

simplificacao chega a ser mais importante do que a perda de precisao nos resultados.

Dentre os metodos de interpolacao, o mais simples e o linear, segundo o qual se

aplica interpolacao polinomial de primeira ordem, aproximando uma determinada

curva por meio da juncao de diversas funcoes de primeiro grau [38]. O nıvel de

aproximacao que a interpolacao linear pode garantir e dependente da quantidade de

pontos escolhidos para compor as retas que irao montar o formato da curva. Numa

abstracao integrativa, quanto mais pontos presentes, mais as retas se aproximarao da

curva, mas tambem mais dados serao gastos para descreve-la [37]. Uma interpolacao

polinomial de ordem n e dada pela equacao geral:

yn = a0 + a1x+ ......+ anxn (2.9)

onde a0, a1, ......, an sao n+ 1 numeros reais constantes e podem ser obtidos a partir

de n + 1 equacoes lineares. A equacao 2.9 pode representar o ajuste de qualquer

15

Page 38: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

funcao contendo n + 1 pontos discretos de coordenadas (xn, yn). Na interpolacao

linear, essa equacao torna-se:

y = a0 + a1x (2.10)

e tem como imagem geometrica uma reta onde x e y sao pontos pertencentes a

mesma, a1 e o coeficiente angular e a0 o coeficiente linear da reta. A Figura 2.8a

mostra um exemplo de conjunto de pontos em uma senoide, enquanto a Figura 2.8b

mostra a correspondente construcao da senoide atraves de interpolacao linear desse

conjunto de pontos.

(a) Pontos da senoide (b) Interpolacao linear dos pontos

Figura 2.8: Remontagem de uma funcao a partir de um conjunto de retas

2.4 Aritmetica em Ponto Fixo

Quando se trata da representacao de dados em sistemas varios fatores sao considera-

dos para identificar os requisitos mais adequados para uma determinada aplicacao.

Os dados podem ser representados em ponto flutuante, forma de representacao que

possui uma faixa dinamica muito maior e erro relativo constante, ou podem ser re-

presentados em ponto fixo, forma que utiliza muito menos hardware e e mais rapido

[40]. A representacao em ponto flutuante e usada em todos os processadores de

uso geral, DSPs mais complexos e Graphics Processing Unit (Unidade de Proces-

samento Grafico) (GPU), enquanto a representacao em ponto fixo e usada como o

metodo computacional basico principalmente em ASICs, FPGAs e DSPs de menor

complexidade[41].

16

Page 39: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Os engenheiros da area de sistemas levam em conta a facilidade de projeto, o

desempenho necessario e o custo de fabricacao, na escolha da representacao dos

dados. O custo de projeto pode ser maior para a representacao em ponto fixo,

devido a dificuldade de implementacao de algoritmos, mas o custo do produto final

e geralmente menor, principalmente em aplicacoes de alto volume [40].

Nossa proposta utiliza como representacao dos dados a notacao de ponto fixo

em formatacao de numero Q, mais usada em aplicacoes de processamento digital de

sinais correlatas ao escopo tratado [42, 43, 44].

A representacao em ponto fixo conhecida como formato Q (ou formato de numero

binario fracionario) [36] introduz a ideia de um ponto para orientacao das partes

inteira e fracionaria, similar ao ponto utilizado na representacao dos numeros reais.

Esse ponto e chamado de ponto Q. O numero de dıgitos binarios (bits), tambem

conhecido como tamanho da palavra (WL, do ingles word length) de um numero no

formato Q, e formado pelo numero de bits que representam a parte inteira (Qi) e

pelo numero de bits que representam a parte fracionaria (Qf) (Figura 2.9).

Figura 2.9: Ponto Q divide as partes de uma palavra em formato Q

2.4.1 Propriedades de Representacao no Formato Q

Dentre os principais conceitos relacionados com a representacao de um numero em

ponto fixo, estao: a precisao; o intervalo (relacionado a analise da parte inteira do

numero); a resolucao e a acuracia (estes ultimos relacionados a analise da parte

fracionaria do numero). Estes conceitos sao detalhados a seguir.

O termo precisao e o numero maximo de bits representaveis, nao-zeros. Para a

representacao em ponto fixo Q, precisao e o mesmo que tamanho da palavra.

Intervalo e a diferenca entre as maiores representacoes numericas positiva e ne-

gativa de uma variavel real α, sendo, portanto, no domınio da representacao Q,

o que determina o numero de bits necessarios de Qi. Ha dois metodos que podem

ser utilizados para calcular Qi, dependendo do universo de representacao da variavel

17

Page 40: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

real: numeros com sinal ou sem sinal. A representacao em formato Q de um numero

real sem sinal e dada pela equacao:

N[base10] =1

2WL

WL−1∑i=0

2ibi (2.11)

onde o fator 2−WL representa o ajuste da parte fracionaria do numero Q sem si-

nal, enquanto a segunda parte (somatorio) representa um valor inteiro. A palavra

correspondente na base binaria tem o formato da Figura 2.10.

Figura 2.10: Representacao binaria de ponto fixo Q sem sinal

Por outro lado, a representacao Q de um numero real com sinal usa complemento

de dois – veja equacao 2.12. A palavra correspondente na base binaria tem o formato

dado na Figura 2.11.

N[base10] =1

2WL[−2WL−1bWL−1 +

WL−1∑i=0

2ibi] (2.12)

Figura 2.11: Representacao binaria de ponto fixo Q com sinal

18

Page 41: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Para numeros sem sinal, os valores maximo e mınimo do intervalo de variacao

de α sao dados pela Equacao 2.13, a qual pode ser reescrita na forma da Equacao

2.14 para calcular Qi.

0 ≤ α ≤ (2Qi − 1) (2.13)

Qi > (log2(α)) (2.14)

A Equacao 2.14 pode ser generalizada pela Equacao 2.15:

Qi = floor(log2(α) + 1) (2.15)

onde α e a variavel real a ser convertida em Q e floor e uma funcao que executa o

arredondamento do valor para o inteiro mais proximo e menor.

Para numeros com sinal, os valores maximo e mınimo do intervalo representado

sao dados pela Equacao 2.16, a qual pode ser reescrita na forma da Equacao 2.17

para calcular Qi.

(−2Qi−1) ≤ α ≤ (2Qi−1 − 1) (2.16)

Qi > log2(max(abs[αmax, αmin])) + 1 (2.17)

Resolucao e a definicao da menor magnitude diferente de zero representavel por

uma variavel real. A resolucao para uma variavel em formato Q e definida pelo seu

valor Qf. O valor real de cada magnitude (passo) e dado pela equacao 2.18.

Res = 2−Qf (2.18)

Por outro lado, a magnitude da maxima diferenca entre um valor real e sua

representacao e definida como acuracia. Em representacao Q, a relacao que define

a acuracia corresponde a metade do valor da resolucao da representacao.

Dois numeros em formato Q deverao possuir a mesma representacao para se-

rem adicionados, isto e, ter valores de Qf iguais. Isso significa que os pontos Q

dos numeros devem estar alinhados – para nao haver perdas, a representacao do

resultado da soma deve ter no mınimo os maiores valores de Qi e Qf dentre os dois

operandos. Para alinhamento dos pontos, o operando que possuir menor valor de

Qf devera ser deslocado para a esquerda, em grandeza da diferenca entre os valores

19

Page 42: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

de Qf dos operandos. Por exemplo, a Figura 2.12 mostra a soma sem sinal de um

termo (5.75) no formato Q3.3 com outro termo (6.5) no formato Q4.2, objetivando

armazenar o resultado (12.25) em uma representacao Q4.4 tomada arbitrariamente.

Figura 2.12: Soma em ponto fixo sem sinal

Quando as operacoes sao realizadas em valores com sinal em complemento de

dois, o operando com menor Qi tera seu bit de sinal estendido ate o Qi do maior

operando, mantendo assim a consistencia da soma. A Figura 2.13 mostra a soma

com sinal do valor −2.25 no formato Q3.3 e do valor 6.5 no formato Q4.2, resultando

em 4.25 na representacao Q4.4 alvo.

Figura 2.13: Soma em ponto fixo com sinal

O produto da multiplicacao de dois numeros Q tem como resultado outro numero

Q, com tamanho de palavra equivalente a soma dos tamanhos dos dois numeros

multiplicados. Diferente da adicao, nao ha a necessidade de alinhamento dos pontos

Q – contudo, um deslocamento e necessario para ajustar o resultado a representacao

em formato Q esperada. A figura 2.14 mostra uma multiplicacao de Q3.3 e Q4.2,

com o resultado sendo armazenado em um valor de representacao Q4.3.

20

Page 43: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 2.14: Multiplicacao em ponto fixo

2.5 Analise de Erro

No escopo desse trabalho, uma das maneiras como o erro pode ser introduzido no

sistema e atraves das aproximacoes inerentes da interpolacao linear. Outros erros

podem ser introduzidos atraves da representacao discreta de numeros reais usando

ponto fixo.

Como dito na sessao 2.3, as tecnicas de ajuste de curvas apresentam uma estima-

tiva para pontos intermediarios a partir de um conjunto discreto de dados, os pontos

intermediarios podendo diferir do valor exato dos pontos reais. Dessa maneira, e

importante mensurar o nıvel de aproximacao desses pontos e avaliar a trajetoria

das curvas/retas em relacao ao conjunto real de dados. Neste contexto, [38] indica

metricas de analise e mensuracao de erros para descrever estatisticamente o nıvel

de acuracia, usando os conceitos de erro absoluto, erro relativo e erro percentual,

descritos nas equacoes 2.19, 2.20 e 2.21.

Dado um valor qualquer v e seu valor aproximado vaprox, o erro absoluto e dado

por

ε = |v − vapprox| , (2.19)

se v 6= 0, o erro relativo η e dado por

η =ε

|v|=

∣∣∣∣v − vapproxv

∣∣∣∣ =∣∣∣1− vapprox

v

∣∣∣ , (2.20)

e o erro percentual δ e dado por

δ = 100%× η = 100%× ε

|v|= 100%×

∣∣∣∣v − vapproxv

∣∣∣∣ . (2.21)

Em outras palavras, o erro absoluto e o modulo da diferenca entre o valor exato

e a aproximacao, o erro relativo e o erro absoluto dividido pela magnitude do valor

21

Page 44: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

exato e o erro percentual e o erro relativo expresso em termos de porcentagem. A

avaliacao da porcentagem de erro, em relacao aos diversos tipos de interpolacao

e regressao, e fundamental para definir a escolha da curva de aproximacao ideal

para descrever um determinado conjunto de pontos [39]. Em termos praticos, e

necessario observar qual a finalidade da aplicacao, sua margem de tolerancia a erros

e seu esforco computacional.

2.5.1 Relacao Sinal-Ruıdo

Signal-to-Noise Ratio (Relacao Sinal-Ruıdo) (SNR) e a a relacao entre a potencia

de um sinal (ou informacao significativa) e a potencia do ruıdo de fundo (ou sinal

indesejado):

SNR =PsinalPruido

(2.22)

onde P e a potencia media e ambas as potencias sao aferidas em pontos equivalentes

do sistema.

Muitos sinais tem uma faixa dinamica muito grande e, devido a isso, sao frequen-

temente expressos usando escala logarıtmica em decibeis (dB). Em sua definicao, essa

escala expressa a potencia do sinal, a potencia do ruıdo e a SNR pelas Equacoes

2.23, 2.24, 2.25:

Psinal,dB = 10 log10(Psinal) (2.23)

Pruido,dB = 10 log10(Pruido) (2.24)

SNRdB = 10 log10(SNR) (2.25)

A maxima relacao sinal-ruıdo em uma representacao digital e determinada pelo

numero de bits usados. Isso ocorre porque o nıvel mınimo de ruıdo e o erro causado

pela quantizacao do sinal, conhecido como ruıdo de quantizacao. Esse ruıdo e nao

linear e dependente do sinal amostrado, podendo ser modelado como um ruıdo

adicionado ao sinal analogico [45]. Essa maxima relacao sinal-ruıdo supoe um sinal

perfeito de entrada, o que geralmente nao e o caso. Sinais costumam ser ruidosos e,

dessa forma, o ruıdo do sinal e maior que o ruıdo de quantizacao. Para representacao

binaria em ponto fixo, assumindo um sinal de entrada perfeito e com distribuicao

22

Page 45: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

uniforme dos valores, o ruıdo de quantizacao e um sinal aleatorio uniformemente

distribuıdo, com amplitude de pico-a-pico correspondente a um nıvel de quantizacao,

sendo definido pela Equacao 2.26.

SNRdB = 20 log10(2n) ≈ 6.02 · n (2.26)

Esta relacao e muito usada, por exemplo, em aplicacoes de sinal de audio. Cada bit

de quantizacao extra aumenta a faixa dinamica em cerca de 6 dB de potencia.

23

Page 46: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 3

Fluxo de Desenvolvimento de CIs

Digitais

O fluxo de projeto de CIs digitais pode ser dividido entre: front-end, que engloba

atividades relativas as especificacoes, modelagem do sistema e projeto logico do

hardware, alem de processos paralelos de testes, validacao e verificacao dessas etapas;

back-end, que se refere a atividades de implementacao fısica do projeto logico criado

no front-end, assim como testes de verificacao do desempenho e fabricacao.

A parte inicial do fluxo de CIs digitais e comum para implementacoes em ASIC

e em FPGA – o fluxo se torna especıfico so a partir do momento que lida com

etapas de processo fısico, como esbocado na Figura 3.1. A seguir sao descritas todas

as etapas do fluxo de projeto, desde o RTL ate o GDSII, para implementacoes de

projetos em ASIC.

Figura 3.1: Macro etapas do fluxo de projeto de CIs

24

Page 47: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

3.1 Fluxo ASIC

O fluxo de projeto em ASIC passou por mudancas significativas nas suas varias eta-

pas nos ultimos 25 anos, devido ao continuado decaimento da escala de tecnologias

Complementary Metal-Oxide-Semiconductor (CMOS). Isso levou o fluxo de projeto

a partir de um conjunto de etapas separadas para uma nova abordagem totalmente

integrada, onde ciclos e realimentacoes de informacoes dentro delas sao necessarias

para vencer o surgimento de desafios, como o vazamento de energia (power leakage),

a variabilidade e confiabilidade do CI. De maneira bem simplificada, o fluxo ASIC

se da nas seguintes etapas [62]:

• Projeto em Alto Nıvel (Nıvel de sistema)

– Levantamento das Especificacoes

– Modelagem do Projeto em C, C++, SystemVerilog ou Matlab

– Selecao de IPs e particionamento Hardware/Software

• Projeto RTL

– Descricao Comportamental/Estrututral em Verilog ou VHDL

• Verificacao do Projeto

– Sistema

– Logica

– Temporizacao

• Projeto Fısico

– Floorplanning

– Placement

– Routing

– Insercao do Clock

• Verificacao de Desempenho e Manufaturabilidade

– Extracao de Parasitas

25

Page 48: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

– Verificacao de Integridade de Sinais e Temporizacao

– DRC/LVS

3.2 Projeto em Alto Nıvel (Nıvel de Sistema)

Essa etapa do fluxo envolve a criacao do escopo geral do projeto do CI e onde

se estima os principais aspectos do projeto: area, frequencia de operacao, tensao,

dissipacao de potencia, quantidade de pinos de entrada e saıda, encapsulamento e

porcentagem de yield, entre outros. Esses aspectos sao considerados dentro do plano

de negocio do projeto e trazem em discussao trade-offs como consumo vs. velocidade,

velocidade vs. area ou area vs. tempo de desenvolvimento. Devido ao projeto se

encontrar em estado inicial de abstracao, as mudancas em aspectos importantes

sao geralmente mais faceis de serem feitas. Essa etapa do fluxo e dividida em

levantamento das especificacoes e modelagem da microarquitetura.

3.2.1 Especificacao

A especificacao e um conjunto explıcito de exigencias a serem satisfeitas pelo projeto

do chip – e a fase onde sao definidos os parametros importantes do projeto que se

planeja desenvolver. As especificacoes sao explicitadas em um conjunto de arquivos

e representacoes que podem ser textuais, graficas ou modelos em software (C++,

SystemVerilog, Matlab etc). Em geral, esses documentos possuem informacoes sobre

os requisitos do produto, visao geral do sistema e suas funcionalidades, descricoes de

fluxo de dados, descricoes de entrada e saıda, descricao funcional dos blocos princi-

pais, mapa de memoria e descricoes dos registradores. Alem disso, sao relacionados

documentos que dizem respeito as verificacoes e testes que devem existir nas etapas

do fluxo.

3.2.2 Microarquitetura

A microarquitetura implementa as especificacoes e define mecanismos e estruturas

especıficas para alcancar essa implementacao [72]. Os blocos definidos nas especi-

ficacoes sao detalhados nesta etapa, inclusive com particionamento em blocos inter-

nos menores. A microarquitetura e utilizada pelos engenheiros como um modelo de

26

Page 49: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

referencia para o desenvolvimento RTL dos blocos, fornecendo varias informacoes,

tais como especificacao de interfaces em nıvel de bloco, especificacao de novas funcoes

a serem implementadas, interfaces de comunicacao e de requisitos para os engenhei-

ros que desenvolvem outros blocos, avaliacoes do desempenho real (em comparacao

com metas especificadas), dentre outras. Dados como tamanhos de barramentos,

latencia, paralelismos, pipelines, tamanho de memorias e area total sao algumas das

informacoes que tambem podem ser descritas pela microarquitetura.

3.3 Projeto Logico

A fase de projeto logico implementa a descricao RTL do chip baseada na especi-

ficacao da arquitetura, definida na fase de projeto em alto nıvel e projetada na fase

de microarquitetura. Nesta fase, inicialmente se escreve codigo em linguagem HDL

e uma verificacao funcional e realizada, para garantir que o codigo HDL esteja de

acordo com as especificacoes. Em seguida, e feito o processo de sıntese logica do

RTL e a verificacao formal do resultado dessa sıntese, garantindo conformidade en-

tre o que foi escrito e o que foi mapeado. A seguir sao dados detalhamentos dessas

etapas do projeto logico.

3.3.1 Codificacao RTL

As linguagens HDL mais comuns sao Verilog e VHSIC Hardware Description Lan-

guage (VHDL) – ambas igualmente capazes de proporcionar construcoes robustas

na descricao de funcionalidades mais complexas. As descricoes de projetos ASIC

usando essas linguagens sao feitas em 3 diferentes nıveis de abstracao: Comporta-

mental, RTL e Estrutural.

A modelagem comportamental constitui o mais alto nıvel de abstracao. Ela ape-

nas captura o comportamento desejado do bloco e nao se preocupa com a estrutura

do projeto, os elementos combinacionais ou sequenciais utilizados, o sinal de clock

e as restricoes de tempo envolvidos. Na Figura 3.2 ha um exemplo de descricao

comportamental em linguagem Verilog.

A descricao RTL representa o funcionamento do circuito digital, tal que o com-

portamento e definido em termos do fluxo de sinais entre registradores, assim como

27

Page 50: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 3.2: Descricao comportamental Verilog de um somador de 6 bits

as operacoes executadas por circuitos combinacionais. Neste modelo, o projeto in-

teiro e dividido em registradores e projeta-se o fluxo de informacoes entre estes

registradores a cada ciclo de clock. Normalmente, uma descricao RTL divide o pro-

jeto em registradores e os blocos logicos que os unem, como ilustrado na Figura 3.3.

A descricao RTL capta o fluxo de dados, mas nao consegue dar uma boa descricao

do fluxo de controle.

Figura 3.3: Modelo de fluxo de dados entre registradores e celulas logicas

A modelagem estrutural descreve o circuito em forma de instancias de celulas e da

interconexao entre tais celulas, como o exemplo simples da Figura 3.4. A descricao

de modelos estruturais consiste de uma rede de instancias de portas logicas (netlist)

e registradores descritos por uma biblioteca de tecnologia. Essa biblioteca consiste

da descricao de varias celulas de funcionalidade simples (AND, OR, NOT) e algumas

mais complexas. A descricao de uma celula inclui suas caracterısticas de geometria,

atraso de propagacao de sinal e consumo de energia.

A descricao em RTL representa um nıvel de abstracao intermediario entre a des-

cricao comportamental do circuito e a descricao estrutural. O modelo comportamen-

tal possui estruturas que podem nao ser sintetizaveis (lacos e atrasos, por exemplo)

nem transformadas diretamente em uma netlist em nıvel de portas logicas. Ja a ne-

28

Page 51: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 3.4: Modelo estrutural com descricao de portas logicas

tlist, no caso de blocos complexos, contem um volume de informacoes impraticavel

de tratamento pelo engenheiro projetista – a viabilidade de tratamento de tais blo-

cos somente e possıvel atraves de recursos computacionais realizados pela sıntese

logica. Devido a isso, a fase de codificacao RTL se torna uma etapa imprescindıvel

no fluxo ASIC.

Muitas tecnicas de codificacao RTL sao necessarias para se lidar com os princi-

pais aspectos de desempenho, consumo e roteabilidade dos blocos desenvolvidos. O

desempenho e melhorado a partir da identificacao dos caminhos crıticos e mudancas

no RTL, a fim de diminuir a profundidade da logica. O consumo pode ser melhorado

com tecnicas que facilitem a insercao de clock-gating e power-gating, quando possıvel.

Ja a roteabilidade pode ser identificada e aperfeicoada atraves da reestruturacao de

hierarquias de RTL mais congestionadas.

Em geral, essa etapa do fluxo requer bastante tempo de desenvolvimento, de-

vido a necessidade de garantir a exatidao da logica. O produto desta fase e um

codigo hierarquico RTL que fomenta as etapas posteriores de sıntese logica e de

floorplanning.

3.3.2 Sıntese logica

A sıntese logica e a etapa do fluxo ASIC que tem como objetivo mapear a descricao

RTL do projeto para uma netlist, utilizando celulas logicas presentes na biblioteca

da tecnologia de fabricacao escolhida. Atraves de restricoes (constraints) fornecidas

pelo projetista, esta etapa busca atingir metas de desempenho, consumo de energia e

area, o que esta diretamente relacionado ao menor uso de elementos logicos possıvel.

O processo de sıntese logica e dividido em etapas.

Primeiro, a descricao RTL e compilada em formato de netlist generica, indepen-

29

Page 52: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

dente da tecnologia de processo. Implementacoes de funcoes logicas que definem o

comportamento de um CI, na pratica, sao feitas atraves de redes de multiplos nıveis

de elementos logicos. Dessa forma, a partir do RTL, ferramentas de sıntese logica

elaboram redes booleanas de multiplos nıveis correspondentes as funcoes logicas.

Em seguida, a netlist generica e submetida a analise logica para identificar e

eliminar redundancias e equilibrar cones logicos das redes booleanas. Em seguida,

a netlist generica otimizada e mapeada para portas dependentes da tecnologia. O

mapeamento e influenciado por fatores como as portas disponıveis (funcoes logicas)

na biblioteca de tecnologia, a medida de forca de conducao (drive strenght) e carac-

terısticas de consumo de energia, de atraso e de area de cada porta.

Por fim, a netlist mapeada tem sua temporizacao (timing) analisada atraves

da analise estatica de tempo Static Timing Analysis (STA), o que permite corrigir

caminhos crıticos para satisfazer as restricoes de tempo.

A saıda da fase de sıntese logica e uma netlist mapeada na tecnologia alvo, com

requisitos alcancados (ainda estimados) de area, desempenho e consumo; arquivos

com informacoes de restricoes de timing do projeto, designados Synopsys Design

Constraints (SDC), e com restricoes de consumo do projeto, designados Common

Power Format (CPF); e relatorios de area, consumo e desempenho.

A sıntese pode gerar (por alguma falha durante o processo) uma netlist incoerente

com a descricao funcional presente no RTL. Para garantir a exatidao do processo

de sıntese, faz-se necessario verificar se as duas especificacoes sao funcionalmente

equivalentes, o que e feito atraves de uma verificacao formal de equivalencia logica,

dita Logical Equivalence Check (LEC).

Com o crescimento da complexidade dos chips e dos processos de desenvolvi-

mento, hoje em dia fornecedores de ferramentas de Computer Aided Design (CAD)

possuem solucoes poderosas para analise formal de equivalencia. Apesar do uso mais

comum do LEC ocorrer na analise entre o RTL pre-sintese e a netlist pos-sintese,

etapas intermediarias do fluxo podem ser verificadas para garantir equivalencia entre

as netlist envolvidas. Tal verificacao pode detectar erros introduzidos por alteracoes

de engenharia aplicadas as netlists (para a implementacao de atualizacoes finais de

temporizacao ou funcionalidade), ou inconformidades oriundas de erros na propria

ferramenta de sıntese (durante as etapas de insercao de estruturas de testes no cir-

30

Page 53: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

cuito ou na passagem entre as etapas do fluxo como um todo).

3.4 Projeto Fısico

O projeto fısico de um circuito e a etapa do fluxo ASIC posterior a sıntese logica e

anterior a fabricacao do CI. E durante o projeto fısico que a descricao dos componen-

tes e ligacoes logicas presentes na netlist mapeada para a tecnologia e transformada

em uma representacao geometrica, conhecida como leiaute, do CI que devera ser fa-

bricado. Para que seja realizada, essa fase inclui as seguintes etapas: floorplanning,

particionamento logico, planejamento de potencia, placement, sıntese da arvore de

clock, roteamento e etapas de analise de signoff. A sequencia pratica dessas etapas

e vista na figura 3.5.

3.4.1 Floorplanning

O projeto fısico comeca com a realizacao do floorplan. Esse termo tem origem na

arquitetura classica e basicamente denota a elaboracao de uma “planta baixa”do

leiaute, decorrente dos processos de posicionamento dos blocos/macros (tais como

PADs, celulas de entrada e saıda, blocos de memorias e circuitos analogicos), parti-

cionamento do projeto e planejamento de distribuicao energetica [67, 68].

O Floorplanning deve identificar as estruturas que serao colocadas juntas, alo-

cando espaco para elas, de tal forma que os requisitos de area total disponıvel,

desempenho exigido e roteamento de fios seja o mais otimizado possıvel. Essa etapa

e otimizada atraves da realizacao de varias iteracoes, nas quais o projetista pode

rever as estimativas dos requisitos e posicionamentos dos blocos, com base nos resul-

tados e realimentacoes da etapa de sıntese logica, a qual, por sua vez, pode utilizar

do flooplaning para melhorar as estimativas e a analise de caminhos crıticos. Adi-

cionalmente, o Floorplanning define a razao de aspecto da area de die do projeto e

cria as fileiras (com respectivas faixas de alimentacao) nas quais serao alocadas as

celulas logicas padrao (posteriormente pela etapa de placement).

A Figura 3.6 mostra um esboco dos principais aspectos desta etapa.

31

Page 54: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 3.5: Diagrama de etapas do fluxo ASIC da netlist ao GDSII

32

Page 55: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 3.6: Alocacao das areas do core e de E/S em um leiaute

3.4.2 Particionamento

O particionamento e um processo de dividir o chip em pequenos blocos funcionais,

os quais sao tratados localmente para, em seguida, serem agrupados no projeto final

– chamado de nıvel de topo. Para grandes projetos, pratica-se normalmente uma

abordagem hierarquica que usa o paralelismo nas atividades para reduzir o time-to-

market e tornar mais facil o fechamento dos requisitos de regioes independentes no

chip. Esta separacao fısica do projeto e diferente da hierarquia logica imposta pela

estruturacao de linguagens HDL, embora geralmente siga os mesmos limites, de tal

forma que existe um mapeamento entre hierarquia logica e fısica. O particionamento

logico e aquele feito na fase de projeto RTL, quando baseia-se nas funcoes dos

modulos e blocos do projeto, onde normalmente e determinado pelo metodo de

codificacao RTL de cada projetista. O particionamento fısico e aquele que baseia-

se nas consideracoes de backend, tais como placement de celulas logicas e de E/S,

roteamento e temporizacao associada aos blocos.

A abordagem hierarquica de particionamento lida bem com os requisitos de-

finidos nas fases de especificacao e microarquitetura, tais como a seguranca, as

limitacoes de ferramentas de CAD em relacao a enorme quantidade de portas, a

obtencao de IP somente em etapas finais do projeto, os diferentes modos de energia

etc. Os blocos hierarquicamente particionados sao implementados de forma inde-

pendente e tem seus proprios requisitos em termos de placement, roteamento, timing

33

Page 56: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

e integridade de sinais.

3.4.3 Planejamento de Energia

A distribuicao da alimentacao de energia por todo o chip e um fator crıtico para o

correto funcionamento do leiaute apos fabricacao. Ela afeta a temporizacao quando

ha uma queda muito grande nos nıveis nominais de tensao nas trilhas (IR Drop)

[70, 71, 72] ou na presenca de um excessivo aumento no valor de aterramento. Alem

disso, ela pode provocar falhas a longo prazo, com a deterioracao de trilhas pelo

efeito de eletromigracao [73, 74].

O planejamento de potencia e uma etapa que se propoe a projetar uma rede de

distribuicao de energia global, que forneca alimentacao e aterramento apropriados a

todas as instancias do projeto. Garantir o numero suficiente de PADs de alimentacao

e terra e garantir potencias adequadas, aneis (power rings) bem dimensionados ao

redor do die e de macros, e trilhas (power stripes) de linhas de alimentacao para

distribuir a potencia por todas as celulas padroes sao acoes que garantem um bom

planejamento de energia.

A rede de distribuicao pode ser feita com power rings (Figura 3.7a) bem largos ao

redor do core e outros de dimensoes menores nos blocos, podendo ser compartilhados

entre si. Este metodo requer menos recursos de roteamento, porem e pouco flexıvel

caso haja necessidade de reposicionamento de algum bloco.

Outra maneira que a rede de distribuicao pode ser feita e atraves de uma grade

uniforme de stripes conhecida como Mesh (Figura 3.7b). Esse metodo distribui

melhor a energia, porem aumenta consideravelmente o roteamento.

3.4.4 Placement

O placement e a parte do fluxo de projeto fısico que atribui localizacoes exatas para

os varios componentes do circuito, dentro da area do nucleo do chip [63]. Para

as celulas logicas padrao, o placement e feito utilizando-se um altura constante,

disposta em fileiras atraves de toda a extensao do nucleo do chip. As celulas sao

dispostas nas fileiras, podendo ter largura variavel e ser posicionadas coladas umas

as outras.

34

Page 57: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(a) Planejamento de energia com

block rings

(b) Planejamento de energia em

rede Mesh

Figura 3.7: Topologias de planejamento de energia em projetos ASIC

O placement deve ser realizado otimizando uma serie de questoes, para garantir

que um circuito corresponda as exigencias de desempenho:

• Comprimento total da soma dos fios: Minimizar o tamanho dos fios, para que

a soma do comprimento de todos os fios no projeto seja reduzida, e o principal

objetivo de um bom placement. Isso resulta em menor tamanho do chip,

menor consumo de energia e menor atraso dos sinais (ao reduzir as distancias

de propagacao).

• Temporizacao: O ciclo de clock de um chip e determinado pelo atraso do seu

caminho crıtico (mais longo). O placement deve considerar posicionamentos

no projeto que melhorem a temporizacao desses caminhos.

• Congestionamento: Alem de minimizar o tamanho total dos fios, e necessario

satisfazer a passagem do roteamento dentro das regioes com alta densidade

de fios locais. Uma regiao congestionada pode levar a excessivos desvios de

roteamento ou fazer com que seja impossıvel rotear todas as ligacoes.

• Potencia: Convem distribuir as celulas de componentes locais, de modo a redu-

zir o consumo geral de energia, aliviar indesejaveis pontos quentes (hotspots)

e suavizar os gradientes de temperatura dentro de todo o projeto.

35

Page 58: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

A etapa de placement e geralmente separada em placement global e placement

detalhado [76].

No placement global, todas as celulas inicialmente pertencem a um bloco retan-

gular do tamanho da area do nucleo do chip. No decorrer do processo, as celulas sao

distribuıdas em uma serie de blocos menores no nucleo do chip e, ao final da fase,

cada pequeno bloco contera tipicamente poucas celulas. O objetivo do placement

global e encontrar um espalhamento ideal das celulas, sem sobreposicoes, que atinja

as exigencias listadas anteriormente.

Um leiaute pos placement nao e aceito se as celulas/blocos se sobrepuserem em

um mesmo local do chip ou ocuparem regioes ilegais (como fora das fileiras des-

tinadas as celulas padrao) – veja Figura 3.8. Esse leiaute pode ser resultante do

placement global ou ser produzido a partir de mudancas incrementais, tais como re-

dimensionamento das celulas e insercao de buffers (celulas auxiliares que nao afetam

a logica).

Figura 3.8: Estimativa de posicao das celulas no placement global

O placement detalhado e responsavel por fazer a correcao de ilegalidades no

placement global e no placement incremental quando ha alteracao na netlist. E

responsavel por encaixar as celulas padrao nas fileiras, de modo que nao haja so-

breposicao entre elas – isto e feito atraves de algoritmos que impactem o mınimo

possıvel na temporizacao e no tamanho dos fios. Adicionalmente, o placement deta-

lhado melhora o tamanho dos fios atraves do rearranjo dos grupos de celulas, alem

de melhorar o roteamento dos fios atraves da redistribuicao dos espacos livres entre

36

Page 59: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

as celulas. O resultado disso e visto na Figura 3.9.

Figura 3.9: Correcao do posicionamento pos-placement detalhado

3.4.5 CTS

Para projetos sıncronos, a transferencia de dados entre elementos funcionais e feita

por sinais de clock – pode haver mais de um sinal desse tipo, com diferentes perıodos.

Alem disso, projetos sıncronos convencionalmente baseiam-se na suposicao de que

cada sinal de clock, na mesma fase, chegue em cada elemento registrador exatamente

ao mesmo tempo. Na pratica, porem, devido a diferencas de atrasos de interligacao

na rede de distribuicao de clock, e difıcil conseguir que um sinal de clock chegue

simultaneamente a todos os registradores. As diferencas de atraso de fase podem

ser afetadas por varios fatores, como a variacao de processo de CI, ruıdos na ali-

mentacao de energia (devido a crosstalks) e variacao de temperaturas no die (devido

a diferentes nıveis de atividade/inadequacao da rede de distribuicao de energia).

Para corrigir a diferenca de atrasos, uma rede de buffers e inserida no caminho

de cada sinal de clock, de modo que o atraso total da fonte do sinal ate todos os

destinos e minimizada. Este processo e chamado de sıntese da arvore de clock e

tem como entradas: um arquivo de especificacao da arvore de clock, a netlist, a

biblioteca de temporizacao/atrasos (com extensao .lib), a biblioteca fısica de celulas

(com extensao .lef), informacoes do placement e flooplan atual do projeto; em relacao

as saıdas produzidas, tem-se uma netlist atualizada com a arvore de clock inserida,

um guia para o roteamento e celulas de buffers da arvore em um novo placement

37

Page 60: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(Figura 3.10).

Figura 3.10: Distribuicao do clock em um leiaute

3.4.6 Roteamento

A etapa de roteamento e responsavel por projetar todos os fios necessarios para ligar

os pinos de todas as celulas do circuito, com a necessidade de garantir as regras de

processo de fabricacao. As conexoes entre as celulas sao feitas utilizando camadas

de metais sobrepostas, conectadas atraves de vias (Figura 3.11).

Figura 3.11: Roteamento – visao de camadas

Durante a adicao de fios ocorre impactos negativos sobe a temporizacao dos

caminhos de dados e seus tempos de transicao e capacitancia, devido a introducao

de efeitos parasitas de RC (Resistencias e Capacitancias), ruıdos de sinal e aumento

do IR Drop. Esses efeitos sao analisados dentro dos tres grandes requisitos que

38

Page 61: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

devem ser tratados por um roteamento adequado: desempenho, integridade de sinais

e integridade de fabricacao [76].

O roteamento, assim como o placement, e geralmente dividido em dois passos:

roteamento global e roteamento detalhado. O roteamento global determina rotas

entre uma malha grossa de celulas de roteamento globais, chamadas de g-cells, abs-

traindo, durante esse processo, os locais permitidos para conexao de cada pino das

portas. Nessa etapa, o chip e particionado em faixas de linhas horizontais e ver-

ticais e cada faixa tem uma capacidade fixa de rotas. Sao gerados entao fios para

as conexoes do circuito e esses fios sao colocados nas faixas, como na figura 3.12.

Otimizacoes entao sao feitas para evitar congestionamentos, atraves de trocas de

fios atribuıdos a g-cells com capacidade de rotas ja excedida para g-cells que ainda

tenham rotas disponıveis.

Figura 3.12: Roteamento – organizacao da area em g-cells

O roteamento detalhado especifica as rotas reais que serao feitas, os fios em cada

camada de metal, os locais onde os fios se conectarao aos pinos e as vias entre as

camadas. Todos essas acoes devem respeitar as regras de processo de fabricacao e os

bloqueios de roteamento determinados pelos projetistas. Nessa etapa, a topologia

real dos fios e determinada e sao feitas as escolhas de largura para fios, camada do

metal (layer), vias e contatos [63]. A medida que se adiciona os fios, ocorre um

aumento no congestionamento e no comprimento medio dos mesmos, o que pode

provocar problemas de temporizacao, de ruıdo de acoplamento e de fabricacao.

Para corrigir a temporizacao, o roteamento detalhado prioriza inicialmente o

39

Page 62: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

roteamento dos caminhos com tempo mais crıticos, diminuindo os tamanhos e dando

preferencia a layers melhores.

Para corrigir o ruıdo de acoplamento, o roteamento separa conexoes ruidosas

das sensıveis ao ruıdo, atraves da insercao de espacos vazios entre elas para dimi-

nuir o acoplamento. Em casos mais severos, ao inves de espacos vazios, um fio de

aterramento adjacente e inserido, numa tecnica chamada de shielding.

Para melhorar os riscos de erros na fabricacao, o roteamento se utiliza de tecnicas

de redundancia de vias e contatos, adicao de fios mais largos e insercao de preenchi-

mento de metal (metal fill) para garantir uma densidade de metal uniforme.

A fase de roteamento entrega em sua saıda uma netlist arranjada (pos-placement)

e roteada legalmente, passando esta informacao para as etapas de otimizacoes pos-

roteamento e signoff.

3.4.7 Analises de Signoff

Analises de signoff consistem em uma serie de etapas de verificacao, as quais de-

vem ser feitas antes da fabricacao (tapeout) do projeto, para garantir sua exatidao e

integridade. Tais verificacoes ocorrem em diferentes ambitos: requisitos de tempo-

rizacao, incluindo integridade de sinais durante a analise estatica de tempo; requi-

sitos de energia, IR Drop, eletromigracao e ruıdos; requisitos fısicos que garantem

a fabricacao, como DRC (Design Rule Checking), checagem de efeito de antena e

ERC (Electrical Rule Checking); requisitos logicos, onde a funcionalidade e checada

formalmente atraves de LEC e Layout Versus Schematic (LVS).

Quando o projeto passa por todas as verificacoes de signoff, um GDSII e produ-

zido e enviado a fabricante de semicondutores (foundry) para comecar a preparacao

das mascaras.

Verificacao Fısica

Como os processos de fabricacao de CI tem evoluıdo bastante, surgiram varias regras

e orientacoes que garantem tratar da complexidade do processamento. Estas regras

sao frequentemente chamadas de Design for Manufacturing (DFM) e dizem respeito

a aspectos como antenas, densidade de camadas de metais, alocacao de metais e

diretrizes de rendimento (yield), dentre outros [50].

40

Page 63: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Na pratica, essas regras sao uma serie de parametros fornecidos pelas foundries

que permitem ao projetista verificar o resultado correto de um conjunto de mascaras.

Os parametros sao especıficos para cada processo de fabricacao dentro das foundries.

A verificacao e realizada por ferramentas automatizadas que utilizam a checagem de

Design Rule Checking (DRC). O DRC se baseia em regras com restricoes de processo

de fabricacao para atingir um alto rendimento, baixo consumo e alto desempenho,

que incluem, por exemplo, largura mınima e espaco mıniasmo entre as linhas de

metais em cada camada, involucro mınimo entre as linhas de metais e vias, tama-

nho maximo dos transistores, regras de protecao de descarga eletrostatica (ESD) e

estruturas de linhas de memorias, dentre outras regras.

Verificacao Formal

Na etapa de signoff, algumas verificacoes formais sao realizadas para garantir que

a netlist final e o GDSII que sera gerado sejam condizentes com o circuito desejado

presente na netlist inicial, como na Figura 3.13.

Figura 3.13: Arquivos onde se aplica analise de conformidade (LVS e LEC)

Durante o signoff, e verificada a conformidade logica (LEC) entre a netlist poste-

rior ao roteamento e a netlist modificada para se adequar as condicoes de verificacao

de signoff. Essas modificacoes sao conhecidas como ECO (Engineering Change Or-

der) e podem adicionar estruturas ao projeto, a fim de corrigir problemas de ruıdo

e atraso de caminhos crıticos identificados apos aumento na precisao dos calculos de

tempo no STA signoff.

Outra verificacao formal feita no signoff e o LVS. Apesar da verificacao fısica

do projeto assegurar a fabricacao correta, ela nao garante que o leiaute representa o

41

Page 64: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

circuito desejado. O LVS analisa se as formas desenhadas no leiaute e as ligacoes en-

tre elas representam, com exatidao, os componentes eletricos descritos no diagrama

do circuito na netlist esquematica. Os erros que podem ser verificados no LVS sao:

erros de conexoes em aberto ou em curto; anotacoes de texto erradas no leiaute que

nao permitam relacionar adequadamente os polıgonos com os dispositivos na netlist

esquematica; tamanhos errados de dispositivos; construcoes erradas de dispositivos

no leiaute [49].

STA Signoff

As funcionalidades do projeto e o desempenho sao afetados por ruıdos e crosstalks

[60]. Esses fatores podem limitar a frequencia de operacao e causar falhas funcionais

no projeto. Deve-se verificar se o projeto e robusto o suficiente para aguentar os

ruıdos sem afetar sua taxa de desempenho [52].

STA e um metodo estatıstico que independe dos valores nas entradas e e usado

na verificacao da temporizacao do projeto como um todo, validando se o mesmo

pode operar a uma determinada taxa de frequencia de clock. Contrapoe-se a analise

de temporizacao por simulacao, a qual estimula partes do projeto, requer muito

mais processamento e nao consegue lidar com caracterısticas fısicas como crosstalks,

ruıdo e variacoes on-chip [52].

Apesar de o RTL ser realizado para encontrar os piores caminhos durante varias

etapas, desde a sıntese logica ate todo o projeto fısico, e durante a etapa de pos-

roteamento (signoff ) que os parasitas RC sao considerados para as conexoes reais

do projeto – e nao mais para as conexoes estimadas idealmente. Esses parasitas im-

pactam no atraso dos sinais tanto em caminhos individuais quanto na interferencia

entre caminhos (ruıdos e crosstalks). Em ambos os casos, deve-se avaliar se o de-

sempenho do projeto em termos de temporizacao e atendido. Essa verificacao e feita

com STA signoff.

3.5 Verificacao Funcional

A verificacao funcional e o processo de analise que atesta se o projeto desenvolvido

realiza o que ele se destina a fazer. Esta e uma tarefa complexa, a qual toma a

42

Page 65: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

maior parte do tempo e esforco de desenvolvimento na maioria dos grandes projetos

de sistemas em microeletronica [58].

A verificacao funcional pode ser estatica (que engloba as verificacoes formal e de

equivalencia logica) ou dinamica (baseada em simulacoes logicas) [61].

Na verificacao estatica, nenhum estımulo de entrada e aplicado ao projeto. Em

vez disso, o projeto e mapeado em uma estrutura grafica que descreve suas funcoes,

utilizando BDDs (Diagramas de Decisao Binaria) ou outras representacoes ma-

tematicas que especifiquem a funcao que executa o projeto durante todo o tempo.

Dessa forma, na verificacao formal, prova-se ou nao certas propriedades do projeto

atraves da determinacao de contradicoes na estrutura matematica. Ja na verificacao

de equivalencia logica, usando pontos correspondentes das representacoes em analise

(RTL e netlists), verifica-se se tais pontos sao logicamente equivalentes (isto e, exe-

cutam a mesma expressao booleana). Essa comparacao e feita em uma estrutura

de dados gerada para padroes de valor de saıda aplicados a um mesmo padrao de

entrada.

Simulacao e o metodo mais comum de verificacao funcional [56]. Nela, estımulos

ou padroes de entrada sao gerados e aplicados ao projeto ao longo de varios ciclos de

clock, com o resultado correspondente sendo coletado e comparado com um modelo

de referencia, para verificar a conformidade com a especificacao [57]. Esse processo

e feito atraves da criacao de ambientes de verificacao.

Os ambientes de verificacao, conhecidos como testbenches, modelam todo o uni-

verso para o projeto e devem suportar todas as acoes que podem acontecer com

o mesmo (o que nem sempre e viavel computacionalmente). O ambiente basico

consiste no projeto ou logica que esta sendo verificada, componentes de estımulo,

componentes de monitoramento (monitor), componentes de checagem e validacao

(checker) e componentes do painel de avaliacao (scoreboards) [58]. Em geral, um

testbench e todo o conjunto de codigo usado para criar, observar e verificar uma

sequencia de entradas pre-determinada para o projeto, seja tal sequencia gerada

numa abordagem direta ou por um metodo aleatorio. O testbench e um sistema

fechado, o que significa que o nıvel de topo do banco de ensaio nao tem entradas

ou saıdas. E efetivamente um modelo do universo do ponto de vista do projeto

avaliado, que no ambiente considerado pode ser chamado de projeto-sob-verificacao

43

Page 66: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(DUV) ou projeto-sob-teste (DUT).

Pesquisadores nas universidades e na industria vem realizando estudos sobre

diferentes abordagens para verificacao funcional. Pode-se considerar cinco tecnicas

principais para verificacao baseada em simulacao [54, 55, 59]:

• Testes direcionados;

• Simulacao aleatoria;

• Verificacao orientada a cobertura;

• Verificacao baseada em Assertions ; e

• Verificacao baseada em Emulacao.

Nenhuma das tecnicas citadas, por si so, e plenamente capaz de assegurar a

verificacao livre de erros – a melhor solucao possıvel para uma verificacao robusta

do projeto e adotar um conjunto delas, para maior exploracao das caracterısticas

de um projeto. Por causa disso, surgiram metodologias mais robustas que vao

alem dessas tecnicas, buscando a adocao de linguagens especializadas de alto nıvel,

orientacao a objetos e reuso de componentes. Dentre as principais metodologias

surgidas estao a Cadence OVM, Synopsys VMM, Mentor AVM, Cadence eRM e

Accellera UVM, esta ultima sendo adotada sistematicamente pela industria a partir

de 2014, tornando as demais obsoletas. Naturalmente, apesar disso, cada engenheiro

de verificacao procura adotar uma metodologia que melhor se adapte a sua equipe

e aos projetos tratados.

44

Page 67: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 4

Metodos e Desenvolvimento da

Proposta

Este trabalho fornece um conjunto de arquivos que podem ser utilizados como parte

integrante de um sistema de processamento de sinais que necessite de tratamento,

em alguma de suas etapas, utilizando a tecnica de janelamento. De modo geral, o

produto final e um modulo que realiza a multiplicacao, amostra a amostra, do valor

do sinal de entrada por um valor da funcao janela de mesmo ındice, armazenado

dentro do proprio modulo, entregando em sua saıda amostras de um sinal ponderado.

As caracterısticas de hardware desse modulo sao configuradas atraves de parame-

tros, derivados do hardware do projeto ao qual ele se integra. Os procedimentos de

como foram desenvolvidos os arquivos, suas parametrizacoes, formas de uso e testes

sao descritos nas secoes deste capıtulo.

O conjunto de arquivos desenvolvidos e dividido em duas partes: sistema em

codigos fonte Matlab (M-File); e arquivos de descricao de hardware em Verilog

HDL.

O arquivos em Matlab formam um sistema com dois propositos diferentes. O

primeiro e o de servir de modelo de referencia para validacao e verificacao do projeto

em HDL – essa funcao e descrita no topico de verificacao 4.3. O segundo, descrito na

sessao 4.1, e especıfico para cada aplicacao e objetiva criar os dados de configuracao

necessarios para o correto funcionamento do IP, gerando o modulo que armazena os

dados da funcao janela.

Os arquivos em Verilog sao os componentes do IP desenvolvido, os quais serao

45

Page 68: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

incorporados pelos projetos em ASIC ou FPGA, a fim da realizacao em hardware

das operacoes de janelamento de funcoes. A arquitetura proposta, as interfaces de

comunicacao e a parametrizacao desses arquivos sao mostradas na secao 4.2.

4.1 Sistema em Alto Nıvel

Como ja dito anteriormente, os dados que representam os pontos da funcao janela

em uma implementacao em hardware precisam ser conhecidos previamente, para

entao serem organizados de uma maneira a serem persistidos na aplicacao final.

A escolha dessa organizacao dos dados, em nosso trabalho, objetivou diminuir a

quantidade total de informacoes armazenadas atraves do uso de interpolacao linear.

O algoritmo que realiza a analise da funcao janela, para obter a reducao dos pontos,

foi construıdo em Matlab e e explicado na sequencia.

O comprimento N de uma funcao janela, analoga a Equacao 2.7, varia de acordo

com a aplicacao onde essa funcao esta sendo utilizada. Para diminuir o numero de

dados que precisam ser armazenados, foi utilizado o erro maximo absoluto como

condicao de parada em um algoritmo de busca de partes da funcao janela que terao

os pontos interpolados para reconstrucao dos pontos originais da funcao janela.

Dessa forma, os pontos que serao recriados apresentarao um erro de aproximacao

que corresponde a uma relacao sinal-ruıdo previamente estabelecida, com o ajuste

correspondendo a quantidade total de partes que precisarao ser criadas para garantir

tal relacao. Consequentemente, a quantidade de dados (pontos) necessarios podera

variar para diferentes funcoes com o mesmo erro maximo definido como criterio de

parada.

O algoritmo de busca desenvolvido obtem a maior reta possıvel com um determi-

nado coeficiente angular que represente uma parte da funcao janela, de forma que a

diferenca entre os pontos gerados pela interpolacao e os pontos da janela de mesmo

ındice seja menor ou igual ao parametro de erro maximo. Cada reta obtida tera seu

ponto extremo compartilhado com a reta subsequente, ate que o conjunto de retas

interligadas determine todo o corpo da funcao janela.

A execucao da busca e feita em uma rotina de forca bruta, a qual incrementa em

passos discretos com a menor representacao do valor do erro maximo, a fim de obter,

46

Page 69: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

para cada iteracao, a quantidade de retas que formarao a funcao e sua respectiva

SNR. Com isso, o programa permite a obtencao da melhor configuracao de SNR

para um mesmo numero de retas. Essa configuracao tera as informacoes das retas

organizadas em uma tabela de dados, detalhada no item 4.1.1.

A Figura 4.1a mostra um exemplo de reta selecionada para formar a primeira

parte de uma funcao, enquanto a Figura 4.1b mostra exemplo das retas que no final

remontara toda a funcao. O algoritmo utilizado pelos exemplos da Figuras 4.1a e

4.1b tem, em cada iteracao com erro maximo absoluto, os seguintes passos:

• Considerando Rif uma reta R onde pi e o ponto inicial, pf e o ponto final e ai

e o coeficiente angular, tome a primeira reta R12 com pi = 1 e pf = 2, tendo

a1 como coeficiente angular.

• Reconstrua R12 com incrementos sucessivos do valor de a1 e verifique se todos

os pontos de R12, que representam os pontos da funcao de janelamento, estao

dentro da margem de erro definida.

• Tome entao uma reta R13 com mesmo pi = 1 e com pf = 2+1 e coeficiente

angular a2. Reconstrua a reta com incrementos sucessivos do valor de a2 e

verifique se os pontos estao dentro da margem de erro definida.

– Se todos os pontos estiverem dentro da margem, analise uma nova reta

com mesmo pi e com pf = pf+1.

– Caso algum ponto da reta nao tenha alcancado o erro esperado, a reta

imediatamente anterior e definida como a reta mais extensa possıvel para

aquele trecho de curva da funcao de janelamento.

• O novo pi passa a ser o ponto imediatamente depois do pf da reta definida

anteriormente.

• Repita o algoritmo ate toda a primeira metade da curva ser definida por um

conjunto de retas. A outra metade e suplementar a primeira, devido a simetria

inerente das funcoes de janelamento.

47

Page 70: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(a) Busca da primeira reta da funcao

(b) Retas obtidas ao final da busca

Figura 4.1: Exemplo do algoritmo de busca das retas que formarao a funcao

48

Page 71: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

4.1.1 Representacao da Tabela de Dados da Compactacao

dos Pontos

Aplicacoes que realizam o processo de janelamento da maneira convencional, citada

no Capıtulo 1, tem internamente uma memoria para armazenar os dados necessarios

para representacao dos pontos da funcao janela. A seguir, e feita uma descricao de

como tais dados sao encaixados no contexto deste trabalho, assim como o uso de

recursos correspondente.

Para se armazenar todos os pontos de uma funcao janela, tomando N como o

numero de pontos da funcao e WL o tamanho da palavra que representa os pontos no

formato Q definido pela aplicacao, a quantidade MEM de bits necessarios que serao

armazenados em memoria e dada por 4.1. E a caracterıstica linear das variaveis dessa

equacao que se pretende reduzir e, por isso, a mesma sera utilizada na comparacao

com o que esta sendo proposto.

MEM = (N ∗WL)/2 (4.1)

Para reconstruir a funcao a partir do conjunto de retas obtido no algoritmo

de busca, faz-se necessario armazenar os dados de coeficiente angular e numero de

pontos de cada reta. A quantidade de bits necessaria para esses dados varia de

acordo com a representacao em hardware escolhida e, para cada reta do conjunto,

ha uma palavra correspondente na memoria. A Figura 4.2 mostra que o conjunto

das variaveis coeficiente angular, numero de pontos e numeros de retas determina

o volume final de informacoes. Alem disso, como o ponto inicial da funcao tambem

devera ser conhecido pelo processamento em hardware, o mesmo tambem devera ser

armazenado em memoria. Para as discussoes posteriores, consideramos N o numero

de pontos da funcao janela, Nr o numero de retas para reconstruir a funcao, α o

coeficiente angular das retas, Np o numero de pontos de cada reta e WL a quantidade

de bits da representacao em hardware.

E imediata a analise de que o maior numero de pontos que uma reta pode possuir

ocorrera quando uma unica reta representar todos os pontos da primeira metade da

funcao. Em termos de recursos, este e o pior caso para esta variavel e pode ser

49

Page 72: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 4.2: Esquema da tabela de dados das retas

equacionado por:

Np = log2(N/2) (4.2)

Por outro lado, caso (N/2)− 1 retas sejam necessarias para representar todos os

pontos da funcao, ou seja, se todas as retas sao formadas por apenas dois pontos,

a variavel Np pode ser representada por 1 bit apenas para cada reta. Apesar do

menor uso de bits para representacao, essa situacao e altamente indesejavel devido

a reducao do numero total de bits se dar em escala logarıtmica e a quantidade de

retas Nr ter contribuicao em escala linear. Essas duas variaveis sao inversamente

proporcionais.

A representacao em hardware da magnitude do coeficiente angular e influenciada

tanto pela resolucao da representacao, quanto pela relacao entre a forma e a quan-

tidade de pontos da funcao janela. Quanto maior for a inclinacao da funcao, maior

sera o valor absoluto de α para uma determinada reta. Isso pode ser observado

na Figura 4.3, na qual sao tracadas diferentes curvas de janela Kaiser de mesmo

tamanho, atraves da variacao do parametro α.

A janela Kaiser pode aproximar quaisquer outras janelas atraves da variacao

de α [4, 48] e, por isso, pode ser utilizada para analisar os casos de influencia da

inclinacao no tamanho da variavel α das retas. O maior valor da variavel aconte-

cera na representacao da inclinacao de 90o em uma funcao retangular, podendo ser

aproximada pela janela Kaiser com α = 0, conforme visto na Figura 4.3. Para esses

casos, o valor de α tem o tamanho de WL− 1, mas implica em uma quantidade Nr

fixa de 3 retas. Para os demais casos, as Tabelas 4.1 e 4.2 mostram os resultados de

simulacoes para uma variedade de funcoes e diferentes tamanhos, onde foi obtido o

numero de bits necessarios para representar o maior valor de α dentre as retas. De-

50

Page 73: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 4.3: Janelas Kaiser de 64 pontos para α = [0, 2, 4, 6, 8, 10, 30]

pois de testes exaustivos, foi observado que, para cada potencia de dois no tamanho

da janela, o tamanho maximo da palavra para representacao de α diminui em 1 bit.

A quantidade de pontos da funcao funciona como um ajuste da distancia sobre

o eixo ordenado do α. Quanto maior o numero de pontos, menor sera o intervalo de

valores entre eles e, consequentemente, menor sera a inclinacao. Um exemplo claro

e mostrado na Figura 4.4, onde uma mesma funcao Kaiser com α = 4 e gerada com

diferentes tamanhos.

Figura 4.4: Janelas Kaiser de 64, 128, 256 e 512 pontos para α = 4

A analise das funcoes de janelamento mais conhecidas resultou em tamanhos de

51

Page 74: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Tabela 4.1: Quantidade de bits necessarios para representar α com 16 bits de pre-

cisao

PPPPPPPPPPPPPPJanela

Tamanho4096 2048 1024 512 256 128 64 32 16 8

Hann 5 6 7 8 9 10 11 12 13 14

Hamming 5 6 7 8 9 10 11 12 13 14

Barlett 5 6 7 8 9 10 11 12 13 14

Blackman 5 6 7 8 9 10 11 12 13 14

Blackman-Harris 6 7 8 9 10 11 12 13 14 14

Chebyshev 6 7 8 9 10 11 12 13 13 14

Kaiser (α = 1) 3 4 5 6 7 8 9 10 11 12

Kaiser (α = 2) 4 5 6 7 8 9 10 11 12 13

Kaiser (α = 4) 5 6 7 8 9 10 11 12 13 14

Kaiser (α = 6) 5 6 7 8 9 10 11 12 13 14

Kaiser (α = 8) 5 6 7 8 9 10 11 12 13 14

Kaiser (α = 10) 5 6 7 8 9 10 11 12 13 15

Kaiser (α = 30) 6 7 8 9 10 11 12 13 14 15

Kaiser (α = 64) 7 8 9 10 11 12 13 14 15 15

Kaiser (α = 100) 7 8 9 10 11 12 13 14 15 14

Kaiser (α = 200) 8 9 10 11 12 14 14 15 15 13

Kaiser (α = 300) 8 9 10 11 12 14 14 15 15 11

Kaiser (α = 600) 8 9 10 11 12 14 14 15 14 7

52

Page 75: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Tabela 4.2: Quantidade de bits necessarios para representar α com 24 bits de pre-

cisao

PPPPPPPPPPPPPPJanela

Tamanho4096 2048 1024 512 256 128 64 32 16 8

Hann 13 14 15 16 17 18 19 20 21 22

Hamming 13 14 15 16 17 18 19 20 21 22

Barlett 13 14 15 16 17 18 19 20 21 22

Blackman 13 14 15 16 17 18 19 20 21 22

Blackman-Harris 14 15 16 17 18 19 20 21 22 22

Chebyshev 14 15 16 17 18 19 20 21 21 22

Kaiser (α = 1) 11 12 13 14 15 16 17 18 19 20

Kaiser (α = 2) 12 13 14 15 16 17 18 19 20 21

Kaiser (α = 4) 13 14 15 16 17 18 19 20 21 22

Kaiser (α = 6) 13 14 15 16 17 18 19 20 21 22

Kaiser (α = 8) 13 14 15 16 17 18 19 20 21 22

Kaiser (α = 10) 13 14 15 16 17 18 19 20 21 23

Kaiser (α = 30) 14 15 16 17 18 19 20 21 22 23

Kaiser (α = 64) 15 16 17 18 19 20 21 22 23 23

Kaiser (α = 100) 15 16 17 18 19 20 21 22 23 22

Kaiser (α = 200) 16 17 18 19 20 21 22 23 23 21

Kaiser (α = 300) 16 17 18 19 20 21 22 23 23 19

Kaiser (α = 600) 16 17 18 19 20 21 22 23 22 15

53

Page 76: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

α similares ao da janela Kaiser com α = 8. Para esta situacao, α e o tamanho da

palavra de memoria sao expressos, no pior caso, como:

α = WL− log2N + 1 (4.3)

PALAVRA = α +Np = WL. (4.4)

e a quantidade de bits total em memoria para nossa proposta e dada por 4.5 –

portanto, a reducao do numero de bits em relacao a 4.1 se da pela proporcao entre

Nr e N .

MEM = WL ∗Nr. (4.5)

4.2 Arquitetura Geral

O conjunto de arquivos que formam o IP pode ser adicionado a qualquer projeto que

tenha a etapa de janelamento modularizada. A integracao e facilitada, devido ao uso

de um arquivo de configuracao simples (em que o projetista define a representacao

da formatacao Q do IP) e tambem a presenca de sinais de controle bastante simples.

A arquitetura do IP e mostrada na Figura 4.5: o modulo INTERPOLADOR

recria os pontos da funcao janela a partir de uma tabela de dados, enquanto o

modulo MULT realiza a multiplicacao das amostras do sinal de entrada pelos pontos

criados no INTERPOLADOR. O modulo INTERPOLADOR realiza todo o controle

dos estados e do caminho de dados do IP, alem de possuir internamente a memoria

com a tabela de dados para remontagem dos pontos da funcao. Ja o modulo MULT e

puramente combinacional, de tamanho de entradas parametrizavel, servindo apenas

para realizar a multiplicacao em formato Q de dois operandos.

As entradas e saıdas da arquitetura desenvolvida sao mostradas na Tabela 4.3.

Algumas delas foram criadas para prover um protocolo simples, para controle do IP

por modulos externos.

De forma geral, o comportamento do protocolo se da conforme o waveform (dia-

grama em forma de onda de sinais), como exemplificado na Figura 4.6. E requerido

que a unidade que fornece os dados do sinal mande sequencialmente, a cada pulso de

54

Page 77: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 4.5: Arquitetura de blocos do Modulo de Janelamento

Tabela 4.3: Portas de entrada e saıda do Modulo de Janelamento

Nome das Portas Direcao Numero de bits Descricao

RST N Entrada 1Reset assıncrono com sensibili-

dade ao valor logico 0.

CLK Entrada 1 Relogio do sistema.

SOP Entrada 1Indica o inıcio de uma operacao

de janelamento.

SIGNAL DATA Entrada ParametroAmostras da funcao de entrada a

ser janelada.

SIGNAL VALID Entrada 1Indica uma amostra da funcao ja-

nelada na saıda.

WINDOWED SIGNAL Saıda Parametro Amostras da funcao janelada

clock, uma amostra A0, A1 ... An do sinal SIGNAL DATA. Para tanto, esta unidade

deve ativar o sinal de inıcio de operacao SOP e manter o sinal SIGNAL VALID, indi-

cando que os dados das amostras estao validos na entrada do modulo. Ja a unidade

que recebe amostras A0w,A1w ... Anw de saıda do sinal ponderado com o efeito

janela, WINDOW SIGNAL, recebe a indicacao de que os mesmos estao presentes

na saıda, enquanto o sinal de SOURCE VALID estiver ativo.

O fluxo geral de funcionamento da arquitetura e definido pela maquina de es-

tados finita da Figura 4.7. O estado LOAD e responsavel por acessar a memoria,

carregando o valor do primeiro ponto da funcao janela, buscando o valor do co-

55

Page 78: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 4.6: Diagrama de sinais do protocolo do Modulo de Janelamento

eficiente angular e buscando o numero de pontos adicionais que serao obtidos na

primeira reta. Isso ocorre somente em um unico ciclo apos o Reset inicial do sis-

tema – a partir daı, a maquina prossegue para o estado WAIT. Este representa o

momento em que o IP ainda nao executa a operacao de janelamento e aguarda o

sinal de entrada SOP para iniciar uma operacao.

Apos o SOP, a maquina assume o estado UP, no qual sao obtidos, atraves das

informacoes de coeficiente angular e numero de pontos adicionais de cada uma das

palavras na memoria, os pontos das retas que representam a curva ascendente da

primeira metade da funcao janela. Ao chegar ao ultimo ponto da curva, a maquina

toma o estado KEEP.

Figura 4.7: Maquina de estados finita do Modulo de Janelamento

O estado KEEP foi especialmente criado para lidar com a inversao para a curva

descendente na construcao da funcao janela pois, apesar do coeficiente angular ser

invertido, a primeira reta da segunda parte possui a mesma magnitude do coeficiente

56

Page 79: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

angular e o mesmo numero de pontos adicionados na ultima reta da primeira metade.

Apos a obtencao dos pontos dessa primeira reta descendente, a maquina toma entao

o estado DOWN, onde sao obtidos os demais pontos das retas da representacao da

curva descendente.

Ao concluir, a maquina retorna ao estado inicial WAIT, aguardando uma nova

operacao de janelamento.

4.3 Verificacao Funcional

A metodologia de verificacao utilizada foi a versao mais simples da LVM (LSI-

TEC Verification Methodology), criada por projetistas do LSI-TEC. A LVM e uma

metodologia de verificacao e colecao de codigos para ser utilizada em modulos e

projetos de tamanho mediano, a qual permite aplicar de maneira facil varias das

tecnicas atualmente usadas em verificacao, tais como a geracao aleatoria de dados

com restricoes e a analise de cobertura funcional.

A LVM tem uma alta reusabilidade de codigo, o que permitiu facilmente adapta-

la para verificar nosso IP. Escrita em SystemVerilog, a LVM permite que o modelo

de referencia seja criado dentro do proprio ambiente ou externamente, em C ou lin-

guagem do Matlab. Ela tem uma baixa complexidade, se comparada a metologias

padronizadas como OVM (Open Verification Methodology) e UVM (Universal Veri-

fication Methodology), possuindo uma estrutura de ambiente de verificacao como o

da Figura 4.8.

Dentro da LVM, os principais modulos sao:

Agent: Representa um dispositivo conectado a uma interface do DUV (Design Un-

der Verification). Um Agent encapsula um BFM (Bus Functional Model), um

Monitor e informacoes de configuracao e geracao da infraestrutura do ambiente

de verificacao;

Monitor: Coleta informacoes do DUV e do BFM, a fim de realizar analises de

cobertura e de conformidade funcional do DUV e do Modelo de Referencia;

Driver: Controla os estımulos repassados ao DUV. Converte cenarios de testes,

produzidos em nıvel de transacoes, em estımulos repassados para o BFM; e

57

Page 80: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

AgentAgent

Data response Data item

Driver

Monitor

BFMBFM

Configurações:- Testes randômicos- Testes direcionados- Modelo de Referência

DUT InterfaceDUT Interface

DUTDUT

CoverageCoverage CheckerChecker

Modelo de

Referência

Modelo de

Referência

Matlab/ Octave/ C

Figura 4.8: Ambiente de verificacao desenvolvido para o IP

BFM: Conecta-se ao DUV, conduzindo para o mesmo os estımulos gerados a partir

de transacoes. Tambem implementa protocolos de sinais de baixo nıvel.

A seguir, sao listados e descritos os arquivos que foram editados a partir dos

modelos de codigo LVM para realizar a verificacao do IP proposto:

lvm data item.sv: Descreve todos os dados que devem ser transmitidos em cada

transacao e as restricoes para a geracao aleatoria desses dados.

lvm data response.sv Descreve todos os dados que devem ser recebidos em cada

transacao.

lvm dut if.sv E a interface que conecta o DUV ao testbench.

lvm env.sv Representa o ambiente de verificacao, cria as instancias do DUV e as

conecta usando a interface do arquivo lvm dut if.

lvm bfm.sv Nesse arquivo e editada a inicializacao do DUV, definindo-se o sinal de

Reset e os estados iniciais das entradas. Tambem sao editadas as configuracoes

de como e dada a transmissao das transacoes como, por exemplo, em um

58

Page 81: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

protocolo AMBA, UART, SPI etc. Por fim, edita-se a propria transmissao das

transacoes de entrada (item) e de saıda (response).

lvm io.sv Utilitario que escreve e le de arquivos, necessarios em caso de comu-

nicacao com os Modelos de Referencia, leitura de testes direcionados e escrita

de erros durante a verificacao. Deve-se garantir que os formatos dos data item

e data response sejam respeitados.

A verificacao do IP foi feita utilizando testes direcionados. Os data itens sao gera-

dos em arquivos, os quais sao lidos como entrada tanto para o Modelo de Referencia

quanto para o ambiente de verificacao. A geracao desses arquivos de data itens foi

feita a partir de uma rotina em Matlab, a qual formata valores oriundos de arquivos

de audio para os tamanhos de palavra e janela compatıveis com o hardware desejado.

Criou-se um Modelo de Referencia em Matlab que simula em alto nıvel o compor-

tamento esperado, em ponto fixo, de uma funcao de janelamento, podendo assumir

diferentes tamanhos de palavras. Foram testados IPs com tamanho de palavra de

16 e 24 bits, e tamanho de janela de 64, 128, 256, 1024 e 2048 amostras, dos tipos

seno, KDB, Hanning e Hamming.

O Modelo de Referencia gera data responses que sao utilizados pelo Checker do

LVM, para efeitos de comparacao com os data responses obtidos na saıda do DUV.

Para os diferentes tamanhos de palavras e tamanhos de janelas disponibilizados, a

verificacao funcional nao encontrou erro algum nos resultados de calculo dos IPs

gerados, mostrando, desta forma, a robustez do projeto desenvolvido.

59

Page 82: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 5

Resultados do Trabalho

Uma implementacao do trabalho proposto foi realizada, objetivando efetivar o jane-

lamento de um modulo de processamento no domınio do tempo denominado Win-

dowing/Block Switching (W/BS), o qual faz parte de um decodificador de audio

Moving Pictures Experts Group-2 (MPEG-2) Advanced Audio Coding - Low Comple-

xity (AAC-LC). Esse decodificador foi desenvolvido pelo grupo de pesquisa Brazil-

IP/UEFS como um dos modulos IP do consorcio de Universidades brasileiras do

Programa Brazil-IP, um dos programas de governo brasileiro que buscam incentivar

o crescimento do setor de Microeletronica atraves do CI-Brasil [64].

O MPEG-2 AAC-LC e um importante padrao na industria e e usado, por exem-

plo, no padrao do Sistema Brasileiro de Televisao Digital – tambem conhecido como

ISDB-TB, desenvolvido por uma associacao incluindo o governo brasileiro, univer-

sidades brasileiras e empresas de comunicacao. O decodificador de audio do Brazil-

IP/UEFS tomou como base as normas definidas para o padrao ISO/IEC 13818-7

[77].

O processo de decodificacao do MPEG-2 AAC-LC e composto por doze subsis-

temas, alguns necessarios e outros opcionais, os quais correspondem a ferramentas

funcionais que tem a finalidade de remontar amostras que representam o sinal origi-

nal [77]. A partir dessas ferramentas, o grupo de trabalho criou a microarquitetura

da Figura 5.1.

Dentre as cinco ferramentas essenciais, o Windowing/Block Switching e um sub-

sistema que se caracteriza por aplicar o janelamento KDB e/ou SENO ao sinal de

audio, atraves de multiplicacoes/sobreposicoes sucessivas [79, 77]. A depender da

60

Page 83: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 5.1: Decodificador de audio MPEG AAC-LC UFBA/UEFS/Brazil-IP

caracterıstica do sinal de audio, o bloco seleciona a variacao do tamanho da janela,

o tipo de janela e a sequencia de tipos e tamanhos. Quanto a sequencia, as janelas

podem ser agrupadas da seguinte forma [77]: uma janela unica longa (Only Long

Sequence); uma janela longa de inıcio (Long Start Sequence); uma sequencia de oito

janelas curtas (Eight Short); ou uma janela longa de parada (Long Stop Sequence).

Quanto ao tamanho, uma janela pode ser longa ou curta. Por definicao do MPEG-2

AAC-LC, uma janela curta contem 256 amostras e uma janela longa e composta

por 2048 amostras. Na KBD de 256 amostras, e firmado o valor de α igual a 6, e

para a KBD de 2048 amostras, α e igual a 4. Dessa forma, janelas KDB e Seno de

tamanhos 256 e 2048 podem ser utilizadas em uma mesma decodificacao, implicando

na necessidade de armazenamento de 4 janelas diferentes.

Utilizando da tecnica de interpolacao, foi proporcionada uma solucao dentro dos

requisitos levantados e as analises foram realizadas considerando o erro SNR para

diferentes conjuntos de retas. A janela KDB 2048 obteve os conjuntos de retas com

seus respectivos SNRs como mostrado na Figura 5.2, a KDB 256 mostrado na Figura

5.3, a Seno 2048 na Figura 5.4 e a Seno 256 na Figura 5.5.

O conjunto resultante que se enquadrou no melhor SNR dentro dos requisitos do

projeto, assim como na melhor relacao de consumo de hardware, foram os formados

por 38 retas para a KDB de 2048, 53 retas para a KDB de 256, 33 retas para a seno

61

Page 84: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 30 32 35 38 44 50 61 8450

55

60

65

70

75

80

85

90

95

Número de Retas

SN

R (

dB)

Figura 5.2: SNR das retas para janela KBD de 2048 amostras

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 38 40 41 43 45 53 65 74 101 11450

55

60

65

70

75

80

85

90

95

Número de Retas

SN

R (

dB)

Figura 5.3: SNR das retas para janela KBD de 256 amostras

62

Page 85: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

18 19 20 21 22 23 24 25 27 29 31 33 36 41 47 59 9160

65

70

75

80

85

90

95

Número de Retas

SN

R (

dB)

Figura 5.4: SNR das retas para janela seno de 2048 amostras

19 20 21 23 24 25 26 27 29 32 33 34 38 45 51 58 9965

70

75

80

85

90

95

Número de Retas

SN

R (

dB)

Figura 5.5: SNR das retas para janela seno de 256 amostras

63

Page 86: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

2048 e 33 retas para seno de 256 amostras. Pela definicao do grupo de pesquisa,

o erro maximo permitido e de 1% para cada amostra. As Figuras 5.6, 5.7, 5.8

e 5.9 mostram os resultados de erros dados pela Equacao 2.21 para os conjuntos

escolhidos. Todas as amostras se mantiveram abaixo do erro de 1% especificado

para os diferentes conjuntos de retas escolhidos. As amostras nos extremos do

grafico, por representar pontos de regioes com menor linearidade das funcoes KDB

e Seno, apresentam erros relativos percentuais ligeiramente maiores que as amostras

centrais.

50 100 150 200 2500

0.05

0.1

0.15

0.2

0.25

0.3

0.35

Amostras

Err

o r

elat

ivo

(%

)

Figura 5.6: Erro relativo para janela seno de 256 amostras

200 400 600 800 1000 1200 1400 1600 1800 20000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Amostras

Err

o r

elat

ivo

(%

)

Figura 5.7: Erro relativo para janela seno de 2048 amostras

64

Page 87: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

50 100 150 200 2500

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Amostras

Err

o r

elat

ivo

(%

)

Figura 5.8: Erro relativo para janela KBD de 256 amostras

200 400 600 800 1000 1200 1400 1600 1800 20000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

Amostras

Err

o r

elat

ivo

(%

)

Figura 5.9: Erro relativo para janela KBD de 2048 amostras

65

Page 88: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Os valores comparativos dos resultados de bits armazenados, da interpolacao

com a solucao tradicional, de todos os pontos sao vistos na Tabela 5.1, derivada de

acordo com as equacoes 4.3, 4.4 e 4.5.

Tabela 5.1: Bits usados para representar as funcoes de janelamento no MPEG2-AAC

Janela Qtd bits versao convencional Qtd bits versao com interpolacao Reducao (%)

KBD 256 128x16=2048 53x16=848 58

KBD 2048 1024x16=16384 38x16=608 96,3

SENO 256 128x16=2048 33x16=528 74

SENO 2048 1024x16=16384 33x16=528 96,7

Usando apenas o modulo de janelamento das funcoes KBD de tamanhos 2048

e 256, desconsiderando toda a logica dos demais blocos do decodificador, foi re-

alizado um fluxo ASIC ate a representacao final de leiaute (GDSII). Para efeitos

de comparacao, foram feitas duas versoes do GDSII: uma com reducao em retas

e interpolacao; e outra convencional, com armazenamento dos pontos. O fluxo foi

desenvolvido atraves das ferramentas Encounter R© RTL Compiler e Encounter R© Di-

gital Implementation (EDI) System da empresa Cadence. A tecnologia utilizada foi

de no tecnologico de 180nm, o mesmo utilizados por trabalhos de janelamento em

hardware como [21, 22, 24].

As Figuras 5.10 e 5.11 mostram os relatorios fornecidos pelas ferramentas de

sıntese, para os resultados de area estimados entre a versao usando interpolacao e

a versao convencional de armazenamento de todos os pontos. O ganho em area das

duas versoes foi de 4,9% para a KBD 256 e de 52,4% para a KBD 2048, para uma

frequencia de clock de 16,7 MHz.

(a) Area versao convencional (b) Area com interpolacao

Figura 5.10: Relatorio de sıntese para KBD de 2048 amostras

66

Page 89: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

(a) Area versao convencional (b) Area com interpolacao

Figura 5.11: Relatorio de sıntese para KBD de 256 amostras

Um quadro comparativo de area de algumas implementacoes em hardware re-

ferenciadas e o nosso trabalho estao na Tabela 5.2. As implementacoes dessas re-

ferencias utilizam CORDIC e, em geral, tem um consumo de area muito maior que

versoes com lookup table, alem de uma latencia inerente. A versao de Yamunadevi

2015 [75] e a que mais se aproxima da area do nosso trabalho, porem utilizando a

tecnologia de 90nm.

Tabela 5.2: Comparacao de areas entre solucao proposta, solucao convencional e

CORDIC

Janelamento Area (mm2) Frequencia (MHz) Ciclos

Interpolacao (este trabalho) 0,03076 100 1

Convencional 0,0649 100 1

CORDIC (Ray 2008) 21 125 33

CORDIC (Ray 2014 e Arasi 2014) 52 400 170

CORDIC (Yamunadevi 2015) 90nm 0,05166 100 30

Foi realizada tambem uma analise de sıntese com clock mais rapido, a fim de

tecer consideracoes sobre a influencia da logica adicional de interpolacao no de-

sempenho e caminho crıtico do janelamento. Nao ocorreu qualquer tipo de perda

devida a insercao de logicas pela interpolacao, com o projeto atingindo a frequencia

maxima de operacao a 200 MHz, para a tecnologia usada. O caminho crıtico da

solucao e o modulo de multiplicacao – consideracoes de melhorias como paralelismo

e adocao de pipelines (dentre outras) nao foram feitas, tais recursos permitiriam

rodar em frequencias proximas de 400 MHz como em [21]. Essa afirmacao baseia-se

na frequencia atingida de 384 MHz, para um multiplicador de 4 bits na tecnologia

67

Page 90: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

empregada. Para nos tecnologicos menores, a frequencia de clock pode ser ainda

maior, aumentando, contudo, o vies do custo e da relacao de area.

As Figuras 5.12 a 5.15 mostram os leiautes realizados para as versoes convencio-

nal e interpolada do modulo de janelamento para o MPEG W/BS. Foram utilizados

registradores como dispositivos de armazenamento dos pontos, em ambos os ca-

sos. As areas finais, apos passar por todas as etapas de placement, roteamento e

verificacoes de temporizacao e fısicas sao 0,0774mm2 para a versao convencional e

0,0569mm2 para a versao interpolada, o que representa uma reducao de 26,5% entre

elas. O leiaute final possui as portas do modulo como pinos que servirao de conexao

para leiautes de topo que instanciam o modulo de janelamento.

Figura 5.12: Vista ameba com a separacao logica dos blocos

68

Page 91: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 5.13: Placement das celulas e arvore de clock realcada

Figura 5.14: Ring e stripes da rede de energia

69

Page 92: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Figura 5.15: Leiaute apos roteamento dos fios

70

Page 93: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Capıtulo 6

Conclusoes

O desenvolvimento tecnologico atual atraves de sistemas de processamento de si-

nais permitiu as mais variadas manipulacoes de eventos da natureza, impactando

profundamente em nosso estilo de vida e nas perspectivas da Humanidade. Dentro

deste contexto, sob a otica do processamento digital de sinais, o janelamento de

amostras e genuinamente importante, configurando-se muitas vezes em fator limi-

tante e imprescindıvel para que os dispositivos de processamento consigam executar

a manipulacao esperada, dentro de limites de custo desejados.

A maioria dos dispositivos de processamento de sinais tem se tornado verdadeiros

sistemas complexos, condensados em um unico circuito integrado, trazendo a pauta a

viabilidade do uso de blocos pre-desenvolvidos (IP-Cores) como componentes desses

sistemas.

Na industria de microeletronica, os IP-Cores sao importantes na concepcao de

sistemas em um unico chip (SoC). As empresas fornecedoras de IPs distribuem o

custo de desenvolvimento entre varios fabricantes de chips, uma vez que licenciam

o mesmo IP para varios integradores. Por sua vez, as empresas que compram ou

adquirem IP-Cores para processadores, interfaces e funcoes internas podem colocar

mais de seus recursos no desenvolvimento das caracterısticas de diferenciacao de seus

chips. Como consequencia, estas tem desenvolvido inovacoes em suas especialidades

mais rapidamente. Vale ressaltar que, quando se trata de Soft-IP, as oportunidades

de licenciamento sao ainda maiores pois os mesmos tem alta flexibilidade e nao estao

atrelados a uma tecnologia alvo de desenvolvimento.

Neste contexto, pela uniao dessas importantes areas de pesquisa e desenvolvi-

71

Page 94: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

mento, nesse trabalho foi desenvolvido com exito um Soft-IP-Core para realizacao

de funcoes de janelamento dentro de sistemas de processamento de sinais. Sao

entregues arquivos em Verilog e scripts em Matlab que permitem flexibilidade na

representacao da funcao de janelamento, atraves da obtencao por interpolacao linear

de sub-conjuntos dos pontos originais. Os arquivos tambem permitem flexibilidade

na representacao em hardware ponto fixo do RTL final, atraves da configuracao de

parametros presentes no mesmo, alterados pelo Matlab. Dessa forma, os objeti-

vos e caracterısticas da aplicacao final e que determinam as especificidades do IP,

principalmente levando em conta a tolerancia ao erro.

O Soft-IP proposto fornece uma alternativa interessante para a diminuicao do

time-to-market dos sistemas desenvolvidos, o que torna seu uso viavel do ponto de

vista economico. Alem disso, nossa solucao se mostrou eficiente em termos de area,

trazendo reducao significativa, se comparada a solucoes em CORDIC, e reducao

relativa atrelada ao tamanho da janela, se comparada a uma solucao convencional

que armazena todos os pontos de uma funcao de janelamento. Tal eficiencia reflete-se

diretamente no custo do circuito final, se o mesmo for implementado em tecnologias

para ASIC.

O IP tambem se mostra bem robusto e teve sua validacao feita atraves da rea-

lizacao de um caso de teste, no qual foi implementado em um fluxo de desenvolvi-

mento ASIC para um sistema de decodificacao MPEG. O caso de teste foi realizado

desde a geracao das informacoes da parte configuravel do IP ate sua concepcao em

formato GDSII. Durante o fluxo ASIC, ainda foi realizada a verificacao funcional

do RTL gerado e o mesmo mostrou comportamento equivalente ao esperado por um

Modelo de Referencia.

Os arquivos do Soft-IP estao abertos e livres para serem modificados. Como tra-

balhos futuros, uma analise do desempenho energetico pode ser feito e melhorias na

logica do RTL podem ser feitas neste sentido, atraves da remodelagem da maquina

de estados. Um outro fator que pode contribuir bastante para o IP e o estudo e

desenvolvimento de algoritmos locais para a obtencao dos pontos da interpolacao,

principalmente em regioes de menor linearidade na funcao. Esses algoritmos poderao

trazer uma melhor relacao entre a quantidade de pontos necessarios para reconstruir

a funcao e a relacao sinal-ruıdo da operacao de janelamento.

72

Page 95: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Referencias Bibliograficas

[1] PRABHU, K., Window Functions and Their Applications in Signal Processing .

CRC Press, 2013.

[2] DINIZ, P. S., DA SILVA, E. A., NETTO, S. L., Processamento Digital de Sinais-:

Projeto e Analise de Sistemas . Bookman Editora, 2014.

[3] IFEACHOR, E. C., JERVIS, B. W., Digital signal processing: a practical appro-

ach. Pearson Education, 2002.

[4] BOSI, M., GOLDBERG, R. E., Introduction to digital audio coding and stan-

dards . v. 721. Springer Science & Business Media, 2012.

[5] CAVALLORO, P., GENDARME, C., KRONLOF, K., et al., System Level Design

Model with Reuse of System IP . E-Books von NetLibrary , Springer US,

2007.

[6] GREENBAUM, E., “Open source semiconductor core licensing”, Harv. JL &

Tech., v. 25, pp. 131, 2011.

[7] TU, S., Analog Circuit Design for Communication SOC . Bentham Science Pu-

blishers, 2012.

[8] JANSEN, D., The Electronic Design Automation Handbook . Springer US, 2010.

[9] SALEH, R., WILTON, S., MIRABBASI, S., et al., “System-on-chip: Reuse and

integration”, Proceedings of the IEEE , v. 94, n. 6, pp. 1050–1069, 2006.

[10] MAXFIELD, C., FPGAs: World Class Designs . World Class Designs , Elsevier

Science, 2009.

73

Page 96: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[11] NEMATOLLAHI, M., VORAKULPIPAT, C., ROSALES, H., Digital Water-

marking: Techniques and Trends . Springer Topics in Signal Processing ,

Springer Singapore, 2016.

[12] SEEPOLD, R., KUNZMANN, A., Reuse Techniques for VLSI Design. Springer

US, 2012.

[13] OPENCORES, “OpenCores IP Development Community”, Projeto Opencores

- hospedagem de codigos fontes de projetos de hardware. Disponıvel em:

http : //http : //opencores.org. Acesso em: 22 de junho de 2015.

[14] LIBRECORES, “Free and Open Digital Hardware”, Projeto LibreCores -

Free and Open Source Silicon Foundation. Disponıvel em: http :

//librecores.org/. Acesso em: 22 de junho de 2015.

[15] BONE, R. T., FPGA Design of a Hardware Efficient Pipelined FFT Processor ,

Master’s Thesis, Wright State University, Dayton, Ohio, United States,

2008.

[16] SANSALONI, T., PEREZ-PASCUAL, A., VALLS, J., “Area-efficient FPGA-

based FFT processor”, Electronics Letters , v. 39, n. 19, pp. 1, 2003.

[17] AYINALA, M., BROWN, M., PARHI, K. K., “Pipelined Parallel FFT Archi-

tectures via Folding Transformation”, IEEE transactions on very large

scale integration (VLSI) systems , v. 20, n. 6, pp. 1068–1081, 2012.

[18] HAMPSON, G. A., “Implementation Results of a Windowed FFT”, Re-

latorio de Projeto Interno. Disponıvel em: http : //esl.eng.ohio −

state.edu/ rstheory/iip/window.pdf . Acesso em: 22 de junho de 2015,

July 2002.

[19] M. ATRI, F. SAYADI, W. E., TOURKI, R., “Efficient Hardware/Software Im-

plementation of LPC Algorithm in Speech Coding Applications”, Journal

of Signal and Information Processing , v. 3, n. 1, pp. 122–129, 2012.

[20] RAY, K. C., DHAR, A. S., “CORDIC-based unified VLSI architecture for im-

plementing window functions for real time spectral analysis”, IEE Pro-

74

Page 97: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

ceedings - Circuits, Devices and Systems , v. 153, n. 6, pp. 539–544, Dec

2006.

[21] RAY, K., DHAR, A. S., “High Throughput VLSI Architecture for Blackman

Windowing in Real Time Spectral Analysis”, Journal of Computers , v. 3,

n. 5, 2008.

[22] RAY, K. C., DHAR, A. S., “CORDIC-Based VLSI Architecture for Implemen-

ting Kaiser-Bessel Window in Real Time Spectral Analysis”, Journal of

Signal Processing Systems , v. 74, n. 2, pp. 235–244, 2014.

[23] AGGARWAL, S., KHARE, K., “Redesigned-scale-free CORDIC Algorithm Ba-

sed FPGA Implementation of Window Functions to Minimize Area and

Latency”, Int. J. Reconfig. Comput., v. 2012, pp. 3:3–3:3, Jan. 2012.

[24] ARASI, M. M., ANAND, J., BHARAT, P., et al., “VLSI Architecture for Im-

plementing Kaiser Bessel Window Function Using Expanded Hyperbolic

CORDIC Algorithm”, International Journal of Computer Science and

Mobile Computing , v. 3, n. 2, pp. 308–315, 2014.

[25] AGGARWAL, S., KHARE, K., “CORDIC-based window implementation to

minimise area and pipeline depth”, IET Signal Processing , v. 7, n. 5,

pp. 427–435, July 2013.

[26] AGGARWAL, S., KHARE, K., “Efficient Window-Architecture Design Using

Completely Scaling-Free CORDIC Pipeline”. In: VLSI Design and 2013

12th International Conference on Embedded Systems (VLSID), 2013 26th

International Conference on, pp. 60–65, 2013.

[27] ARCHANA, C., NAGARAJU, C., “Efficient Window Architecture Design

Using Completely Scaling Free CORDIC Pipeline”, International Jour-

nal For Technological Research In Engineering , v. 1, n. 9, 2014.

[28] RASHMI, K. L., RAMA, P., “FPGA Implementation of Efficient Window Ar-

chitecture Design Using Completely Scaling-Free CORDIC Algorithm”,

International Journal for Research in Applied Science and Engineering

Technology , v. 3, n. 5, pp. 933–940, 2015.

75

Page 98: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[29] CLEMENTS E. PAUSA, China’s impact on the semiconductor industry: 2015

update, Tech. rep., PwC - PricewaterhouseCoopers International Limited,

Beijing, China, March 2016.

[30] ESCAMILLA HEMANDEZ, E., KRAVCHENKO, V., PONOMARYOV, V.,

et al., “Signal compression in radar using FPGA”, Revista Facultad de

Ingenierıa Universidad de Antioquia, , n. 55, pp. 134–143, 2010.

[31] SMITH, S., The Scientist and Engineer’s Guide to Digital Signal Processing .

California Technical Pub., 1997.

[32] STOICA, P., MOSES, R., Spectral Analysis of Signals . Pearson Prentice Hall,

2005.

[33] WANG, Y., LI, J., STOICA, P., Spectral Analysis of Signals: The Missing

Data Case. Synthesis Lectures on Signal Processing , Morgan & Claypool

Publishers, 2006.

[34] HAYKIN, S., Advances in Spectrum Analysis and Array Processing . N. v. 3,

Advanced Spectural Analysis , Prentice Hall, 1995.

[35] OPPENHEIM, A., SCHAFER, R., Discrete-Time Signal Processing . Pearson

Education, 2011.

[36] LYONS, R., Understanding Digital Signal Processing . Prentice Hall, 2011.

[37] CUNHA, M. C., Metodos Numericos . UNICAMP, 2000.

[38] CHAPRA, S., CANALE, R., Numerical methods for engineers . McGraw-Hill

Higher Education, 2005.

[39] DOS SANTOS, J., DA SILVA, Z., Metodos Numericos . UFPE, 2006.

[40] PADGETT, W., ANDERSON, D., Fixed-Point Signal Processing . Synthesis

lectures on signal processing , Morgan & Claypool, 2009.

[41] RAY, G., “Between Fixed and Floating Point”, Artigo

na Chip Design Magazine . Disponıvel em http :

//chipdesignmag.com/display.php?articleId = 3921. Acesso em:

05 maio 2015., 2010.

76

Page 99: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[42] INCORPORATED, T. I., “Comparing Fixed- and Floating-Point

DSPs”, Documento tecnico sobre produtos. Disponıvel em

http : //www.ti.com/lit/wp/spry061/spry061.pdf . Acesso em: 22

junho 2015., 2004.

[43] RICHEY, M., New Data Formats for DSP Applications . Wea Valley Publishing,

2008.

[44] ZHBANNIKOV, I. Y., DONOHOE, G. W., “FpSynt: a fixed-point datapath

synthesis tool for embedded systems”, arXiv preprint arXiv:1307.8401 ,

2013.

[45] KYTHE, P., Sinusoids: Theory and Technological Applications . Monographs

and Research Notes in Mathematics , Taylor & Francis, 2014.

[46] JACKSON, L., Digital Filters and Signal Processing: With MATLAB R© Exer-

cises . Springer US, 2013.

[47] FASTHUBER, R., CATTHOOR, F., RAGHAVAN, P., et al., Energy-Efficient

Communication Processors: Design and Implementation for Emerging

Wireless Systems . SpringerLink : Bucher , Springer New York, 2013.

[48] SMITH, S., Digital Signal Processing: A Practical Guide for Engineers and

Scientists . Demystifying technology series , Elsevier Science, 2013.

[49] LEE, P., Introduction to Physical Integration and Tapeout in VLSIs . Lulu

Enterprises Incorporated, 2010.

[50] WESTE, N., HARRIS, D., CMOS VLSI Design: A Circuits and Systems Pers-

pective. Addison Wesley, 2011.

[51] MIRZAEI, S., Design Methodologies and Architectures for Digital Signal Pro-

cessing on FPGAs , Ph.D. Thesis, University of California, Santa Barbara,

CA, United States, 6 2010.

[52] BHASKER, J., CHADHA, R., Static Timing Analysis for Nanometer Designs:

A Practical Approach. Springer US, 2009.

77

Page 100: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[53] V. KUMAR, K. C. R., KUMAR, P., “CORDIC-based VLSI Architecture for

Real Time Implementation of Flat Top Window”, Microprocess. Mi-

crosyst., v. 38, n. 8, pp. 1063–1071, Nov. 2014.

[54] BERGERON, J., CERNY, E., HUNTER, A., et al., Verification Methodology

Manual for SystemVerilog . Springer US, 2006.

[55] YUAN, J., PIXLEY, C., AZIZ, A., Constraint-Based Verification. Springer,

2006.

[56] KROPF, T., Introduction to Formal Hardware Verification. Springer Berlin

Heidelberg, 2013.

[57] BERGERON, J., Writing Testbenches using SystemVerilog . Springer US, 2007.

[58] WILE, B., GOSS, J., ROESNER, W., Comprehensive Functional Verification:

The Complete Industry Cycle. Systems on Silicon, Elsevier Science, 2005.

[59] PITERMAN, N., Hardware and Software: Verification and Testing: 11th In-

ternational Haifa Verification Conference, HVC 2015, Haifa, Israel, No-

vember 17-19, 2015, Proceedings . Lecture Notes in Computer Science,

Springer International Publishing, 2015.

[60] SANKARAN, H., High-level Synthesis Framework for Crosstalk Minimization

in VLSI ASICs . University of South Florida, 2008.

[61] WILCOX, P., Professional Verification: A Guide to Advanced Functional Ve-

rification. Ifip Series , Springer US, 2007.

[62] ANNAVARAPU, P., TADISETTY, S., “Role of EDA tools in ASIC Design”,

Journal of Innovation in Electronics and Communication, v. 3, n. 1,

pp. 35–39, 2013.

[63] KAHNG, A., LIENIG, J., MARKOV, I., et al., VLSI Physical Design: From

Graph Partitioning to Timing Closure. Springer Netherlands, 2011.

[64] NETTO, C. G., “Jornal da Unicamp, Edicao 310”, Disponıvel em

http://www.unicamp.br/unicamp/unicamp_hoje/ju/novembro2005/

ju310pag11.html. Acesso em: 05 maio 2015., 2005.

78

Page 101: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[65] KUO, S. M., LEE, B. H., TIAN, W., Real-time digital signal processing: fun-

damentals, implementations and applications . John Wiley & Sons, 2013.

[66] TAN, L., JIANG, J., Digital signal processing: fundamentals and applications .

Academic Press, 2013.

[67] ALPERT, C., MEHTA, D., SAPATNEKAR, S., Handbook of Algorithms for

Physical Design Automation. Taylor & Francis, 2008.

[68] SAIT, S., YOUSSEF, H., VLSI Physical Design Automation: Theory and Prac-

tice. Lecture Notes Series , World Scientific, 1999.

[69] GOLSHAN, K., Physical Design Essentials: An ASIC Design Implementation

Perspective. Springer US, 2010.

[70] ZHU, Q., Power Distribution Network Design for VLSI . Wiley, 2004.

[71] AHMED, N., Nanometer Technology Designs: High-Quality Delay Tests . Sprin-

ger US, 2011.

[72] LIN, M., Introduction to VLSI Systems: A Logic, Circuit, and System Perspec-

tive. CRC Press, 2011.

[73] CHANDRAKASAN, A., FOX, F., BOWHILL, W., Design of High-

Performance Microprocessor Circuits . Electrical engineering , Wiley, 2001.

[74] SEGURA, J., HAWKINS, C., CMOS Electronics: How It Works, How It Fails .

Wiley, 2004.

[75] T., Y., C., P., “Implementation of Hyperbolic CORDIC-based VLSI architec-

ture for Kaiser-Bessel Window techniques in spectral analysis”. In: In-

novations in Information, Embedded and Communication Systems (ICII-

ECS), 2015 International Conference on, pp. 1–5, March 2015.

[76] SCHEFFER, L., LAVAGNO, L., MARTIN, G., EDA for IC Implementation,

Circuit Design, and Process Technology . N. v. 2, EDA for IC Implemen-

tation, Circuit Design, and Process Technology , Taylor & Francis, 2006.

79

Page 102: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

[77] ISO/IEC 13818-7, Generic coding of moving pictures and associated audio in-

formation - Part 7: Advanced Audio Coding (AAC), Standard, Internati-

onal Organization for Standardization, Geneva, CH, Jan. 2006.

[78] SILICON LABS, Using Microcontrollers in Digital Signal Processing Applica-

tions . Application Note AN219 , August 2008.

[79] BANG, K. H., KIM, J. S., JEONG, N. H., et al., “Design optimization of

MPEG-2 AAC decoder”, IEEE Transactions on Consumer Electronics ,

v. 47, n. 4, pp. 895–903, 2001.

[80] SMITH, S. W., The Scientist and Engineer’s Guide to Digital Signal Processing .

California Technical Publishing: San Diego, CA, USA, 1997.

80

Page 103: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Apendice A

Trabalho Publicado

A.1 Trabalho Publicado

Segue resumo de trabalhos cientıfico publicado com resultados encontrados na pes-

quisa que fundamentou esta dissertacao:

A.1.1 Artigo em Congresso

• OLIVEIRA, J. R. S. ; OLIVEIRA, W. L. A. ; JESUS, F. B. . Memory Opti-

mizations on a Windowing/Block Switching Module. In: The 5th Workshop

on Circuits and Systems Design (WCAS), 2015, Salvador - Bahia - Brasil.

Proceedings of the 5th Workshop on Circuits and Systems Design (WCAS),

2015.

Resumo:

This paper describes a low memory usage ASIC implementation for a Windowing/Block

Switching module, belonging to the analysis filterbank of a MPEG Audio Decoder.

The architecture for such a module is provided as well as an analysis of the related

implementation.

81

Page 104: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Memory Optimizations on a

Windowing/Block Switching Module

Wagner L. A. Oliveira, Joaquim R. S. Oliveira

Digital Systems Laboratory

Polytechnic School - UFBA

Salvador, Brazil

[email protected], [email protected]

Fábio B. Jesus

Embedded Systems Laboratory

Technology Department - UEFS

Feira de Santana, Brazil

[email protected]

Abstract — This paper describes a low memory usage ASIC

implementation for a Windowing/Block Switching module,

belonging to the analysis filterbank of a MPEG Audio Decoder.

The architecture for such a module is provided as well as an

analysis of the related implementation.

Keywords — windowing functions; analysis filterbank; MPEG;

decoder; ASIC.

I. INTRODUCTION

The AAC (Advanced Audio Coding) is an international standard firstly created in MPEG-2 AAC (ISO/IEC 13818-7) [1] and is the base of MPEG-4 general audio coding. MPEG-2 AAC audio coding has become very popular and been widely used. It is suitable for a wide range of applications from Internet audio over digital audio broadcasting to multi-channel surround sound. It achieves high compression ratio and high quality performance due to an improved time-frequency mapping cooperate with other tools, like TNS and Predictor. Compared to MPEG-1 Layer 3 (MP3) audio, AAC provides higher quality audio reproduction, yet it requires approximately 50% less data. That means music that sounds better, downloads faster, and takes less storage space or network bandwidth. Due to such advantages, AAC is the default encoding used by Apple iTunes software and it is used on the standard of the Brazilian Digital Television System, also known as ISDB-TB, developed by an association including Brazilian Government, Brazilian universities and communication companies.

Developed by AT&T Corporation, Dolby Laboratories, the Fraunhofer Institute for Integrated Circuits and Sony Corporation, the AAC was standardized under the joint direction of the International Organization of Standardization and the International Electro-Technical Committee as part of the MPEG-2 specification in 1997 [1]. Initially, AAC was defined by 13818-3 as a multi-channel extension to MPEG-1 (the standard defining MP3) and was backwards compatible with MPEG-1. However, AAC was limited by the MPEG-1 standard, and 13818-7 was introduced. This standard defines AAC audio that is incompatible with MPEG-1 [2].

There are three different profiles for AAC: Main profile, that includes the full set of coding tools and produces the highest quality output; Low Complexity (LC) profile - limits some coding tools (TNS) and excludes others (Prediction and

Pre-programming); and Scalable Sample Rate (SSR) Profile -the least complex of the three, using crippled filterbank.

The difference in performance and quality of the Main profile compared to the LC one is small. However, the encoding and especially the decoding complexity of the Main Profile compared to the LC one are significant [2].

AAC file is a compressed audio file similar to a .mp3 file, but offers several performance improvements [3]; examples include a higher coding efficiency for both stationary and transient signals, a simpler filterbank, and better handling of frequencies above 16 kHz; maintains quality nearly indistinguishable from the original audio source.

In this context, our group has been developing a low-cost MPEG-2 AAC-LC decoder (Fig. 1). The main functions of such IP-core are to find the description of the quantized audio spectra in the input bitstream (from an AAC audio file – ISO 13818-7), decode the quantized values and other reconstruction data, reconstruct the quantized spectra, process the reconstructed spectra in order to recover the original signal spectra, and convert the frequency domain spectra to the time domain.

Throughout the decoder, the input AAC bitstream undergoes a series of processing steps to deal with IP-core functions. A bitstream defformatter is done by separating data from fields that compose the bitstream in: i) spectral data for each audio channel (quantized, scaled, and Huffman coded spectral coefficients); ii) distribution of spectral data into sections (each one associated with a Huffman code book); and iii) control data for a filter bank. Then, using Huffman code books, the spectral coefficients (which remain quantized and scaled) and the scaling factors (which were differentially encoded at the encoder, each one related to a spectrum band) are decoded. After, a dequantizer applies the inverse quantization of spectral coefficients and a reescaler multiplies the scale factors by spectral coefficients according to scale factor bands. Then the spectral coefficients in the frequency domain are transformed to a PCM encoded signal in time domain by applying inverse modified discrete cosine transform (IMDCT) on spectral coefficients in a given time window. The timing domain signal is submitted to a windowing function, sine or Kaiser-Bessel Derived (KBD), on a given window sequence. Such function is selected according to the incoming

82

Page 105: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

bitstream. Finally, adjacent window sequences are merged with the left half of a window sequence being overlapped and added to the right half of the preceding window sequence.

This paper presents an implementation of the time domain processing module called Windowing/Block Switching (W/BS) module as part of an MPEG-2 AAC-LC decoder with an optimized memory utilization due to project space constraints, featuring its importance for the synthesis filterbank, its analytical expressions, its hardware design and the corresponding implementation gains.

Fig. 1. UFBA/UEFS/Brazil-IP MPEG AAC-LC Audio Decoder.

II. W/BS MODULE

The W/BS module is responsible for applying window functions on the audio signal in the time domain. Such operation aims both to reduce the spectrum loss (through separation of signals with amplitudes which vary abruptly) and to increase the characteristics of the sampled signal (through minimization of the margins of transition) [5, 6]. The windowing method is the simple multiplication of the samples of the original signal by the respective coefficients (same index) of the window function [5, 7], as depicted in Fig. 2.

Fig. 2. Windowing of three random samples.

In practical terms, to obtain a good window, i.e., a window that causes less distortion in the frequency domain, it is necessary to find a finite length of window in which the frequency response has most of its energy concentrated around zero and that the sidelobes decay rapidly, as the indices deviate from zero [6], as illustrated in Fig. 3.

The representations of the lobes in time domain have a direct association with the responses in the frequency domain. Such a relationship determines the windowing behavior. For example, a large sidelobe may introduce a higher ripple near

the ends of the passband in the frequency domain response, while a larger main lobe defines a wider transition range [4, 6].

Fig. 3. A window and its frequency response.

It is necessary to maintain an appropriate trade-off between main lobe and sidelobes: windows with a wide main lobe provide better frequency resolution, but they cause aliasing in the signal (spurious frequency components), besides reducing frequency identification accuracy; on the other hand, large sidelobes avoid aliasing, but the frequency resolution is worse [4, 5, 9].

According to the audio signal behavior, it is possible to achieve an adequate frequency resolution for a given situation by means of both sine and KBD windows, but no window alone provides a good response throughout an MPEG-2 AAC audio signal [4, 8].

The sine window provides good resolution for the spectral components of a signal, improving the efficiency of high-harmonic signals encoding. Let N (N = 256 or N = 2048) to be the number of samples, the sine window can be represented by equation (1):

(1)

where n = 0, 1, 2, 3,..., N-1.

On the other hand, according to the input signal, KBD may improve the coding efficiency. Let N (N = 256 or N = 2048) to be the number of samples, the KBD can be represented by equation (2):

(2)

where n = 0, 1, 2, 3,..., N-1. For N = 256, α = 6; for N = 2048, α = 4.

The value I0 in equation (2) is given by equation (3):

(3)

Therefore, the W/BS module is responsible for dynamically changing the sine and KBD window functions, depending on the input signal conditions, to perform the signal windowing.

83

Page 106: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

III. W/BS ARCHITECTURE

Based on equations (1), (2) and (3), it is possible to build all the window coefficients independently of other factors. However, the direct implementation of such equations in Verilog is impracticable, since HDLs (Hardware Description Languages) are too limited to describe operations with roots, exponentiation, factorials, divisions, multiplications and infinite limits.

A solution would be to reduce these equations in numerical methods with simple arithmetic operations to be carried out through a floating point unit (FPU). In this case, the problem would be the computational latency to perform such operations, which would fail to comply with the time requirements. To decode a 44.1 kHz stereo signal, the W/BS module should be able to apply a window function (sine or KBD) up to 176,400 PCM samples per second.

For this reason, a trivial implementation would be to compute these functions in MATLAB and store the computed 16-bit values for both functions in lookup tables. Thus performing the windowing would requiere only a controller to analyze the window-related information and sequence, in order to access memory data to multiply them by the coefficients generated from IMDCT module. However, such an implementation would consume the equivalent of 73,728 memory bits, or the equivalent of 442,368 transistors (considering a SRAM of six transistors per bit). Considering a single module, this is not a high amount - however, due to the existence and interaction with other modules of the MPEG-2 AAC-LC audio decoder, such a value is high. Access to external memory is quite critical, especially for dedicated bandwidth to the IMDCT module.

An improved solution is to reduce/compress the amount of coefficients, by means of mathematical functions and signal properties, able to reassemble the final set of coefficients (256/2048). To meet this goal, the rounding factor must also be observed, because the compression methods generate coefficients with approximate values. The coefficients generated must be within a tolerable range, whose noise generated is not sufficient to generate further distortions in the original signal.

The metrics of data reduction aim to obtain a trade-off between the requirements of processing, storage, time, and accuracy, through the use of mathematical methods such as Lagrange, Newton, Linear Regression, Splines, and Linear Interpolation. But not all the cited functions are suitable for a digital logic implementation, due to the fact that operations are performed in a floating point unit. Hence, for a FPU that uses only basic operations (addition, subtraction, multiplication and division), such operations have a high latency.

The Linear Interpolation method presents the best trade-off between the number of operations and response time per sample, due to its simple structure with sums and multiplications, which can be replaced by successive additions.

After choosing Linear Interpolation method, the next step was to develop the data reduction metric for both the window functions KBD and sine (considering window sequences of 256 and 2048 signal samples). Linear Interpolation establishes

that a curve is approximated by a set of successive straight lines which best suit their molds. Thus, the portion of the curve shown in Fig. 4 can be cut by a set straight of lines near its path.

Fig. 4. Linear Interpolation over a window segment.

It is possible to observe (Fig. 4) that the interpolated lines cross exactly some points of the curve. Moreover, in the intermediate points (indices), there are variations between the points described by the straight line and the curve drawn - these differences are approximations (errors) performed by interpolation.

Hence, as the start and the end points of a line (e.g. indexes 12 and 16 in Fig. 4) are exactly points of the curve, the value reconstituted from the end point (as the index 16, Fig. 4) serves as a basis for the construction of next line (starting with the index 16). In other words, it is only needed to store the value of the angular coefficient, because the linear one is obtained from the previous line and because the steps of the coordinates axis are constants (value 1).

To determine the angular coefficients is necessary to have a trade-off between the amount of indexes that will be part of each line (X0 - X1, Fig. 4) and the allowed error. In other words, to obtain a better description of the original curve, lines of different sizes are used. However, the more indexes are contained in a line, the lower will be the set of lines, but the worse the approximation.

After defining the set of lines (a.x + b), from successive increments in the angular coefficients, it is possible to reconstruct the entire curve.

In order to obtain the set of lines, an algorithm was implemented in MATLAB, using an artifice to achieve the 1% maximum error allowed by the ISO. A floating point representation with 16 bits is mandatory in the project due to major requirements and therefore the small 0.0262% average precision error while propagating in the curve creation exceeds the permitted limit. Therefore in this particular case the creation of sine and KBD curves was done using decimal values resulting on errors as expected as shown in Table I. Figure 5 shows the error of each sample for both 2048 and 255 for KDB window, Figure 6 does the same for Sine window.

TABLE I. ERRORS FOR KBD AND SINE WINDOWS FUNCTIONS

Maximun Error Average Error

256 2048 256 2048

KBD 1.02% 0.98% 0.3% 0.22%

Sine 0.57% 0.99% 0.2% 0.43%

84

Page 107: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela

Fig. 5. KBD 256 and 2048 samples percentagem error.

Fig. 6. Sine 256 and 2048 samples percentagem error.

From there 240 lines was generated for the KBD function for 2048 samples, 23 lines for the KBD function for 256 samples, 90 lines for the sine function for 2048 samples, and 35 lines for the sine function for 256 samples. With 16-bit precision, such a solution stores only 6208 bits.

The architecture depicted in Fig. 7 for the W/BS module was developed to reconstruct all the window function coefficients (KBD and Sine) and apply those coefficients to original signal. The Controller block commands the Coefficient Generator block to generate the coefficients based on inputs Shape (KBD or Sine) and Sequence (long, long start, long stop, eight short) of the current window. Then it drives the FPU to do the multiplication of a signal sample by a generated coefficient. Finally it outputs a windowed sample, as well as its corresponding index. Such a process is repeated until all signal samples are windowed.

Fig. 7. Architecture of Windowing/Block Switching Module.

IV. RESULTS

The optimized implementation was successful in FPGA device (Cyclone III EP3C25E144C8), meeting the timing requirements using a 50MHz clock. The same implementation has been synthesized in ASIC design flow with a technology node of 180nm with a 50MHz clock frequency, and it was compared with the trivial implementation (all window coefficients stored in chip memory).

TABLE II. COMPARING ARCHITECTURES TOTAL AREA

Architecture W/BS Controller Memory

Trivial 483.466 µm² 14.980 µm² 381.365 µm²

Optimized 194.519 µm² 49.616 µm² 52.675 µm²

An area usage comparison between the two implementations is presented in Table II, the complexity of the controller increases its area in 230%, while the memory reduction was 60%. This numbers represents on the W/BS module an area reduction of 75%. The power consumption is also reduced from 1,15mW in trivial approach to 0,855mW in optimized one, which represents a 25,6% power saving.

V. CONCLUSIONS

This paper presented the implementation of the Windowing/Switching Block of a MPEG-2 AAC-LC audio decoder. Due to restrictions on external memory access and considering that internal memory represents a high cost in ASICs, the design of W/BS module decided to make a Linear Interpolation of values stored in a lookup table, in order to minimize external memory accesses and the amount of stored values, taking into account non-functional requirements of performance.

The optimized implementation was successful in FPGA device, meeting the timing requirements. The same implementation has been synthesized in ASIC design flow, and it was compared with the trivial implementation (all window coefficients stored in chip memory). The lack of increase the controller logic of the block was much less impactful in area than the gain obtained in memory area reduction whereas application throughput remains within operation timing/latency margin.

ACKNOWLEDGMENT

The authors would like to thank Brazil-IP Program for supporting this work, through the provided fellowships, technical and methodology supports.

REFERENCES

[1] ISO-IEC MPEG-2 - Part 7: Audio (ISO 13818-7), 2004.

[2] R. Linneman. Advanced Audio Coding on a FPGA, Master Thesis, Queensland, 2002.

[3] FAAC and FAAD2 AAC software, Audiocoding.com Web Site: www.audiocoding.com

[4] Marina Bosi, Richard E. Goldberg. Introduction to Digital Audio Coding and Standards, Springer, 2003.

[5] Alan V. Oppenheim, Ronald W. Schafer. Discrete-Time Signal-Processing. 2nd ed, Prentice-Hall, 1999.

[6] Paulo S. R. Diniz. Processamento Digital de Sinais, Projeto e Análise de Sistemas. Bookman, 2004.

[7] Emmanuel C. Ifeachor. Digital Signal Processing, A Practical Approach (Electronic Systems Engineering). 2nd ed, Prentice-Hall. 2002.

[8] Kyoung-Ho Bang, Nam-Hun Jeong, Young-Cheol Park, Young-Cheol Park. Design Optimization of Main-Profile MPEG-2 AAC Decoder, ICASSP IEEE International Conference on Acoustics, Speech, and Signal Processing, vol. 2, pp.989-992, 2001.

[9] Steven W. Smith. Digital Signal Processing: A Practical Guide for Engineers and Scientists. 3rd ed, Newnes, 2003.

85

Page 108: UNIVERSIDADE FEDERAL DA BAHIA - ppgee.eng.ufba.br · lab, have also been ... 4.1.1 Representa˘c~ao da Tabela de Dados da Compacta˘c~ao dos Pontos49 ... 5.7 Erro relativo para janela