45
Altera Excalibur

Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Embed Size (px)

Citation preview

Page 1: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Altera Excalibur

Page 2: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

DOCUMENTAÇÃO!!!!

Page 3: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Ambiente deSimulação

Ambiente de Hardware

Ambiente de Software

Sistema de Prototipação Excalibur

Page 4: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Placa de desenvolvimento Excalibur

Page 5: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Dispositivo APEX

Características

• nº de portas - 211.000

• 13KB de RAM

• nios ocupa entre 25% e 35% da lógica do dispositivo

Modo de programação

• conexão JTAG (Quartus II)

• memória flash

Placa de desenvolvimento Excalibur

Page 6: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Memória Flash

Características

• 1Mbyte (512Kb x 16 bits)

Propósito

• usada como memória não volátil pelo Nios (w/r)

• configuração do APEX (controle de configuração)

Placa de desenvolvimento Excalibur

Page 7: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Memória SRAM

Características

• 256Kb (64Kb x 16 bits) em cada chip

• Nios pré-carregado (64Kb x 32 bits)

Placa de desenvolvimento Excalibur

Page 8: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Conectores SODIMM

Características

• socket de 144 pinos SODIMM

• módulo SDRAM (64bits)

• Conectada ao APEX

• nios pré-carregado não faz uso desta memória

Placa de desenvolvimento Excalibur

Page 9: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Pinos de expansão

Características

• 3.3 V e 5 V

• O APEX esta protegido dos pinos de 5V por chaves analógicas

• Para conexão de placas filhas, como Ethernet

Placa de desenvolvimento Excalibur

Page 10: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Conectores PCI (PMC)

Características

• APEX PCI

•padrão IEEE 1386

Placa de desenvolvimento Excalibur

Page 11: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Conectores JTAG

Características

• compatível com ByteBlaster e MasterBlaster

Propósitos

• programar o APEX (Quartus II)

• reprogramar o EPM7064 (Quartus II ou MAX+PLUS II)

Placa de desenvolvimento Excalibur

Page 12: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Chaves

Características

• compatível com ByteBlaster e MasterBlaster

Propósitos

• programar o APEX (Quartus II)

• reprogramar o EPM7064 (Quartus II ou MAX+PLUS II)

• PCM software (host)

Placa de desenvolvimento Excalibur

Page 13: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Controlador de Configuração

Propósito

• configurar o APEX

Dados de configuração

• Quartus hexout flash (ocupa 1/4 da mem. Flash)

• GERMS flash

Configuração de usuário x fábrica

• 512Kb - instruções do Nios e espaço de dados não volátil

• 256Kb - configuração do usuário

•256Kb - configuração de fábrica

Placa de desenvolvimento Excalibur

Page 14: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Entrada/Saída básica

Elementos

• push-button switches

• dip switch

• display de 7 segmentos

Placa de desenvolvimento Excalibur

Page 15: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Chaves especiais

Sw2 (reset)

• flash APEX

Sw3 (clear)

• depende da configuração do APEX

• Nios pré-carregado passa a executar o código a partir do endereço 0

Placa de desenvolvimento Excalibur

Page 16: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Circuito de clock

Elementos

• oscilador (33.333 MHz)

• distribuidor de clock

Placa de desenvolvimento Excalibur

Page 17: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Circuito de clock

Elementos

• oscilador (33.333 MHz)

• distribuidor de clock

Dispositivos com clock

• APEX

• pinos de expansão

• conectores PCM

• conectores SODIMM

Placa de desenvolvimento Excalibur

Page 18: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Processador Nios e Periféricos

Page 19: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Fluxo de projeto

Projeto do processador

(Verilog / VHDL)

Test Bench para simulação

C Header files

Custom Library

Boot monitor

SíntesePlace & Route

Cygnus/Red HatGNUPro

AlteraPLD

JTAGSerial

Ethernet

Projeto do usuário

IP proprietários

Códigoexecutável

Arquivode configuração

de hardware

Configuração do processador

Seleção dos periféricos

Generate

Hardware Software

Download& Debug

Código do usuário

Biblioteca S/W

RTOS

Biblioteca de periféricos

Page 20: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Processador Nios

Page 21: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Processador Nios

• Processador Soft Core Configurável (Firm Core)

• Arquitetura RISC 32-Bit – Instruções de 16-Bit– Maioria das instruções executadas

em1 ciclo de clock– Pipeline de 5 estágios

• Grande Banco de Registradores Internos– 128, 256 or 512 registradores– 32 registradores por janela

• Bloco de Dados Configurável– 16 bits– 32 bits– inclusão ou não de multiplicação

Timer

IRQ

PB

M CPU

UART

Nosso projeto aqui

FLASH

SRAM

Porta Serial

Altera PLD

Page 22: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Processador Nios• Faixa de endereçamento

– 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

• Freqüência Máxima de 50 MHz

• Endereço Base do Vetor de Exceções

– 64 endereços de manipuladores de exceções

– Nios 32 bits = 4 bytes

– Nios 16 bits = 2 bytes

• Operações de deslocamento com número de ciclos parametrizável

