Você está na página 1de 3

Block2Code: Software gerador de código VHDL para o

projeto ChipCFlow
Felipe Simões Lage Gomes Duarte, Jorge Luis e Silva
Instituto de Ciências Matemáticas e de Computação (ICMC), USP/São Carlos
Departamento de Sistemas de Computação, SEER – Sistemas Embarcados, Evolutivos e
Robóticos
fgduarte@grad.icmc.usp.br, jsilva@icmc.usp.br

Resumo várias maneiras, uma das mais comuns, seria


comutar o hardware para diferentes funções a
Neste trabalho é apresentado uma partir de comandos em que o tempo de
ferramenta capaz de traduzir o esquemático reconfiguração do hardware seria aceitável
de algoritmos projetados, com os operadores para determinadas aplicações. Isso poderia
determinados na arquitetura ChipCFlow, para ocorrer também de forma dinâmica, de tal
a linguagem de hardware VHDL1 forma que a reconfiguração ocorresse entre
correspondente, para que posteriormente seja tarefas sendo executadas por aquele FPGA.
possível a implementação em FPGAs2 por
ferramentas já existentes comercialmente. 2. Objetivos

1. Introdução Este projeto visa construir uma


ferramenta para o desenvolvimento de
A busca pelo aumento da velocidade algoritmos baseado na arquitetura proposta no
de processamento dos computadores e um ChipCFlow. O software deve possibilitar a a
novo desenvolvimento em circuitos modelagem do algoritmo utilizando os seis
integrados vem oferecendo uma opção com operadores mais barramentos de interconexão
grande capacidade e velocidade. Os "Field e traduzir para o código fonte VHDL
Programmable Gate Array" ou FPGAs são correspondente para que seja possível de
circuitos de hardware que podem ser implementar no hardware através de
modificados praticamente em qualquer ferramentas já existentes para tais fins. Além
momento durante o seu uso, dessa forma, disso, a ferramenta deve gerar uma imagem
tem-se desenvolvido novos FPGAs que de todo o projeto para que seja possível a
podem ser configurados com velocidades criação de relatórios e artigos sobre o projeto
extremamente altas tornando assim possível desenvolvido na ferramenta.
hardwares que se adaptam quase que
continuamente em respostas às mudanças de 3. Materiais e Métodos
sinais de entrada ou em respostas aos sinais
do meio externo. O projeto ChipCFlow, desenvolvido
Sistemas computadorizados podem no ICMC-USP, é a proposta de uma
fazer uso dos elementos configuráveis de ferramenta para execução de algoritmos
utilizando o modelo a fluxo de dados
1) VHDL = "VHSIC Hardware Description Language" dinâmico em hardware reconfigurável. Tem
(Linguagem de descrição de hardware VHSIC "Very High Speed
Integrated Circuits") é uma linguagem usada para facilitar o design como principal objetivo acelerar a execução
(projeto/concepção) de circuitos digitais em FPGA's e ASIC's. de programas escritos em C. Em particular,
2) FPGA = “Field Programmable Gate Array” hardwares
reconfiguráveis, os quais têm as suas funcionalidades definidas isso se dá nas partes mais intensas de
exclusivamente pelos usuários e não pelos fabricantes.
processamento (exemplo: loops), através da capaz de projetar um algoritmo no painel de
execução direta em hardware, aproveitando desenvolvimento da ferramenta e traduzir
ao máximo o paralelismo considerado natural para o código VHDL correspondente. A
do modelo a fluxo de dados [1]. ferramenta copia para uma pasta do projeto, o
A nova arquitetura proposta inclui 6 código fonte dos operadores utilizados,
operadores implementados por meio de códigos estes que já foram previamente
Maquinas Finitas de Estado (MFS3) a partir programados, para em seguida gerar o
do qual é possível montar comandos C padrão arquivo principal que interconectam os
para execução em hardware tais como laços, operadores gerando assim o arquivo final
desvios condicionais e atribuições. Os dados VHDL pronto para ser utilizado em
que são processados pelos operadores são de ferramentas comerciais para a geração do
16bits, distribuídos entre bits de controle e hardware propriamente dita. A ilustração
dados, e a comunicação entre eles é abaixo mostra um algoritmo projetado na
estabelecida seguindo um protocolo. ferramenta com a utilização dos operadores
Codificados todos em VHDL os operadores proposto pela arquitetura ChipCFlow.
são: Branch, Copy, Decider, Non
Deterministic Merge, Operator, Deterministic
Merge, como mostrado na figura 1 abaixo:

