• Nenhum resultado encontrado

3.2.1.2.1 – Xilinx Platform Studio (XPS)

A aplicação XPS inclui um GUI e suporte de linha de comandos para o desenvolvimento de plataformas de hardware para aplicações de microprocessador embutido. Inclui um configurador para a obtenção de resultados de forma acessível, denominado Base System Builder (BSB), assim como configuradores para os vários elementos da arquitetura do sistema, canais de comunicação e periféricos.

Os passos seguintes deverão ser os primeiros a realizar quando se pretenda implementar um sistema baseado em microprocessador MicroBlaze. Irão ser apresentados de forma ilustrada para a placa Atlys e de forma textual, onde necessário, as configurações específicas à placa Nexys 2. Por motivos de compatibilidade com os elementos disponibilizados pelo fabricante que permitem a construção destes projetos utilizou-se a versão 14.1 deste software.

O primeiro passo a realizar é iniciar a aplicação XPS, sendo o quadro inicial aquele ilustrado pela figura 51. Escolha-se “Create New Project Using Base System Builder” diretamente na coluna “Getting Started” ou clicando na mesma opção na tab “File”.

A primeira caixa de diálogo deste processo permite a escolha da localização para salvar o projeto criado, o tipo de canal utilizado, o carregamento de ficheiros de configuração BSB de sessões precedentes e a entrada do diretório com o repositório de periféricos a pesquisar.

Dado que algumas funções e ferramentas disponibilizadas pela Digilent através dos seus exemplos foram criadas para uma implementação PLB, optou-se por utilizar esse tipo de

52

canal de ligação. A opção AXI é o estado da arte mas apresentou problemas de compatibilidade com os repositórios de periféricos, pelo que foi ignorada.

Figura 51 - Novo projeto XPS - GUI da aplicação

Figura 52 - Configuração de pastas para armazenamento e repositório - Atlys

Para que a placa seja reconhecida, assim como o hardware periférico que é possível configurar, deverá pesquisar-se pelo repositório de periféricos fornecido pela Digilent e que deverá ser descarregado previamente do seu site tanto para o caso Atlys como para o caso Nexys 2 [80][81].

Refira-se que se no caso Nexys 2 só são fornecidas bibliotecas para canais de ligação PLB, no caso Atlys são fornecidas soluções tanto PLB como AXI. Ambos os packs incluem ficheiros com instruções acerca da criação de projetos usando o BSB, incluindo a configuração de periféricos que não serão utilizados neste projeto.

No caso do pack para Atlys, o ficheiro “ZIP” deverá ser descompactado em local conveniente e o caminho fornecido ao wizard BSB deverá ser do tipo (ver figura 52):

“…\Atlys_BSB_Support_v_3_6\Atlys_PLB_BSB_Support\lib”. Para o pack Nexys 2 o caminho deverá ser do tipo:

53 Antes de clicar em “OK” verifique-se que nenhum dos caminhos escolhidos nesta caixa possui espaços, sendo recomendados caminhos exclusivamente alfa-numéricos com espaçamento usando under-score, preferencialmente curtos e localizados em disco.

Figura 53 - Escolha do tipo de projeto

A caixa de diálogo “Welcome”, representada na figura 53, apresenta a possibilidade de carregar configurações de implementações realizadas anteriormente. Escolha-se “I would like to create a new design” e clique-se em “Next”.

Figura 54 - Validação da placa de prototipagem

A caixa de diálogo “Board” deverá neste ponto reconhecer as placa em estudo, identificando o Fabricante, o nome da placa e a revisão dessa placa, ilustrado pela figura 54 para o caso Atlys. No caso da Nexys 2 existem duas possibilidades relacionadas com o elemento da família Spartan-3E presente na placa. No nosso caso de estudo escolheu-se “Nexys 2-1200 Board”. Clique-se em “Next”.

54

Figura 55 - Escolha do número de núcleos do MicroBlaze

A caixa de diálogo que se segue permite a escolha do número de microprocessadores pretendidos para implementação, como apresentado na figura 55. Para este estudo, um microprocessador é suficiente portanto escolha-se “Single-Processor System” e clique-se em “Next”.

Seguidamente chega-se à caixa “Processor” onde é possível escolher o tipo de processador, a frequência de operação do sistema e a memória local a implementar. Dado que ambas as placas utilizadas têm FPGA embutidos sem um bloco microprocessador discreto, a única opção será “MicroBlaze”.

Figura 56 - Configuração do processador

No caso Atlys a frequência de operação selecionada respeita a frequência de operação utilizada nas implementações exemplo da Digilent, pelo que foi mantida a “66.67” MHz e no caso Nexys 2 a frequência de operações escolhida deverá ser “50.00” MHz, por omissão. Finalmente, escolha-se “64 KB” e “32 KB” para a configuração da dimensão da memória local de Atlys e Nexys 2 respetivamente. Estes procedimentos estão apresentados para a placa Atlys na figura 56. Clique-se em “Next”.

