• Nenhum resultado encontrado

2008.2Monografia Milton Cerqueira 2004.1

N/A
N/A
Protected

Academic year: 2021

Share "2008.2Monografia Milton Cerqueira 2004.1"

Copied!
98
0
0

Texto

(1)

Decodificador de ´

Audio MPEG-2 AAC-LC:

Estruturas de Controle e Armazenamento

Feira de Santana - BA, Brasil

(2)

Decodificador de ´

Audio MPEG-2 AAC-LC:

Estruturas de Controle e Armazenamento

Monografia de Trabalho de Conclus˜ao de Curso para obten¸c˜ao do Grau de Bacharel em Engenharia de Computa¸c˜ao pela Univer-sidade Estadual de Feira de Santana.

Orientador:

Prof. Dr. Wagner Luiz Alves de Oliveira

Curso de Engenharia de Computac¸˜ao Departamento de Tecnologia

Universidade Estadual de Feira de Santana

Feira de Santana - BA, Brasil

(3)

Esta monografia descreve o trabalho realizado sobre a especifica¸c˜ao e a verifica¸c˜ao fun-cional de m´odulos de controle e armazenamento para um decodificador de ´audio MPEG-2 AAC-LC, de acordo com as especifica¸c˜oes da norma ISO/IEC 13818-7. Esta norma de-fine um esquema de codifica¸c˜ao/decodifica¸c˜ao de ´audio de alto desempenho, capaz de produzir ´audio com qualidade superior a do mp3 e a do CD, devido a maior capacidade de armazenamento/transmiss˜ao, isto ´e, a maior quantidade de canais de ´audio em um disco compacto. A especifica¸c˜ao dos m´odulos baseou-se na metodologia ipProcess, a qual ´e voltada ao desenvolvimento de IP-Cores. Por outro lado, a verifica¸c˜ao funcional dos m´odulos baseou-se na metodologia BVM (Brazil-IP Verification Methodology), a qual ´e suportada pela linguagem de descri¸c˜ao de hardware SystemVerilog e pela metodologia de verifica¸c˜ao OVM (Open Verification Methodology). Em rela¸c˜ao aos m´odulos tratados, o m´odulo de armazenamento ´e respons´avel por opera¸c˜oes de leitura e escrita relativas `a uma mem´oria interna, a qual armazena informa¸c˜oes auxiliares, usadas pelos demais m´odulos do decodificador. Ao passo que, o m´odulo de controle ´e respons´avel por diversas ativi-dades: configura¸c˜ao, ativa¸c˜ao e desativa¸c˜ao de m´odulos do decodificador; requisi¸c˜ao de opera¸c˜oes de leitura e escrita ao controlador de mem´oria; controle de fluxo de dados entre m´odulos do decodificador; e controle de um conversor D/A Stereo (Stereo DAC).

(4)

This monograph reports a graduate work aimed at the functional especification and verification of control and storage modules for a MPEG-2 AAC-LC audio decoder, ac-cording to ISO/IEC 13818-7 standard. Such standard defines a high perfomance audio coding/decoding scheme, capable of producing superior quality audio when compared to mp3 and CD schemes, due to the larger data storage/transmission capacity, e.g., the greatest number of audio channels on a compact disc. The functional specification of the modules was based on the ipProcess methodology, which is turned to IP-Core de-velopment. On the other hand, their functional verification was based on the Brazil-IP Verification Methodology (BVM), which is supported by both the hardware description language SystemVerilog and the Open Verification Methodology (OVM). Regarding the developed modules, the storage one is responsible for reading and writing operations on an internal memory, which stores auxiliary information used by other modules of the de-coder. The other module - control - is responsible for several activities: configuration, activation and deactivation of the decoder modules, requisition of reading and writing operations to the memory controller, data flow control between modules of the decoder and control of a D/A Stereo (Stereo DAC) converter.

(5)
(6)

Agrade¸co primeiramente a Deus.

A minha fam´ılia, pelo apoio. Destacando a ajuda de Camila na revis˜ao, corre¸c˜ao e, principalmente, pelo seu carinho e paciˆencia.

Ao professor Wagner pelo esfor¸co despendido na orienta¸c˜ao e supervis˜ao, al´em da paciˆencia no decorrer do projeto.

(7)

Lista de Figuras

Lista de Tabelas

Lista de Abreviaturas e Siglas

1 Introdu¸c˜ao P. 13

1.1 Motiva¸c˜oes . . . P. 13

1.2 Padr˜ao do SBTVD-T . . . P. 15

1.3 Cons´orcio Brazil-IP . . . P. 16

1.4 Objetivos . . . P. 17

1.5 Estrutura da Monografia . . . P. 18

2 Fundamenta¸c˜ao Te´orica P. 19

2.1 A Fam´ılia MPEG . . . P. 19

2.2 O Padr˜ao MPEG–2 . . . P. 21

2.3 Modelo Psico-Ac´ustico . . . P. 21

2.4 Codifica¸c˜ao Avan¸cada de ´Audio – AAC . . . P. 22

2.5 Resumo . . . P. 28

3 Materiais e M´etodos P. 29

3.1 Metodologia . . . P. 29

3.1.1 ipProcess . . . P. 29

(8)

3.1.2.2 BVM . . . P. 33

3.1.2.3 eTBc . . . P. 35

4 Desenvolvimento e Resultados P. 37

4.1 ipProcess – Requisitos . . . P. 37

4.1.1 Documento de Especifica¸c˜ao de Requisitos . . . P. 37

4.1.2 Documento de Especifica¸c˜ao de Casos de Uso . . . P. 38

4.2 ipProcess – An´alise & Projeto . . . P. 42

4.2.1 Documento de An´alise . . . P. 42

4.2.2 Documento de Arquitetura . . . P. 44

4.3 ipProcess – Verifica¸c˜ao . . . P. 48

4.3.1 Plano de Verifica¸c˜ao . . . P. 48

4.3.2 Documento de Casos de Teste . . . P. 48

4.3.2.1 Controlador Principal . . . P. 49

4.3.2.2 Controlador de Mem´oria . . . P. 53

4.4 Verifica¸c˜ao Funcional . . . P. 55 4.5 Resumo . . . P. 57 5 Discuss˜ao P. 58 6 Conclus˜oes P. 59 Referˆencias P. 60 Gloss´ario P. 64

Apˆendice A -- ipProcess – Especifica¸c˜ao de Requisitos P. 68

A.1 Controlador Principal . . . P. 68

(9)

B.1 Controlador Principal . . . P. 71

B.2 Controlador de Mem´oria . . . P. 81

Apˆendice C -- ipProcess – Verifica¸c˜ao P. 89

C.1 Arquivo TLN . . . P. 89

C.2 Arquivo tb.sv . . . P. 90

C.3 Arquivo refmod ddr ctrl.svh . . . P. 92

(10)

1 PNAD – Domic´ılios com Bens Dur´aveis - 2005-2007. . . P. 15

2 Padr˜ao japonˆes ISDB-T. . . P. 16

3 Decodificador de ´audio MPEG-2 AAC-LC proposto – Chamada Brazil

IP 2008. . . P. 18

4 Sistema MPEG composto pelo codificador, canal de transmiss˜ao e

deco-dificador. . . P. 19

5 Sistema assim´etrico. . . P. 20

6 Fam´ılia MPEG normas 1, 2 , 4 e 7. . . P. 20

7 Fluxograma do ipProcess . . . P. 30

8 Fases do ipProcess . . . P. 31

9 Evolu¸c˜ao do custo em um projeto de CI . . . P. 32

10 Lei de Moore . . . P. 32

11 Metodologias BVM e OVM – Fluxo de projeto . . . P. 35

12 M´odulos do testbench gerados pelo eTBc. . . P. 36

13 Diagrama geral de casos de uso . . . P. 41

14 Diagrama geral de an´alise . . . P. 43

15 Diagrama geral de arquitetura – Camadas . . . P. 45

16 Diagrama de arquitetura – Acionar . . . P. 46

17 Diagrama de arquitetura – Disponibilizar Amostras . . . P. 47

18 Diagrama de arquitetura – Executar Opera¸c˜ao . . . P. 47

(11)

1 Compara¸c˜oes entre o AAC e o MP3 . . . P. 22

2 M´odulos do decodificador AAC . . . P. 23

3 Interoperabilidade entre perfis AAC . . . P. 23

4 Caso de Teste Direcionado relacionado ao Controlador Principal . . . . P. 49

(12)

AAC Codifica¸c˜ao Avan¸cada de ´Audio (Advanced Audio Coding) AVM Metodologia de Verifica¸c˜ao Avan¸cada (Advanced Verification

Methodology)

Brazil-IP Programa de Desenvolvimento de Propriedade Intelectual de Semicondutores do Brasil (Brazil Semiconductor Intellectual Property)

BVM Metodologia de Verifica¸c˜ao do Brazil-IP (Brazil-IP Verification Methodology)

CMS Controlador de Mem´oria do Sistema

CNPq Conselho Nacional de Desenvolvimento Cient´ıfico e Tecnol´ogico (National Counsel of Technological and Scientific Develop-ment )

CP Controlador Principal

DPCM Modula¸c˜ao por C´odigo de Pulso Diferencial (Differential Pulse Code Modulation)

DSM-CC Comando e Controle para M´ıdia de Armazenamento Digital (Digital Storage Media Command and Control )

DUT Dispositivo sob Teste, Projeto sob Teste (Device Under Test, Design Under Test )

DUV Projeto sob Verifica¸c˜ao (Design Under Verification)

EDA Automa¸c˜ao de Projetos Eletrˆonicos (Eletronic Design Automa-tion)

eTBc Gerador Auxiliar de Testbench (Easy Testbench Creator ) FPGA Arranjo de Portas L´ogicas Program´avel no Local (Field

Pro-grammable Gate Array)

IBGE Instituto Brasileiro de Geografia e Estat´ıstica

IMDCT Transformada Discreta Modificada Inversa de Cosseno (Inverse Modified Discrete Cosine Transform)

(13)

ISDB-T Servi¸co Integrado de Transmiss˜ao Digital Terrestre (Integrated Services Digital Broadcasting Terrestrial )

ISO Organiza¸c˜ao Internacional de Padr˜oes (International Standards Organization)

MCT Minist´erio da Ciˆencia e Tecnologia MEF M´aquina de Estados Finitos

MPEG Grupo de Peritos em Imagens Dinˆamicas (Moving Picture Ex-perts Group)

NBC Compatibilidade n˜ao Retroativa (Non Backward Compatible) OVM Metodologia de Verifica¸c˜ao Aberta (Open Verification

Metho-dology)

PADIS Programa de Apoio ao Desenvolvimento Tecnol´ogico da Ind´ustria de Semicondutores

PATVD Programa de Apoio ao Desenvolvimento Tecnol´ogico da Ind´ustria de Equipamentos para a TV Digital

PCM Modula¸c˜ao por C´odigo de Pulso (Pulse Code Modulation) PQF Filtro de Quadratura Polif´asica (Polyphase Quadrature Filter ) RUP Processo Unificado da Rational (Rational Unified Process) SBTVD-T Sistema Brasileiro de Televis˜ao Digital Terrestre

TLM Modelagem em N´ıvel de Transa¸c˜oes (Transaction-Level Mode-ling)

TSN Modelador de Ru´ıdo Temporal (Temporal Noise Shapping) UML-RT Linguagem de Modelagem Unificada para Tempo Real (Unified

Modeling Language for Real Time)

URM Metodologia de Re´uso Universal (Universal Reuse Methodo-logy)

VLSI Integra¸c˜ao em Escala Muito Ampla (Very Large Scale Integra-tion)

(14)

1

Introdu¸

ao

Esta monografia aborda o desenvolvimento de m´odulos que comp˜oem um sistema maior, a saber, o Decodificador de ´Audio AAC-LC. A partir dessa an´alise, novos conceitos concernentes ao contexto de desenvolvimento de IP-Cores ser˜ao apresentados. Neste cap´ıtulo contextualiza-se o presente trabalho, al´em de se apresentar os objetivos e sua estrutura.

1.1

Motiva¸

oes

Em fase de implanta¸c˜ao no pa´ıs, a TV digital supera a anal´ogica principalmente nos aspectos de qualidade de imagem e interatividade, atrav´es do uso de v´arios tipos de circuitos/esquemas, seja na capta¸c˜ao, transmiss˜ao e reprodu¸c˜ao de ´audio e v´ıdeo ( ROES-LER, 2007). Esse novo sistema, ao trabalhar com sinal digital, ir´a ampliar o potencial do sistema de televis˜ao atual, al´em de gerar avan¸cos nos cen´arios social, econˆomico e cient´ıfico-tecnol´ogico.

O decreto n.o 5.820, de 29 de Junho de 2006(BRASIL, 2006) define o SBTVD-T (Sis-tema Brasileiro de Televis˜ao Digital Terrestre) como o conjunto de padr˜oes tecnol´ogicos a serem adotados para transmiss˜ao e recep¸c˜ao de sinais digitais terrestres de radiodifus˜ao de sons e imagens. O decreto n.o 4.901, de 26 de novembro de 2003 (BRASIL, 2003) define um conjunto de objetivos para a implanta¸c˜ao do SBTVD-T:

I - promover a inclus˜ao social, a diversidade cultural do Pa´ıs e a l´ıngua p´atria por meio do acesso `a tecnologia digital, visando `a democratiza¸c˜ao da informa¸c˜ao;

II - propiciar a cria¸c˜ao de rede universal de educa¸c˜ao `a distˆancia;

