Avalon Bus, NIOS II, SOPC Builder

Slides:



Advertisements
Apresentações semelhantes
O Modelo OSI O RM-OSI é um modelo de referência p/ interconexão de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Capitulo 6: Entrada e Saída
Aula 5 – Anatomia da Placa-Mãe
Programação em Java Prof. Maurício Braga
O Sistema de Computação
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
Projecto de Hardware com FPGAs
4. Input / Output.
ChipScope Pro O que é? - Analisador de sinais internos a um FPGA
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Xilinx ChipScope Pro.
Chip-Select e Controle de Interrupção
Chip-Select e Controle de Interrupção Sistemas Embarcados.
Unidades de Execução e de Controle Sistemas Digitais.
Lógica reconfigurável por hardware
William Stallings Arquitetura e Organização de Computadores 8a Edição
Advanced Microcontroler Bus Architecture
Sistemas Operacionais
Problemas com Entrada e Saída
Altera NIOS II: uma breve introdução
Altera Excalibur Galileu Batista.
April 05 Prof. Ismael H. F. Santos - 1 Modulo II CheckStyle Professor Ismael H F Santos –
April 05 Prof. Ismael H. F. Santos - 1 Modulo II Findbugs Professor Ismael H F Santos –
Introdução ao Quartus II
Tutorial de Desenvolvimento uClinux
Altera Excalibur.
Plataforma RENESAS, I2C, Smart Card
Sistemas Operacionais
DSP – TMS320LF2407A.
Uso do Eclipse/SourceForge Paradigmas de Linguagem de Programação
Fundamentos de Eletrônica Digital
Universidade Federal de Santa Catarina – UFSC
Profª Amita Muralikrishna
Introdução à Programação
Daniel Alexandro/Reniê Delgado/Vanessa Ogg
Antonyus Pyetro Infra-estrutura de Hardware – IF674
PLACAS-MÃE (Motherboard)
Sistemas Operacionais
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação PUCRS-FACIN-PPGCC
Tutorial EDK – Embedded Development Kit
Sistemas Operacionais
Ney Laert Vilar Calazans
Barramento Ermeson Andrade.
Introdução aos Sistemas Microcontrolados
Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida
Abr-17 Projetar Cápsulas Aula de Laboratório Projetar classes.
MO801 - Tópicos em Arquitetura e Hardware Michele Tamberlini 05/2006
Entrada e Saída (E/S ou I/O)
Computação L1: Infra-Estrutura Básica
Sistemas Operacionais
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Componentes básicos de um computador
Montagem e Manutenção de Computador I Curso Técnico em Rede de Computadores Aula 05.
OMNeT++.
Microprocesadores x Microcontroladores
Sistemas Digitais Introdução ao Quartus II Monitoria Sistemas Digitais – {fbla, rgo, jpmk, thfp, fcm} at cin.ufpe.br Introdução ao Quartus II.
1 Uso do Eclipse/CVS na cadeira Paradigmas de Linguagem de Programação Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.:
Engenharia de Sistemas Embarcados Aula 7: Analisador Lógico.
Estrutura de Interconexão
Tutorial Floorplanning - ISE 6.1
Exemplo de LSMW com Batch-Input
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Organização Estruturada de Computadores
Sistemas Digitais Pinagem Monitoria Sistemas Digitais – {aqc, fbla, gamsd, mls2, cin.ufpe.br Pinagem Pinagem: – Relação entre os pinos.
Clique para editar o título Arduino seu primeiro microcontrolador PMR
Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI
Transcrição da apresentação:

Avalon Bus, NIOS II, SOPC Builder Antonyus Pyetro <apaf@cin.ufpe.br> Marcelo Amorim <mba3@cin.ufpe.br>

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

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

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

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

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

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

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 05/04/2017 Soluções GrecO

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

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

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

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

NIOS II – Sistema NIOS II 05/04/2017 Soluções GrecO

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

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

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

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

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

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

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

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

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

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

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

Projeto de um IP-Core + Sistema NIOS II Adicione o seguinte código ao arquivo hello_world.c: 05/04/2017 Soluções GrecO

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

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

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

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

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

Referências [1] Altera – NIOS II Processor Reference Handbook URL: http://www.altera.com/literature/hb/nios2/n2cpu_nii5v1.pdf [2] Altera – NIOS II Hardware Development Tutorial URL: 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 05/04/2017 Soluções GrecO