Você está na página 1de 10

Metodologia de Desenvolvimento de Sistemas Embarcados

Slvio R. F. de Arajo, Leonardo A. Casillo, Euplemo Holanda, Ivan S. Silva


Departamento de Informtica e Matemtica Aplicada
Universidade Federal do Rio Grande do Norte
Campus Universitrio Lagoa Nova 59.072-970 Natal RN Brasil
silvio@lcc.ufrn.br, leonardo@ppgsc.ufrn.br, eupolemo@lcc.ufrn.br, ivan@dimap.ufrn.br

Abstract. The use of dedicated systems for specific applications in the industry and
domestic environments is relatively increasing. Such as systems are called embedded
systems and are the combination of hardware and software adapted to the application.
However the design cost of these systems increase due the specialization of the involved
people and activities. Since, is very important to use methodologies that guarantee
optimized time to market and take care the quality and performance requirements for
these systems. This paper presents a high-level design methodology of embedded
systems and two cases studies.
Resumo. A utilizao de sistemas dedicados para aplicaes especficas em ambientes
industriais e at mesmo domsticos relativamente crescente. Tais sistemas so
denominados sistemas embarcados e consistem da combinao de hardware e software
adaptados para a aplicao. Porm estes sistemas podem apresentar um custo elevado
em seu desenvolvimento devido especializao das atividades e pessoas envolvidas.
Dessa forma importante analisar as metodologias de desenvolvimento de modo que os
requisitos para esses sistemas sejam atendidos de forma otimizada. Nesse artigo
apresentada uma metodologia de desenvolvimento baseada em descries de alto nvel,
bem como dois estudos de caso onde esta metodologia foi usada.
1. Introduo
O ritmo da evoluo tecnolgica observado atualmente aponta para sistema integrados de 4
bilhes de transistores at o final da dcada [1]. Entretanto a produtividade da industria no vem
acompanhando o aumento da capacidade de integrao [2]. Para solucionar o conhecido gap
tecnolgico so propostas novas metodologias de projeto, entre as mais aceitas atualmente
encontram-se: o hardware/software co-design [3], [4]; a especificao e desenvolvimento ao
nvel do sistema [5], [6] e, mais recentemente, a metodologia de reuso [7], [8], [9].
Os sistemas em tempo real tm sido muito utilizados em aplicaes complexas nas reas
de automao, robtica e de processamento de sinais e imagens, e so freqentemente integrados
em componentes de hardware/software. Isso exige o desenvolvimento de metodologias de
concepo que permitam a especificao, validao, otimizao e implementao de sistemas
heterogneos utilizando, de preferncia, um modelo unificado ao longo de todo o ciclo de
concepo. A implementao dessas aplicaes complexas recorre a arquiteturas heterogneas
usando componentes programveis (processadores, microcontroladores ou DSP - Digital Signal
Processor) e/ou circuitos especializados (ASIC - Application Specific Integrated Circuit, FPGA
Field Programmable Gate Array, IC - Integrated Circuit ou PAL - Programmed Array Logic)
que se comunicam atravs de uma rede de comunicao. Os componentes programveis oferecem
mais flexibilidade (um mesmo componente pode implementar diferentes aplicaes ao executar
cdigos diferentes), mas os circuitos especializados oferecem melhor desempenho (por serem
dedicados implementao da aplicao-alvo). Para resolver os problemas de prototipagem
rpida e de concepo conjunta hardware/software relacionados implementao de tais
sistemas, necessria a utilizao de uma metodologia formal de concepo[10].
Os sistemas embarcados so sistemas reativos em tempo real utilizados para
processamento de sinais e imagens, telecomunicaes e automao. Tipicamente, so
implementados a partir de diferentes tecnologias, como microprocessadores, microcontroladores,
DSP, circuitos reconfigurveis, circuitos analgicos e de microondas e sistemas
microeletromecnicos (MEMS - MicroElectroMechanical Systems). As ferramentas de
concepo de sistemas embarcados existentes so ainda muito limitadas e exigem, por exemplo,
que as especificaes de hardware e software sejam feitas separadamente. H diferentes
abordagens universitrias e comerciais para resolver os problemas da concepo de sistemas
embarcados. Entretanto, estas ainda no oferecem ao projetista, de forma satisfatria,
funcionalidades tais como especificao independente da implementao e sntese automtica de
sistemas reativos em tempo real.[10]
Este artigo est organizado em 5 sees. Na segunda so apresentadas algumas
informaes sobre metodologia de desenvolvimento. Na terceira apresentada a metodologia de
projeto juntamente com a ferramenta SASHIMI. Na quarta so apresentados detalhes das
implementaes da aplicao de vdeo digital envolvendo as operaes de compresso de
imagens e estimao de movimento usando a ferramenta escolhida, enquanto na quinta seo so
apresentadas as concluses e consideraes finais.
2. Metodologia de Desenvolvimento
A construo de Sistemas Embarcados consiste no desenvolvimento do hardware e do software
que juntos desempenham uma funo especfica correspondente ao propsito de tal sistema.
As especificaes sejam de hardware ou de software, devem seguir os padres de
desenvolvimento j consolidados. Para desenvolvimento do hardware faz-se necessrio a
especificao da arquitetura, onde so estabelecidos os barramentos, unidades lgicas e
aritmticas, registradores de trabalho e unidades de controle, bem como a definio do conjunto
de registradores e operaes lgicas e aritmticas, e adicionalmente um conjunto de instrues
equivalentes voltado para as funes a serem desempenhadas pelo sistema embarcado. Do
mesmo modo o software, ou softwares, precisam ser implementados obedecendo s
caractersticas da arquitetura e do sistema operacional, que tambm deve atender aos conceitos da
arquitetura adotada.
Aps a definio da arquitetura, geralmente utiliza-se uma linguagem de alto nvel para
simular e avaliar os resultados dessa arquitetura. Em seguida feita uma descrio para sntese
do hardware atravs de uma linguagem de especificao de hardware, como por exemplo,
VHDL.
Com o hardware definido possvel construir o software adaptado para o propsito do
sistema embarcado. Esse software pode utilizar linguagens de alto nvel, desde que sejam
suportadas pela arquitetura, ou implementadas em baixo nvel com a linguagem de montagem
suportada. O desenvolvimento, porm, deve seguir a metodologia da Engenharia de Software, e
principalmente obedecer todas as restries e caractersticas especficas da arquitetura.
Como pode ser visto, o desenvolvimento de sistemas embarcados pode se tornar de alto
custo, tanto cronologicamente quanto financeiramente, principalmente. Desse modo existem
algumas metodologias que tentam amenizar esses custos e otimizar o desenvolvimento. Uma
metodologia interessante o desenvolvimento do sistema como um todo utilizando uma
linguagem de programao de alto nvel para especificao tanto do hardware quanto do
software. Dessa forma a reduo de tempo com desenvolvimento e teste do hardware e adaptao
do software, alm de capacitao de pessoas em diversos seguimentos especficos associados
com hardware e software pode ser bem considervel.
Seguindo esta metodologia, este artigo apresentar uma proposta de desenvolvimento de
sistemas embarcados utilizando uma linguagem de programao de alto nvel atravs de um
ambiente especfico de desenvolvimento. Para tanto esse ambiente utiliza uma arquitetura na qual
o sistema embarcado ser baseado, inclusive a adaptao do software.
3. Ambiente de Desenvolvimento SASHIMI
Atualmente existem poucas metodologias que utilizam linguagens de alto nvel para o
desenvolvimento de sistemas embarcados, dado que as aplicaes embarcadas, mesmo simples,
envolvem restries de ocupao de poucos Kbytes de memria RAM e ROM e restries de
consumo de potncia. Uma metodologia que atende essa proposta, est voltada para um ambiente
de gerao de aplicaes especficas baseada em software e hardware para microcontroladores,
denominada "SASHIMI" (Specific Applications based in Software and Hardware for Integrated
MIcrocontrollers), e que utiliza a linguagem J ava como tecnologia fundamental para o projeto do
sistema.
Neste ambiente, o projetista fornece uma aplicao J ava que ser analisada e otimizada
para execuo em um microcontrolador denominado FentoJ ava, capaz de executar instrues
J ava nativamente, exibindo ainda caractersticas de um ASIP (Application Specific Instruction set
Processor)[12], [13]. No ambiente SASHIMI a implementao das aplicaes realizada atravs
da linguagem J ava, seguindo o ciclo tradicional edio-compilao-execuo em qualquer
plataforma que possua uma implementao do J DK disponvel. [11], [12]
Como o SASHIMI destinado a especificar sistemas embarcados, e esses possuem
algumas restries, apenas um subconjunto das instrues J ava suportado. As instrues que
necessitam de gerenciamento de memria so muito dispendiosas principalmente no aspecto
espao, ponto muito importante em sistemas embarcados. Portanto, no so permitidos o
operador new, nem mtodos recursivos. Os mtodos e variveis devem ser estticos, a exceo
so os mtodos das interfaces da API do SASHIMI, e os tipos de dados permitidos so aqueles
diferentes de ponto flutuante.[11], [12]. Algumas opes do J ava, como mltiplas threads,
mtodos construtores e o mtodo main, no so sintetizveis, porm so usadas para simulao.
O comportamento da aplicao por sua vez, modelado a partir do mtodo initSystem.[13]
Na biblioteca do SASHMI encontram-se encapsuladas interfaces de portas E/S,
temporizadores e tratamento de interrupes que ajudam a implementao do
microcontrolador.[13]
Em [14] sugerido que seja desenvolvida uma classe J ava para cada funo especfica do
microcontrolador a ser sintetizado. Em seguida uma outra classe com o comportamento do
sistema e as interfaces da biblioteca do SASHIMI deve ser implementada. Essas classes devem
obedecer s regras de modelagem para ento serem compiladas em um compilador J ava qualquer
para gerao dos arquivos executveis (.class).
Aps a criao dos executveis um arquivo de projeto deve ser criado, pois nele que
especificado quais .class faro parte da sntese. Em seguida o arquivo de projeto submetido
anlise do SASHIMI que criar arquivos especficos com as informaes de sntese e a descrio
de todo o sistema em VHDL alm da gerao da RAM e ROM.
4. Aplicaes de Sistemas Embarcados utilizando o SASHIMI
Nesta sesso sero vistos alguns detalhes da implementao de duas aplicaes de vdeo digital,
envolvendo compresso de imagens e estimao de movimento. As operaes foram
implementadas em J ava, obedecendo s regras de modelagem do SASHIMI para a sntese nesse
ambiente.
4.1. Compresso de imagens usando o padro JPEG
Esta aplicao consiste no desenvolvimento de um ASIP dedicado compresso de imagens
usando o padro Joint Photographs Experts Group (J PEG), criado no final da dcada de 80 pela
International Standards Organization e o International Telegraph and Telephone Consultative
para rea de compresso de imagem.
O J PEG um conjunto de operaes em srie que promovem a compresso de imagens
com tcnicas que envolvem ou no perda de informao. As operaes que causam a perda
aproveitam as dificuldades do olho humano para distinguir certas informaes e assim realizam
sua eliminao.
As operaes realizadas pelo J PEG so as seguintes: a converso do espao de cores, o
downsampling, a transformada discreta do cosseno, a quantizao e a codificao de entropia. As
duas primeiras so operaes exclusivas para imagens coloridas, ento sero abordadas apenas as
ltimas operaes, nas quais representam a compresso completa de imagens em tons de cinza e
ainda fazem parte da compresso de imagens coloridas. A seguir feita uma breve descrio
sobre as trs ltimas operaes com os respectivos detalhes resumidos do desenvolvimento para o
SASHIMI.
4.1.1. Transformada Discreta do Cosseno (DCT)
A representao das cores pode ser feita a partir de diversos espaos de cores, sendo que a mais
utilizada no padro J PEG a YCbCr. A componente Y denominada luminncia e no tem
efeito na cor do pixel, apenas sobre sua luminosidade, ou seja, contm a informao sobre tons de
cinza que podem variar de 0 (preto) a 255 (branco) na representao de 8 bits [15]. As
componentes Cb e Cr so chamadas de crominncia, e juntas definem a cor do pixel, isto ,
representam a relao que o azul e o vermelho possuem com verde.
A DCT consiste em transformar a matriz YCbCr, dividida em blocos de 8x8 pixels, do
domnio espacial para o domnio das freqncias. Para tanto cada componente dessa matriz
submetida equao apresentada na Figura 1 de acordo com [13].