III - estimular a pesquisa e o desenvolvimento e propiciar a expans˜ao de tecnologias brasileiras e da ind´ustria nacional relacionadas `a tecnologia de informa¸c˜ao e comu-nica¸c˜ao;

(15)

IV - planejar o processo de transi¸c˜ao da televis˜ao anal´ogica para a digital, de modo a garantir a gradual ades˜ao de usu´arios a custos compat´ıveis com sua renda;

V - viabilizar a transi¸c˜ao do sistema anal´ogico para o digital, possibilitando `as conces-sion´arias do servi¸co de radiodifus˜ao de sons e imagens, se necess´ario, o uso de faixa adicional de radiofreq¨uˆencia, observada a legisla¸c˜ao espec´ıfica;

VI - estimular a evolu¸c˜ao das atuais exploradoras de servi¸co de televis˜ao anal´ogica, bem assim o ingresso de novas empresas, propiciando a expans˜ao do setor e possibilitando o desenvolvimento de in´umeros servi¸cos decorrentes da tecnologia digital, conforme legisla¸c˜ao espec´ıfica;

VII - estabelecer a¸c˜oes e modelos de neg´ocios para a televis˜ao digital adequados `a reali-dade econˆomica e empresarial do Pa´ıs;

VIII - aperfei¸coar o uso do espectro de radiofreq¨uˆencias;

IX - contribuir para a convergˆencia tecnol´ogica e empresarial dos servi¸cos de comu-nica¸c˜oes;

X - aprimorar a qualidade de ´audio, v´ıdeo e servi¸cos, consideradas as atuais condi¸c˜oes do parque instalado de receptores no Brasil; e

XI - incentivar a ind´ustria regional e local na produ¸c˜ao de instrumentos e servi¸cos digi-tais.

A televis˜ao ´e um dos equipamentos com maior penetra¸c˜ao social, sendo v´arias as oportunidades de explora¸c˜ao. Desde a explora¸c˜ao educacional, programas educacionais `

a distˆancia que interagem com os alunos, at´e a explora¸c˜ao comercial e programas com cat´alogos 3D, nos quais o consumidor pode interagir com o produto solicitando a com-pra on-line. Segundo dados da Pesquisa Nacional por Amostra de Domic´ılios 2007 do IBGE (Instituto Brasileiro de Geografia e Estat´ıstica, 2007) mais de 94% dos lares (domic´ılios particulares permanentes) brasileiros possuem televis˜ao, como apresentado na Figura 1.

A implanta¸c˜ao da TV Digital ´e uma ´otima oportunidade para o fortalecimento de v´arios setores, principalmente aqueles vinculados ao desenvolvimento e produ¸c˜ao de cir-cuitos integrados (CI). Segundo o secret´ario de Pol´ıtica de Inform´atica do MCT, Augusto Gadelha, atualmente toda a demanda de CI’s do Brasil ´e importada, o que contribui para o d´eficit da balan¸ca comercial (GODOI, 2008). Nesse contexto, o governo, atrav´es de um conjunto de medidas, procura fortalecer o setor de eletrˆonica tornando-o menos

(16)

Figura 1: PNAD – Domic´ılios com Bens Dur´aveis - 2005-2007.

dependente de importa¸c˜oes. Uma dessas medidas foi a Lei n.o 11.484 de maio de 2007 (BRASIL, 2007) que criou dois programas: O PADIS (Programa de Apoio ao Desenvolvi-mento Tecnol´ogico da Ind´ustria de Semicondutores) e o PATVD (Programa de Apoio ao Desenvolvimento Tecnol´ogico da Ind´ustria de Equipamentos para a TV Digital). Ambos possuem a meta de proteger a topologia de circuitos integrados, visando incentivar pesqui-sas relacionadas a esses circuitos, de forma a impulsionar o desenvolvimento tecnol´ogico do Pa´ıs nesse setor industrial. Mais especificamente no PADIS, o governo assegura uma s´erie de incentivos fiscais `as empresas que investirem em pesquisa e desenvolvimento (P&D) e produzirem componentes eletrˆonicos associados `a TV Digital.

1.2

Padr˜

ao do SBTVD-T

O SBTVD-T adotou como base (Art. 5odo decreto n.o 5.820, de 29 de Junho de 2006) o padr˜ao de sinais do ISDB-T (Servi¸co Integrado de Transmiss˜ao Digital Terrestre – Inte-grated Services Digital Broadcasting Terrestrial ), incorporando as inova¸c˜oes tecnol´ogicas aprovadas pelo Comitˆe de Desenvolvimento de que trata o Decreto n.o 4.901, de 26 de no-vembro de 2003. Dentre essas inova¸c˜oes devem ser destacadas as modifica¸c˜oes no codec de v´ıdeo e ´audio, sendo H.264AVC com ´audio AAC-LC (5.1) no programa principal (´unico ou multi) e v´ıdeo H.264AVC com ´audio HE-AAC no sub-programa para m´oveis. Ambos s˜ao padr˜oes de codifica¸c˜ao e decodifica¸c˜ao superiores `aqueles presentes no ISDB-T(BECHARA, 2007). A Figura 2 apresenta o modelo japonˆes.

(17)

Figura 2: Padr˜ao japonˆes ISDB-T.

1.3

Cons´

orcio Brazil-IP

Como definido no documento The Brazil-IP Network (ARA ´UJO, 2002), o Brazil-IP (Propriedade Intelectual do Brasil – Brazil Intelectual Property) ´e um cons´orcio de la-borat´orios e universidades brasileiras que visa a produ¸c˜ao, estrutura¸c˜ao e confec¸c˜ao de circuitos integrados VLSI (Integra¸c˜ao em Escala Muito Ampla – Very Large Scale Inte-gration) e IP-Cores (N´ucleo de Propriedade Intelectual – Intellectual Property Core). O programa de capacita¸c˜ao desenvolvido por este cons´orcio ´e apoiado com recursos do MCT (Minist´erio da Ciˆencia e Tecnologia), implementados pelo CNPq (Conselho Nacional de Desenvolvimento Cient´ıfico e Tecnol´ogico), sendo o programa acompanhado pelas duas institui¸c˜oes.

A miss˜ao do Brazil-IP pode ser dividida em duas partes. Em primeiro lugar, deve ser criada a competˆencia nacional para projetar circuitos, colocando as institui¸c˜oes de pesquisa e desenvolvimento em contato com pr´aticas de projeto e verifica¸c˜ao de padr˜ao internacional. ´E tamb´em miss˜ao do cons´orcio a cria¸c˜ao de massa cr´ıtica no projeto de IP-Cores, proporcionando a cria¸c˜ao de start ups de Design Houses no pa´ıs, as quais s˜ao unidades de produ¸c˜ao e desenvolvimento de projetos de CI’s. Para isso, essa rede emprega o processo de desenvolvimento de IP-Cores ipProcess, como tamb´em uma metodologia de verifica¸c˜ao funcional, ambos ser˜ao descritos no cap´ıtulo 3.

A UEFS, a partir de 2008, passou a integrar o Programa Brazil-IP, atrav´es do projeto intitulado “Decodificador de ´Audio MPEG-2 AAC-LC”. Atualmente, a equipe vinculada ao Programa Brazil-IP/UEFS desenvolve o IP-Core de um decodificador de ´audio MPEG-2 AAC-LC, de acordo com as especifica¸c˜oes da norma ISO/IEC 13818-7 (MPEG, 1997). Este decodificador ser´a explicado no cap´ıtulo 2 desta monografia, visto que a mesma relata o trabalho de desenvolvimento de parte de tal decodificador.

(18)

1.4

Objetivos

No contexto descrito nas se¸c˜oes anteriores, esta monografia relata um trabalho de conclus˜ao de curso desenvolvido junto ao Programa Brazil-IP/UEFS. Como o projeto do Decodificador de ´Audio MPEG-2 AAC-LC tem escopo muito amplo (a Figura 3 apresenta seus m´odulos constituintes), coube o desenvolvimento de uma parte do mesmo ao executor do presente trabalho, a qual ´e identificada pelos seguintes m´odulos (em destaque na Figura 3):

Controlador de mem´oria interna : M´odulo de controle de opera¸c˜oes de leitura/es-crita relativas `a Mem´oria Interna, a qual armazenar´a informa¸c˜oes auxiliares, usadas pelos demais m´odulos;

