• Sonuç bulunamadı

10. Programın Temel Özellikleri

10.1. Yaşantı Odaklı Yabancı Dil Edinimi Programında Öğretilecek

Para implementação do sistema proposto, foi utilizado um kit de desen- volvimento da Altera: NIOS II Development Kit Cyclone II Edition (Altera Cor- poration 2005c). O principal componente do kit é a FPGA da Altera Cyclone II EP2C35 com sinal de clock de 50MHz, conforme pode ser visto na Figura 7.6 (chip U62).

Na Tabela 7.1 são apresentados os componentes principais do kit mostra- dos na Figura 7.6. Estes componentes estão disponíveis ao projetista para a implementação de um sistema NIOS II completo em FPGA com várias opções de periféricos e memória tanto on-chip quanto off-chip.

As características principais da FPGA Cyclone II EP2C35 presente no kit pode ser resumida na Tabela 7.2.

Na Figura 7.7 pode ser visto um diagrama simplificado com os compo- nentes e conexões do kit de desenvolvimento. Na Figura 7.8 é apresentado um diagrama simplificado do hardware do sistema classificador de padrões binários proposto implementado no kit. O sistema proposto é composto por:

• 3 CPU’s NIOS II implementadas na FPGA do kit junto com barramentos de comunicação e periféricos (contadores de tempo), não mostrados para simplificar a Figura 7.8;

Tabela 7.1: Descrição dos componentes do kit de desenvolvimento.

Sigla Descrição

U62 Cyclone II FPGA EP2C35F672C6

SW0-SW3 Push-button para entrada de sinais pelo usuário

D0-D7 LEDs de saída da FPGA

U8,U9 2 LEDs de sete segmentos de saída da FPGA

U74 Memória SSRAM de 2 MBytes (synchronous SRAM)

U5 Memória Flash de 16 MBytes

LED7 Indicador de memória Flash com configuração

U63 Memória DDR SDRAM de 32 MBytes

U4 RJ1 Interface Ethernet MAC/PHY 10/100

RJ1 Conector RJ-45 para Ethernet

J19 Conector serial RS232 com buffers

PROTO1 Conector de expansão

PROTO2 Conector de expansão

CON3 Conector para expansão de memória CompactFlash

JH1, JH2 Conector de expansão PMC para um PCI mezzanine card

J25 Conector Mictor com acesso a 27 pinos E/S da FPGA

TP1-TP8 Pontos de teste com acesso a 8 pinos E/S da FPGA

J24 Conector JTAG com acesso a FPGA

J5 Conector JTAG com acesso ao controlador MAX

J27 Conector para o dispositivo de configuração serial

U3 Controlador de configuração Altera MAX EPM7256AE

U69 Dispositivo de configuração serial Altera EPCS64 para a FPGA

SW8 Push-button para resetar a CPU Nios II configurada na FPGA

SW9 Push-button para reconfigurar a FPGA com a configuração de fábrica

SW10 Push-button para resetar o kit

LED0-3,LED6 LEDs de status de configuração do kit

Y2 Oscilador de 50 MHz, sinal de clock para a FPGA

J4 Entrada de clock externo para a FPGA

J26 Entrada de energia para alimentação do kit, 16V DC não regulado

D34 Retificador em ponte para a alimentação do kit

Tabela 7.2: Descrição da FPGA EP2C35 do kit de desenvolvimento.

Característica Quantidade

Elementos lógicos (LE) 33.216

Blocos de memória de 4kbits 105

Total de bits da RAM 483.840

Blocos multiplicadores embutidos 18x18 35

PLLs 4

Figura 7.6: Vista superior do kit de desenvolvimento. FONTE: Altera Corporation

• memória DDR (não indicada na Figura 7.8) e memória SRAM (memória comum) incluídas no kit;

• interface JTAG incluída na própria FPGA; • display LCD disponível no kit;

• PAL implementada dentro da FPGA; • mutex (não indicada na Figura 7.8).

No Apêndice A encontra-se o diagrama de projeto do sistema proposto uti- lizando o software Quartus II e SOPC Builder. Cada componente possui as seguintes características e funções dentro do sistema implementado no kit:

