• Nenhum resultado encontrado

Ambiente de desenvolvimento Xilinx

No documento Máquina virtual Java em FPGA (páginas 81-84)

Nesta secção aborda-se a forma de desenvolver um projeto numa FPGA, desde conceber o programa numa linguagem de descrição de hardware até estar imple- mentado na FPGA. É de referir que nesta dissertação foram utilizadas FPGAs da

Xilinx, assim como também as ferramentas de desenvolvimento de programas fornecidas pela mesma marca. Portanto, a descrição do ambiente de desenvol- vimento de uma FPGA baseia-se no software ISE Design Suite da Xilinx, que foi usado na implementação do projeto que serve de base à presente dissertação. O ISE Design Suite é, então, uma ferramenta que consiste num conjunto de progra- mas que permitem a criação, simulação e implementação de funções lógicas num projeto digital numa FPGA ou CPLD. As várias fases de implementação estão descritas a seguir.

4.2.1

Definição do sistema a implementar

Existem várias formas de definir as especificações do sistema pretendido, uma é utilizando uma linguagem de descrição de hardware, outra é através de um es- quemático, ficando a decisão à consideração do programador. No entanto, se o projeto for demasiado complexo, recorre-se às linguagens por uma questão de facilidade para o ser humano. Podem também ser combinadas ambas as técnicas em conjunto, ligando apropriadamente os I/O da parte de descrição de hardware com os I/O do esquemático, tendo em conta as restrições a este nível de cada FPGA [27].

4.2.2

Synthesis

A Synthesis (síntese) é a fase na qual se traduz a definição do sistema, realizada anteriormente, para um formato de netlist. As especificações definidas são trans- formadas num circuito baseado em portas lógicas, flip-flops e funções. Este gé- nero de projetos contém normalmente vários ficheiros ou secções, dependendo dos componentes necessários para se construir o sistema pretendido. O processo de síntese gera então um ficheiro netlist por cada secção, analisando a sintaxe do código e a hierarquia de todo o sistema. A netlist resultante é depois armazenada num arquivo NGC [27] e [32].

4.2.3

Implement Design

Este passo, Implement Design ou implementação, contém três partes: Translate, Map e Place and Route.

O processo Translate combina todos os ficheiros netlist, restrições do desenho 1 e outputs num ficheiro NGD, que descreve a lógica do desenho do sistema reduzida a primitivas Xilinx.

Durante o processo Map, a lógica definida no ficheiro NGD é mapeada em ele- mentos da FPGA, como os CLB e IOB. O output deste processo é um ficheiro NCD, que representa fisicamente o desenho mapeado nos componentes da FPGA. O processo Place and Route recebe o ficheiro NCD e estabelece as ligações entre os blocos lógicos de acordo com as restrições apresentadas, ou seja, faz o routing do desenho. É gerado outro ficheiro do tipo NCD, que é utilizado como ficheiro input para geração do ficheiro de bitstream ou fluxo de bits na fase seguinte, que será o ficheiro final [27] [33].

4.2.4

Generate Programming File

Tal como o nome indica, nesta fase produz-se o ficheiro que irá programar a FPGA, a partir do ficheiro NCD. Depois de gerado, o ficheiro do tipo bit, que representa o bitstream, irá configurar a FPGA, executando esta as funções deseja- das [33].

4.2.5

Programação da FPGA

Depois de gerado o ficheiro bit, este tem que ser descarregado para a FPGA, dependendo este processo da placa de desenvolvimento da qual a FPGA faz parte. Nesta dissertação foram utilizadas duas FPGA da Xilinx, a Spartan-3E e a Spartan-3A. Apesar de pertencerem ao mesmo fabricante, cada uma tem uma kit de desenvolvimento distinto. A primeira pertence à placa Nexys2 da Digi- lent e para programar a Spartan-3E utiliza-se um software chamado Adept, que 1Guardadas num ficheiro UCF, as restrições são relativas a tudo que possa limitar o design ou

as variáveis implementadas, tal como a atribuição de portas ao dispositivo, por exemplo pinos de I/O, botões, switches, LED.

faz a ligação com a FPGA via porta USB e descarrega o ficheiro de configuração bit. Existem dois modos de configuração para esta FPGA. Já a FPGA Spartan-3A faz parte do Spartan-3A Starter Kit da Xilinx e é usado um software incluído no ISE Design Suite, denominado por iMPACT, ligando-se também à FPGA via porta USB. Contudo, existem vários modos de programar uma FPGA desta família es- pecífica. Na secção 4.3 deste capítulo, onde são caracterizadas ambas as FPGA, é feita uma abordagem mais detalhada sobre a programação de cada uma.

4.2.6

Simulação

O ISE Design Suite fornece uma ferramenta que permite simular cada parte do desenho antes de ser implementada. Desta forma detetam-se erros de design, ajustam-se parâmetros ou realiza-se debug dos programas por exemplo. Para isso é necessário criar ficheiros de teste, ficheiros Verilog Test Fixture para ficheiros escritos em Verilog e ficheiros Test Bench para VHDL. O software utilizado foi o ISim Simulator. No entanto, é necessário ter em conta o facto de nem sempre os resultados obtidos em simulação corresponderem aos resultados da implemen- tação física na FPGA, uma vez que a simulação ocorre num ambiente ideal sem os problemas físicos que podem surgir num circuito real, ou até mesmo o facto de um desenho, que possa ser simulado, não consiga ser compilado e descarre- gado para programar a FPGA. Isto ocorre porque existem funções ou modos de escrever um programa que contêm funcionalidades que não são sintetizáveis. A simulação é um excelente meio auxiliar para o desenvolvimento de um projeto, ajudando a definir algoritmos ou a corrigir erros, mas não deve ser a única base desse desenvolvimento. É sempre preciso adaptar o código para que seja sinte- tizável e, assim, possa ser compilado. Mais pormenores sobre este assunto serão abordados no capítulo 5.

4.3

Caracterização das FPGA Spartan-3E e Spartan-

No documento Máquina virtual Java em FPGA (páginas 81-84)

Documentos relacionados