Controlador principal do decodificador : M´odulo de controle, respons´avel por v´arias tarefas, a saber:

I - requisi¸c˜ao de leitura de blocos do arquivo AAC selecionado pela Interface com Usu´ario;

II - configura¸c˜ao/ativa¸c˜ao/desativa¸c˜ao de m´odulos;

III - requisi¸c˜ao de opera¸c˜oes de leitura/escrita ao Controlador de Mem´oria Interna, de acordo com solicita¸c˜oes dos m´odulos;

IV - controle de fluxo de dados entre m´odulos;

V - controle do conversor D/A Stereo (Stereo DAC).

A implementa¸c˜ao destes m´odulos est´a sendo feita na linguagem de descri¸c˜ao de hard-ware SystemVerilog. Espera-se que os resultados obtidos neste prot´otipo, a ser desenvol-vido em FPGA, sejam incorporados ao projeto do circuito integrado em desenvolvimento no ˆambito UEFS/Brazil-IP, referente ao reprodutor de ´audio MPEG-2 AAC-LC.

Assim, este trabalho trata de uma ´area de pesquisa emergente, principalmente em rela¸c˜ao `as novas tendˆencias de TV Digital, eletrˆonica de consumo e formatos de v´ıdeo para transferˆencia via Internet.

(19)

Figura 3: Decodificador de ´audio MPEG-2 AAC-LC proposto – Chamada Brazil IP 2008.

1.5

Estrutura da Monografia

No cap´ıtulo 2 s˜ao apresentados os conhecimentos necess´arios para o desenvolvimento deste trabalho, descrevendo a fam´ılia de padr˜oes MPEG, com ˆenfase no padr˜ao MPEG-2 e no esquema de codifica¸c˜ao de ´audio AAC (Advanced Audio Coding), incluindo o modelo psico-ac´ustico utilizado em tal esquema. O cap´ıtulo 3 aborda os materiais e m´etodos utili-zados para o desenvolvimento do trabalho, envolvendo metodologias e t´ecnicas utilizadas. O cerne do trabalho encontra-se no cap´ıtulo 4, o qual descreve o processo de desenvolvi-mento, bem como os resultados em consoante aos documentos dos apˆendices. O cap´ıtulo 5 analisa aspectos referentes ao desenvolvimento do trabalho, concernente a dificuldades, escopo e trabalhos futuros. Por fim, o cap´ıtulo 6 discorre sobre as conclus˜oes acerca do trabalho descrito nesta monografia, contribui¸c˜oes e t´opicos concernentes ao Projeto Brazil-IP/UEFS.

(20)

2

Fundamenta¸

ao Te´

orica

Esta se¸c˜ao trata dos conceitos necess´arios para o desenvolvimento do projeto. Ser˜ao abordados a fam´ılia MPEG, o conjunto de padr˜oes MPEG-2, o modelo psico-ac´ustico e o padr˜ao de codifica¸c˜ao digital de ´audio MPEG-2 – AAC. No decorrer das se¸c˜oes ser˜ao descritos conceitos associados `a codifica¸c˜ao de sinais de ´audio.

2.1

A Fam´ılia MPEG

O grupo MPEG, acrˆonimo para Moving Picture Experts Group, iniciou seus trabalhos em 1988 como um grupo de trabalho da ISO (Organiza¸c˜ao Internacional de Padr˜oes – International Standard Organization) com o objetivo de definir padr˜oes de compress˜ao digital de sinais de ´audio e v´ıdeo (CASTRO; CASTRO, 2001). O nome MPEG tamb´em designa a fam´ılia de padr˜oes desenvolvida pelo grupo, o qual ´e formado pelos subgrupos JTC1/SG29/WG11. O MPEG se tornou umas das mais populares t´ecnicas de compress˜ao de ´audio e v´ıdeo, n˜ao s´o por causa da sua eficiˆencia, mas tamb´em pela grande gama de aplica¸c˜oes que consegue atender com base no mesmo princ´ıpio.

O MPEG define o modo como o decodificador dever´a interpretar o bitstream (fluxo de dados) (WATKINSON, 2001). Assim, ele define um esquema de decodifica¸c˜ao ou descom-press˜ao, mas n˜ao define um esquema para a codifica¸c˜ao ou compress˜ao, todavia, o fluxo de dados gerado pelo codificador deve seguir o padr˜ao proposto. O sistema MPEG, isto ´e, o conjunto formado pelo codificador, canal de transmiss˜ao e o decodificador, vide Figura 4, ´e um sistema assim´etrico, ou seja, o codificador ´e mais complexo que o decodificador, como apresenta a Figura 5.

Figura 4: Sistema MPEG composto pelo codificador, canal de transmiss˜ao e decodificador.

(21)

Figura 5: Sistema assim´etrico.

outros, na qual a quantidade de codificadores complexos e caros ´e pequena, enquanto a quantidade de decodificadores simples e baratos ´e grande.

A fam´ılia MPEG ´e composta por v´arias normas como o MPEG 1, 2, 4, 7 e 21. Con-forme a Figura 6, as normas 1, 2 e 4 s˜ao direcionadas para a compress˜ao eficiente de dados, ou seja, a representa¸c˜ao de conte´udos audiovisuais com o melhor custo x benef´ıcio (ISO/IEC, 1996)(ISO/IEC, 2000)(ISO/IEC, 2002b). A partir da norma 4, houve uma preo-cupa¸c˜ao maior com a semˆantica (FARIA; ZUFFO, 2000). A norma 7 ou MPEG-7 trata da

descri¸c˜ao semˆantica dos dados do conte´udo multim´ıdia, que suportem algum grau de in-terpreta¸c˜ao do significado da informa¸c˜ao (ISO/IEC, 2004). Por fim, o MPEG-21 padroniza um open framework para distribui¸c˜ao e consumo de conte´udo multim´ıdia. A meta ´e gerar uma tecnologia que auxilie os usu´arios na troca, acesso, consumo, com´ercio e, portanto, a manipular de modo eficiente, transparente e interoper´avel o conte´udo multim´ıdia(ISO/IEC, 2002a).

(22)

2.2

O Padr˜

ao MPEG–2

O MPEG-2 ´e a 2a fase do MPEG, sendo um aprimoramento do MPEG-1. Ele ´e composto pelos seguintes padr˜oes:

ISO/IEC 13818-1 : Sistema (Systems)

ISO/IEC 13818-2 : V´ıdeo (Video)

ISO/IEC 13818-3 : ´Audio (Audio)

ISO/IEC 13818-4 : Teste de Conformidade (Compliance Testing)

ISO/IEC 13818-5 : Software

ISO/IEC 13818-6 : DSM-CC1

ISO/IEC 13818-7 : ´Audio NBC (AAC)

ISO/IEC 13818-8 : V´ıdeo 10-Bit (Abandonado)

ISO/IEC 13818-9 : Interface em Tempo real (Real-Time Interface)

ISO/IEC 13818-10 : Conformidade DSM-CC

O padr˜ao do dispositivo em desenvolvimento Brasil-IP/UEFS, vide se¸c˜ao 1.3, comp˜oe o MPEG-2, especificamente a norma ISO/IEC 13818-7.

2.3

Modelo Psico-Ac´

ustico

O modelo psico-ac´ustico ´e um modelo matem´atico que relaciona as propriedades f´ısicas dos sons, que podem ser medidas cientificamente, com as respostas fisiol´ogicas e psi-col´ogicas geradas por elas. Esse modelo permite aos codificadores explorarem o fato que informa¸c˜oes “irrelevantes” do sinal n˜ao s˜ao detectadas, at´e mesmo, por um ouvinte bem treinado(SPANIAS; PAINTER, 2000). Informa¸c˜oes irrelevantes s˜ao identificadas durante a an´alise, ao incorporar ao codificador diversos princ´ıpios psico-ac´usticos, incluindo limiar

1E um conjunto de ferramentas para desenvolver os canais de controle associados a um stream MPEG-1´

(23)

absoluto de audi¸c˜ao, an´alise de freq¨uˆencia de banda cr´ıtica, mascaramento simultˆaneo, dispers˜ao do mascaramento pela membrana basilar2 e mascaramento temporal.

Nos codificadores perceptivos, o modelo psico-ac´ustico desempenha a fun¸c˜ao mais im-portante. As informa¸c˜oes geradas alimentam outros blocos do decodificador, respons´aveis pela processo restante de codifica¸c˜ao.

2.4

Codifica¸

ao Avan¸

cada de ´

Audio – AAC

O AAC, tamb´em conhecido como NBC Audio, ´e um padr˜ao de codifica¸c˜ao de ´audio definido no documento ISO/IEC 13818-7 (MPEG, 1997). Ele e seus sucessores s˜ao, atual-mente, os membros mais poderosos na fam´ılia MPEG para compress˜ao de ´audio digital, multicanal e de alta qualidade. Devido a restri¸c˜oes impostas pela compatibilidade com as vers˜oes anteriores, o MPEG-1 (Layer I, Layer II e Layer III ), o grupo MPEG desenvolveu dois padr˜oes de compress˜ao de ´audio para a fam´ılia MPEG-2, o BC e o AAC. O primeiro mant´em compatibilidade e por isso perde em eficiˆencia, pois deixa de explorar certas t´ecnicas avan¸cadas, as quais s˜ao exploradas pelo MPEG-2 ACC, que possui boas taxa de compress˜ao e qualidade em rela¸c˜ao aos demais. A Tabela 1 demonstra a superioridade t´ecnica do AAC em rela¸c˜ao ao MP3.

