Vous êtes sur la page 1sur 45

Altera Excalibur

DOCUMENTAO!!!!

Sistema de Prototipao Excalibur

Ambiente de Hardware Ambiente de Simulao

Ambiente de Software

Placa de desenvolvimento Excalibur

Placa de desenvolvimento Excalibur


Dispositivo APEX
Caractersticas
n de portas - 211.000 13KB de RAM nios ocupa entre 25% e 35% da lgica do dispositivo Modo de programao conexo JTAG (Quartus II) memria flash

Placa de desenvolvimento Excalibur


Memria Flash
Caractersticas
1Mbyte (512Kb x 16 bits) Propsito usada como memria no voltil pelo Nios (w/r) configurao do APEX (controle de configurao)

Placa de desenvolvimento Excalibur


Memria SRAM
Caractersticas
256Kb (64Kb x 16 bits) em cada chip Nios pr-carregado (64Kb x 32 bits)

Placa de desenvolvimento Excalibur


Conectores SODIMM
Caractersticas
socket de 144 pinos SODIMM mdulo SDRAM (64bits) Conectada ao APEX nios pr-carregado no faz uso desta memria

Placa de desenvolvimento Excalibur


Pinos de expanso
Caractersticas
3.3 V e 5 V O APEX esta protegido dos pinos de 5V por chaves analgicas Para conexo de placas filhas, como Ethernet

Placa de desenvolvimento Excalibur


Conectores PCI (PMC)
Caractersticas
APEX PCI padro IEEE 1386

Placa de desenvolvimento Excalibur


Conectores JTAG
Caractersticas
compatvel com ByteBlaster e MasterBlaster Propsitos programar o APEX (Quartus II) reprogramar o EPM7064 (Quartus II ou MAX+PLUS II)

Placa de desenvolvimento Excalibur


Chaves
Caractersticas
compatvel com ByteBlaster e MasterBlaster Propsitos programar o APEX (Quartus II) reprogramar o EPM7064 (Quartus II ou MAX+PLUS II) PCM software (host)

Placa de desenvolvimento Excalibur


Controlador de Configurao

Propsito
configurar o APEX Dados de configurao Quartus hexout flash (ocupa 1/4 da mem. Flash) GERMS flash Configurao de usurio x fbrica 512Kb - instrues do Nios e espao de dados no voltil 256Kb - configurao do usurio 256Kb - configurao de fbrica

Placa de desenvolvimento Excalibur


Entrada/Sada bsica
Elementos
push-button switches dip switch display de 7 segmentos

Placa de desenvolvimento Excalibur


Chaves especiais
Sw2 (reset)
flash Sw3 (clear) depende da configurao do APEX Nios pr-carregado passa a executar o cdigo a partir do endereo 0 APEX

Placa de desenvolvimento Excalibur


Circuito de clock
Elementos
oscilador (33.333 MHz) distribuidor de clock

Placa de desenvolvimento Excalibur


Circuito de clock
Elementos
oscilador (33.333 MHz) distribuidor de clock Dispositivos com clock

APEX
pinos de expanso conectores PCM conectores SODIMM

Processador Nios e Perifricos

Fluxo de projeto
Configurao do processador Biblioteca de perifricos Seleo dos perifricos

Hardware

Software
Generate

Projeto do processador (Verilog / VHDL)

C Header files Custom Library Boot monitor

Test Bench para simulao


Arquivo de configurao de hardware

JTAG Serial Ethernet

Sntese Place & Route

Download & Debug

Cdigo executvel

Cygnus/Red Hat GNUPro

Projeto do usurio IP proprietrios

Cdigo do usurio Biblioteca S/W RTOS

Altera PLD

Processador Nios

Processador Nios
Processador Soft Core Configurvel (Firm Core) Arquitetura RISC 32-Bit Instrues de 16-Bit Maioria das instrues executadas em1 ciclo de clock Pipeline de 5 estgios Grande Banco de Registradores Internos 128, 256 or 512 registradores 32 registradores por janela Bloco de Dados Configurvel 16 bits 32 bits incluso ou no de multiplicao PBM
IRQ
SRAM

CPU

FLASH

Timer

Porta Serial

UART

Nosso projeto aqui


Altera PLD

Processador Nios

Faixa de endereamento 128 kbytes (16 bits) 4 Gbytes (32 bits) Desempenho : at 50 MIPS Otimizado para PLD APEX 13% do APEX EP20K200E - 16 bits 20% do APEX EP20K200E - 32 bits Freqncia Mxima de 50 MHz Endereo Base do Vetor de Excees 64 endereos de manipuladores de excees Nios 32 bits = 4 bytes Nios 16 bits = 2 bytes Operaes de deslocamento com nmero de ciclos parametrizvel 1, 3, 7, 15 or 31 Bits/Clock