Figura 1. Operadores ChipCFlow


Figura 2. Interface do Block2Code
4. Resultados
Alem disso, o “Block2Code” permite
Desenvolvido sobre a plataforma que o usuário escreva comentários no painel
Java4, o “Block2Code” é capaz de gerar o de projeto, a ferramenta é capaz de salvar e
código VHDL através do desenho abrir projetos em extensão .b2c (extensão
esquemático do algoritmo na ferramenta. criada para o software) e gerar a imagem do
Fazendo uso dos seis operadores e mais painel em diferentes extensões de imagens
barramentos de interconexões, o usuário é para geração de relatórios do projeto, feito na
ferramenta, de maneira mais eficiente e
3) MSF – “Finite-State Machine” é uma modelagem de um precisa garantindo assim que as informações
comportamento, composto por estados, transições e ações. Um
estado armazena informações sobre o passado, isto é, ele reflete as
gerada seja salva e manipulada
mudanças desde a entrada num estado, no início do sistema, até o posteriormente. Abaixo uma imagem gerada
momento presente.
4) Java é uma linguagem de programação orientada a objeto que
pela ferramenta Block2Code na figura-3;
diferentemente das linguagens convencionais, que são compiladas
para código nativo, a linguagem Java é compilada para um
"bytecode" que é executado por uma JVM tornando-a assim uma
linguagem independente de plataforma / arquitetura ("write once,
run anywhere").
receptores GSM5, GPS6, Bluetooth, Zigbee,
etc., deverão fazer parte das unidades gráficas
presentes na ferramenta para que, quando
integradas durante o desenvolvimento de
qualquer aplicação em embarcados, gere ao
final o código VHDL correspondente.
Cabe salientar que não serão tratadas
as unidades funcionais individualmente, mas
apenas a representação gráfica das mesmas,
ficando para outros desenvolvedores, a
codificação, utilizando a ferramenta
Block2Code, dessa novas unidades
funcionais.
Figura 3. Imagem gerada pelo software
Referências
5. Conclusão [1] CORREIA, V. M. - ChipCflow - uma
ferramenta para execução de algoritmos utilizando o
modelo a fluxo de dados dinâmico em hardware
Com o proposito de agilizar o reconfigurável - operadores e grafos a fluxo de dados .
processamento de algoritmos, o projeto
ChipCFlow propõe uma arquitetura de fluxo [2] HARVEY M. DEITEL & PAUL J. DEITEL –
de dados em hardwares reconfiguráveis com a “JAVA: Como programar” – Ano 2005 – Edição 6
implementação de seis principais operadores
[3] CELOXICA Ltd. (2002) - Handel C Language
em VHDL para possível execução em Reference Manual Reference Manual.
FPGAs. Com essa ideia, a ferramenta
[4] GOKHALE, M.(2006) - Streams C: Streams
Block2Code agilizou o trabalho feito pelos Oriented C Programming for FPGAs – Los Alamos
desenvolvedores no projeto de algoritmos na National Laboratory.
arquitetura ChipCFlow transcrevendo de
[5] STREAMSC (2005) Alamos National
maneira precisa e automatizada a modelagem Laboratory - "Streams-C: Stream-Oriented C
do sistema, diminuindo assim o número de Programming for FPGAs", University of California at
erros causados por transcrição e tradução dos San Diego
projetos. [7] VEEN, A. H. (1986) Dataflow Machine
O desenvolvimento do software será Architecture ACM Computing Surveys number,365-
conduzido para possibilitar a integração da 396.
ferramenta com o desenvolvimento de
circuitos integrados, deverá conter operadores 5) Global System for Mobile Communications, ou Sistema
e unidades funcionais, implementados no Global para Comunicações Móveis (GSM: originalmente, Groupe
Special Mobile) é uma tecnologia móvel e o padrão mais popular
modelo a fluxo de dados, que permitam o para telefones celulares do mundo
desenvolvimento de aplicações em 6) O Sistema de Posicionamento Global, popularmente
conhecido por GPS (do acrónimo/acrônimo do original inglês
embarcados. Global Positioning System ou do português "Geo-Posicionamento
Funções como: timers, teclados, por Satélite"), conforme o nome diz, é um sistema de informação
eletrônico que fornece via rádio a um aparelho receptor móvel a
displays, sensores, câmeras, transmissores e posição do mesmo com referencia as coordenadas terrestres.

Você também pode gostar