Tabela 1: Compara¸c˜oes entre o AAC e o MP3

Caracter´ıstica AAC MP3

Canais 48 5

Taxa de amostragem 96kHz 48kHZ Taxa de compress˜ao 15:1 11:1 Kilobytes/minuto 670kB 900kB

O ISO/IEC 13818-7 definiu trˆes perfis para o padr˜ao MPEG-2 AAC, descritos a seguir (veja informa¸c˜oes sobre m´odulos adiante):

• Main Profile (MP) – Ideal quando o custo de recursos de mem´oria for insig-nificante e houver substancial poder de processamento. Utiliza todos os m´odulos, exceto o controle de ganho. Gera a melhor compress˜ao poss´ıvel.

2E uma fina membranana, presente no interior da c´´ oclea (ouvido interno). Sua superf´ıcie ´e formada por cerca de 25.000 a 30.000 estruturas finas, conhecidas como fibras basilares, com a forma de palheta, as quais se projetam de um dos lados da membrana e aparecem ao longo de toda a sua extens˜ao. Essa membrana possui uma frequˆencia de ressonˆancia que varia conforme a extens˜ao da mesma, assim diferentes frequˆencias de ondas sonoras estimulam (ressoam) diferentes por¸c˜oes da membrana, ativando as fibras ali presentes.

(24)

• Low Complexity (LC) – Utilizado quando houver restri¸c˜oes de poder de proces-samento, recurso de mem´oria e compress˜ao. O perfil low complexity n˜ao permite a utiliza¸c˜ao do preditor e do controle de ganho, al´em disso a ordem do filtro TNS (Mo-delador de Ru´ıdo Temporal – Temporal Noise Shapping) ´e limitada, o que contribui para o menor consumo de mem´oria e poder computacional.

• Scalable Sampling Rate (SSR) – A ferramenta de controle de ganho ´e obri-gat´oria. N˜ao engloba o preditor e os canais acoplados, al´em de limitar a ordem do filtro TNS e a largura de banda.

Considerando o decodificador AAC, o mesmo utiliza um conjunto de m´odulos obri-gat´orios e um conjunto de opcionais no processo de decodifica¸c˜ao. A Tabela 2 demonstra os m´odulos e sua obrigatoriedade. Os m´odulos necess´arios s˜ao obrigat´orios em qualquer perfil, enquanto a presen¸ca dos opcionais depende do perfil.

Tabela 2: M´odulos do decodificador AAC

M´odulos Obrigat´orio/Opcional

Deformatador de bitstream Obrigat´orio Decodificador sem Ru´ıdo Obrigat´orio

Quantizador Inverso Obrigat´orio

Reescalador Obrigat´orio

M/S Opcional

Preditor Opcional

Intensity Stereo Opcional

Acoplamento Chaveado Dependentemente Opcional TNS (Modelador de Ru´ıdo Temporal) Opcional Banco de Filtros/Chaveamento de Blocos Obrigat´orio

Controle de Ganho Opcional

Acoplamento Chaveado Independentemente Opcional

A Tabela 3 apresenta a compatibilidade de perfis entre um codificador e um decodi-ficador.

Tabela 3: Interoperabilidade entre perfis AAC Perfil do Codificador Perfil do Decodificador Main Profile LC SSR

Main Profile sim sim n˜ao

LC n˜ao sim n˜ao

SSR n˜ao n˜ao sim

O decodificador proposto, vide se¸c˜ao 1.3, possui a estrutura interna ilustrada na Figura 3. Essa estrutura ´e composta por m´odulos com objetivos espec´ıficos que no conjunto

(25)

im-plementam o algoritmo de decodifica¸c˜ao AAC LC, o qual decodifica um bitstream padr˜ao ISO/IEC 13818-7, gerando valores PCM. Quando um m´odulo ´e opcional, todos os dados passam por ele sem ocorrer modifica¸c˜ao nos mesmos. Todos os m´odulos propostos pelo padr˜ao supracitado s˜ao analisados a seguir.

• Demultiplexador de bitstream – Recebe o fluxo de dados e separa as por¸c˜oes de dados do fluxo MPEG-AAC em partes para cada m´odulo, al´em de fornecer a cada um informa¸c˜oes de configura¸c˜ao relacionadas ao pr´oprio. As sa´ıdas do demultiplexador de bitstream s˜ao:

– Informa¸c˜oes da se¸c˜ao referentes aos espectros codificados sem ru´ıdo;

– Os espectros codificados sem ru´ıdo;

– Informa¸c˜oes de decis˜ao do M/S (opcional);

– Informa¸c˜oes de estado do preditor (opcional);

– Informa¸c˜oes do controle intensity stereo e de controle de canal acoplado (ambos opcionais);

– Informa¸c˜oes do TNS (Modelador de Ru´ıdo Temporal – Temporal Noise Shap-ping) (opcional);

– Informa¸c˜oes do controle do banco de filtros; e

– Informa¸c˜oes do controle de ganho (opcional).

• Decodificador sem ru´ıdo – Analisa a informa¸c˜ao do demultiplexador, decodi-fica os dados codidecodi-ficados de Huffman, reconstr´oi o espectro quantizado e os fatores de escala de Huffman e do DPCM (Modula¸c˜ao por C´odigo de Pulso Diferencial – Differential Pulse Code Modulation). As entradas do decodificador sem ru´ıdo s˜ao:

– Informa¸c˜oes da se¸c˜ao referentes aos espectros codificados sem ru´ıdo; e

– Os espectros codificados sem ru´ıdo.

As sa´ıdas do decodificador sem ru´ıdo s˜ao:

– A representa¸c˜ao inteira decodificada dos fatores de escala; e

– Os valores quantizados dos espectros.

• Quantizador inverso – Obt´em os valores quantizados do espectro e converte os valores inteiros para n˜ao escalados. Este quantizador ´e n˜ao uniforme. As entradas do quantizador inverso s˜ao:

(26)

– Os valores quantizados do espectro.

A sa´ıda do quantizador inverso ´e:

– Os espectros quantizados inversamente e n˜ao escalados.

• Reescalador – Converte a representa¸c˜ao inteira dos fatores de escala para valores atuais, multiplica o espectro quantizado inversamente e n˜ao escalado pelos respec-tivos fatores de escala. As entradas do reescalador s˜ao:

– A representa¸c˜ao inteira decodificada dos fatores de escala; e

– Os espectros quantizados inversamente e n˜ao escalados.

A sa´ıda do reescalador ´e:

– Os espectros quantizados inversamente e escalados.

• M/S – Converte os pares de espectros de Mid /Side3para Left /Rigth (canais est´ereos) mediante informa¸c˜oes de controle, no sentido de melhorar a eficiˆencia da compress˜ao. As entradas do M/S s˜ao:

– As informa¸c˜oes de controle do M/S; e

– Os espectros quantizados inversamente e escalados relacionados aos pares de canais.

A sa´ıda do M/S ´e:

– Os espectros quantizados inversamente e escalados relacionados aos pares de canais, depois da decodifica¸c˜ao de M/S.

• Preditor – Reverte o processo de predi¸c˜ao executado no codificador. Ele reinsere os dados redundantes que foram extra´ıdos pelo preditor no codificador. Esse processo ocorre sob controle das informa¸c˜oes de estado do preditor. As entradas do preditor s˜ao:

– Informa¸c˜oes de estado do preditor; e

– Os espectros quantizados inversamente e escalados.

A sa´ıda do preditor ´e:

(27)

– Os espectros quantizados inversamente e escalados, depois que a predi¸c˜ao ´e realizada.

• Intensity Stereo – Realiza a decodifica¸c˜ao intensity stereo nos pares do espectros. As entradas do intensity stereo s˜ao:

– Os espectros quantizados inversamente; e

– As informa¸c˜oes do controle intensity stereo.

A sa´ıda do intensity stereo ´e:

– Os espectros quantizados inversamente, ap´os decodifica¸c˜ao de intensidade dos canais.

• Acoplamento chaveado dependentemente – Adiciona dados pertinentes aos canais acoplados e chaveados dependentemente para o sinal de tempo, como direci-onado pelas informa¸c˜oes de controle de acoplamento. As entradas do acoplamento chaveado dependente s˜ao:

– Os espectros quantizados inversamente; e

– As informa¸c˜oes de controle do acoplamento.

A sa´ıda do acoplamento chaveado dependente ´e:

– O sinal de tempo vinculado aos canais acoplados e chaveados dependentemente.

• Acoplamento chaveado independentemente – Adiciona dados pertinentes ao canais acoplados e chaveados independentemente para o sinal de tempo, como dire-cionado pelas informa¸c˜oes de controle de acoplamento. As entradas do acoplamento chaveado independente s˜ao:

– O tempo de sinal, o qual ´e sa´ıda do banco de filtros; e

– As informa¸c˜oes de controle do acoplamento.

A sa´ıda do acoplamento chaveado independente ´e:

– O sinal de tempo vinculado aos canais acoplados e chaveados independente-mente.

• Modelador de Ru´ıdo Temporal (TNS) – Realiza o controle fino da estrutura de tempo do ru´ıdo codificado. No codificador, o processo do TNS modela o envelope

(28)

temporal ao modificar informa¸c˜oes estruturais do mesmo. Por outro lado, no deco-dificador, o processo inverso ´e utilizado para restaurar o(s) envelope(s) temporal(is) original(is), sendo realizado sob controle das informa¸c˜oes do TNS. Isso ´e feito ao aplicar um processo de filtragem em por¸c˜oes dos dados espectrais. As entradas do TNS s˜ao:

– Os espectros quantizados inversamente; e

– As informa¸c˜oes TNS.

A sa´ıda do TNS ´e:

– Os espectros quantizados inversamente.

• Banco de Filtros/Chaveamento de Blocos – Aplica a inversa do mapeamento em frequˆencia que foi realizado no codificador. O filtro de bancos utiliza a IMDCT (Transformada Discreta Modificada Inversa de Cosseno – Inverse Modified Discrete Cosine Transform). Esta pode ser configurada para suportar tanto 1 conjunto de 128 ou 1024 coeficientes espectrais, quanto 4 conjuntos de 32 ou 256 coeficientes espectrais. As entradas do Banco de Filtros/Chaveamento de Blocos s˜ao:

