pdf (90) - Faculdade de Informática - pucrs
pdf (90) - Faculdade de Informática - pucrs
pdf (90) - Faculdade de Informática - pucrs
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.1 Configurador <strong>de</strong> bitstream<br />
A primeira ferramenta <strong>de</strong>senvolvida tem o objetivo <strong>de</strong> manipular dados contidos em LUTs, fazen-<br />
do uso das classes oferecidas pelo JBits. Todo o trabalho <strong>de</strong> reconfiguração é feito sobre o bitstream,<br />
ou seja, com hard cores e não soft cores [PAL01]. A aplicação criada permite as seguintes funciona-<br />
lida<strong>de</strong>s:<br />
1. Acessar arquivos <strong>de</strong> configuração (parciais ou completos);<br />
2. Manipular dados contidos em LUTs (localizar e alterar);<br />
3. Salvar as alterações e realizar download no dispositivo, local ou remotamente.<br />
As duas primeiras funcionalida<strong>de</strong>s implicam na possibilida<strong>de</strong> <strong>de</strong> modificar o comportamento do<br />
circuito pela alteração dos seus parâmetros <strong>de</strong> configuração do circuito. A terceira funcionalida<strong>de</strong><br />
po<strong>de</strong> significar uma gran<strong>de</strong> redução <strong>de</strong> custos para o projetista do sistema. Por exemplo, um <strong>de</strong>ter-<br />
minado fabricante <strong>de</strong>tecta um erro em seu circuito. Se reconfiguração remota é utilizada, ele po<strong>de</strong><br />
atualizar o hardware <strong>de</strong> todos os seus clientes à distância, sem que estes percebam que o sistema foi<br />
modificado. Outros exemplos, como atualização do hardware em função <strong>de</strong> evolução na tecnologia<br />
(por exemplo, um novo algoritmo <strong>de</strong> compressão <strong>de</strong> imagem para set-top box) também são válidos.<br />
A ferramenta em questão foi <strong>de</strong>senvolvida em Java. Ela permite acessar remotamente os bitstre-<br />
ams e visualizar suas configurações. Possibilita modificação <strong>de</strong> LUTs, procura <strong>de</strong> uma LUT com uma<br />
configuração específica e visualização da listagem <strong>de</strong> todas as LUTs com configurações diferentes da<br />
configuração padrão. Após modificar o bitstream é possível salvá-lo e baixá-lo remotamente para a<br />
placa sem a necessida<strong>de</strong> <strong>de</strong> nenhum software extra.<br />
A utilização do JBits é bastante simples. A Tabela 5.1 ilustra os principais métodos disponíveis<br />
no JBits para manipular um bitstream. Já a Figura 5.1 mostra um trecho <strong>de</strong> código on<strong>de</strong> um <strong>de</strong>sses<br />
métodos é utilizado. No caso, trata-se <strong>de</strong> uma leitura <strong>de</strong> valores <strong>de</strong> uma LUT. As linhas 339 a 342 da<br />
Figura 5.1 são responsáveis por receber do usuário as coor<strong>de</strong>nadas da LUT (linha e coluna da CLB,<br />
¦<br />
fatia e LUT F ou G). Já a linha entre duas setas, na mesma Figura, mostra como o método<br />
é utilizado. Esse método retorna 16 valores que correspon<strong>de</strong>m aos bits <strong>de</strong> uma LUT. No caso do<br />
exemplo em questão, esses valores são armazenados em um vetor (<br />
modificados.<br />
) para que sejam posteriormente<br />
Uma observação importante é quanto ao en<strong>de</strong>reçamento das CLBs por parte das classes JBits e<br />
da documentação da Xilinx. Por exemplo, no FPGA XCV300 as CLBs são numeradas <strong>de</strong> (1,1) a<br />
(32,48) [XIL00a]. Entretanto, no JBits as CLBs são numeradas <strong>de</strong> (31,0) a (0,47). Tais discrepâncias<br />
74