• CPU 1: é um NIOS II/e responsável por receber os dados do computa- dor tipo PC via interface JTAG e encaminhar os dados para a memória comum do sistema (SRAM). Também realiza a monitoração das outras CPU’s indicando no display LCD o status do sistema. Ao final de cada ciclo de processamento, a CPU 1 realiza a configuração da PAL com a função lógica do circuito classificador obtido.

• CPU 2: é um NIOS II/f responsável pela execução do algoritmo de seleção de amostras (RSR). Os dados são lidos da memória comum, e ao final do processamento os dados selecionados são devolvidos à mesma memória.

Figura 7.7: Diagrama em blocos do kit de desenvolvimento. FONTE: Altera Corporation

• CPU 3: é um NIOS II/f responsável pela execução do minimizador de função Booleana (Espresso). Os dados são lidos da memória comum as- sim que a CPU 2 os disponibiliza. Ao final do processamento, o resultado é armazenado na mesma memória para que a CPU 1 possa utilizá-los na configuração da PAL.

• Memória DDR: responsável pelo armazenamento do programa de cada CPU e respectivos dados locais. Regiões de memória são reservadas para cada CPU de modo que uma CPU não interfere na região de memória de outra CPU.

• Memória comum: é uma memória SRAM disponível no kit de desenvolvi- mento e que é compartilhada com as 3 CPU’s para troca de dados e infor- mações. Para evitar conflito de dados, o mutex é acessado via software por cada CPU.

• Interface JTAG: responsável pela transferência de dados do computador tipo PC para o sistema NIOS, além de permitir o envio e depuração dos programas executados por cada CPU.

• Display LCD: controlado pela CPU 1, é responsável por mostrar o status do sistema.

• PAL: fornece um ambiente de configuração de função Booleana em hard- ware para implementação do resultado do processamento da CPU 3 na forma de soma de produtos.

No Apêndice B, encontra-se a descrição em VHDL da PAL implementada em FPGA, bem como um exemplo de simulação de seu funcionamento. Uma visão simplificada da implementação da PAL é mostrada na Figura 7.9. Ela contém uma matriz de portas lógicas AND e OR, em conjunto com registradores para armazenar a configuração das entradas binárias na matriz AND. A PAL foi projetada para comportar uma capacidade máxima de 85 termos de produto de 24 variáveis binárias de entrada e uma saída. Uma vez configurada, a PAL funciona como um classificador de dados binários provenientes de suas entradas, e fornece em sua saída o resultado da classificação. Foi aproveitado 4 botões existentes no kit para funcionarem como entradas binárias para a PAL, enquanto um LED foi aproveitado como indicador da saída da PAL.

A fim de melhorar o desempenho da CPU 2, responsável pela execução do algoritmo RSR, foi implementada uma instrução personalizada em hard- ware para cálculo da distância entre dois operandos em ponto flutuante (vide Apêndice C). A distância é justamente o cálculo do valor absoluto da diferença entre os dois operandos. Como o processador necessita de realizar este cálculo

Figura 7.9: Diagrama simplificado da PAL implementada na FPGA. várias vezes, intenciona-se diminuir o tempo total de execução desta operação. Assim, duas instruções de alto nível (diferença entre dois operandos e cálculo do valor absoluto do resultado) que são executas em 35 ciclos de clock foram substituídas por uma única instrução de baixo nível que é executada em ape- nas 10 ciclos de clock.

O sistema completo ocupou 49% dos elementos lógicos da FPGA (total de 33.216) e 45% dos pinos de E/S (total de 475). A implementação da instrução personalizada ocupou apenas 2% da FPGA, enquanto só a implementação da PAL ocupou 25%. O baixo rendimento na implementação da PAL se deve ao desperdício de elementos lógicos para implementar registradores de memória que memorizam o estado da matriz AND na PAL. Além disto, a PAL ocupa vários elementos lógicos para implementar as funções lógicas AND e OR.

A seguir são apresentados os detalhes do software que são executados em cada CPU.