– Os espectros quantizados inversamente; e

– As informa¸c˜oes de controle do banco de filtros.

As sa´ıda do Banco de Filtros/Chaveamento de Blocos:

– Os sinais de ´audio reconstru´ıdos no dom´ınio do tempo.

• Controle de Ganho – Quando presente, aplica um controle de ganho no dom´ınio do tempo separado para cada uma das 4 bandas de frequˆencias criadas pelo banco de filtros PQF (Filtro de Quadratura Polif´asica – Polyphase Quadrature Filter )4 do controle de ganho no codificador. Ent˜ao, ele reuni as 4 bandas de frequˆencias e reconstr´oi a onda temporal atrav´es do banco de filtros do controle de ganho. ´E utilizado apenas no perfil SSR. As entradas do controle de ganho s˜ao:

– Os sinais de ´audio reconstru´ıdos no dom´ınio do tempo; e

– As informa¸c˜oes de controle de ganho.

4E um filtro que divide o sinal de entrada em um dado n´´ umero N (normalmente potˆencia de 2) de

sub-bandas equidistantes. Essas sub-bandas s˜ao subamostras por um fator de N, sendo criticamente amostradas.

(29)

As sa´ıda do controle de ganho:

– Os sinais de ´audio reconstru´ıdos no dom´ınio do tempo.

2.5

Resumo

Este cap´ıtulo forneceu informa¸c˜oes necess´arias para a correta execu¸c˜ao deste traba-lho. A fam´ılia MPEG apresenta padr˜oes bastante conhecidos e explorados comercial-mente. Particularmente, o AAC ´e o mais poderoso algoritmo de compress˜ao de ´audio dessa fam´ılia. Ele possui t´ecnicas complexas e avan¸cadas de compress˜ao, as quais explo-ram tanto o modelo psico-ac´usticos, como outros algoritmos de compress˜ao de dados, por exemplo, a codifica¸c˜ao de Huffman.

(30)

3

Materiais e M´

etodos

3.1

Metodologia

Esta se¸c˜ao trata das metodologias utilizadas nesse projeto, a saber, o ipProcess e a metodologia de verifica¸c˜ao BVM (Metodologia de Verifica¸c˜ao do Brazil-IP – Brazil-IP Verification Methodology), assim como a ferramenta eTBc utilizada no BVM.

3.1.1

ipProcess

O ipProcess ´e um processo para desenvolvimento de IP-Core com implementa¸c˜ao em FPGA, elaborado pela rede Brazil-IP, como resultado do projeto Fˆenix (BARROS et al., 2005). A meta desse processo ´e garantir a qualidade do projeto de cada componente do sistema no decorrer do processo de desenvolvimento de um IP-Core.

Seus principais pilares s˜ao:

• Projeto iterativo e incremental, diagramas UML-RT (Linguagem de Modelagem Unificada para Tempo Real) (OMG, 2009);

• Uso de diretrizes (guidelines) de codifica¸c˜ao;

• Verifica¸c˜ao; e

• Programa¸c˜ao em pares5.

A vers˜ao atual do ipProcess, conforme (BARROS et al., 2005), ´e definida por cinco principais fluxos de trabalho (workflow ), conforme Figura 7. Cada fluxo ´e descrito a seguir:

5Pr´atica utilizada na metodologia ´agil XP (eXtreme Programming – Programa¸ao Extrema), a qual

sugere que todo e qualquer c´odigo produzido no projeto seja sempre implementado por duas pessoas juntas.

(31)

Requisitos – Estabelece e documenta as necessidades do cliente e de outros usu´arios, consoante ao que o IP-Core deve fazer, de forma a fornecer `a equipe de desen-volvimento melhor entendimento sobre os requisitos funcionais e n˜ao funcionais do sistema;

An´alise & Projeto – De acordo com os documento de requisitos, cria-se um projeto de IP-core, compatibilizando-o ao ambiente de implementa¸c˜ao;

Implementa¸c˜ao – Define a organiza¸c˜ao da codifica¸c˜ao, implementa os elementos do projeto e, ap´os, realiza teste de unidade nos m´odulos desenvolvidos;

Verifica¸c˜ao – Avalia a qualidade do IP-Core no sentido de verificar se os requisitos foram implementados como especificado, al´em de procurar e descrever defeitos na implementa¸c˜ao e validar as funcionalidades do mesmo; e

Prototipa¸c˜ao em FPGA – Sintetiza a implementa¸c˜ao em um FPGA e valida os requi-sitos como especificados no fluxo de trabalho Requirequi-sitos.

Figura 7: Fluxograma do ipProcess

Cada fluxo de trabalho mencionado acima ´e definido em termos de fun¸c˜oes, atividades e cria¸c˜ao de artefatos (diagramas UML, documentos, linhas de c´odigo, etc), estes artefatos podem ser reutilizados como entrada em um fluxo de trabalho subseq¨uente, respeitando a ordem das fases apresentadas na Figura 8, a qual tamb´em apresenta a evolu¸c˜ao temporal de cada fluxo. Os artefatos s˜ao importantes, pois definem o escopo do projeto, fornecendo de forma clara o objetivo do projeto e como execut´a-lo, al´em de permitir que todo o desenvolvimento esteja de acordo com os anseios do cliente. Como n˜ao ´e escopo desse trabalho delinear minuciosamente o ipProcess, mais detalhes podem ser obtidos em (LIMA, 2005).

(32)

Figura 8: Fases do ipProcess

Esse processo tem sido utilizado no treinamento de estudantes de gradua¸c˜ao em pro-jetos de sistemas, aprovados pelo Brazil-IP. Uma vez que ao utilizar uma metodologia de projeto bem definida, em termos de atividades, facilita e acelera o aprendizado de projetos de IP para os estudantes.

3.1.2

Verifica¸

ao

Segundo Bergeron (BERGERON, 2003), verifica¸c˜ao ´e um processo usado para

demons-trar que o objetivo do projeto ´e preservado em sua implementa¸c˜ao. Para Mintz e Ekendahl (MINTZ; EKENDAHL, 2007), verifica¸c˜ao funcional ´e o emprego de software para assegurar que o DUT (Dispositivo sob Teste - Device Under Test ) opera como especificado, antes de ser montado e produzido em escala comercial. Para Spear (SPEAR, 2008), o prop´osito

de um engenheiro de verifica¸c˜ao ´e ter a certeza que o dispositivo pode cumprir satisfato-riamente a tarefa, isto ´e, que o projeto reflete fielmente a especifica¸c˜ao, de forma que a ocorrˆencia de erros (bugs) significa a existˆencia de discrepˆancias. Portanto, pode-se con-cluir que o objetivo da verifica¸c˜ao ´e comprovar se a implementa¸c˜ao seguiu corretamente a especifica¸c˜ao (ipProcess – ver subse¸c˜ao 3.1.1).

A verifica¸c˜ao ´e importante na redu¸c˜ao dos custos e do tempo de projeto, como tamb´em ao assegurar a qualidade do mesmo, visto que o custo de corre¸c˜ao de uma falha do sistema aumenta ao longo do fluxo do projeto - veja Figura 9. Com o aumento crescente da complexidade de projetos de circuitos integrados (basta verificar, na Figura 10, a validade da Lei de Moore (MOORE, 2000) nos circuitos atuais) a verifica¸c˜ao desempenha papel

(33)

importante nesses projetos, despendendo, normalmente, cerca de 70% do esfor¸co total (BERGERON, 2003).

Figura 9: Evolu¸c˜ao do custo em um projeto de CI (BERGERON et al., 2005)

Figura 10: Lei de Moore (PRADO, 2007)

3.1.2.1 Tecnologias de Verifica¸c˜ao

De acordo com Bergeron (BERGERON, 2003) as principais tecnologias de verifica¸c˜ao s˜ao:

Linting – As ferramentas lint realizam an´alise sint´atica em busca de erros de pro-grama¸c˜ao comuns, relatando potenciais problemas e pr´aticas question´aveis. Essas ferramentas s˜ao limitadas, devido `a natureza est´atica da an´alise, a qual n˜ao verifica o algoritmo ou o fluxo dos dados.

(34)

Simula¸c˜ao – Tenta criar um universo artificial que imite o futuro universo real do projeto, portanto, ´e uma aproxima¸c˜ao da realidade. O problema desta t´ecnica reside na corretude funcional e precis˜ao do modelo, j´a que n˜ao pode provar que erros n˜ao existam. Al´em disso h´a o problema do custo computacional e a inviabilidade, para circuitos complexos, de testar todos os padr˜oes de entrada ao longo do tempo.

Diagramas de forma de ondas – T´ecnica bastante utilizada em conjunto com a si-mula¸c˜ao. Permite a visualiza¸c˜ao de diversas transi¸c˜oes de sinais no tempo, al´em de suas rela¸c˜oes com outras transi¸c˜oes. ´E pratica para um conjunto de pouco sinais e transa¸c˜oes, com a crescente complexidade dos projetos, seu uso torna-se desvanta-joso e pass´ıvel de erros.

Cobertura de c´odigo – Identifica qual c´odigo foi ou n˜ao executado na verifica¸c˜ao. Co-leta um conjunto de m´etricas que objetiva facilitar a an´alise de verifica¸c˜ao, dentre elas: cobertura de declara¸c˜oes (bloco), cobertura de caminho, cobertura de ex-press˜oes e cobertura de MEF (M´aquina de Estados Finitos).

Verifica¸c˜ao funcional – Assegura que a verifica¸c˜ao estimulou o projeto por uma faixa de valores mais vantajosa, quer dizer, de interesse da equipe de verifica¸c˜ao. Enquanto a cobertura de c´odigo avalia o quanto da implementa¸c˜ao foi exercitada, a verifica¸c˜ao funcional examina o quanto da especifica¸c˜ao do projeto original foi exercitado.

O termo testbench se refere ao c´odigo de simula¸c˜ao usado para gerar est´ımulos para a verifica¸c˜ao de funcionalidades espec´ıficas do projeto, o que permite criar cen´ario de verifica¸c˜ao mais realistas (VIJAYARAGHAVAN; RAMANTHAN, 2005). Segundo o mesmo

autor, os testbenches s˜ao respons´aveis por trˆes tarefas:

1. Gera¸c˜ao de est´ımulos.

2. Mecanismos de auto verifica¸c˜ao.

3. Mensura¸c˜ao da cobertura funcional.

3.1.2.2 BVM

