Top Banner
Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro <[email protected]> Marcelo Amorim <[email protected]>
31

Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

Apr 21, 2015

Download

Documents

Internet User
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

Avalon Bus, NIOS II, SOPC BuilderAntonyus Pyetro <[email protected]>Marcelo Amorim <[email protected]>

Page 2: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 2

Agenda

• Avalon Bus– Introdução– Características– Interfaces Principais

• NIOS II Processor System– Introdução– Características– Sistema NIOS II

• SOPC Builder

• Projeto de um IP-Core + Sistema NIOS II

Page 3: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 3

Avalon - Introdução

“ Avalon interfaces simplify system design by allowing you to easily connect components in an FPGA. The Avalon interface family defines interfaces for use in both high-speed streaming and memory-mapped applications. These standard interfaces are designed into the components available in the system-on-a–pragrammable-chip (SOPC) environment and the MegaWizard Plug-In Manager. You can also use these standardized interfaces in your custom components. ” [3]

Page 4: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 4

Avalon - Características

• Seis diferentes interfaces:

1. Avalon Memory Mapped: Interface de r/w baseada em endereço típica de conexões mestre-escravo

2. Avalon Streaming: Interface que suporta fluxo unidirecional de dados (streams multiplexados, pacotes, dados DSP)

3. Avalon Memory Mapped Tristate: Interface de r/w baseada em endereço com suporte para periféricos “off-chip”

4. Avalon Clock: Interface que envia ou recebe sinais de clock e reset para sincronizar interfaces

5. Avalon Interrupt: Interface que permite componentes sinalizar eventos para outros componentes

6. Avalon Conduit: Interface que permite que sinais sejam roteados para fora do top level de um sistema SOPC Builder para serem conectados a outros módulos do projeto ou pinos FPGA

Page 5: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 5

Avalon - Características

• Um único componente pode incluir qualquer número dessas interfaces;

• Um único componente pode incluir múltiplas instâncias da mesma interface;

Page 6: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 6

Avalon – Interfaces de Clock

• Usados para definir os clock e reset usados pelo componente;

• Clock Input (Sink):– Usado para prover sincronização e controle de

reset para um componente;– As entradas de reset estão conectadas a uma

porta ‘OR’;– Se interface de clock tem uma entrada de clock e

outra de reset, o sinal de reset é baixado sincronamente com a entrade de clock;

• Clock Output (Source):– Interface que dirige um sinal de clock para fora de

um componente;– Não há sinais de reset.

Page 7: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 7

Avalon – Interfaces Mapeadas em Memória

• Usados entre componentes mestre/escravo como:– Microprocessadores;– Memórias;– UART’s;– Timers

• Interfaces mestre/escravo conectadas pelo “system interconnect fabric”

Page 8: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 8

Avalon – Interfaces Mapeadas em Memória

• Interfaces Master e Slave possuem um conjunto de sinais de controle e dados;

• Largura de dados variáveis: 8, 16, 32, ... 1024;• Geração automática de interconexão;• Liberdade para usar apenas os sinais necessários

Page 9: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 9

Avalon – Interfaces de Interrupção

• Permitem que componentes escravos sinalizem eventos a componentes mestres;

• Interrupt Sender:– Ativa um sinal de interrupção para um receptor da

interrupção;– Síncrono com a subida do clock associado à

interface;

• Interrupt Receiver:– Recebe interrupções de quem envia interrupções;– Suporta dois esquemas:

• Requisições Individuais – O receptor espera receber cada sinal de interrupção como um bit em separado

• Prioridade Codificada – O receptor recebe um bit de interrupção e um vetor de 6 bits para indicar qual interrupção no momento possui a maior prioridade

Page 10: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 10

NIOS II - Introdução

“ A NIOS II processor system is equivalent to a microcontroller or “computer on a chip” that includes a processor and a combination of peripherals and memory on a single chip. The term “Nios II processor system” refers to a Nios II processor core, a set of on-chip peripherals, on-chip memory, and interfaces to off-chip memory, all implemented on a single Altera device. Like a micocontroller family, all Nios II processor systems use a consistent instruction set and programming model. ” [1]

Page 11: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 11

NIOS II - Características

• Processador RISC de propósito geral;• Performance de até 250 DMIPS;• Instruções de 32 bits;• 32 registradores de propósito geral;• 32 fontes de interrupção externa;• Acesso a vários periféricos “on-chip”;• Interface para memórias e periféricos “off-chip”;• Módulo para depuração assistido por HW;• SDE baseada no compilador GNU C/C++ e Eclipse

IDE (NIOS II IDE);• Integração com o SignalTap II logic analyzer da

Altera;• Permite customização de acordo com cada projeto.

Page 12: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 12

NIOS II – Sistema NIOS II

• Exemplo de um NIOS II Processor System:

Page 13: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 13

NIOS II – Sistema NIOS II

Page 14: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 14

SOPC Builder

• System-On-a-Programmable-Chip Builder;• Ferramenta de desenvolvimento para criação de

sistemas em pouco tempo;• Sistemas que incluam processadores, periféricos

e memórias;• Facilita a integração de componentes de HW de

um sistema maior;• Integrado ao Quartus II

