A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Avalon Bus, NIOS II, SOPC Builder

Apresentações semelhantes


Apresentação em tema: "Avalon Bus, NIOS II, SOPC Builder"— Transcrição da apresentação:

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

2 Agenda Avalon Bus NIOS II Processor System SOPC Builder
Introdução Características Interfaces Principais NIOS II Processor System Sistema NIOS II SOPC Builder Projeto de um IP-Core + Sistema NIOS II 05/04/2017 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] 05/04/2017 Soluções GrecO

4 Avalon - Características
Seis diferentes interfaces: Avalon Memory Mapped: Interface de r/w baseada em endereço típica de conexões mestre-escravo Avalon Streaming: Interface que suporta fluxo unidirecional de dados (streams multiplexados, pacotes, dados DSP) Avalon Memory Mapped Tristate: Interface de r/w baseada em endereço com suporte para periféricos “off-chip” Avalon Clock: Interface que envia ou recebe sinais de clock e reset para sincronizar interfaces Avalon Interrupt: Interface que permite componentes sinalizar eventos para outros componentes 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 05/04/2017 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; 05/04/2017 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. 05/04/2017 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” 05/04/2017 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, ; Geração automática de interconexão; Liberdade para usar apenas os sinais necessários 05/04/2017 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 05/04/2017 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] 05/04/2017 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. 05/04/2017 Soluções GrecO

12 NIOS II – Sistema NIOS II
Exemplo de um NIOS II Processor System: 05/04/2017 Soluções GrecO

13 NIOS II – Sistema NIOS II
05/04/2017 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 05/04/2017 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; 05/04/2017 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; 05/04/2017 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): 05/04/2017 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. 05/04/2017 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: 05/04/2017 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; 2. 3. 1. 05/04/2017 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. 05/04/2017 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 05/04/2017 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. 05/04/2017 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”; 05/04/2017 Soluções GrecO

25 Projeto de um IP-Core + Sistema NIOS II
Adicione o seguinte código ao arquivo hello_world.c: 05/04/2017 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: 05/04/2017 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. 05/04/2017 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; 05/04/2017 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”. 05/04/2017 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: 05/04/2017 Soluções GrecO

31 Referências [1] Altera – NIOS II Processor Reference Handbook
URL: [2] Altera – NIOS II Hardware Development Tutorial URL: [3] Altera – Avalon Interface Specifications URL: 05/04/2017 Soluções GrecO


Carregar ppt "Avalon Bus, NIOS II, SOPC Builder"

Apresentações semelhantes


Anúncios Google