Parmetros do Nios
Data Path (32 or 16) Tamanho do Barramento de Endereos (10 a 33-bits) Tamanho do Bloco de Registradores (128, 256 or 512) Endereo de Reset Endereo Base do Vetor de Excees
64 endereos de manipuladores de excees Nios 32 bits = 4 bytes Nios 16 bits = 2 bytes

Bit Shift Speed (1, 3, 7, 15 or 31 Bits/Clock) Opes de Multiplicao

Diagrama de Blocos do Nios

Banco de Registradores por Janela


At 512 registradores de propsito geral Janela mvel permite acesso a 32 registradores por janela 8 registradores globais (fixos) 24 registradores (mveis) Automaticamente usado pelo compilador (C) Vantagens: passagem de parmetros chamada rpida a subrotinas

Bit Shift Speed


Mltiplos deslocamentos em um nico ciclo de clock Incrementos de at 3, 5, 7, 15, ou 31 Bits por clock

Caro (rea ocupada)


Exemplo: Bit Shift Speed configurado para 7: i << 9; /* Shift Left by 9 Bits */

Executa em 2 Clocks

Clock 1 (Shift 7 bits) Clock 2 (Shift 2 bits)

Opes de Multiplicao
Software Usa a biblioteca matemtica do GNU MSTEP Hardware Multiplicador multiplicao de 1 bit por clock Aumento de ~ 4X sobre a rotina de multiplicao (software) MUL Hardware Multiplicador 16 x 16 32 em 2 Clocks
LEs Adicionais Ciclos de Clock 16x16>32 Ciclos de Clock 32x32>32

Multiplicador

Software MSTEP MUL

0 +200 +400

80 18 2

250 80 16

Avalon: Especificao do Barramento

Hardware Externo

Introduo
Objetivos do Avalon:
simplicidade operaes sncronas baixo consumo de rea (LE)

Para uso on-chip

Barramento multimestre mestre (nios 2.0)


Perifricos mapeados em memria

Funes do Barramento
Decodificao de endereo
Gerao de chip-select

Multiplexao de barramento de dados


Transferncia de dados do mestre para o perifrico escolhido

Gerao de wait-state
Ciclos de clock extra

Dimensionamento dinmico de barramento


Suporta perifricos com barramento de dados menor que o

tamanho do barramento de dados do avalon

Controle de interrupo
Com prioridade

Sistema
I/O

Altera PLD

Perif. Interno (timer) Perif. Interno (UART) Perif. Externo (memria)

Avalon Bus

Nios CPU

I/O

User I/F User I/F


User HW

Nios System Module

Perif. Externo (hardware do usurio)

Temporizao do Barramento
Sinais registered (sem atraso comb.)

Lgica
clock

Sinais combinacionais (com atraso comb.)

D
clock

Lgica

Informaes IMPORTANTES para construo de um wrapper entre avalon e HW do usurio

Cclos de Leitura do Nios

Nios
Address, readn

0 wait-state, 0 setup/hold time (asinc. perif)

Avalon
CS Data

NIOS HW

Hw

1 wait-state, 1 setup/hold time (sinc. perif)

Cclos de Escrita do Nios


0 wait-state, 0 setup/hold time (asinc. perif)

0 wait-state, 1 setup/hold time (sinc. perif)

User-Defined Interface
Criao de portas para interface com outros perifricos
On-Chip & Off-Chip

Configurao de temporizao do barramento

I/O

Altera PLD

Avalon Bus

Nios CPU

I/O

User I/F User I/F


User HW

Nios System Module

Criando um Projeto
Agora vamos criar um projeto com uma interface para ligar um hardware do usurio Copie o projeto minimal_32 do diretrio de exemplos do excalibur para o seu diretrio Abra o seu projeto D um duplo click em no bloco nios_system_module

Adicionando um Novo Perifrico

Interface do Usurio
4 1

2 3

1. Cdigo do usurio mais wrapper 2. Seleciona o top 3. Varre o VHDL para as portas - scan files 4. Manualmente escolhe o tipo da porta no barramento Avalor (Type) 5. Finish

Temporizao
Neste caso, 1 wait state

Gerar o hw

Finalizando a integrao
Atualize o smbolo do processador com os sinais recmcriados
selecione o smbolo e com o boto da direita update symbol or block crie um smbolo para o hw externo

file--> open para abrir o VHDL e depois em tools criar o smbolo


selecione wr_880

conecte o wr_880 ao processador

Sintetizando
Sintetize o SOC!

Realizando o download
1

4 2 3

Executando o Nios SDK


Ir para o diretrio do projeto (...minimal_32/cpu_sdk/src) Coloque o fonte Compile o fonte nb lfsr32.c Execute nr lfsr32.srec