12.04.2013 Views

pdf (90) - Faculdade de Informática - pucrs

pdf (90) - Faculdade de Informática - pucrs

pdf (90) - Faculdade de Informática - pucrs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

XHWIF, a interface <strong>de</strong> hardware Xilinx (Xilinx Hardware InterFace), é uma interface escrita em<br />

Java para comunicação entre um computador hope<strong>de</strong>iro (host) e uma placa baseada em FPGA. Ela<br />

é composta por métodos para leitura e escrita <strong>de</strong> bitstreams no FPGA, e métodos para <strong>de</strong>scrição do<br />

tipo e do número <strong>de</strong> FPGAs na placa em questão. Também inclui métodos para leitura e escrita nas<br />

memórias na placa, e possibilita ligá-la e <strong>de</strong>sligá-la.<br />

A interface padroniza a forma <strong>de</strong> comunicação com o hardware, <strong>de</strong> tal forma que, utilizando<br />

a mesma interface, diversas aplicações po<strong>de</strong>m comunicar-se com uma varieda<strong>de</strong> <strong>de</strong> placas. Toda<br />

informação específica do hardware é encapsulada <strong>de</strong>ntro <strong>de</strong> uma classe que implementa a interface<br />

XHWIF. Utilizando a interface nativa Java (JNI - Java Native Interface), que permite que programas<br />

Java interajam com programas C, chamadas à interface são convertidas em chamadas aos drivers da<br />

placa. Esta metodologia possibilita que as aplicações comuniquem-se diretamente com os drivers<br />

ou com o barramento. Escon<strong>de</strong>ndo informações específicas do barramento e dos drivers na classe<br />

que implementa XHWIF é possível que aplicações comuniquem-se com placas conectadas através <strong>de</strong><br />

qualquer barramento, que po<strong>de</strong> ser PCI, ISA, ou qualquer outro padrão.<br />

XHWIF possui uma aplicação, <strong>de</strong>nominada XHWIF Server que habilita que outros programas<br />

comuniquem-se com o dispositivo reconfigurável localizado em qualquer host através da Internet.<br />

Esta possibilida<strong>de</strong> admite a <strong>de</strong>puração do projeto mesmo sem o acesso direto ao hardware, além <strong>de</strong><br />

permitir que diversos usuários testem suas aplicações no mesmo hardware (obviamente, através <strong>de</strong><br />

um escalonamento no tempo).<br />

3.2.4 Reconfiguração dinâmica com JBits<br />

Na documentação do JBits encontra-se afirmação <strong>de</strong> que reconfiguração dinâmica po<strong>de</strong> ser obtida<br />

com esta API, em conjunto com XHWIF [GUC99]. Apesar <strong>de</strong> não ter sido encontrada na literatura<br />

nenhuma referência a respeito <strong>de</strong> uma reconfiguração dinâmica realizada com a utilização do JBits,<br />

teoricamente isto po<strong>de</strong> ser possível, segundo o método a seguir <strong>de</strong>scrito.<br />

Uma aplicação RTR po<strong>de</strong> realizar chamadas à interface JBits para modificar os dados do arquivo<br />

<strong>de</strong> configuração. Então, esta po<strong>de</strong> fazer uma chamada ao XHWIF para interagir com o dispositi-<br />

vo. Por exemplo, a aplicação utilizaria o método ¢¢ e<br />

em seguida faria chamadas ¢ para realizar download e readback dos dados <strong>de</strong><br />

configuração.<br />

Contudo, em testes realizados no laboratório do GAPH (Grupo <strong>de</strong> Apoio ao Projeto <strong>de</strong> Hard-<br />

ware 1 ), observou-se que a geração do arquivo <strong>de</strong> configuração parcial utilizando JBits <strong>de</strong>u-se com<br />

erro. Primeiramente foi criado o bitstream completo, <strong>de</strong>pois, com a ferramenta que é <strong>de</strong>scrita na<br />

Seção 5.1, foi gerado o bitstream parcial. Quando tentou-se realizar o download parcial, o software<br />

1 Laboratório vinculado à <strong>Faculda<strong>de</strong></strong> <strong>de</strong> <strong>Informática</strong> da PUCRS.<br />

52

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!