No contexto do Brazil-IP, foi desenvolvida a metodologia de verifica¸c˜ao BVM, a qual ´e formada pelas melhores pr´aticas da metodologia VeriSC unidas `a metodologia OVM (Metodologia de Verifica¸c˜ao Aberta - Open Verification Methodology).

(35)

O VeriSC ´e uma metodologia de verifica¸c˜ao funcional, desenvolvida usando bibliotecas do SystemC, com o objetivo de reduzir o tempo do processo de verifica¸c˜ao e encontrar erros, t˜ao logo quanto poss´ıvel, nas fases iniciais do fluxo desse processo (SILVA et al., 2006). Ela permite a constru¸c˜ao de um testbench completamente funcional, antes da implementa¸c˜ao do DUV ( Projeto sob Verifica¸c˜ao - Design Under Verification) iniciar. Desta forma, o testbench n˜ao precisa ser adaptado ao DUV, uma vez que enquanto este est´a sendo implementado, aquele j´a o foi. Al´em disso, essa metodologia permite o re´uso dos elementos que comp˜oem o testbench, para executar um auto-teste e assegurar que o mesmo n˜ao contenha erros. Para isso, utiliza-se um mecanismo para simular a presen¸ca do DUV unicamente com os elementos do testbench, sem usar nenhum artif´ıcio extra (MELCHER, 2008).

O OVM ´e uma metodologia de verifica¸c˜ao funcional, n˜ao propriet´aria, baseada no padr˜ao IEEE 1800 SystemVerilog. Foi criada pelas empresas Mentor Graphics e Cadence (desenvolvedoras de solu¸c˜oes EDA - Automa¸c˜ao de Projetos Eletrˆonicos - Eletronic Design Automation), com base em metodologias de verifica¸c˜ao origin´arias das duas corpora¸c˜oes (DOULOS LTDA, 2008), a saber: AVM (Metodologia Verifica¸c˜ao Avan¸cada - Advanced Verification Methodology) e URM (Metodologia de Re´uso Universal - Universal Reuse Methodology). Ambas corpora¸c˜oes trabalham juntas para desenvolver o OVM.

A metodologia OVM ´e sofisticada, sendo capaz de criar testbenches de ponta, asse-gurar interoperabilidade e promover o re´uso na verifica¸c˜ao (MENTOR; CADENCE, 2007). Mais especificamente, ela fornece uma biblioteca de classes b´asicas, servi¸cos ´uteis e outra facilidades de suporte para concentrar os esfor¸cos na aplica¸c˜ao do SystemVerilog ao pro-blema de verifica¸c˜ao. Para facilitar o re´uso de c´odigo dos componentes de verifica¸c˜ao e do testbench, a OVM emprega uma arquitetura de verifica¸c˜ao que fornece um consistente conjunto de interfaces bem definidas, atrav´es das quais componentes interagem uns com os outros e com o ambiente de verifica¸c˜ao (FITZPATRICK; ANDERSON, 2008). Al´em disso, a comunica¸c˜ao entre os componentes do testbench ocorre atrav´es do padr˜ao de interface TLM (Modelagem em N´ıvel de Transa¸c˜oes - Transaction-Level Modeling), enfatizando o aspecto do re´uso de c´odigo. TLM ´e uma t´ecnica de alto n´ıvel para modelar sistemas digitais, na qual os detalhes da comunica¸c˜ao entre os m´odulos s˜ao separados dos detalhes da implementa¸c˜ao das unidades funcionais ou da arquitetura de comunica¸c˜ao. Nesse con-texto, uma transa¸c˜ao ´e uma opera¸c˜ao que se inicia num determinado momento no tempo e termina em outro. ´E caracterizada pelo conjunto de instru¸c˜oes e dados necess´arios para realizar uma opera¸c˜ao (MELCHER, 2008). Exemplos: transmiss˜ao de um pacote ethernet, recep¸c˜ao de uma imagem, uma escrita num barramento, entre outros.

(36)

Figura 11: Metodologias BVM e OVM – Fluxo de projeto

Uma das principais mudan¸cas entre BVM e OVM ocorre no fluxo do projeto, conforme Figura 11: no fluxo da OVM a implementa¸c˜ao do RTL ocorre antes da implementa¸c˜ao do testbench; j´a no fluxo do BVM, origin´ario do VeriSC, essa ordem foi invertida, de forma que a implementa¸c˜ao do testbench ´e realizada antes da implementa¸c˜ao do RTL. Por outro lado, a BVM utiliza o padr˜ao IEEE 1800 SystemVerilog do OVM, uma vez que o VeriSC ´e baseado no SystemC.

3.1.2.3 eTBc

A metodologia BVM utiliza uma ferramenta para gerar templates6 para o processo de verifica¸c˜ao, reduzindo o esfor¸co, o tempo do processo de verifica¸c˜ao e a taxa de erros. Essa ferramenta ´e o eTBc, a qual foi inicialmente criada para a metodologia VeriSC (SILVA et al., 2004), sendo posteriormente adaptada ao SystemVerilog, atual base da metodologia BVM. Tal ferramenta gera todos os templates dos m´odulos que comp˜oe o testbench, adaptando-os ao DUV - tais m´odulos s˜ao apresentados na Figura 12, exceto o DUV que ´e o projeto a ser testado em si. Na sequˆencia, s˜ao explicadas as funcionalidades de cada m´odulo, os quais s˜ao apresentados com o nomes originais do padr˜ao, sem tradu¸c˜ao.

Reference Model – Modela a funcionalidade do DUV, possuindo o mesmo comporta-mento que esse. Deve ser implementado pelo engenheiro de verifica¸c˜ao em uma

(37)

Figura 12: M´odulos do testbench gerados pelo eTBc.

abstra¸c˜ao diferente do RTL, assim, tende a ser escrita em qualquer linguagem de alto n´ıvel. O n´ıvel RTL deve ser evitado, pois o engenheiro poderia cometer erros que cometeria com o DUV. O modelo de referˆencia ´e indispens´avel para a execu¸c˜ao da verifica¸c˜ao.

Source – Envia transa¸c˜oes de entrada para o driver e para o reference model ;

Checker – Compara as transa¸c˜oes de sa´ıda recebidas do monitor com as de um reference model ;

Driver – Recebe transa¸c˜oes de entrada e as converte em transi¸c˜oes de sinais da interface de entrada do DUV;

Monitor – Observa sinais da interface de sa´ıda do DUV e gera transa¸c˜oes de sa´ıda que ele repassa para o checker ; e

Ator – Observa sinais da interface de sa´ıda do DUV e implementa, caso necess´ario, protocolo de handshake7. N˜ao existe comunica¸c˜ao entre o Ator e o Monitor.

Por produzir somente os templates, boa parte do trabalho ainda deve ser efetu-ada pelo engenheiro de verifica¸c˜ao, como defini¸c˜oes de handshake de sinal, m´etricas de cobertura e distribui¸c˜ao dos sinais de entrada, dentre outras configura¸c˜oes. Na metodologia BVM, o eTBc auxilia e acelera a produ¸c˜ao do ambiente do testbench, inclusive na fase de teste dos seus componentes, auxiliando na gera¸c˜ao de um am-biente de verifica¸c˜ao livre de erros e j´a adaptado ao DUV.

(38)

4

Desenvolvimento e Resultados

Esta se¸c˜ao apresenta o desenvolvimento e resultado de cada m´odulo proposto neste trabalho, como descrito na subse¸c˜ao 1.4. Inicialmente ser´a tratado o desenvolvimento conforme a metodologia ipProcess, no qual ser˜ao descritos os principais artefatos gerados pela fase de Requisitos, An´alise & Projeto e Verifica¸c˜ao Funcional. Em outra subse¸c˜ao ser´a analisado o processo de verifica¸c˜ao funcional, segundo a metodologia BVM, com o suporte da ferramenta eTBc.

4.1

ipProcess – Requisitos

Os objetivos dos artefatos gerados pela fase de Requisitos s˜ao: definir limites do projeto, fornecer base para melhor entendimento e assegurar que o objetivo do projeto esteja de acordo com as necessidades do cliente ou de quem o solicitou.

4.1.1

Documento de Especifica¸

ao de Requisitos

O apˆendice A apresenta os requisitos levantados para o Controlador Principal (CP) e o Controlador de Mem´oria do Sistema (CMS), descritos no Documento de Especifica¸c˜ao de Requisitos. Tanto a sigla CP, quanto a CMS referem-se aos m´odulos internos do decodificador, objetos deste trabalho. O principal objetivo deste documento ´e definir o escopo do IP-Core. Os requisitos s˜ao divididos em dois tipos:

• Funcionais – Especifica as a¸c˜oes que o IP-Core deve ser capaz de realizar.

• N˜ao Funcionais – Descreve os atributos do IP-Core e do ambiente no qual o IP-Core est´a integrado. Esses atributos est˜ao relacionados aos limites do IP-Core, restri¸c˜oes sobre funcionamento (temporiza¸c˜ao, clock, entre outros) e adequa¸c˜ao `a lei, interfaces ou padr˜ao de mercado.

Primeiramente s˜ao expostos os requisitos do Controlador Principal, se¸c˜ao A.1 do apˆendice. Nos requisitos funcionais do CP, destacam-se o papel de gerenciamento dos

(39)