– 1, 3, 7, 15 or 31 Bits/Clock

Page 23: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Parâmetros do Nios

• Data Path (32 or 16)• Tamanho do Barramento de Endereços (10 a 33-bits)• Tamanho do Bloco de Registradores (128, 256 or 512)• Endereço de Reset• Endereço Base do Vetor de Exceções

– 64 endereços de manipuladores de exceções– Nios 32 bits = 4 bytes– Nios 16 bits = 2 bytes

• Bit Shift Speed (1, 3, 7, 15 or 31 Bits/Clock)• Opções de Multiplicação

Page 24: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Diagrama de Blocos do Nios

Page 25: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Banco de Registradores por Janela• Até 512 registradores de propósito geral

• Janela móvel permite acesso a 32 registradores por janela

– 8 registradores globais (fixos)

– 24 registradores (móveis)

• Automaticamente usado pelo compilador (C)

• Vantagens:

– passagem de parâmetros

– chamada rápida a subrotinas

Page 26: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

• Múltiplos 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

Bit Shift Speed

0

Clock 1 (Shift 7 bits)

Clock 2 (Shift 2 bits)

Page 27: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

• Software – Usa a biblioteca matemática do GNU

• MSTEP– Hardware Multiplicador– multiplicação de 1 bit por clock– Aumento de ~ 4X sobre a rotina de multiplicação (software)

• MUL– Hardware Multiplicador– 16 x 16 32 em 2 Clocks

Multiplicador

Software

MSTEP

MUL

Ciclos de Clock16x16>32

Ciclos de Clock32x32>32

LEs Adicionais

80

18

2

0

+200

+400

250

80

16

Opções de Multiplicação

Page 28: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Avalon:Especificação do

Barramento

Page 29: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Hardware Externo

Page 30: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Introdução

• Objetivos do Avalon:

– simplicidade

– operações síncronas

– baixo consumo de área (LE)

• Para uso “on-chip”

• Barramento multimestre mestre (nios 2.0)

• Periféricos mapeados em memória

Page 31: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Funções do Barramento

• Decodificação de endereço

– Geração de chip-select

• Multiplexação de barramento de dados

– Transferência de dados do mestre para o periférico escolhido

• Geração de wait-state

– Ciclos de clock extra

• Dimensionamento dinâmico de barramento

– Suporta periféricos com barramento de dados menor que o tamanho do

barramento de dados do avalon

• Controle de interrupção

– Com prioridade

Page 32: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Sistema

Nios

CPUA

valo

n B

us

User

I/FNios System

Module

I/O

I/O

Altera PLD

User

HW

User

I/F

Perif. Interno (timer)

Perif. Interno (UART)

Perif. Externo (memória)

Perif. Externo (hardware do usuário)

Page 33: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Temporização do Barramento

• Sinais “registered” (sem atraso comb.)

• Sinais combinacionais (com atraso comb.)

• Informações IMPORTANTES para construção de um wrapper entre avalon e HW do usuário

Lógica D Q

clock

D Q

clock

Lógica

Page 34: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Cíclos de Leitura do Nios• 0 wait-state, 0 setup/hold time (asinc. perif)

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

NIOS

HW

Nios

Avalon

Hw

Address, readn

CS Data

Page 35: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Cíclos de Escrita do Nios• 0 wait-state, 0 setup/hold time (asinc. perif)

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

Page 36: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Nios

CPUA

valo

n B

us

User

I/FNios System

Module

I/O

I/O

Altera PLD

User

HW

User

I/F

User-Defined Interface• Criação de portas para interface com outros periféricos

– On-Chip & Off-Chip

• Configuração de temporização do barramento

Page 37: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Criando um Projeto• Agora vamos criar um projeto com uma

interface para ligar um hardware do usuário• Copie o projeto minimal_32 do diretório de

exemplos do excalibur para o seu diretório• Abra o seu projeto• Dê um duplo click em no bloco

nios_system_module

Page 38: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Adicionando um Novo Periférico

Page 39: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Interface do Usuário

1. Código do usuário mais wrapper2. Seleciona o top3. Varre o VHDL para as portas - scan files4. Manualmente escolhe o tipo da porta no

barramento Avalor (Type)5. Finish

1

23

4

Page 40: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Temporização

• Neste caso, 1 wait state

Page 41: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Gerar o hw

Page 42: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Finalizando a integração• Atualize o símbolo do processador com os sinais recém-

criados – selecione o símbolo e com o botão da direita “update symbol

or block”

– crie um símbolo para o hw externo

• file--> open para abrir o VHDL e depois em tools criar o símbolo– selecione wr_880

• conecte o wr_880 ao processador

Page 43: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

SintetizandoSintetize o SOC!

Page 44: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Realizando o download1

2

3

4

Page 45: Altera Excalibur. DOCUMENTAÇÃO!!!! Ambiente de Simulação Ambiente de Hardware Ambiente de Software Sistema de Prototipação Excalibur

Executando o Nios SDK• Ir para o diretório do projeto (...minimal_32/cpu_sdk/src)• Coloque o fonte • Compile o fonte “nb lfsr32.c”• Execute nr lfsr32.srec