Page 15: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 15

Projeto de um IP-Core + Sistema NIOS II

• Descrição do IP:– Módulo que contém 3 registradores para leitura e

escrita;– Contém uma interface para comunicação com o

NIOS II através do Avalon;

Page 16: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 16

Projeto de um IP-Core + Sistema NIOS II

• Copiar o diretório Standard para o diretório onde se encontra o projeto do IP:– C:\altera\72\nios2eds\examples\vhdl\

niosII_cycloneII_2c35– C:\altera\72\nios2eds\examples\verilog\

niosII_cycloneII_2c35

• Abrir o projeto;• Abrir o SOPC Builder;

Page 17: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 17

Projeto de um IP-Core + Sistema NIOS II

• O SOPC Builder exibe o sistema NIOS II Standard;• Possui o core Nios II mais alguns periféricos

necessários para se executar o código C;• Adicione novo componente (seu IP):

Page 18: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 18

Projeto de um IP-Core + Sistema NIOS II

• Na aba “HDL Files” adicione o top-level (1) do seu IP e defina quem é o top-level (2);

1.

2.

Page 19: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 19

Projeto de um IP-Core + Sistema NIOS II

• Na aba “Signals” configure a interface Avalon do seu módulo de acordo com os sinais do barramento Avalon:

Page 20: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 20

Projeto de um IP-Core + Sistema NIOS II

• Na aba “Interfaces” clique em “Remove interfaces with no signals” (1);

• Em “Avalon” selecione o clock associado à interface (2);

• Em “Avalon Slave Settings” selecione o endereçamento como “NATIVE” (3);

• Finish;• Confirme a

solicitação de salvar alterações;

1.

2.

3.

Page 21: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 21

Projeto de um IP-Core + Sistema NIOS II

• Adicione seu IP ao sistema NIOS II clicando duas vezes na instância do IP (1);

• A instância do seu IP encontra-se agora integrado ao NIOS II (2);

1.

2.

Page 22: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 22

Projeto de um IP-Core + Sistema NIOS II

• Feche o SOPC Builder;• Existe um bug do SOPC Builder na geração do Span do

endereçamento do IP adicionado;• Para corrigir adicione a seguinte linha no arquivo niosII_ide_hw.tcl:

– set_interface_property "Avalon" "addressSpan" "32“• O valor 32 vem da seguinte fórmula:

– 2^(number of address lines) * (width of data bus in bytes) – No caso do nosso IP temos 3 bits de endereço e o número do

barramento de dados em bytes é 4– 2^3 * 4 = 32

Page 23: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 23

Projeto de um IP-Core + Sistema NIOS II

• Abra novamente o SOPC Builder e verifique se o range de endereço do seu IP foi modificado;

• Clique em “Generate”;• O SOPC Builder criará o top-level que contém o

core do NIOS II, seus periféricos e o IP adicionado interconectados;

• Após gerar, saia do SOPC Builder e compile o projeto.

Page 24: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 24

Projeto de um IP-Core + Sistema NIOS II

• Abra o NIOS II IDE;

• File -> New -> Nios II C/C++ Application;

• Selecione o projeto “Hello World”;

• Em “SOPC Builder System PTF File” selecione o arquivo .ptf gerado pelo SOPC Builder no diretório do projeto Standard;

• Clique em “Finish”;

Page 25: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 25

Projeto de um IP-Core + Sistema NIOS II

• Adicione o seguinte código ao arquivo hello_world.c:

Page 26: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 26

Projeto de um IP-Core + Sistema NIOS II

• Com o botão direito do mouse clique em “Build Project”;

• Após terminar, temos o arquivo system.h que contém os endereços dos periféricos do sistema e do IP adicionado;

• O system.h encontra-se em:

Page 27: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 27

Projeto de um IP-Core + Sistema NIOS II

• Baixando o sistema na placa:– No Quartus II clique em “Programmer” (1);– Certifique-se que o USB-Blaster esteja selecionado

(2);– Clique em “Start” (3).

1.

2.3.

Page 28: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 28

Projeto de um IP-Core + Sistema NIOS II

• Baixando o software a ser executado no Nios II:– No Nios II IDE com o botáo direito no projeto e

selecione Run As -> Nios II Hardware;

Page 29: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 29

Projeto de um IP-Core + Sistema NIOS II

• Caso o terminal acusar algum erro de JTAG basta ir em Run -> Run... Selecionar a aba “Target Connection”, selecionar “USB-Blaster” e clicar no botão “Run”.

Page 30: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 30

Projeto de um IP-Core + Sistema NIOS II

• Ao final o terminal do Nios II IDE mostrará o teste de loopback:

Page 31: Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim.

11/04/23 Soluções GrecO 31

Referências

• [1] Altera – NIOS II Processor Reference HandbookURL: http://www.altera.com/literature/hb/nios2/n2cpu_nii5v1.pdf

• [2] Altera – NIOS II Hardware Development TutorialURL: http://www.altera.com/literature/tt/tt_nios2_hardware_tutorial.pdf

• [3] Altera – Avalon Interface Specifications

URL: www.altera.com/literature/manual/mnl_avalon_spec.pdf