outros m´odulos, com foco no gerenciamento do CMS, al´em dos pap´eis de controle do fluxo de dados entre os m´odulos e da comunica¸c˜ao com a interface externa. O requisito n˜ao funcional exp˜oe restri¸c˜ao referente `a temporiza¸c˜ao entre os m´odulos, j´a que determinados m´odulos devem ser alimentados com periodicidade precisa, pois erros de alimenta¸c˜ao dos mesmos corromperiam os dados resultantes da decodifica¸c˜ao.

Quanto ao CMS, boa parte dos requisitos tiveram como base o documento de especi-fica¸c˜ao do padr˜ao de mem´oria DDR SDRAM (JEDEC, 2005). O principal objetivo deste m´odulo ´e o gerenciamento da mem´oria do sistema e execu¸c˜ao dos processos de escrita e leitura. O requisito n˜ao funcional aborda a restri¸c˜ao da temporiza¸c˜ao nos processos da mem´oria do sistema, conforme a especifica¸c˜ao supracitada.

4.1.2

Documento de Especifica¸

ao de Casos de Uso

A Figura 13 demonstra o diagrama dos casos de uso do projeto, enquanto o apˆendice B descreve os casos de uso relativos ao CP e ao CMS, ou seja, aqueles casos de uso em que tais m´odulos s˜ao atores.

Os casos de uso fornecem modelos das fun¸c˜oes que o sistema deve possuir, al´em de funcionarem como contrato sobre o projeto com quem solicitou o mesmo, assim, a equipe se assegura que est´a o desenvolvimento est´a de acordo com os anseios do “cliente” . Cada caso de uso representa uma unidade funcional coerente provida pelo sistema. O artefato Documento de Especifica¸c˜ao de Casos de Uso descreve o fluxo de eventos de cada caso de uso, fornecendo uma an´alise minuciosa de cada fun¸c˜ao do sistema, o que permite uma melhor percep¸c˜ao do sistema pelo grupo encarregado do seu desenvolvimento.

A seguir s˜ao listados todos os atores8 do sistema, apresentados na Figura 13:

1. Usu´ario: algum indiv´ıduo ou dispositivo externo ao IP-Core.

2. Controlador de Mem´oria do Sistema (Externo): m´odulo respons´avel pelo controle de opera¸c˜oes de leitura na mem´oria externa do sistema, na qual encontra-se o arquivo de ´audio MPEG-2 AAC-LC a ser reproduzido (extens˜ao .aac).

3. Mem´oria do Sistema (Externo): dispositivo de armazenamento do arquivo de ´

audio MPEG-2 AAC-LC a ser reproduzido.

8Nesse contexto, o ator ´e um humano ou entidade m´aquina que interage com o sistema para executar

uma unidade funcional, isto ´e, o ator desempenha um papel que estimula ou solicita a¸c˜oes do sistema e recebe rea¸c˜oes.

(40)

4. Controlador de Mem´oria do Sistema (Interno): m´odulo respons´avel pelo controle de opera¸c˜oes de leitura/escrita na mem´oria do sistema. Objetivo deste trabalho.

5. Mem´oria do Sistema (Interno): dispositivo de armazenamento de informa¸c˜oes auxiliares/tempor´arias do processamento interno do IP-Core, do arquivo de ´audio MPEG-2 AAC-LC (transferido da mem´oria externa) e do resultado de processa-mento do IP-Core (amostras est´ereo PCM de 16 bits). Objetivo deste trabalho.

6. Controlador Principal: m´odulo respons´avel pelo seq¨uenciamento de a¸c˜oes no IP-Core.

7. Deformatador de Bitstream : m´odulo respons´avel pela identifica¸c˜ao e separa¸c˜ao das informa¸c˜oes de bitstream compat´ıvel com o padr˜ao MPEG-2 AAC-LC.

8. Decodificador de Huffman: m´odulo respons´avel pela decodifica¸c˜ao de tamanho vari´avel dos fatores de escala e dos dados espectrais quantizados e n˜ao-escalados.

9. Dequantizador: m´odulo respons´avel pela opera¸c˜ao de quantiza¸c˜ao inversa dos dados espectrais decodificados, quantizados e n˜ao-escalados.

10. Reescalador: m´odulo respons´avel pela aplica¸c˜ao de fatores de escala aos dados espectrais decodificados, dequantizados e n˜ao-escalados, gerando os chamados coe-ficientes espectrais.

11. IMDCT: m´odulo respons´avel pela convers˜ao de coeficientes espectrais no dom´ınio de freq¨uˆencia para amostras PCM no dom´ınio de tempo.

12. Windowing/Block Switching : m´odulo respons´avel pela aplica¸c˜ao de fun¸c˜oes de janelamento (escolhidas entre seno e KBD 9 ) sobre amostras PCM.

13. Overlapping/Adding : m´odulo respons´avel pela sobreposi¸c˜ao parcial (50%) de seq¨uˆencias de amostras PCM, gerando a configura¸c˜ao final de tais amostras, prontas para reprodu¸c˜ao.

14. Sistema de Reprodu¸c˜ao: sistema externo ao IP-Core, respons´avel pela reprodu¸c˜ao de ´audio digital stereo de 16 bits/canal, a 44.1 kHz.

9KBD (Kaiser-Bessel-Derived) ´e uma fun¸ao de janelamento utilizada para processamento digital de

sinal. Ela foi projetada para se adequar `a MDCT. Para mais informa¸c˜oes ver (OPPENHEIM; SCHAFER; BUCK, 1999)

(41)

O apˆendice B.1, discorre sobre os casos de uso referentes ao CP, o qual, por ser um m´odulo de controle geral, possui muitos requisitos, uma vez que est´a envolvido em muitas tarefas no processamento do fluxo de ´audio. Os principais casos de uso s˜ao os acionamentos dos demais dispositivos, como tamb´em o fornecimento das amostras finais, prontas para reprodu¸c˜ao.

A parte B.2 trata sobre o CMS. Os casos de uso abordam as fun¸c˜oes de leitura, escrita e gerenciamento da mem´oria (dispositivo f´ısico).

(42)
(43)

4.2

ipProcess – An´

alise & Projeto

A fase de An´alise & Projeto objetiva transformar as informa¸c˜oes levantadas na fase de Requisitos em um projeto de IP-Core - para isso cria-se um esbo¸co da arquitetura e define-se aspectos como ambiente de implementa¸c˜ao, padr˜oes de projeto entre outros.

Entre os artefatos mais importantes est˜ao o Documento de An´alise e o Documento de Arquitetura.

4.2.1

Documento de An´

alise

O Documento de An´alise descreve realiza¸c˜oes de casos de uso, com suas intera¸c˜oes e modelos de an´alises. Ele caracteriza cada fluxo de caso de uso em um modelo final de classes. Assim, distribui comportamento, atributos, associa¸c˜oes e responsabilidades para esses elementos. ´E um documento extenso com os modelos das classes, os quais foram criados para realiza¸c˜ao dos casos de uso.

A figura 14 apresenta o diagrama geral, o qual ´e uma compila¸c˜ao dos diagramas gerados para os casos de uso. Seu exame permite entender o fluxo dos dados entre os m´odulos e a sequˆencia l´ogica de decodifica¸c˜ao de uma unidade de ´audio do AAC.

(44)
(45)

4.2.2

Documento de Arquitetura

O Documento de Arquitetura unifica e descreve todas as vis˜oes da arquitetura: casos de uso, l´ogica, implementa¸c˜ao e processos. Essas vis˜oes s˜ao resultado dos documentos pr´evios. Uma arquitetura a ser proposta ´e baseada no Documento de An´alise e na ex-periˆencia de desenvolvimento de IP-Cores.

Na arquitetura, conforme a Figura 15, as classes do sistema s˜ao organizadas em trˆes camadas: Comunica¸c˜ao, Controle e Dados, as quais s˜ao descritas na sequˆencia.

Comunica¸c˜ao – A camada de comunica¸c˜ao cont´em as classes respons´aveis pela comu-nica¸c˜ao entre o sistema e o reprodutor de ´audio digital (PCM), assim como entre o sistema e seu dispositivo de mem´oria de apoio. O processo de comunica¸c˜ao se inicia com a solicita¸c˜ao do usu´ario, a qual faz o Controlador Principal acessar a mem´oria do sistema a partir de um dado endere¸co (definido pela interface do usu´ario, ex-terna ao IP-Core). Ap´os o carregamento do arquivo .aac na mem´oria do sistema, o Controlador Principal aciona os m´odulos internos do sistema, para obter o resul-tado da decodifica¸c˜ao do arquivo .aac. As unidades de acesso de ´audio (frames) s˜ao decodificadas, gerando amostras PCM, as quais s˜ao temporariamente armazenadas na mem´oria do sistema, para disponibiliza¸c˜ao ao sistema externo de reprodu¸c˜ao, `a taxa de 44.100 amostras PCM de 16 bits, por canal de ´audio (o sistema decodifica at´e 2 canais de ´audio).

Controle – A camada de controle cont´em as classes respons´aveis pelo controle de todas as a¸c˜oes desempenhadas pelo Decodificador MPEG-2 AAC-LC.

Dados – A camada de dados cont´em as classes que armazenam os dados necess´arios para a realiza¸c˜ao das a¸c˜oes do Decodificador MPEG-2 AAC-LC.

As Figuras 16, 17 e 18 representam, respectivamente, as classes do sistema para os casos de uso Acionar, Disponibilizar Amostras e Executar Opera¸c˜ao. As classes expostas nessas figuras comp˜oem, juntamente com outras, o diagrama de arquitetura (15) . As duas primeiras pertencentes ao CP e a ´ultima ao CMS.

(46)
(47)
(48)

Figura 17: Diagrama de arquitetura – Disponibilizar Amostras

(49)

4.3

ipProcess – Verifica¸

ao

O maior prop´osito da fase de verifica¸c˜ao ´e assegurar que o projeto em RTL imple-menta as funcionalidades planejadas. Portanto, ela procura defeitos e, ao encontr´a-los, os documenta. Essa fase gera dois principais artefatos, o Plano de Verifica¸c˜ao e o Documento de Casos de Teste.

4.3.1

Plano de Verifica¸

ao

O Plano de Verifica¸c˜ao re´une informa¸c˜oes necess´arias para um bom planejamento e controle do esfor¸co gasto com a verifica¸c˜ao de um IP-Core. Ele descreve a abordagem usada para verificar os m´odulos, sendo o plano de mais alto n´ıvel gerado e usado pelos gerentes para direcionar o esfor¸co da verifica¸c˜ao.

4.3.2

Documento de Casos de Teste

O Documento de Casos de Teste define e especifica os casos de teste que ser˜ao utili-zados na verifica¸c˜ao funcional. Para isso, devem ser analisados os fluxos de trabalho dos casos de uso, tanto os principais como secund´arios, a fim de escolher os fluxos que ser˜ao testados e definir as entradas, as sa´ıdas, os procedimento da verifica¸c˜ao, as condi¸c˜oes, as pr´e-condi¸c˜oes e as p´os-condi¸c˜oes. Al´em disso, ele aborda os crit´erios de cobertura, tanto a cobertura funcional, como a cobertura de c´odigo.

Os casos de testes s˜ao divididos pelo tipo de est´ımulo que geram, dentre os quais figuram:

Teste Direcionado (Compliance Testing) - Verifica situa¸c˜oes mencionadas na espe-cifica¸c˜ao.

Caso Extremo (Corner Case) - Verifica situa¸c˜oes cr´ıticas (extremas) do projeto.

C´odigo Real (Real Code) - Utiliza est´ımulos reais da aplica¸c˜ao. Como exemplo, para o decodificador de ´audio um fragmento de um arquivo de ´audio aac contem est´ımulos reais.

Aleat´orio (Random) - Cria situa¸c˜oes “inusitadas”. Cobertura tipicamente melhor do que os outros tipos, j´a que pode gerar cen´arios que seriam esquecidos.

(50)

O Documento de Casos de Teste agrupa casos de teste que geram os seguintes est´ımulos: Teste de Direcionados, Casos Extremos e Aleat´orios.

4.3.2.1 Controlador Principal

A Tabela 4 evidencia a quantidade de tarefas executadas pelo CP - cada tarefa deve ser testada, levando em considera¸c˜ao a sincroniza¸c˜ao dos diversos m´odulos. O caso de teste apresentado nessa tabela ´e um teste direcionado, de acordo com a especifica¸c˜ao (docu-mentos ipProcess - Apˆendices Ae B) levantada previamente. A an´alise minuciosa do fluxo do teste, permite compreender todo o processamento, quer dizer, toda a decodifica¸c˜ao de uma unidade de ´audio, na perspectiva de controle.

Tabela 4: Caso de Teste Direcionado relacionado ao Con-trolador Principal

Nome: [CA 002] Teste de Acionar

Descri¸c˜ao: O objetivo desse caso de teste ´e testar o fluxo principal dos casos de uso [UC 001], [UC 003], [UC 004], [UC 006], [UC 008], [UC 010], [UC 012], [UC 014], [UC 017] e [UC 018]. Para isso, streams de audio aac v´alidos s˜ao gerados como est´ımulos para verificar se o Controlador Principal apresenta os resultados esperados.

Casos de uso relacionados: [UC 001] Acionar Deformatador [UC 003] Acionar Huffman

[UC 004] Decodificar Fatores de Escala [UC 006] Acionar Dequantizador [UC 008] Acionar Reescalador [UC 010] Acionar IMDCT [UC 012] Acionar Janelamento [UC 014] Acionar Sobreposi¸c˜ao

[UC 016] Disponibilizar Amostras PCM [UC 017] Ler

[UC 018] Escrever

(51)

continua¸c˜ao da p´agina anterior Pr´e-condi¸c˜oes:

• Stream armazenado e buffer de entrada do De-formatador sendo realimentado.

• Streams enviados devem ser streams aac v´alidos.

P´os-condi¸c˜oes:

• Posi¸c˜oes da mem´oria do sistema, corresponden-tes `as amostras PCM reproduzidas, liberadas.

