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

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

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

Apresentações semelhantes


Apresentação em tema: "Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro Marcelo Amorim."— Transcrição da apresentação:

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

2 21/8/2014Soluções GrecO2 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

3 21/8/2014Soluções GrecO3 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]

4 21/8/2014Soluções GrecO4 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

5 21/8/2014Soluções GrecO5 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;

6 21/8/2014Soluções GrecO6 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.

7 21/8/2014Soluções GrecO7 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”

8 21/8/2014Soluções GrecO8 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

9 21/8/2014Soluções GrecO9 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

10 21/8/2014Soluções GrecO10 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]

11 21/8/2014Soluções GrecO11 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.

12 21/8/2014Soluções GrecO12 NIOS II – Sistema NIOS II Exemplo de um NIOS II Processor System:

13 21/8/2014Soluções GrecO13 NIOS II – Sistema NIOS II

14 21/8/2014Soluções GrecO14 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

15 21/8/2014Soluções GrecO15 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;

16 21/8/2014Soluções GrecO16 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_2c3 5 –C:\altera\72\nios2eds\examples\verilog\niosII_cycloneII_2 c35 Abrir o projeto; Abrir o SOPC Builder;

17 21/8/2014Soluções GrecO17 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):

18 21/8/2014Soluções GrecO18 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.

19 21/8/2014Soluções GrecO19 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:

20 21/8/2014Soluções GrecO20 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;

21 21/8/2014Soluções GrecO21 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.

22 21/8/2014Soluções GrecO22 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

23 21/8/2014Soluções GrecO23 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.

24 21/8/2014Soluções GrecO24 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”;

25 21/8/2014Soluções GrecO25 Projeto de um IP-Core + Sistema NIOS II Adicione o seguinte código ao arquivo hello_world.c:

26 21/8/2014Soluções GrecO26 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:

27 21/8/2014Soluções GrecO27 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)

28 21/8/2014Soluções GrecO28 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;

29 21/8/2014Soluções GrecO29 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”.

30 21/8/2014Soluções GrecO30 Projeto de um IP-Core + Sistema NIOS II Ao final o terminal do Nios II IDE mostrará o teste de loopback:

31 21/8/2014Soluções GrecO31 Referências [1] Altera – NIOS II Processor Reference Handbook URL: [2] Altera – NIOS II Hardware Development Tutorial URL: [3] Altera – Avalon Interface Specifications URL:


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

Apresentações semelhantes


Anúncios Google