• Nenhum resultado encontrado

4.3 O Processador ARPA-CP

4.3.4 Fluxo de Projecto de Aplicações

A figura 4.14 ilustra o fluxo de projecto base para aplicações baseadas no processador ARPA-

CP, no qual se basearam os testes iniciais e a avaliação do desempenho apresentada no capí-

tulo 7. Este fluxo de projecto é constituído por dois subfluxos: o de hardware e o de software. Para não sobrecarregar a figura 4.14, não são mostrados os ciclos do projecto corresponden- tes às sucessivas iterações das etapas de desenvolvimento. No apêndice A será mostrado um fluxo de projecto mais completo para aplicações baseadas no sistema integrado ARPA-SoC, o qual integra todo o trabalho realizado no contexto deste doutoramento e projectos satélite.

4.3. O PROCESSADOR ARPA-CP 135

4.3.4.1 O Subfluxo de Hardware

Do ponto de vista do utilizador do núcleo de propriedade intelectual, a integração do proces- sador ARPA-CP num projecto concreto consiste em quatro etapas fundamentais: especializa- ção do modelo, síntese, implementação e prototipagem/programação da FPGA. Na primeira fase, com base no modelo em VHDL parametrizável concebido, são atribuídos valores con- cretos aos parâmetros. Seguidamente, com o auxílio de uma ferramenta de síntese adequada, é gerado o hardware que implementa o modelo, isto é, o modelo RTL do processador é con- vertido num modelo estrutural constituído por primitivas da tecnologia de implementação alvo. Na fase de implementação, também com o auxílio de ferramentas adequadas, é pro- duzida uma realização concreta do processador em que a localização física das primitivas geradas na fase anterior, bem como as suas interligações estão já definidas. A última fase é a prototipagem do processador em ASIC ou em FPGA. No segundo caso, o resultado da fase de implementação é um ficheiro de configuração que deve ser carregado na FPGA durante a inicialização do sistema com o auxílio de ferramentas de programação e hardware adequado ou alternativamente no sistema final usando uma memória não volátil de configuração. Como neste trabalho são usadas FPGAs da Xilinx, por conveniência foi usado o ambiente

Xilinx ISE (Integrated Synthesis Environment) [Xil06b] que integra um editor de VHDL, o

motor de síntese XST (Xilinx Synthesis Technology) e a ferramenta PAR (Place and Route), além de outras aplicações bastante úteis para o desenvolvimento de sistemas digitais com- plexos baseados em FPGAs, tais como simuladores, ferramentas de análise, visualização e previsão dos tempos de atraso do circuito e do seu consumo energético.

4.3.4.2 O Subfluxo de Software

O desenvolvimento de aplicações de software para executar no processador ARPA-CP pode ser feito com as linguagens de programação Assembly, C e C++. As ferramentas de compila- ção adoptadas para este efeito são as disponibilizadas gratuitamente pela MIPS Technologies,

Inc., designadas por MIPS-SDE Lite [MIP07] e descritas resumidamente no apêndice A. A

partir do código fonte da aplicação e com o auxílio do compilador adequado é gerado o có- digo objecto. Seguidamente, com uma ferramenta designada por linker, o código objecto é associado com as bibliotecas pretendidas (utilizador, linguagem e sistema). O resultado final desta fase é um ficheiro com um programa executável que pode ser usado de três formas distintas:

Programação da memória SRAM / EEPROM / FLASH do sistema - Esta é a uti- lização mais usual, sendo o método e ferramentas empregues dependentes do sistema alvo e da tecnologia da memória. No apêndice A é descrito um fluxo de projecto baseado nesta abordagem;

Integração do programa executável no ficheiro de configuração da FPGA - Isto

é possível desde que o processador seja implementado numa FPGA com blocos de memória internos que sejam usados para construir as respectivas memórias de código e de dados. Com o aumento da capacidade das memórias internas da FPGAs, esta é uma alternativa cada vez mais interessante. Além disso, foi também a abordagem empregue para efeitos da avaliação do desempenho apresentada no capítulo 7 e para integrar o código de arranque do processador e serviços de baixo nível no ficheiro de configuração da FPGA;

Execução do programa num emulador/simulador do processador - Esta aborda-

gem é bastante útil do ponto de vista do desenvolvimento de uma aplicação quando não se possui uma implementação real de um processador ARPA-CP ou quando se pretende um bom controlo e visibilidade interna de todos os seus registos, sendo com- plementar à prototipagem rápida e depuração do processador em FPGA. Além disso, é também bastante interessante do ponto de vista didáctico.

A última utilização não é ainda possível actualmente devido à inexistência de um simulador do processador ARPA-CP. Apesar de existirem simuladores ao nível da instrução da arquitec- tura MIPS32 e de várias implementações concretas, a simulação ciclo-a-ciclo do processador

ARPA-CP, apesar de ser computacionalmente mais exigente é também mais precisa. Com

base no código VHDL está prevista a construção de um simulador resultante da compilação directa do código VHDL e que integra o respectivo motor de simulação e mecanismos para comunicação com o exterior para efeitos de interface com uma ferramenta de visualização da simulação. Esta abordagem de construção do simulador tem a vantagem de partir de uma base de código comum quer para implementação quer para simulação, logo com enormes vantagens ao nível da precisão, consistência dos resultados e facilidade de manutenção do modelo.

4.3. O PROCESSADOR ARPA-CP 137

Fluxo de

Projecto

do Sistema

Fluxo de Projecto do Hardware Fluxo de Projecto do Software Compilador Linker Integração da Configuração do Hardware e do Software Síntese do Hardware Implementação do Hardware Programação da FPGA Modelo do P+Perif. (VHDL) Netlist do Hardware Ficheiro de Config. Hardware Bibliotecas de Linguagem Bibliotecas do Sistema Bibliotecas do Utilizador Código Fonte do Software(1) Código Objecto Execução do Sistema num Emulador/ Simulador Programa Executável Ficheiro Config. do Sistema Programação da Memória do Sistema (1)Assembly, C ou C++

Documentos relacionados