55 Figura 57 - Configuração de periféricos 1

A janela apresenta de seguida as opções de “Peripheral” e permite neste ponto realizar uma pré-configuração de periféricos que se pretendam na implementação.

No caso de uma configuração Atlys optou-se pelos blocos:

• “Digilent_QuadSPI_Cntlr” para utilizar a QuadSPI-Flash presente na placa;

• “Digilent_Usb_Epp” para utilizar a ligação USB em modo Enhanced Parallel Port (EPP), configurado com interrupções;

• “MCB_DDR2” respeitante à memória DDR2-SDRAM;

• “RS232_Uart_1” respeitante à porta UART, configurado como “xps_uart16550”. No caso da Nexys 2 realizou-se uma escolha similar, alterando as memórias externas pelos blocos “INTEL_FLASH” e “Micron_RAM”, respeitantes à memória Flash e SRAM presentes na placa.

As configurações mencionadas estão patentes nas figuras 57 e 58 para a placa Atlys.

56

Figura 59 - Configuração da cache

A caixa seguinte, “Cache”, permite a configuração da cache de dados e instruções para as memórias presentes nas placas (vide figura 59).

No caso Atlys selecione-se “2 KB” para ambos os tipos de cache, de dados e de instruções. No caso da Nexys 2 selecione-se, por motivos de compatibilidade com a FPGA em utilização, uma cache de “1 KB” para dados e para instruções, e a memória sobre a qual usar

cache “Micron_RAM”. Não faz sentido usar este procedimento na memória Flash pois o seu

acesso é comparativamente muito mais lento. Clique-se em “Next”.

Figura 60 - Configuração da cache - Aviso comum

Uma informação poderá surgir mencionando a probabilidade de conflitos com a configuração selecionada, tal como apresentado na figura 60. Clique-se em “OK”.

A caixa final “Summary”, apresenta uma listagem de periféricos selecionados, o seu espaço de endereçamento e também os ficheiros relevantes relativos à configuração criada, que estão disponíveis em disco. Clique-se em “Finish”.

É apresentada então a implementação escolhida, sendo possível visualizar três grandes planos de apreciação do sistema (vide figura 61):

• “Design Summary”, por norma apenas relevante após a geração do BitStream de configuração da FPGA, onde é possível avaliar a ocupação dos elementos do FPGA bem como outros resultados da implementação;

• “Graphical Design View”, que permite a visualização instantânea das ligações entre microprocessador, canais, periféricos e pinos/pads do IC;

• “System Assembly View”, que apresenta através de um esquemático as ligações entre blocos ordenadas por canal, informação acerca dos interfaces, portas e endereços de mapeamento do sistema.

57 Selecione-se o “System Assembly View” e clique-se duas vezes sobre “microblaze_0” no tab “Bus Interfaces”.

Figura 61 - Vista System Assembly

Figura 62 - Configuração MicroBlaze - Wizard

Através de um configurador é possível adaptar o microprocessador MicroBlaze às necessidades do projeto. São apresentados templates de configuração e informações

58

qualitativas associadas a cada um, permitindo estimar de imediato qual a frequência de operação, área lógica do IC ocupada e desempenho projetado. Escolha-se nesta vista apenas as opções “Enable Debug” e “Use Instruction and Data Caches”, como concretizado na figura 62. Clique-se em “Advanced”.

Figura 63 - Configuração MicroBlaze - Advanced

Em ambos os casos, Nexys 2 e Atlys, libertem-se as opções “Enable Barrel Shifter” e “Enable Reversed Load/Store and Swap Instructions”, mantendo ativas apenas “Enable Additional Machine Status Register Instructions” e “Enable Pattern Comparator” como configurado na figura 63. Clique-se em “OK”.

Figura 64 - Exportar projeto 1

Concluída a configuração do hardware a implementar, clique-se em “Export Design” na área “Navigator” à esquerda da janela principal do GUI XPS, como presente na figura 64.

59 Figura 65 - Exportar projeto 2

Surgirá a caixa de diálogo da figura 65. Escolha-se “Include BitStream and BMM file” e clique-se em “Export & Launch SDK”. A partir desse momento a aplicação XPS fará síntese, mapeamento e roteamento do sistema escolhido, num processo que poderá demorar bastante tempo, dependendo do PC onde esta operação for realizada. Como referência, a conclusão desta operação usando CPU Intel i7 a 2.67 GHz e 6 GByte de DDR3-SDRAM demora em média 15 minutos e usando um CPU mobile P6100 a 2 GHz e 3 GByte de DDR3-SDRAM cerca de 30 minutos, ambos os valores para a criação do BitStream para a Atlys. No caso da Nexys 2 o processo é bastante mais demorado, devido a um maior número de iterações na otimização do mapeamento e encaminhamento do projeto.

Quando o processo terminar a aplicação SDK abrirá automaticamente, e na sua área de trabalho estará presente o BitStream e informações acerca do hardware acabado de implementar. Os procedimentos desse ponto em diante serão abordados na secção seguinte.