Procedimento de teste:

• O Controlador Principal envia parte do arquivo .aac para o buffer de entrada do Deformatador de Bits-tream.

• O Controlador Principal envia um sinal de ativa¸c˜ao de deformata¸c˜ao.

• O Deformatador de Bitstream identifica o sinal envi-ado e lˆe o buffer de entrada serialmente, at´e identificar um elemento sint´atico AAC v´alido.

• O Controlador Principal rep˜oe os bits consumidos pelo Deformatador de Bitstream, de acordo com a taxa de bits identificada.

• Ao encontrar o identificador correspondente ao fim da unidade de acesso de ´audio (frame de ´audio), o Deformatador informa o final da deformata¸c˜ao de tal unidade ao Controlador Principal.

• O Decodificador de Huffman sinaliza o final da de-codifica¸c˜ao dos coeficientes espectrais da unidade de acesso de ´audio atual ao Controlador Principal. • O Controlador Principal envia um sinal de ativa¸c˜ao para iniciar o processo de dequantiza¸c˜ao de coeficien-tes espectrais quantizados e n˜ao-escalados.

(52)

continua¸c˜ao da p´agina anterior

• O Dequantizador recebe o sinal de ativa¸c˜ao e prepara-se para o processo de dequantiza¸c˜ao.

• O Controlador Principal repassa coeficientes espec-trais quantizados e n˜ao-escalados para o Dequantiza-dor. Repetindo o processo enquanto houver coeficien-tes espectrais quantizados e n˜ao-escalados na unidade de acesso de ´audio.

• O Controlador Principal desabilita o sinal de ativa¸c˜ao.

• O Dequantizador envia coeficientes dequantizados e n˜ao-escalados para o Controlador Principal.

• O Controlador Principal envia um sinal de ativa¸c˜ao para iniciar o processo de aplica¸c˜ao de fatores de es-cala aos coeficientes espectrais dequantizados e n˜ ao-escalados.

• O Reescalador recebe o sinal de ativa¸c˜ao e prepara-se para o processo de reescalamento.

• O Controlador Principal repassa informa¸c˜oes de se-cionamento e de janelamento ao Reescalador.

• O Controlador Principal repassa um fator de escala e os correspondentes coeficientes espectrais dequanti-zados e n˜ao-escalados para o Reescalador. Repetindo o processo enquanto houver coeficientes espectrais de-quantizados e n˜ao-escalados na unidade de acesso de ´

audio.

• O Controlador Principal desabilita o sinal de ativa¸c˜ao.

• O Reescalador envia os coeficientes dequantizados e n˜ao-escalados para o Controlador Principal.

• O Controlador Principal envia um sinal de ativa¸c˜ao para iniciar o processo de restaura¸c˜ao de amostras PCM a partir dos coeficientes espectrais de uma ja-nela de ´audio.

(53)

continua¸c˜ao da p´agina anterior

• A IMDCT recebe o sinal de ativa¸c˜ao e prepara-se para o processo restaura¸c˜ao de amostras.

• O Controlador Principal repassa grupos de coefici-entes espectrais `a IMDCT. Repetindo o processo en-quanto n˜ao forem repassados 1024 coeficientes espec-trais (correspondentes a uma janela longa ou a 8 jane-las curtas).

• O Controlador Principal desabilita o sinal de ativa¸c˜ao.

• A IMDCT envia valores das amostras PCM para o Controlador Principal.

• O Controlador Principal envia um sinal de ativa¸c˜ao para iniciar o processo de janelamento de amostras PCM.

• O Windowing/Block Switching recebe o sinal de ativa¸c˜ao e prepara-se para o processo de dequan-tiza¸c˜ao.

• O Controlador Principal repassa informa¸c˜oes sobre o tipo de fun¸c˜ao de janelamento a ser aplicada (seno ou KBD) e o tipo de seq¨uˆencia de janelas para o Win-dowing/Block Switching.

• O Controlador Principal repassa grupos de amostras PCM para o Windowing/Block Switching. Repetindo o processo enquanto n˜ao forem repassadas 2048 amos-tras PCM (correspondentes a uma janela longa ou a 8 janelas curtas).

• O Controlador Principal desabilita o sinal de ativa¸c˜ao.

• Controlador Principal recebe valores das 2048 amos-tras PCM ap´os a aplica¸c˜ao da fun¸c˜ao de janelamento. • O Controlador Principal envia um sinal de ativa¸c˜ao para iniciar o processo de sobreposi¸c˜ao de amostras relativas as janelas adjacentes.

(54)

continua¸c˜ao da p´agina anterior

• O Overlapping/Adding recebe o sinal de ativa¸c˜ao e prepara-se para o processo de sobreposi¸c˜ao.

• O Controlador Principal repassa dois grupos de amostras PCM janeladas, cada qual associado a uma das duas seq¨uˆencias de janelas, para o Overlap-ping/Adding. Repetindo o processo enquanto n˜ao fo-rem repassadas 2048 amostras PCM janeladas (corres-pondentes a 50% de cada uma das duas seq¨uˆencias de janelas consideradas).

• O Controlador Principal desabilita o sinal de ativa¸c˜ao.

• O Controlador Principal aguarda at´e que uma uni-dade de acesso de ´audio seja inteiramente decodifi-cada, isto ´e, at´e que se obtenha os valores finais das amostras PCM para ambos os canais de ´audio es-querdo (primeiro a ser decodificado) e direito (´ultimo a ser decodificado).

• O Controlador Principal envia simultaneamente duas amostras PCM de 16 bits, cada qual relacionada a um canal, de acordo com a temporiza¸c˜ao necess´aria para a reprodu¸c˜ao a 44.100 amostras/s por canal. • Repetir o procedimento acima para outros streams v´alidos.

4.3.2.2 Controlador de Mem´oria

O caso de teste do CMS, conforme Tabela 5, possui est´ımulos aleat´orios. Nele s˜ao ve-rificadas todas as tarefas de gerenciamento e as opera¸c˜oes de leitura e escrita na mem´oria. A aleatoriedade na verifica¸c˜ao permite maior seguran¸ca, pois permite que uma quantidade maior de cen´arios sejam verificados.

Referências

Documentos relacionados

rgeom(n, p) distribui¸ c˜ ao Geom´ etrica(p) runif(n, a, b) distribui¸ c˜ ao Uniforme(a,b) rexp(n, lambda) distribui¸ c˜ ao Exponencial(lambda) rnorm(n, mean, sd) distribui¸ c˜

Entregar em pdf (Fazer as listas em LaTeX ´ e recomendado) Listas entregues fora do prazo (no m´ aximo 24 horas ap´ os o prazo dado) valer˜ ao somente 50% dos pontos.!. Listas

Generalizar o algoritmo para bases de enumera¸c˜ao b > 1, observando que a resposta produzida pelo algoritmo independe da base de enumera¸c˜ao escolhida!. Dica: E poss´ıvel

Suponha que a quantidade semanal demandada dos pneus radiais Super Titan esteja relacionada com seu pre¸ co unit´ ario pela equa¸c˜

O coeficiente de correla¸c˜ ao linear varia entre −1 e +1: r = −1 corresponde ao caso de correla¸ c˜ ao linear negativa perfeita e r = +1 corresponde ao de correla¸c˜ ao

Neste diret´ orio est˜ ao, tamb´ em, localizados programas para manipula¸ c˜ ao de arquivos Postscript e L A TEX gerados pelo Scilab. • demos/ - onde est˜ ao localizados os

Para evitar isso, vocˆ e pode mover os dois comandos do preˆ ambulo para algum lugar ap´ os o comando \tableofcontents ou definitivamente n˜ ao us´ a-los, porque vocˆ e ver´ a que

Uma colora¸c˜ ao das arestas de um grafo ´e uma atribui¸c˜ ao de cores ` as suas arestas tal que arestas adjacentes recebem cores diferentes... 2 Colora¸c˜ oes m´ınimas e