Figura 1 Clculo da DCT 2-D

( ) ( )

= =

+
=
7
0
7
0
16
1 2
cos
16
1 2
cos
x y
yx ij ij
j x i y
V c T


onde
yx
V o componente na linha y e coluna x
7 , 1 j i e
8
1
=
ij
c se i ou j =0,
4
1
=
ij
c se i e 0
Uma importante propriedade da DCT 2-D a separabilidade, na qual o clculo da DCT 2-
D feito por duas DCT 1-D, onde a primeira aplicada linha a linha da matriz de entrada (8x8) e
a segunda s colunas da matriz resultante da primeira DCT 1-D. De acordo com [14] a separao
do clculo diminui a complexidade da operao e a rea ocupada em hardware.
Um algoritmo que usa esse princpio de forma otimizada encontrado em [16], porm
[14] constatou um erro e o corrigiu em seu trabalho, desse modo foi utilizado o algoritmo
encontrado em [14]. Esse algoritmo compreende seis passos, dos quais os trs primeiros e os dois
ltimos so realizados apenas por somas e subtraes. O passo quatro responsvel pela
multiplicao de alguns dos resultados dos passos anteriores por constantes.
Essas constantes so valores reais, isto , um tipo de dado no suportado pelo SASHIMI.
Por conta disso, essas constantes foram usadas multiplicadas por uma base dez de forma que
ficassem com um valor inteiro. Aps seu uso no passo quatro, o resultado dividido por essa
mesma base dez.
Outro detalhe na implementao desse processo foi a criao de um mtodo que realizasse
a diviso de inteiros para compensar a multiplicao da base dez, pois a instruo da Mquina
Virtual J ava para tal operao no faz parte do conjunto de instrues suportadas pelo SASHIMI.

