DESENVOLVIMENTO E VALIDAÇÃO DAS INTERFACES BVCI PARA O
REUSO DE BLOCOS DE HARDWARE
Thaísa Leal da Silva, Roger Endrigo Carvalho Porto, José Luís Güntzel, Luciano Volcan Agostini
Grupo de Arquiteturas e Circuitos Integrados (GACI)
Departamento de Informática – Universidade Federal de Pelotas (UFPel)
Caixa Postal 354 – CEP. 96010-900 – Pelotas/RS – Brasil
{thleal, rogerecp, guntzel, agostini}@ufpel.edu.br
RESUMO
Este trabalho tem como objetivo explorar metodologias de
reuso de blocos de hardware no projeto de sistemas em
chip, a partir de experimentos com a interface BVCI
(Basic Virtual Component Interface). As interfaces BVCI
Iniciadora e Alvo foram descritas em VHDL e sintetizadas
para um FPGA da Altera. Após a síntese, as interfaces
foram validadas através de simulações. O protocolo
handshake também foi validado através da conexão entre
as interfaces. A interface BVCI Iniciadora utilizou 50
células lógicas e atingiu uma freqüência de operação de
188,7 MHz, enquanto que a interface BVCI Alvo utilizou
26 células lógicas, atingindo uma freqüência de operação
de 163,9 MHz. Através da comparação destes resultados
aos obtidos na síntese de blocos de hardware candidatos a
utilizarem estas interfaces, foi possível estimar que os
impactos em termos de desempenho e uso de recursos
serão mínimos quando as interfaces BVCI forem
integradas a estes blocos.
1. INTRODUÇÃO
O aumento da capacidade dos circuitos integrados tem
permitido a inclusão de um número crescente de módulos
de hardware em um único dispositivo, gerando maiores
níveis de complexidade na criação desses chips. Estes
circuitos integrados de alta escala de integração, com
funcionalidades avançadas e com projetos com elevada
complexidade, são chamados de sistemas em chip
(Systems-on-Chip) ou SoC’s. Os SoC’s visam
proporcionar uma integração mais eficaz de componentes
complexos no interior dos circuitos integrados, com o
objetivo de gerar sistemas que utilizem menor área,
possuam um maior poder de processamento e possuam
um reduzido consumo de energia. Como SoC’s são
sistemas complexos, eles demandam uma grande
quantidade de tempo para serem projetados, fato que se
contrapõe às exigências de mercado.
Em função disso, tornou-se necessária a adoção de uma
nova metodologia para o desenvolvimento de SoC’s
enfatizando menor tempo de projeto e garantindo a
permanência da qualidade em termos de área, desempenho
e consumo. A reutilização de blocos de hardware através
do uso de interfaces de comunicação padronizadas e a
geração de núcleos de propriedade intelectual (IP) em
escala industrial, contribuíram para solucionar esse
problema.
Para a indústria de microeletrônica contemporânea,
padronizações que viabilizem o reuso de blocos de
hardware são de grande importância, tendo em vista a
fabricação, caracterização, distribuição e aplicação de IP’s,
que são indispensáveis aos projetistas de circuitos
integrados e aos desenvolvedores de sistemas em chip.
Devido a este fato, o grupo de trabalho de Barramentos
em Chip (OCB - On-Chip Bus) da VSIA (Virtual Sockets
Interface Alliance) [1] desenvolveu o padrão VCI (Virtual
Component Interface), com o objetivo de gerar uma
interface padrão para o encapsulamento desses
componentes. O padrão VCI identifica os blocos reusáveis
como componentes virtuais ou VCs. Então, VCs de
diferentes origens podem ser conectados para a geração dos
sistemas em chip e podem ser utilizados em tantos
projetos quanto necessário, sem limitar seu uso a um
único projeto.
O padrão VCI disponibilizou uma família de interfaces
de componentes virtuais que são compatíveis entre si,
permitindo algumas escolhas aos projetistas de SoC’s
quanto à complexidade da interface de reuso a ser
empregada [1]. A principal característica do reuso de um
IP é a sua habilidade de ser facilmente integrado em um
SoC.
Este trabalho tem como objetivo apresentar o
desenvolvimento das interfaces BVCI Iniciadora e Alvo
em VHDL, bem como os resultados obtidos a partir de
sua síntese para FPGAs da Altera. Além disso, são
apresentados os experimentos desenvolvidos para a
verificação do correto funcionamento do protocolo de
handshake da interface BVCI, quando esta é utilizada em
um sistema complexo.
Na seção dois deste artigo faz-se uma breve descrição
sobre a interface BVCI de reuso de hardware, identificando
sua origem e suas características principais. Na seção três
o processo de desenvolvimento das interfaces BVCI
Iniciadora e Alvo é descrito. A seção quatro, por sua vez,
apresenta os resultados obtidos a partir da síntese das
interfaces BVCI Iniciadora e Alvo, comparados aos
resultados de outras interfaces e de blocos de hardware
desenvolvidos em trabalhos anteriores. Já na seção cinco
são apresentados os métodos utilizados para realizar a
validação do protocolo de comunicação das interfaces
BVCI. Finalmente, a seção seis apresenta as conclusões e
propostas para trabalhos futuros.
2. A INTERFACE BVCI
Definido pelo grupo de trabalho em Barramentos em
Chip (OCB) da VSIA [1], o padrão VCI (Virtual
Component Interface) [2] foi criado com o objetivo de
gerar uma interface padrão que permita que componentes
virtuais compatíveis se comuniquem para gerarem
sistemas em chip, mesmo que estes componentes sejam
desenvolvidos por diferentes projetistas, de diferentes
empresas. Assim, os componentes virtuais não terão seu
uso limitado a um único projeto, podendo ser
instanciados e utilizados em tantos projetos quanto forem
necessários.
O padrão VCI especifica uma família de protocolos de
comunicação que visam facilitar a comunicação entre os
VC’s. Atualmente, três protocolos pertencem a esta
família: o Peripheral Virtual Component Interface
(PVCI), o Basic Virtual Component Interface (BVCI) e o
Advanced Virtual Component Interface (AVCI) [2].
O protocolo PVCI provê uma interface simples e de
fácil implementação e é direcionado para aplicações que
não necessitam de todas as funcionalidades do BVCI. O
protocolo BVCI define uma interface apropriada para a
maioria das aplicações, possuindo um protocolo poderoso
e não muito complexo. O protocolo AVCI adiciona
recursos mais sofisticados em relação ao protocolo BVCI,
para suportar aplicações de alto desempenho [2].
Os objetivos iniciais considerados na elaboração do
padrão VCI foram [1]:
• A necessidade de máxima portabilidade para um VC,
onde um componente virtual deve poder ser usado
com barramentos com vários protocolos e de vários
níveis de desempenho.
• A simplicidade e a eficiência na implementação, com
um protocolo claro e de fácil compreensão, para que o
padrão seja amplamente aceito.
• A disponibilidade de uma família de interfaces de
componentes virtuais, com interfaces compatíveis,
permitindo algumas escolhas ao projetista do sistema
em chip e gerando mais oportunidades para o
projetista de componentes virtuais.
• A definição completa do protocolo, incluindo a
completa enumeração das possíveis interações, com
declarações sobre os comportamentos permitidos e não
permitidos, além de prover mecanismos para a
extensão deste protocolo.
A interface VCI pode ser usada para conexões ponto a
ponto entre duas unidades chamadas de iniciador e alvo,
onde o iniciador emite uma requisição e o alvo responde
[3].
O padrão VCI pode ser usado como interface para um
wrapper ou empacotador, que conecta-se a um
barramento. Esta é a forma pelo qual o padrão VCI
permite que os componentes virtuais sejam conectados em
qualquer barramento. Uma vez que tenham sido
desenvolvidos os empacotadores VCI para um
determinado barramento, qualquer componente virtual que
siga o padrão VCI pode ser conectado a este barramento.
[4]
A comunicação entre o iniciador e o alvo na interface
BVCI, está apresentada na Fig. 1.
Na Fig.1, o iniciador é responsável pelos conteúdos de
requisição e o alvo é responsável pelos conteúdos de
resposta. Estes conteúdos são transferidos separadamente
sob o controle de um protocolo simples chamado
handshake, onde as mensagens de requisição e resposta
são completamente independentes umas das outras. O
protocolo de handshake visa sincronizar dois blocos
transferindo informação de controle em ambas as direções.
Figura 1 - Conexão entre iniciador e alvo usando uma
Interface BVCI
A Fig. 2 mostra o funcionamento do protocolo
handshake, onde as linhas verticais tracejadas representam
as bordas de subida do clock. Nomes genéricos, VAL e
ACK, são usados na Fig. 2 como sinais de controle, estes
nomes representam os sinais CMDVAL e CMDACK do
canal requisição, e os sinais RSPVAL e RSPACK do
canal de resposta.
2
Figura 2 - Handshake de Controle para Requisição e Resposta (ACK Assíncrono)
Os conteúdos de requisição fluem do Iniciador para o
Alvo, pela ativação dos sinais CMDVAL e CMDACK,
e os conteúdos de resposta fluem do Alvo para o
Iniciador, pela ativação dos sinais RSPVAL e
RSPACK. Quando o sinal CMDVAL é ativado
significa que o Iniciador está solicitando a transferência
de um dado de leitura ou escrita para o Alvo. A ativação
do sinal CMDACK pelo Alvo, em resposta à solicitação
do Iniciador, indica que a transferência pode ser
realizada. E, ativando o sinal RSPVAL, o Alvo indica
que deseja executar a transferência do dado de resposta
para o Iniciador. O Iniciador, por sua vez, ativa o sinal
RSPACK indicando ao Alvo que está apto a receber o
conteúdo de resposta. Após o recebimento do conteúdo
pelo Iniciador, a transferência é finalizada. O sinal
CMDACK pode ser gerado assincronamente como
mostrado na Fig. 2, ou sincronamente, onde após a
ativação do sinal CMDVAL, solicitando uma
transferência de dados, o sinal de confirmação
(CMDACK) é gerado na próxima borda do clock.
3. O DESENVOLVIMENTO DAS INTERFACES
BVCI INICIADORA E ALVO
As interfaces BVCI Iniciadora e Alvo foram
desenvolvidas a partir da implementação de duas
máquinas de estados finitos (FSM – Finite State
Machine) [5] para cada interface. Estas FSM são
responsáveis pelo controle de transferências de dados
entre um bloco de hardware conectado à interface BVCI
Iniciadora e outro conectado à interface BVCI Alvo.
As máquinas de estados que integram as interfaces
BVCI Iniciadora e Alvo são compostas por três estados
cada uma: um estado que reseta o sistema, um estado
indicador de sistema ocioso e um estado que verifica se
uma operação (escrita/leitura) continua em andamento ou
pode ser finalizada. Na BVCI Iniciadora a máquina que
controla o canal de requisição possui como principais
sinais o CMDVAL e o CMDACK. Os principais sinais
da máquina que controla o canal de resposta na BVCI
Iniciadora e Alvo são os sinais RSPVAL e o RSPACK.
Na BVCI Alvo, a máquina responsável pelo canal de
requisição possui como sinais principais o CMDVAL e
o EOP.
Na Tab.1, estão relacionados os principais sinais que
compõem as Interfaces BVCI Iniciadora e Alvo e suas
respectivas descrições (origem e função).
Tabela 1 - Principais sinais das Interfaces BVCI
Sinal
CMDVAL
(Command
Valid)
Origem
Função
Iniciador Indica que o iniciador deseja
executar uma transferência de
célula para o alvo.
CMDACK
Alvo
Indica ao iniciador que uma
determinada célula pode ser
transferida.
RSPVAL
Alvo
Indica que o alvo deseja executar
uma transferência de célula de
resposta para o iniciador.
(Command
Acknowledge)
(Response
Valid)
RSPACK
Iniciador Indica ao alvo que uma
determinada célula será
transferida.
EOP
Iniciador Indica que todas as células
associadas a determinado pacote
foram transferidas.
(Response
Acknowledge)
(End of
Packet)
A interfaces BVCI possuem ainda diversos outros
sinais necessários ao seu perfeito funcionamento, entre
eles estão: sinal de CLOCK (provê a temporização para
todas as transações realizadas na interface, todos os
sinais são ativados na borda de subida do CLOCK),
RESETN (usado para deixar todos os dispositivos em
um estado comum, é um sinal ativo baixo). O sinal
CMD define o tipo de operação (leitura/escrita) que será
iniciada pelo Iniciador para o Alvo. O sinal BE indica
quais bytes da célula que são transferidos ou requeridos
pelo iniciador estão habilitados. O sinal ADDRESS é o
3
endereço da requisição e é gerado pelo iniciador e
recebido pelo alvo.
Nas Figs. 3 e 4 estão apresentadas as máquinas de
estados que compõem a BVCI Iniciadora, onde a Fig. 3
mostra a máquina de estados responsável pelo canal de
requisição e a Fig. 4 apresenta a máquina responsável
pelo canal de resposta. Estas máquinas de estados são
compostas por três estados: estado que inicializa o
sistema, estado indicador de sistema ocioso e estado
ativo, que realiza uma operação (escrita/leitura).
Como na simulação das interfaces Iniciadora e Alvo,
ainda não haviam blocos de hardware integrados as
mesmas, os sinais CMDVAL_tmp, RSPVAL_tmp e
RSPACK_tmp foram utilizados como entradas para
gerar estímulos para as interfaces.
As interfaces BVCI Iniciadora e Alvo foram
completamente descritas em VHDL no ambiente Quartus
II da Altera [6].
Figura 5 - Máquina de Estados Finitos responsável pelo
Canal de Requisição da BVCI Alvo
Figura 3 - Máquina de Estados Finitos responsável pelo
Canal de Requisição da BVCI Iniciadora
Figura 6 - Máquina de Estados Finitos responsável pelo
Canal de Resposta da BVCI Alvo
Figura 4 - Máquina de Estados Finitos responsável pelo
Canal de Resposta da BVCI Iniciadora
As Figs. 5 e 6 apresentam as máquinas de estados
que compõem a BVCI Alvo, sendo que a Fig. 5 contém
a máquina de estados responsável pelo canal de
requisição e, a Fig. 6 apresenta a máquina de estados
responsável pelo canal de resposta. Cada máquina é
composta por três estados como as máquinas que
compõem a interface BVCI Iniciadora, são eles:
inicializa, ocioso e ativo.
A síntese das interfaces BVCI também foi realizada
com auxílio da ferramenta QuartusII [2], sendo
direcionada para um FPGA da família FLEX 10KE da
Altera [6], mais especificamente o dispositivo
EPF10K130EQC240-1 [7].
Os resultados extraídos da síntese da interface BVCI
Iniciadora indicaram que foram utilizadas 50 células
lógicas e 50 pinos do dispositivo. Com relação ao
desempenho, a descrição da interface BVCI atingiu um
4
período mínimo de 5,3ns, o que corresponde a uma
freqüência máxima de operação de 188,7MHz.
Já os resultados de síntese da interface BVCI Alvo
indicaram a utilização de 26 células lógicas e 56 pinos
para o mesmo dispositivo, atingindo uma freqüência
máxima de operação de 163,9MHz, correspondente a um
período mínimo de 6,1ns.
Uma
das
dificuldades
encontradas
no
desenvolvimento das interfaces BVCI foi que,
diferentemente da interface PVCI já implementada em
trabalhos anteriores [9], a interface BVCI possui dois
handshakes independentes. Uma outra dificuldade surgiu
com relação à simulação da interface, pois não havia um
bloco de hardware integrado à interface para gerar
estímulos para a mesma e, por isso, foi necessário criar
um arquivo com formas de onda, o qual precisava ser
editado sempre que novos testes eram realizados.
Posteriormente, foram desenvolvidos blocos de hardware
específicos para possibilitar a validação do protocolo
através de simulações mais completas.
As interfaces BVCI foram validadas a partir de
simulações, onde foram gerados estímulos baseados em
todos os possíveis comportamentos de um bloco de
hardware integrado a esta interface.
4. RESULTADOS DE SÍNTESE
A Tab. 2 contém os resultados de síntese das interfaces
BVCI Iniciadora e Alvo, comparados aos resultados das
interfaces PVCI Iniciadora e Alvo [10], OCP Mestre e
Escravo [11], desenvolvidas em trabalhos anteriores, e de
blocos de hardware de um compressor JPEG e de uma
DCT 2-D, também desenvolvidos em trabalhos
anteriores [12], que são candidatos a utilizar as interfaces
BVCI em trabalhos futuros. Esta comparação com estes
blocos de hardware permitiu a construção de uma idéia
mais precisa sobre os impactos que a aplicação das
interfaces BVCI irão causar nestes blocos e, com isso,
indicar se a utilização desta interface é realmente
vantajosa. A síntese de todos os blocos e interfaces foi
direcionada para o FPGA EPF10K130EQC240-1 da
Altera.
A partir da Tab. 2, é possível perceber que a
freqüência máxima de operação das interfaces BVCI
Iniciadora e Alvo atingiu 57% e 49%, respectivamente,
da máxima freqüência permitida para o dispositivo
utilizado, que é de 333,33MHz. Estes resultados foram
considerados positivos, uma vez que a ferramenta de
análise de timing do Quartus II apresenta resultados
sabidamente pessimistas em relação ao atraso máximo,
por realizar uma análise estática de timing [8].
É possível observar na Tab. 2 que as interfaces BVCI
Iniciadora e Alvo, como esperado, utilizam mais células
lógicas que as interfaces PVCI (cerca de 3 vezes) e OCP
(cerca de 2,5 vezes), uma vez que as interfaces PVCI
possuem um protocolo de menor complexidade com
relação as interfaces BVCI, e as interfaces OCP possuem
complexidades comparáveis aquelas das interfaces PVCI.
Por outro lado, é possível perceber que tanto as
interfaces BVCI quanto as interfaces PVCI e OCP
utilizam cerca de 70 vezes menos células lógicas que os
blocos de hardware utilizados na comparação (DCT 2-D
e compressor JPEG). Destes resultados é possível prever
que a inserção destas interfaces nestes e em outros blocos
de hardware gerará um impacto muito pequeno em
termos de consumo de recursos.
Tabela 2 – Resultados de Síntese
Bloco de
Hardware
Células Freqüência
Lógicas
(MHz)
Período
(ns)
BVCI Iniciadora
50
188,7
5,3
BVCI Alvo
26
163,9
6,1
PVCI Iniciadora
19
121,9
8,2
PVCI Alvo
8
333,3
3
OCP Mestre
28
333,3
3
OCP Escravo
20
263,16
3,8
DCT – 2D
3.516
30,1
33,2
Compressor JPEG
4.363
31,1
32,2
Do ponto de vista de freqüência de operação, a Tab.
2, apresenta resultados mais animadores ainda, pois as
interfaces BVCI tiveram desempenho similar aos das
interfaces PVCI e OCP, e as três possuem um
desempenho 5 vezes superior ao da DCT 2-D e do
compressor JPEG, indicando que a inclusão destas
interfaces em blocos de hardware como os apresentados
não gerará impacto em termos de desempenho.
5. VALIDAÇÃO DO PROTOCOLO
A validação do protocolo foi realizada conectando as
interfaces BVCI Iniciadora e Alvo e estabelecendo um
processo de comunicação entre elas através dos sinais de
handshake, verificando assim a correta execução do
protocolo. Conforme representado na Fig. 7, tanto a
interface BVCI Iniciadora quanto a Alvo foram
integradas a blocos de estímulos, os quais simularam
blocos de hardware quaisquer, executando pedidos de
transferências de dados ou permanecendo em estado
ocioso.
A validação das interfaces BVCI também foi realizada
com auxílio da ferramenta QuartusII [2] e foi direcionada
para o mesmo dispositivo das sínteses anteriores, ou
seja, o EPF10K130EQC240-1 [7] da Altera [6].
Os resultados de síntese extraídos da integração entre
as interfaces indicaram que foram utilizadas 187 células
lógicas
e
125
pinos
do
dispositivo
EPF10K130EQC240-1, apresentando um período
mínimo de 9,5ns e uma freqüência máxima de operação
de 105,3MHz.
5
O protocolo foi validado a partir de várias
simulações, onde os blocos de estímulos ligados a cada
uma das interfaces simularam todos os possíveis
comportamentos de quaisquer blocos de hardware que
estivessem integrados as mesmas. Tais simulações foram
realizadas para avaliar a validade e correção da
implementação do protocolo BVCI e obtiveram
resultados positivos, os quais indicaram que a
implementação está funcional e correta. Porém,
simulações adicionais serão realizadas para verificar o
comportamento do protocolo sob comunicações de longa
duração, onde o tipo de comunicação e a quantidade de
dados transferidos irão variar aleatoriamente, com o
objetivo de captar alguma possível incorreção na
implementação que não tenha sido detectada nas
primeiras simulações.
Um exemplo de forma de onda obtida com a
simulação está apresentada na Fig. 8 onde, em um
primeiro momento, indicado pela letra “a”, a
comunicação entre as interfaces é inicializada pela
ativação do sinal RESETN (ativo baixo). Na primeira
borda ascendente de clock depois que o sinal RESETN
é desativado, indicada pela letra “b” na Fig. 8, a interface
passa para o estado ocioso, ou seja, nenhuma transação
está sendo solicitada pelo bloco de hardware conectado à
BVCI Iniciadora. Na próxima borda ascendente de clock
após o sinal CMDVAL ser ativado pela interface
iniciadora, indicada pela letra “c” na Fig. 8, então está
sendo solicitada a transferência de um dado que, nesse
caso, é um dado de leitura pois o sinal CMD está setado
como o valor um. Neste instante, o endereço de leitura
também é disponibilizado no barramento ADDRESS,
indicando a localização do dado que será lido. No
instante indicado pela letra “d” na Fig. 8, ainda no
handshake de requisição, o sinal CMDACK é ativado
pelo alvo para indicar que a transferência pode ser
realizada. Na simulação apresentada na Fig. 8 (letra “d”),
o alvo responde imediatamente à requisição do iniciador,
através do handshake de resposta, ativando o sinal
RSPVAL para indicar que o alvo deseja executar a
Bloco de
Hardware
BVCI
Iniciadora
Sinais de
Controle
transferência do dado de resposta para o iniciador e,
como a operação solicitada é de leitura, o alvo
disponibiliza também o dado de leitura no barramento
RDATA. A interface iniciadora, por sua vez, ativa o
sinal RSPACK no instante indicado pela letra “e” na
Fig. 8, indicando ao alvo que está apta para receber o
conteúdo de resposta. Após a interface iniciadora receber
o conteúdo, a operação é finalizada.
Ainda no instante indicado pela letra “e” na Fig. 8 a
interface iniciadora volta para o estado ocioso. No
instante indicado pela letra “f” a interface iniciadora faz
uma requisição de escrita, setando o valor dois para o
sinal CMD. A operação de escrita é semelhante à
operação de leitura descrita anteriormente, porém, ao
ativar o sinal CMDVAL, a interface iniciadora
disponibiliza o endereço de escrita no barramento
ADDRESS e o dado a ser escrito no barramento
WDATA. O alvo, durante o handshake de resposta,
ativa somente o sinal RSPVAL para indicar ao iniciador
que aceita executar a operação de escrita.
A forma de onda da Fig. 8 foi obtida a partir de uma
simulação que monitorava todos os sinais relacionados a
comunicação entre dois blocos de hardware e, neste caso,
entre os blocos de estímulos ligados a cada interface.
Foram considerados, nesta simulação, três monitores:
• Monitor 1: responsável pela transferência dos
sinais entre o bloco de estímulos da Interface
Iniciadora e a Interface Iniciadora;
• Monitor 2: responsável pela transferência dos
sinais entre as Interfaces Iniciadora e Alvo;
• Monitor 3: responsável pela transferência dos
sinais entre a Interface Alvo e o bloco de estímulos
da desta interface.
Como está simulação gerou uma grande quantidade
de formas de onda, devido ao grande número de sinais
do protocolo de handshake a serem transferidos, optouse por extrair da mesma a forma de onda da Fig. 8, a
qual contém os sinais do Monitor 2, pois esta figura já
apresenta os resultados que se deseja demonstrar.
BVCI
Alvo
Bloco de
Hardware
Dados
Figura 7 - Interfaces BVCI Iniciadora e Alvo integradas a blocos de hardware, visando o reuso desses módulos
6
Figura 8 - Exemplo de resultado de uma simulação das interfaces BVCI estabelecendo a comunicação entre dois blocos de
hardware genéricos.
6. CONCLUSÕES E TRABALHOS FUTUROS
Este artigo apresentou o desenvolvimento das
interfaces para reuso de hardware do padrão BVCI. As
interfaces foram descritas em VHDL e sintetizadas para
FPGA’s da Altera. As interfaces e seu protocolo de
handshake foram validados através de experimentos onde
estas interfaces foram agregadas a blocos de hardware
geradores e recebedores de estímulos. Através de várias
simulações, foi possível verificar o
correto
funcionamento do protocolo de comunicação em todas as
formas de comunicação permitidas pelo protocolo.
Os resultados de síntese indicaram que a interface
BVCI iniciadora utilizou 50 células lógicas do FPGA
selecionado, estando apta a operar em uma freqüência de
operação máxima de 189MHz. Por outro lado, a interface
BVCI alvo utilizou 26 células lógicas e está apta a
operar a 164MHz.
Estes resultados foram utilizados para comparar as
interfaces BVCI com as interfaces PVCI e OCP,
desenvolvidas em trabalhos paralelos. Desta comparação,
foi possível perceber, como era esperado, que as
interfaces BVCI, por possuírem um protocolo mais
completo, utilizaram mais células lógicas, mas atingiram
uma freqüência de operação similar à das interfaces PVCI
e OCP.
Os resultados de síntese também permitiram a
realização de uma comparação entre as interfaces BVCI e
alguns blocos de hardware, mais especificamente, um
compressor JPEG e uma DCT 2-D, que foram
desenvolvidos em trabalhos anteriores e que são
candidatos a receber as interfaces BVCI em trabalhos
futuros. Esta comparação indicou que as interfaces BVCI
utilizam cerca de 70 vezes menos células lógicas do
FPGA alvo do que o compressor JPEG ou a DCT 2-D.
Além disso, a freqüência de operação das interfaces
BVCI foi cerca de 5 vezes maior do que para o
compressor e a DCT 2-D. Deste modo, foi possível
estimar que os impactos da inserção das interfaces BVCI
nos blocos de hardware causará um impacto mínimo em
termos de uso de recursos e não causará impacto nenhum
em termos de desempenho, tendo em vista que as
interfaces possuem freqüências de operação próximas à
máxima freqüência de operação do dispositivo.
Os resultados deste trabalho foram considerados
animadores e, por isso, como trabalhos futuros, está
planejada a inserção das interfaces BVCI na DCT 2-D e
no compressor JPEG, para verificar a funcionalidade das
interfaces em sistemas complexos e para avaliar os
impactos reais causados em termos de uso de recursos e
de desempenho. Obtidos os resultados finais destes
experimentos, estes resultados serão comparados aos
resultados obtidos em experimentos dessa mesma
natureza só que realizados utilizando as interfaces padrão
PVCI [2] e OCP [13] de reuso de hardware.
7. REFERÊNCIAS
[1] VSI Alliance, <www.vsia.org>, Julho 2004.
[2] VSIA. On-Chip Bus Development Working Group.
Virtual Component Interface Standard (OCB 2.1.0). Março
2000.
[3] G. Cyr, G. Bois, M. Aboulhamid, “Synthesis of
communication
interface
for
SoC
using
VSIA
recommendations”, Proc. of DATE 2001, Munich,
Allemagne/Germany, Março 2001.
[4] R. Lysecky, F. Vahid, T. Givargis, “Experiments with
the Peripheral Virtual Component Interface”, International
Symposium on System Synthesis, Madri, Espanha,
Setembro 2000.
7
[5] S. Brown, Z. Vranesic, Fundamentals of Digital Logic
with VHDL Design, The MacGraw-Hill Companies, USA,
2000.
[6] Altera Corporation, “Altera: The Programmable
Solutions Company”, <http://www.altera.com>, 2003.
[7] “FLEX 10KE – Embedded Programmable Logic Devices
Data Sheet – version 2.3”. San Jose, Altera Corporation,
2001.
[8] F. Nekoogar, Timing Verification of ApplicationSpecific Integrated Circuits (ASICs), Prentice Hall PTR,
New Jersey, USA, 1999.
[9] T. Silva, R. Porto, R. Tavares, L. Agostini, “Experimentos
com a Interface de Reuso PVCI em uma DCT 2-D
Direcionada para a Compressão JPEG”, X Workshop
Iberchip, Cartagena de Índias, Colômbia, Março 2003.
[10] R. Tavares, L. Agostini. “Avaliação dos Impactos d o
Reuso de Hardware Através da Implementação de uma
Interface PVCI Integrada a uma Arquitetura de Cálculo da
DCT 2-D”, XI Congresso de Iniciação Científica da
Universidade Federal de Pelotas, Pelotas, Brasil, 2003.
[11] M. Porto, L. Agostini, “Experimentos com o Padrão de
Reuso de Hardware OCP (Open Core Protocol)”, X
Workshop Iberchip, Cartagena de Índias, Colômbia, Março
2003.
[12] L. Agostini, Projeto de Arquiteturas Integradas para a
Compressão de Imagens JPEG. Dissertação de Mestrado –
Universidade Federal do Rio Grande do Sul. II. PPGC, Porto
Alegre, Brasil, 2002.
[13] OCP–International Partnership. Open Core Protocol
Specification (Release 1.0).2001.
8
Download

desenvolvimento e validação das interfaces bvci para o reuso de