4.1.2. Quantizao
O clculo da DCT concentra as freqncias mais baixas mais esquerda e mais cima na matriz
resultante e as freqncias mais elevadas no sentido inverso.
Como as freqncias mais altas possuem amplitudes mais baixas [16], estas tendem a
contribuir menos com a informao da imagem, sendo possvel atenu-las ou mesmo elimin-las.
Para isso cada coeficiente da matriz resultante da DCT dividido por um coeficiente
correspondente de uma tabela de quantizao e o resultado arredondado para um valor inteiro.
O objetivo da quantizao conseguir o maior nmero de zeros possveis sem interferir muito na
qualidade da imagem.
A entrada do processo de quantizao a matriz resultante da DCT que apresenta uma
escala dos resultados reais. A correo desta escala foi feita usando uma tabela de fator de escala,
onde para cada um dos coeficientes da matriz 8x8 definido um fator de escala como est
definido em [15]. Os fatores de escala para DCT 1-D so calculados de acordo com a equao da
Figura 2.




Figura 2 Fator de escala para DCT 1-D
Os resultados desse clculo so usados para calcular os fatores de escala para DCT 2-D
que geram constantes, as quais foram extradas de [14]. O clculo mostrado na Figura 3.



Figura 3 Fator de escala para DCT 2-D

A computao efetiva da quantizao feita atravs do arredondamento da diviso do
coeficiente da DCT 2-D pelo produto entre o fator de escala e o coeficiente da tabela de
) 16 / cos( 2
) (
) (
ix
i C
i Fe

=
=
2 / 1 ) (
2 / 1 ) 0 (
i C
C
7 1 i
) ( ) ( ) ( j Fe i Fe ij Fe = 7 , 1 j i
quantizao correspondente, conforme a Figura 4. Tambm foram utilizadas as constantes de
quantizao de [14]. Para realizar a diviso que ocorre nessa etapa foi utilizado o mtodo citado
na implementao da DCT. A observao a ser feita desse mtodo que o resultado da diviso
truncado e no arredondado. Este fato, porm, no implica em perdas significativas, visto que o
objetivo da quantizao diminuir, e em muitos casos zerar, as freqncias vindas da DCT 2-D.

Figura 4 Clculo da quantizao
4.1.3. Codificao de Entropia
Aps a quantizao, a matriz resultante ter maior probabilidade de possuir valores diferentes de
zero no canto superior esquerdo. Portanto, para obter seqncias com o maior nmero de zeros
seguidos, a matriz percorrida em ziguezague para formar uma nova matriz. Aps a formao da
nova matriz possvel aplicar vrias tcnicas de compresso j conhecidas, como Huffman, VLC
e RLE [14].
As matrizes 8x8 foram representadas por vetores de 64 posies, pois apenas vetores so
suportados pelo SASHIMI. Assim a leitura em ziguezague foi realizada graas observao que
no vetor contnuo de 64 elementos os ndices lidos so sempre referncias aos ndices lidos
anteriormente.
Na etapa de compresso podem ser usados os mais diversos algoritmos de compresso
sem perda. Nessa aplicao foi usado apenas o algoritmo RLE de forma otimizada, consistindo
em escrever antes de qualquer nmero diferente de zero a quantidade de zeros que o antecede.

4.2. Implementao do Clculo dos Vetores de Movimento
Esta aplicao tem por objetivo a implementao de diferentes verses do algoritmo de busca
completa, utilizado para a estimao de movimento, com a finalidade de comparar o consumo da
potncia gasta por cada uma destas. Estas verses foram implementadas utilizando tcnicas de
programao de modo que o algoritmo utilizasse mais memria e menos memria em sua
execuo. Quanto mais memria utilizada em sua execuo, mais rpido o algoritmo tende a ser,
ou mais fcil de fazer software-pipeline. Por conseqncia, mais potncia de pico gasta, embora
a energia total tenda a diminuir pela economia de tempo.
A estimao de movimento consiste em identificar a relao entre duas imagens em
instantes de tempo consecutivos e mape-la atravs de vetores denominados vetores de
movimento, os quais representam o deslocamento de uma mesma regio entre as duas imagens.
A estimao de movimento, utilizada na compresso de vdeo digital, normalmente realizada
em hardware por um processador dedicado, uma vez que demanda expressiva capacidade
computacional [17].
As imagens so subdivididas em regies de referncia e regies de procura. O tamanho
das regies de referncia e procura tm influncia na taxa de compresso, no esforo
computacional para estimao de movimento e na qualidade do vdeo produzido. O tamanho da
regio de referncia adotado pelo padro MPEG de 8x8, enquanto que a regio de procura
possui p pontos a mais do que a regio de referncia. Geralmente so utilizados tamanhos de
16x16, 32x32 ou at 256x256 para a regio de procura.[18]
A definio do algoritmo utilizado para a estimao de movimento determina a
quantidade de clculo necessrio para sua execuo e, por conseqncia, o tempo de execuo. A
alterao do tempo de execuo de um algoritmo, bem como a quantidade de acessos memria,
determinam a sua potncia consumida. Para a aplicao das tcnicas que visam diminuir o
consumo de potncia foi escolhido como referncia o algoritmo de busca completa, o qual
consiste em calcular a distoro para todas as possveis localidades de uma determinada regio e
obter um vetor de movimento como sendo o par ordenado (i,j) ao qual est associado o menor
valor de distoro encontrado.[19] O algoritmo de busca completa composto pelos seguintes
passos:
Definir o tamanho da regio referncia (NxN) e da regio de procura (N+p, N+p);
Definir a quantidade de blocos existente em uma imagem (LxC) por cada linha e coluna,
sendo N
linhas
=L/N e N
colunas
=C/N;
Definir o critrio para o clculo da distoro entre blocos;
Definir o vetor de movimento inicial de cada bloco como o par ordenado associado ao
pixel superior esquerdo do bloco:
o VMi(i_blk) =(i_blk*N);
o VMj(j_blk) =(j_blk*N);
Definir a distoro mnima inicial associada ao bloco como um valor infinito;
Para todos os pixels correspondentes a regio de procura:
o Efetuar o clculo da distoro para cada pixel;
o Se a distoro obtida for menor que a distoro mnima, esta distoro se torna a
nova distoro mnima e o par ordenado associado a essa distoro se torna o novo
vetor de movimento do bloco.
Dentre os critrios de distoro, existentes, utilizou-se o SAD (Soma das Diferenas
Absolutas), que possui como caracterstica principal ausncia de multiplicaes, o que facilita a
sua implementao. [19] Este critrio definido pela equao mostrada na Figura 5:




Figura 5 Equao do critrio SAD

A utilizao desse algoritmo exige uma grande capacidade computacional para sua
implementao devido ao fato de que todos os pixels da imagem so considerados no clculo da
distoro mnima e do vetor de movimento. No entanto, o resultado obtido de sua utilizao
considerado timo. [17]
Foi realizado um estudo de caso em que so utilizadas duas imagens de tamanho 32x32
pixels, regio de referncia de tamanho 8x8 e regio de procura de tamanho 16x16, dividindo as
imagens em 4x4 blocos. Para a implementao dos algoritmos em J ava atravs do ambiente
SASHIMI, algumas alteraes foram necessrias devido restrio do ambiente quanto ao uso de
matrizes. Dessa forma, foram utilizados dois vetores de 1024 elementos para as imagens de
referencia e procura e dois vetores de 16 elementos representando os vetores de movimento nas

=
+ + =
1
0
1
0
) , ( ) , ( ) (
M
m
N
n
j n i m P n m R ij D [ ] p p j i , ,
coordenadas i e j. Utilizar vetores ao invs de matrizes faz com que a complexidade do algoritmo
seja diminuda, reduzindo a quantidade de laos no algoritmo.
4.2.1. Utilizando menos memria
Implementar o algoritmo utilizando menos memria corresponde ao algoritmo original,
sem nenhuma forma de otimizao, inserindo o mximo de operaes aritmticas possveis e
eliminando chamadas a tabelas e variveis auxiliares. Dessa forma, todas as posies dos blocos
e vetores de movimento iniciais so calculadas durante a execuo do algoritmo. Como exemplo
dessa implementao, o cdigo correspondente ao clculo do critrio SAD foi realizado da
seguinte forma:
Para i_ref de 0 a (N-1) faa
Para j_ref de 0 a (N-1) faa
Ri =(i_blk*N) +i_ref;
Rj =(j_blk*N); +j_ref;
Pi =(i_blk*N) +i_ref +i_proc p;
Pj =(j_blk*N) +j_ref +j_proc p;
SAD =SAD +| R(Ri, Rj) P(Pi, Pj) |;

4.2.2. Utilizando mais memria
A utilizao de tcnicas utilizando mais memria, ao contrrio da implementao
anterior, significa reduzir ao mximo a quantidade de operaes existentes no algoritmo.
Para o estudo de caso em que os tamanhos das imagens anterior e atual e das regies de
referncia e procura j so determinados, possvel criar vetores e tabelas com as posies e
valores de algumas variveis, eliminando as operaes necessrias para sua determinao. Pelo
fato das posies dos pixels de referncia de cada bloco estarem predefinidas nesta
implementao, possvel criar um vetor com todas as 16 posies iniciais do vetor de
movimento, eliminando as multiplicaes existentes para o seu clculo bloco a bloco.
Outra modificao importante se refere ao lao mais interno do algoritmo, utilizado no
clculo da SAD. Todos os possveis valores das variveis Ri e Rj tambm podem ser
predefinidos, criando vetores de 256 elementos. Com o valor de p definido, tambm se torna
possvel a criao de mais duas tabelas com os valores de Pi =Ri-8 e Pj =Rj-8. O algoritmo com
as modificaes foi reescrito dessa forma:
Para i_ref de 0 a (N-1) faa
Para j_ref de 0 a (N-1) faa
auxi =k +k_aux;
auxj =l +l_aux;
RI =Ri[auxi];
RJ =Rj[auxj];
PI =Pi[auxi] +i_proc;
PJ =Pj[auxj] +j_proc;
SAD =SAD +| R(RI, RJ ) P(PI, PJ ) |;
5. Consideraes Finais
Neste artigo foi apresentada uma metodologia de desenvolvimento de sistemas embarcados que
objetiva diminuir os esforos de planejamento e implementao desses sistemas. Constatando-se
que metodologias tradicionais envolvem um relativo investimento em tecnologia, tempo e
pessoal, as quais associam muitos processos em seus desenvolvimentos, abordagens que
promovam uma maior abstrao e que reduzam os esforos envolvidos, e mesmo assim atribuam
qualidade nos sistemas finais, so muito relevantes para os desenvolvedores.
Dessa forma a metodologia apresentada nesse artigo prope o uso de uma linguagem de
programao de alto nvel para o desenvolvimento do hardware e software do sistema
embarcado, o qual baseado em uma arquitetura que ainda pode ser utilizada para gerao de um
ASIP. Nesse contexto foi utilizado um ambiente de desenvolvimento que utilizada a linguagem
J ava, largamente conhecida pelo potencial de portabilidade em uma diversidade de plataformas e
tambm muito utilizada em sistemas embarcados. Atravs desse ambiente possvel prover uma
abstrao no desenvolvimento e na simulao dos sistemas por meio de APIs J ava implementadas
nele.
Como aplicao dessa metodologia, utilizando o ambiente mencionado anteriormente, foi
desenvolvido um ASIP dedicado compresso de imagens usando o padro J PEG e um
mecanismo de estimao de movimento utilizado no padro MPEG-2 [17]. Analisando o tempo
de projeto e a quantidade de processos realizados no desenvolvimento dos ASIPs, a utilizao da
metodologia reduziu consideravelmente o esforo de construo, visto a complexidade da
prototipao de ASICs [14], [17] para as mesmas aplicaes, onde os resultados qualitativos de
simulao mostraram-se satisfatrios em comparao aos ASICs.
Referncias
[1] Berthet, C. Going Mobile: The Next Horizon for Multi-Million Gate Designs in the semi-
Conductor Industry; In: 39th Design Automation Conference, New Orleans, 2002. Proceedings.
Los Alamitos, IEEE Computer Society Press, 2002. p. 375-378.

[2] Benni, L. De Micheli, G. Network on Chip: A New SoC Paradigm. IEEE Computer, v.35,
n.1, J an. 2002, p. 70-78.

[3] Martin, G.; Brunel J . Platform-Based Co-Design and Co-development: Experience,
Methodology and Trends. IEEE/DATC Electronic Design Processes Workshop, april 21-23,
2002.

[4] Tsasakou, S.; Voros, N.S.; Koziotis, M.; Verkest, D.; Prayati, A.; Birbas, A. Hardware-
software co-design of embedded systems using CoWare's N2C methodology for application
development. Proceedings of IEEE International Conference on Electronics, Circuits and
Systems, 1999, pp. 59-62.

[5] Keutzer, K.; Malik, S.; Newton, A.R.; Rabaey, J .M.; Vincentelli, A. S.; System-level design:
orthogonalization of concerns and platform-based design. IEEE Transactions on Computer-Aided
Design of Integrated Circuits and Systems, 2000, pp. 1523-1543.

[6] Kawarabayashi, M.; Lu, J .; Goto, K.; Fung, P. W. "System level design methodology for
System on a Chip", NEC Research and Development, J UL 2000, pp. 248-252.
[7] Bricaud, P. J . IP Reuse Creation for System-on-a-Chip Design. I: Proceedings of the IEEE
Custom Integrated Circuits, 1999. p. 395-401.

[8] Keating, M.; Bricaud, P. Reuse Methodology Manual for System-on-a-Chip Designs
Second Edition. Kluwer Academic Publishers, USA, 1999.

[9] Thomas, T. Technology for IP Reuse and Portability. In: IEEE Design & Test of Computers.
Vol. 16, Issue 4, Oct.-Dec. 1999. p. 7-13.

[10] Dias, Ailton F. Concepo Conjunta Hardware/Software de Sistemas Embarcados de
Processamento de Imagens. CTDN/CNEN.

[11] Ito, S.A.; Carro, L.; J acobi, R.P.; System design based on single language and single-chip
J ava ASIP microcontroller. Design, Automation and Test in Europe Conference and Exhibition
2000. Proceedings , 27-30 March 2000 pp: 703 -707

[12] Ito, S.A.; Carro, L.; J acobi, R.P.; Designing a J ava microcontroller to specific applications.
Integrated Circuits and Systems Design, 1999. Proceedings. XII Symposium on, 29 Sept.-2 Oct.
1999 pp: 12 -15

[13] SASHIMI Manual do Usurio, verso 0.8b, Luigi Carro; J lio Mattos; Rafael Krapf;
Gustavo Spellmeier. Porto Alegre-RS, J aneiro, 2002.

[14] Agostini, Luciano Volcan. Projeto de Arquiteturas Integradas para a Compresso de
Imagens J PEG. Porto Alegre: PPGC da UFRGS, 2002. Dissertao de Mestrado em Computao.
Universidade Federal do Rio Grande do Sul.

[15] Mello, Cludio G. O Padro J PEG e o seu Uso na Transmisso de Imagens Adaptativas ao
Retardo na Rede. Instituto Militar de Engenharia.

[16] Kovac, Mario; Ranganathan, N. J aguar: A Fully Pipelined VLSI Architecture for J PEG
Image Compression Standard. Proceedings of the IEEE, Vol. 83, No. 2, February, 1995.

[17] Zadonai, Diogo. Uma arquitetura de Hardware para Estimao de Movimento aplicado
Compresso de Imagens. Porto Alegre: PPGC da UFRGS, 2003. Dissertao de Mestrado em
Cincia da Computao. Universidade Federal do Rio Grande do Sul.

[18] Querol, Marc. STI3220: Motion Estimation Processor Codec. SGS-Thomson
Microeletronics, 2001.

[19] Bhaskaran, V. Konstantinides, K. Image and Video Compression Standards: algorithms and
architectures. 2nd ed. Massachusetts: Kluwer Academic, 1999. 454p.

Você também pode gostar