altera Nios V Embedded Processor
Especificações
- Nome do produto: Processador Nios V
- Software Compatibility: Quartus Prime Software and Platform Designer
- Tipo de processador: Altera FPGA
- Sistema de Memória: Memória Volátil e Não Volátil
- Interface de comunicação: Agente UART
Nios V Processor Hardware System Design
To design the Nios V Processor hardware system, follow these steps:
- Create Nios V Processor system design using Platform Designer.
- Integrar o sistema ao projeto Quartus Prime.
- Design memory system including volatile and non-volatile memory.
- Implementar as melhores práticas de relógios e reinicializações.
- Atribua agentes padrão e UART para uma operação eficiente.
Nios V Processor Software System Design
Para projetar o sistema de software para o processador Nios V:
- Siga o fluxo de desenvolvimento de software para o processador Nios V.
- Create Board Support Package Project and Application Project.
Nios V Processor Configuration and Booting Solutions
Para configurar e inicializar o processador Nios V:
- Understand the introduction to configuration and booting solutions.
- Vincule aplicativos para uma operação perfeita.
About the Nios® V Embedded Processor
1.1. Altera® FPGA e processadores embarcadosview
Os dispositivos Altera FPGA podem implementar lógica que funciona como um microprocessador completo, ao mesmo tempo em que oferecem muitas opções.
Uma diferença importante entre microprocessadores discretos e o FPGA Altera é que a estrutura do FPGA Altera não contém lógica ao ser inicializada. O processador Nios® V é um processador de propriedade intelectual (PI) flexível baseado na especificação RISC-V. Antes de executar software em um sistema baseado no processador Nios V, você deve configurar o dispositivo FPGA Altera com um design de hardware que contenha um processador Nios V. Você pode colocar o processador Nios V em qualquer lugar do FPGA Altera, dependendo dos requisitos do design.
Para permitir que seu sistema embarcado Altera® FPGA baseado em IP se comporte como um sistema baseado em microprocessador discreto, seu sistema deve incluir o seguinte: · AJTAG interface para suportar configuração, hardware e software do Altera FPGA
depuração · Um mecanismo de configuração de inicialização do Altera FPGA
Se o seu sistema tiver esses recursos, você pode começar a refinar seu projeto a partir de um projeto de hardware pré-testado carregado no FPGA Altera. Usar um FPGA Altera também permite modificar seu projeto rapidamente para resolver problemas ou adicionar novas funcionalidades. Você pode testar esses novos projetos de hardware facilmente reconfigurando o FPGA Altera usando o J do seu sistema.TAG interface.
O JTAG A interface suporta o desenvolvimento de hardware e software. Você pode executar as seguintes tarefas usando o JTAG interface: · Configurar o Altera FPGA · Baixar e depurar software · Comunicar-se com o Altera FPGA por meio de uma interface do tipo UART (JTAG UART
terminal) · Depuração de hardware (com o analisador lógico incorporado Signal Tap) · Programação de memória flash
Depois de configurar o Altera FPGA com um design baseado no processador Nios V, o fluxo de desenvolvimento de software é semelhante ao fluxo para designs de microcontroladores discretos.
Informações relacionadas · AN 985: Tutorial do processador Nios V
Um guia de início rápido sobre como criar um sistema de processador Nios V simples e executar o aplicativo Hello World.
© Altera Corporation. Altera, o logotipo da Altera, o logotipo `a' e outras marcas da Altera são marcas registradas da Altera Corporation. A Altera reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento, sem aviso prévio. A Altera não assume qualquer responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Altera. Recomenda-se aos clientes da Altera que obtenham a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
1. Sobre o processador embarcado Nios® V 726952 | 2025.07.16/XNUMX/XNUMX
· Manual de referência do processador Nios V Fornece informações sobre os benchmarks de desempenho do processador Nios V, a arquitetura do processador, o modelo de programação e a implementação principal.
· Guia do usuário de IP de periféricos incorporados · Manual do desenvolvedor de software do processador Nios V
Descreve o ambiente de desenvolvimento de software do processador Nios V, as ferramentas disponíveis e o processo para criar software para execução no processador Nios V. · Guia do usuário do ambiente de desenvolvimento integrado (IDE) Ashling* RiscFree* para Altera FPGAs Descreve o ambiente de desenvolvimento integrado (IDE) RiscFree* para Altera FPGAs HPS baseados em ARM* e processador de núcleo Nios V. · Notas de versão do processador Nios V Altera FPGA IP
1.2. Suporte ao software Quartus® Prime
O fluxo de construção do processador Nios V é diferente para o software Quartus® Prime Pro Edition e o software Quartus Prime Standard Edition. Consulte AN 980: Suporte ao Software Quartus Prime do Processador Nios V para obter mais informações sobre as diferenças.
Informações relacionadas AN 980: Processador Nios V Suporte de software Quartus Prime
1.3. Licenciamento do Processador Nios V
Cada variante do processador Nios V tem sua própria chave de licença. Após adquirir a chave de licença, você poderá usá-la para todos os projetos do processador Nios V até a data de expiração. Você pode adquirir as licenças IP do FPGA Altera do Processador Nios V sem custo algum.
A lista de chaves de licença do processador Nios V está disponível no Centro de Licenciamento de Autoatendimento de FPGAs da Altera. Clique na aba "Inscreva-se para Avaliação" ou "Licença Gratuita" e selecione as opções correspondentes para fazer a solicitação.
Figura 1. Centro de Licenciamento de Autoatendimento FPGA da Altera
Com as chaves de licença, você pode:
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 7
1. Sobre o processador embarcado Nios® V 726952 | 2025.07.16/XNUMX/XNUMX
· Implementar um processador Nios V em seu sistema. · Simular o comportamento de um sistema com processador Nios V. · Verificar a funcionalidade do projeto, como tamanho e velocidade. · Gerar programação de dispositivos. files. · Programar um dispositivo e verificar o projeto no hardware.
Você não precisa de uma licença para desenvolver software no Ashling* RiscFree* IDE para Altera FPGAs.
Informações relacionadas · Centro de licenciamento de autoatendimento Altera FPGA
Para obter mais informações sobre como obter as chaves de licença IP do processador Nios V Altera FPGA. · Instalação e licenciamento do software Altera FPGA Para obter mais informações sobre o licenciamento do software Altera FPGA e a configuração de um servidor de licença fixa e de licença de rede.
1.4. Projeto de Sistemas Embarcados
A figura a seguir ilustra um fluxo de projeto de sistema simplificado baseado no processador Nios V, incluindo desenvolvimento de hardware e software.
Manual de Projeto do Processador Embarcado Nios® V 8
Enviar feedback
1. Sobre o processador embarcado Nios® V 726952 | 2025.07.16/XNUMX/XNUMX
Figura 2.
Fluxo de projeto do sistema do processador Nios V
Conceito do sistema
Analisar requisitos do sistema
Nios® V
Núcleos do processador e componentes padrão
Definir e gerar sistema em
Designer de plataforma
Fluxo de Hardware: Integrar e Compilar o Projeto Intel Quartus Prime
Fluxo de software: desenvolver e construir a proposta de software Nios V
Fluxo de Hardware: Baixe o Projeto FPGA
para o Conselho de Alvos
Fluxo de software: teste e depuração do software do processador Nios V
Software não atende às especificações?
Sim
Hardware Não Atende às Especificações? Sim
Sistema Completo
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 9
726952 | 2025.07.16 Enviar comentários
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
Figura 3.
O diagrama a seguir ilustra um projeto típico de hardware do processador Nios V. Fluxograma de projeto de hardware do sistema do processador Nios V
Começar
Núcleos e componentes padrão do Nios V
Use o Platform Designer para projetar um sistema baseado no Nios V
Gerar Design de Designer de Plataforma
Integrar o sistema Platform Designer com o projeto Intel Quartus Prime
Atribuir localizações de pinos, requisitos de tempo e outras restrições de design
Compilar hardware para dispositivo de destino no Intel Quartus Prime
Pronto para baixar
2.1. Criando o design do sistema do processador Nios V com o Platform Designer
O software Quartus Prime inclui a ferramenta de integração de sistemas Platform Designer, que simplifica a tarefa de definir e integrar o núcleo IP do processador Nios V e outros IPs em um projeto de sistema FPGA Altera. O Platform Designer cria automaticamente a lógica de interconexão a partir da conectividade de alto nível especificada. A automação da interconexão elimina a demorada tarefa de especificar conexões HDL em nível de sistema.
© Altera Corporation. Altera, o logotipo da Altera, o logotipo `a' e outras marcas da Altera são marcas registradas da Altera Corporation. A Altera reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento, sem aviso prévio. A Altera não assume qualquer responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Altera. Recomenda-se aos clientes da Altera que obtenham a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Após analisar os requisitos de hardware do sistema, use o Quartus Prime para especificar o núcleo do processador Nios V, a memória e outros componentes necessários para o seu sistema. O Platform Designer gera automaticamente a lógica de interconexão para integrar os componentes ao sistema de hardware.
2.1.1. Instanciando o IP do FPGA do processador Nios V Altera
You can instantiate any of the processor IP cores in Platform Designer IP Catalog Processors and Peripherals Embedded Processors.
O núcleo IP de cada processador suporta diferentes opções de configuração com base em sua arquitetura exclusiva. Você pode definir essas configurações para melhor atender às suas necessidades de design.
Tabela 1.
Opções de configuração em variantes principais
Opções de configuração
Processador Nios V/c
Processador Nios V/m
Depurar Usar Solicitação de Redefinição
—
Armadilhas, exceções e interrupções
Arquitetura da CPU
ECC
Caches, Regiões Periféricas e TCMs
—
—
Instruções personalizadas
—
—
Passo de cadeado
—
—
Processador Nios V/g
2.1.1.1. Instanciando o Microcontrolador Compacto Nios V/c Altera FPGA IP Figura 4. Microcontrolador Compacto Nios V/c Altera FPGA IP
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 11
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.1.1. Guia Arquitetura da CPU
Tabela 2.
Guia de Arquitetura da CPU
Recurso
Descrição
Habilitar a Interface Avalon® Habilita a Interface Avalon para o gerenciador de instruções e o gerenciador de dados. Se desabilitada, o sistema utiliza a interface AXI4-Lite.
valor CSR mhartid
· Opção IP inválida. · Não use o valor CSR mhartid no processador Nios V/c.
2.1.1.1.2. Use a guia Solicitação de redefinição
Tabela 3.
Usar parâmetro da guia Solicitação de redefinição
Usar a guia Solicitação de redefinição
Descrição
Adicionar interface de solicitação de redefinição
· Habilite esta opção para expor portas de reinicialização locais onde um mestre local pode usá-la para acionar o processador Nios V para reinicializar sem afetar outros componentes em um sistema de processador Nios V.
· A interface de reinicialização consiste em um sinal de entrada resetreq e um sinal de saída ack.
· Você pode solicitar uma reinicialização do núcleo do processador Nios V ativando o sinal resetreq.
· O sinal resetreq deve permanecer ativo até que o processador ative o sinal ack. A falha em manter o sinal ativo pode fazer com que o processador fique em um estado não determinístico.
· O processador Nios V responde que a reinicialização foi bem-sucedida, emitindo o sinal ack.
· Após o processador ser reiniciado com sucesso, a asserção do sinal ack pode ocorrer várias vezes periodicamente até a desativação do sinal resetreq.
2.1.1.1.3. Guia Armadilhas, Exceções e Interrupções
Tabela 4.
Parâmetros da guia Armadilhas, exceções e interrupções
Armadilhas, exceções e interrupções
Descrição
Agente de redefinição
· A memória que hospeda o vetor de reinicialização (o endereço de reinicialização do processador Nios V) onde o código de reinicialização reside.
· Você pode selecionar qualquer módulo de memória conectado ao mestre de instruções do processador Nios V e suportado por um fluxo de inicialização do processador Nios V como o agente de reinicialização.
Redefinir deslocamento
· Especifica o deslocamento do vetor de redefinição em relação ao endereço base do agente de redefinição escolhido. · O Platform Designer fornece automaticamente um valor padrão para o deslocamento de redefinição.
Observação:
O Platform Designer oferece uma opção Absoluta, que permite especificar um endereço absoluto em Deslocamento de Redefinição. Use esta opção quando a memória que armazena o vetor de redefinição estiver localizada fora do sistema e dos subsistemas do processador.
Manual de Projeto do Processador Embarcado Nios® V 12
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.1.4. Guia ECC
Tabela 5.
Guia ECC
ECC
Habilitar detecção de erros e relatórios de status
Descrição
· Habilite esta opção para aplicar o recurso ECC aos blocos de RAM interna do processador Nios V. · Os recursos ECC detectam erros de até 2 bits e reagem com base no seguinte comportamento:
— Se for um erro corrigível de 1 bit, o processador continua a operar após corrigir o erro no pipeline do processador. No entanto, a correção não é refletida nas memórias de origem.
— Se o erro for incorrigível, o processador continuará a operar sem corrigi-lo no pipeline do processador e nas memórias de origem, o que pode fazer com que o processador entre em um estado não determinístico.
2.1.1.2. Instanciando o Microcontrolador Nios V/m Altera FPGA IP Figura 5. Microcontrolador Nios V/m Altera FPGA IP
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 13
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.2.1. Guia Depuração
Tabela 6.
Parâmetros da guia Depuração
Guia de depuração
Descrição
Habilitar depuração
Habilitar redefinição do módulo de depuração
· Habilite esta opção para adicionar o JTAG módulo de conexão de destino ao processador Nios V. · O JTAG O módulo de conexão de destino permite a conexão ao processador Nios V por meio do
JTAG pinos de interface do FPGA. · A conexão fornece os seguintes recursos básicos:
— Iniciar e parar o processador Nios V — Examinar e editar registradores e memória. — Baixar o aplicativo Nios V .elf file para a memória do processador em tempo de execução via
niosv-download. — Depure o aplicativo em execução no processador Nios V. · Conecte a porta dm_agent ao barramento de instruções e dados do processador. Certifique-se de que o endereço base entre os dois barramentos seja o mesmo.
· Habilite esta opção para expor as portas dbg_reset_out e ndm_reset_in. · JTAG o comando depurador ou niosv-download -r aciona o dbg_reset_out, que
permite que o processador Nios V reinicie os periféricos do sistema conectados a esta porta. · Você deve conectar a interface dbg_reset_out a ndm_reset_in em vez de resetar
Interface para acionar a redefinição do núcleo do processador e do módulo temporizador. Você não deve conectar a interface dbg_reset_out à interface de redefinição para evitar comportamento indeterminado.
2.1.1.2.2. Use a guia Solicitação de redefinição
Tabela 7.
Usar parâmetro da guia Solicitação de redefinição
Usar a guia Solicitação de redefinição
Descrição
Adicionar interface de solicitação de redefinição
· Habilite esta opção para expor portas de reinicialização locais onde um mestre local pode usá-la para acionar o processador Nios V para reinicializar sem afetar outros componentes em um sistema de processador Nios V.
· A interface de reinicialização consiste em um sinal de entrada resetreq e um sinal de saída ack.
· Você pode solicitar uma reinicialização do núcleo do processador Nios V ativando o sinal resetreq.
· O sinal resetreq deve permanecer ativo até que o processador ative o sinal ack. A falha em manter o sinal ativo pode fazer com que o processador fique em um estado não determinístico.
· A afirmação do sinal resetreq no modo de depuração não tem efeito no estado do processador.
· O processador Nios V responde que a reinicialização foi bem-sucedida, emitindo o sinal ack.
· Após o processador ser reiniciado com sucesso, a asserção do sinal ack pode ocorrer várias vezes periodicamente até a desativação do sinal resetreq.
2.1.1.2.3. Guia Armadilhas, Exceções e Interrupções
Tabela 8.
Guia Armadilhas, Exceções e Interrupções
Guia Armadilhas, Exceções e Interrupções
Descrição
Agente de redefinição
· A memória que hospeda o vetor de reinicialização (o endereço de reinicialização do processador Nios V) onde o código de reinicialização reside.
· Você pode selecionar qualquer módulo de memória conectado ao mestre de instruções do processador Nios V e suportado por um fluxo de inicialização do processador Nios V como o agente de reinicialização.
Redefinir modo de interrupção de compensação
· Especifica o deslocamento do vetor de redefinição em relação ao endereço base do agente de redefinição escolhido. · O Platform Designer fornece automaticamente um valor padrão para o deslocamento de redefinição.
Especifique o tipo de controlador de interrupção: Direto ou Vetorial. Observação: O processador Nios V/m sem pipeline não suporta interrupções Vetoriais.
Portanto, evite usar o modo de interrupção Vetorial quando o processador estiver no modo Não Pipelined.
Manual de Projeto do Processador Embarcado Nios® V 14
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Observação:
O Platform Designer oferece uma opção Absoluta, que permite especificar um endereço absoluto em Deslocamento de Redefinição. Use esta opção quando a memória que armazena o vetor de redefinição estiver localizada fora do sistema e dos subsistemas do processador.
2.1.1.2.4. Arquitetura da CPU
Tabela 9.
Parâmetros da guia Arquitetura da CPU
Arquitetura da CPU
Descrição
Habilitar Pipelining na CPU
· Habilite esta opção para instanciar o processador Nios V/m em pipeline. — O IPC é maior ao custo de uma área lógica maior e de uma frequência Fmax menor.
· Desabilite esta opção para instanciar o processador Nios V/m não pipelined. — Tem desempenho de núcleo similar ao do processador Nios V/c. — Suporta capacidade de depuração e interrupção — Menor área lógica e maior frequência Fmax ao custo de menor IPC.
Habilitar interface Avalon
Habilita a interface Avalon para o gerenciador de instruções e o gerenciador de dados. Se desabilitada, o sistema utiliza a interface AXI4-Lite.
valor CSR mhartid
· O valor do registro Hart ID (mhartid) é 0 por padrão. · Atribua um valor entre 0 e 4094. · Compatível com Altera FPGA Avalon Mutex Core HAL API.
Guia do usuário de IP periférico incorporado – Intel FPGA Avalon® Mutex Core
2.1.1.2.5. Guia ECC
Tabela 10. Guia ECC
Habilitar ECC para detecção de erros e relatórios de status
Descrição
· Habilite esta opção para aplicar o recurso ECC aos blocos de RAM interna do processador Nios V. · Os recursos ECC detectam erros de até 2 bits e reagem com base no seguinte comportamento:
— Se for um erro corrigível de 1 bit, o processador continua a operar após corrigir o erro no pipeline do processador. No entanto, a correção não é refletida nas memórias de origem.
— Se o erro for incorrigível, o processador continuará a operar sem corrigi-lo no pipeline do processador e nas memórias de origem, o que pode fazer com que o processador entre em um estado não determinístico.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 15
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.3. Instanciando o processador de uso geral Nios V/g Altera FPGA IP
Figura 6. Processador de uso geral Nios V/g Altera FPGA IP – Parte 1
Figura 7.
Processador de uso geral Nios V/g Altera FPGA IP – Parte 2 (Desativar controlador de interrupção de nível de núcleo)
Manual de Projeto do Processador Embarcado Nios® V 16
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Figura 8.
Processador de uso geral Nios V/g Altera FPGA IP – Parte 2 (Ativar controlador de interrupção de nível de núcleo)
Figura 9. Processador de uso geral Nios V/g Altera FPGA IP – Parte 3
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 17
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Figura 10. Processador de uso geral Nios V/g Altera FPGA IP – Parte 4
2.1.1.3.1. Arquitetura da CPU
Tabela 11. Parâmetros de arquitetura da CPU
Guia de arquitetura da CPU Habilitar unidade de ponto flutuante
Descrição Habilite esta opção para adicionar a unidade de ponto flutuante (extensão “F”) no núcleo do processador.
Habilitar previsão de ramificação
Habilitar previsão de ramificação estática (Retrocesso e Avanço Não Realizado) para instruções de ramificação.
valor CSR mhartid
· O valor do registro Hart ID (mhartid) é 0 por padrão. · Atribua um valor entre 0 e 4094. · Compatível com Altera FPGA Avalon Mutex Core HAL API.
Desabilitar instruções FSQRT e FDIV para FPU
· Remover operações de raiz quadrada de ponto flutuante (FSQRT) e divisão de ponto flutuante (FDIV) em FPU.
· Aplique emulação de software em ambas as instruções durante o tempo de execução.
Guia do usuário de IP periférico incorporado – Intel FPGA Avalon® Mutex Core
Manual de Projeto do Processador Embarcado Nios® V 18
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.3.2. Guia Depuração
Tabela 12. Parâmetros da guia Depuração
Guia de depuração
Descrição
Habilitar depuração
Habilitar redefinição do módulo de depuração
· Habilite esta opção para adicionar o JTAG módulo de conexão de destino ao processador Nios V. · O JTAG O módulo de conexão de destino permite a conexão ao processador Nios V por meio do
JTAG pinos de interface do FPGA. · A conexão fornece os seguintes recursos básicos:
— Iniciar e parar o processador Nios V — Examinar e editar registradores e memória. — Baixar o aplicativo Nios V .elf file para a memória do processador em tempo de execução via
niosv-download. — Depure o aplicativo em execução no processador Nios V. · Conecte a porta dm_agent ao barramento de instruções e dados do processador. Certifique-se de que o endereço base entre os dois barramentos seja o mesmo.
· Habilite esta opção para expor as portas dbg_reset_out e ndm_reset_in. · JTAG o comando depurador ou niosv-download -r aciona o dbg_reset_out, que
permite que o processador Nios V reinicie os periféricos do sistema conectados a esta porta. · Você deve conectar a interface dbg_reset_out a ndm_reset_in em vez de resetar
Interface para acionar a redefinição do núcleo do processador e do módulo temporizador. Você não deve conectar a interface dbg_reset_out à interface de redefinição para evitar comportamento indeterminado.
2.1.1.3.3. Tabela de guias de passo de bloqueio 13. Guia de passo de bloqueio
Parâmetros Habilitar período de tempo limite padrão do Lockstep Habilitar interface de redefinição estendida
Descrição · Habilita o sistema Lockstep de núcleo duplo. · Valor padrão do tempo limite programável na saída de reinicialização (entre 0 e 255). · Habilita a Interface de Reinicialização Estendida opcional para Controle de Reinicialização Estendida. · Quando desabilitado, o fRSmartComp implementa o Controle de Reinicialização Básico.
2.1.1.3.4. Use a guia Solicitação de redefinição
Tabela 14. Usar parâmetro da guia Solicitação de redefinição
Usar a guia Solicitação de redefinição
Descrição
Adicionar interface de solicitação de redefinição
· Habilite esta opção para expor portas de reinicialização locais onde um mestre local pode usá-la para acionar o processador Nios V para reinicializar sem afetar outros componentes em um sistema de processador Nios V.
· A interface de reinicialização consiste em um sinal de entrada resetreq e um sinal de saída ack.
· Você pode solicitar uma reinicialização do núcleo do processador Nios V ativando o sinal resetreq.
· O sinal resetreq deve permanecer ativo até que o processador ative o sinal ack. A falha em manter o sinal ativo pode fazer com que o processador fique em um estado não determinístico.
· A afirmação do sinal resetreq no modo de depuração não tem efeito no estado do processador.
· O processador Nios V responde que a reinicialização foi bem-sucedida, emitindo o sinal ack.
· Após o processador ser reiniciado com sucesso, a asserção do sinal ack pode ocorrer várias vezes periodicamente até a desativação do sinal resetreq.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 19
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.1.1.3.5. Guia Armadilhas, Exceções e Interrupções
Tabela 15.
Guia Armadilhas, Exceções e Interrupções quando o Controlador de Interrupção de Nível de Núcleo Habilitar está Desativado
Guia Armadilhas, Exceções e Interrupções
Agente de redefinição
Descrição
· A memória que hospeda o vetor de reinicialização (o endereço de reinicialização do processador Nios V) onde o código de reinicialização reside.
· Você pode selecionar qualquer módulo de memória conectado ao mestre de instruções do processador Nios V e suportado por um fluxo de inicialização do processador Nios V como o agente de reinicialização.
Redefinir deslocamento
· Especifica o deslocamento do vetor de redefinição em relação ao endereço base do agente de redefinição escolhido. · O Platform Designer fornece automaticamente um valor padrão para o deslocamento de redefinição.
Habilitar Controlador de Interrupção de Nível de Núcleo (CLIC)
· Habilitar o CLIC para suportar interrupções preventivas e condições de disparo de interrupção configuráveis.
· Quando ativado, você pode configurar o número de interrupções da plataforma, definir condições de disparo e designar algumas das interrupções como preventivas.
Registro de Sombra do Modo de Interrupção Files
Especifique os tipos de interrupção como Direta ou Vetorial. Habilite o registro de sombra para reduzir a troca de contexto na interrupção.
Tabela 16.
Armadilhas, exceções e interrupções quando o controlador de interrupção de nível de núcleo habilitado está ativado
Armadilhas, exceções e interrupções
Descrições
Agente de redefinição
Redefinir deslocamento
Habilitar Controlador de Interrupção de Nível de Núcleo (CLIC)
· A memória que hospeda o vetor de reinicialização (o endereço de reinicialização do processador Nios V) onde o código de reinicialização reside.
· Você pode selecionar qualquer módulo de memória conectado ao mestre de instruções do processador Nios V e suportado por um fluxo de inicialização do processador Nios V como o agente de reinicialização.
· Especifica o deslocamento do vetor de redefinição em relação ao endereço base do agente de redefinição escolhido. · O Platform Designer fornece automaticamente um valor padrão para o deslocamento de redefinição.
· Habilitar o CLIC para suportar interrupções preventivas e condições de disparo de interrupção configuráveis. · Quando habilitado, você pode configurar o número de interrupções da plataforma, definir condições de disparo,
e designar algumas das interrupções como preventivas.
Modo de interrupção
· Especifique os tipos de interrupção como Direta, Vetorial ou CLIC.
Registro de Sombra Files
· Habilitar registro de sombra para reduzir a troca de contexto em caso de interrupção.
· Oferece duas abordagens:
— Número de níveis de interrupção CLIC
— Número de níveis de interrupção CLIC – 1: Esta opção é útil quando você deseja o número de níveis de interrupção do registro file cópias para caber em um número exato de blocos M20K ou M9K.
· Habilitar o processador Nios V para usar o registro de sombra files que reduzem a sobrecarga de troca de contexto na interrupção.
Para mais informações sobre o registro de sombra files, consulte o Manual de Referência do Processador Nios V.
Número de fontes de interrupção da plataforma
· Especifica o número de interrupções da plataforma entre 16 e 2048.
Nota: O CLIC suporta até 2064 entradas de interrupção, e as primeiras 16 entradas de interrupção também são conectadas ao controlador de interrupção básico.
Alinhamento de tabela vetorial CLIC
· Determinado automaticamente com base no número de fontes de interrupção da plataforma. · Se você usar um alinhamento abaixo do valor recomendado, o CLIC aumenta a lógica
complexidade adicionando um somador extra para realizar cálculos de vetorização. · Se você usar um alinhamento abaixo do valor recomendado, isso resultará em aumento
complexidade lógica no CLIC.
continuou…
Manual de Projeto do Processador Embarcado Nios® V 20
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Armadilhas, exceções e interrupções
Número de níveis de interrupção
Número de prioridades de interrupção por nível
Polaridade de interrupção configurável Suporte a interrupções acionadas por borda
Descrições
· Especifica o número de níveis de interrupção, com um nível adicional 0 para o código do aplicativo. Interrupções de um nível mais alto podem interromper (preempção) um manipulador em execução para uma interrupção de nível mais baixo.
· Com níveis de interrupção diferentes de zero como únicas opções para interrupções, o código da aplicação está sempre no nível mais baixo, 0. Observação: A configuração em tempo de execução do nível e da prioridade de uma interrupção é feita em um único registrador de 8 bits. Se o número de níveis de interrupção for 256, não é possível configurar a prioridade da interrupção em tempo de execução. Caso contrário, o número máximo de prioridades configuráveis é 256 / (número de níveis de interrupção – 1).
· Especifica o número de prioridades de interrupção que o CLIC usa para determinar a ordem em que os manipuladores de interrupção não preemptantes são chamados. Observação: a concatenação dos valores binários do nível de interrupção selecionado e da prioridade de interrupção selecionada deve ser inferior a 8 bits.
· Permite configurar a polaridade de interrupção durante o tempo de execução. · A polaridade padrão é polaridade positiva.
· Permite que você configure a condição de disparo de interrupção durante o tempo de execução, ou seja, disparo de alto nível ou disparo de borda positiva (quando a polaridade de interrupção é positiva em Polaridade de interrupção configurável).
· A condição de disparo padrão é interrupção acionada por nível.
Observação:
O Platform Designer oferece uma opção Absoluta, que permite especificar um endereço absoluto em Deslocamento de Redefinição. Use esta opção quando a memória que armazena o vetor de redefinição estiver localizada fora do sistema e dos subsistemas do processador.
Informações relacionadas Manual de referência do processador Nios® V
2.1.1.3.6. Guia Configurações de Memória
Tabela 17. Parâmetros da guia Configuração de memória
Categoria
Guia de configuração de memória
Descrição
Caches
Tamanho do cache de dados
· Especifica o tamanho do cache de dados. · Os tamanhos válidos são de 0 quilobytes (KB) a 16 KB. · Desativa o cache de dados quando o tamanho for 0 KB.
Tamanho do cache de instruções
· Especifica o tamanho do cache de instruções. · Os tamanhos válidos são de 0 KB a 16 KB. · Desativa o cache de instruções quando o tamanho for 0 KB.
Região Periférica A e B
Tamanho
· Especifica o tamanho da região periférica.
· Os tamanhos válidos são de 64 KB a 2 gigabytes (GB), ou Nenhum. Escolher Nenhum desabilita a região periférica.
Endereço Base
· Especifica o endereço base da região periférica após você selecionar o tamanho.
· Todos os endereços na região periférica produzem acessos a dados não armazenáveis em cache.
· O endereço base da região periférica deve estar alinhado ao tamanho da região periférica.
Memórias fortemente acopladas
Tamanho
· Especifica o tamanho da memória fortemente acoplada. — Os tamanhos válidos são de 0 MB a 512 MB.
Inicialização de endereço base File
· Especifica o endereço base da memória fortemente acoplada. · Especifica a inicialização file para memória fortemente acoplada.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 21
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Observação:
Em um sistema com processador Nios V e cache habilitado, você deve colocar os periféricos do sistema dentro de uma região periférica. Você pode usar regiões periféricas para definir uma transação não armazenável em cache para periféricos como UART, PIO, DMA e outros.
2.1.1.3.7. Guia ECC
Tabela 18. Guia ECC
Habilitar ECC para detecção de erros e relatórios de status
Habilitar correção de bit único
Descrição
· Habilite esta opção para aplicar o recurso ECC aos blocos de RAM interna do processador Nios V. · Os recursos ECC detectam erros de até 2 bits e reagem com base no seguinte comportamento:
— Se for um erro de bit único corrigível e a opção Habilitar Correção de Bit Único estiver desativada, o processador continuará a operar após corrigir o erro no pipeline do processador. No entanto, a correção não será refletida nas memórias de origem.
— Se for um erro de bit único corrigível e a opção Habilitar correção de bit único estiver ativada, o processador continuará a operar após corrigir o erro no pipeline do processador e nas memórias de origem.
— Se for um erro incorrigível, o processador interrompe sua operação.
Habilita a correção de bit único em blocos de memória incorporados no núcleo.
2.1.1.3.8. Guia de instruções personalizadas
Observação:
Esta aba está disponível somente para o núcleo do processador Nios V/g.
Tabela de interface de hardware de instrução personalizada Nios V
Tabela de macros do software de instruções personalizadas Nios V
Descrição
· O processador Nios V usa esta tabela para definir suas interfaces personalizadas do gerenciador de instruções.
· As interfaces definidas do gerenciador de instruções personalizadas são codificadas exclusivamente por um Opcode (CUSTOM0-3) e 3 bits de funct7[6:4].
· Você pode definir até um total de 32 interfaces individuais de gerenciador de instruções personalizadas.
· O processador Nios V usa esta tabela para definir codificações de software de instruções personalizadas para interfaces de gerenciador de instruções personalizadas.
· Para cada codificação de software de instrução personalizada definida, o Opcode (CUSTOM0-3) e 3 bits da codificação funct7[6:4] devem estar correlacionados a uma codificação de interface do gerenciador de instruções personalizada definida na Tabela de Interface de Hardware de Instrução Personalizada.
· Você pode usar funct7[6:4], funct7[3:0] e funct3[2:0] para definir codificação adicional para uma determinada instrução personalizada ou especificada como Xs a serem passados como argumentos de instrução adicionais.
· O processador Nios V fornece codificações de software de instruções personalizadas definidas como macros C geradas em system.h e segue o formato de instrução RISC-V do tipo R.
· Mnemônicos podem ser usados para definir nomes personalizados para: — As C-Macros geradas em system.h.
— Os mnemônicos de depuração do GDB gerados em custom_instruction_debug.xml.
Informações relacionadas
AN 977: Instruções personalizadas do processador Nios V Para obter mais informações sobre instruções personalizadas que permitem personalizar o processador Nios® V para atender às necessidades de uma aplicação específica.
Manual de Projeto do Processador Embarcado Nios® V 22
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
2.1.2. Definindo o Projeto de Componentes do Sistema
Use o Platform Designer para definir as características de hardware do sistema do processador Nios V e adicionar os componentes desejados. O diagrama a seguir demonstra um projeto básico de um sistema do processador Nios V com os seguintes componentes: · Núcleo do processador Nios V · Memória On-Chip · JTAG UART · Temporizador de intervalo (opcional)(1)
Quando uma nova memória on-chip é adicionada a um sistema do Platform Designer, execute a sincronização de informações do sistema para refletir os componentes de memória adicionados na redefinição. Como alternativa, você pode ativar a sincronização automática no Platform Designer para refletir automaticamente as alterações mais recentes nos componentes.
Figura 11. Exampa conexão do processador Nios V com outros periféricos no Platform Designer
(1) Você tem a opção de usar os recursos do Nios V Internal Timer para substituir o Interval Timer externo no Platform Designer.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 23
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Você também deve definir pinos de operação para exportar como conduíte no seu sistema Platform Designer. Por exemploample, uma lista de pinos de operação adequada do sistema FPGA é definida como abaixo, mas não se limita a:
· Relógio
· Redefinir
· Sinais de E/S
2.1.3. Especificando Endereços Base e Prioridades de Solicitação de Interrupção
Para especificar como os componentes adicionados no design interagem para formar um sistema, você precisa atribuir endereços base para cada componente do agente e atribuir prioridades de solicitação de interrupção (IRQ) para o JTAG UART e o temporizador de intervalo. O Designer de Plataforma fornece um comando – Atribuir Endereços Base – que atribui automaticamente endereços base apropriados a todos os componentes de um sistema. No entanto, você pode ajustar os endereços base de acordo com suas necessidades.
A seguir estão algumas diretrizes para atribuição de endereços base:
· O núcleo do processador Nios V possui um intervalo de endereço de 32 bits. Para acessar os componentes do agente, o endereço base deve estar entre 0x00000000 e 0xFFFFFFFF.
· Os programas Nios V usam constantes simbólicas para se referir a endereços. Você não precisa escolher valores de endereço que sejam fáceis de lembrar.
· Valores de endereço que diferenciam componentes com apenas um bit de diferença produzem hardware mais eficiente. Não é necessário compactar todos os endereços base no menor intervalo de endereços possível, pois a compactação pode resultar em hardware menos eficiente.
· O Platform Designer não tenta alinhar componentes de memória separados em um intervalo de memória contíguo. Por exemploampou seja, se você quiser que vários componentes de memória on-chip sejam endereçáveis como um intervalo de memória contíguo, você deve atribuir explicitamente endereços base.
O Platform Designer também fornece um comando de automação – Atribuir Números de Interrupção – que conecta sinais de IRQ para produzir resultados de hardware válidos. No entanto, a atribuição eficaz de IRQs requer uma compreensão do comportamento geral de resposta do sistema. O Platform Designer não pode fazer suposições fundamentadas sobre a melhor atribuição de IRQ.
O menor valor de IRQ tem a maior prioridade. Em um sistema ideal, a Altera recomenda que o componente temporizador tenha o IRQ de maior prioridade, ou seja, o menor valor, para manter a precisão do tique-taque do relógio do sistema.
Em alguns casos, você pode atribuir uma prioridade mais alta aos periféricos em tempo real (como controladores de vídeo), o que exige uma taxa de interrupção mais alta do que os componentes do temporizador.
Informações relacionadas
Guia do usuário do Quartus Prime Pro Edition: Mais informações sobre como criar um sistema com o Platform Designer.
Manual de Projeto do Processador Embarcado Nios® V 24
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
2.2. Integrando o Sistema Platform Designer ao Projeto Quartus Prime
Após gerar o projeto do sistema Nios V no Platform Designer, execute as seguintes tarefas para integrar o módulo do sistema Nios V ao projeto de projeto do FPGA Quartus Prime. · Instanciar o módulo do sistema Nios V no projeto Quartus Prime · Conectar sinais do módulo do sistema Nios V a outros sinais na lógica do FPGA · Atribuir localização de pinos físicos · Restringir o projeto do FPGA
2.2.1. Instanciando o Módulo do Sistema Processador Nios V no Projeto Quartus Prime
O Platform Designer gera uma entidade de design de módulo de sistema que você pode instanciar no Quartus Prime. A forma como você instancia o módulo de sistema depende do método de entrada de design para o projeto Quartus Prime como um todo. Por exemploampPor exemplo, se você estiver usando Verilog HDL para entrada de projeto, instancie o módulo de sistema baseado em Verilog. Se preferir usar o método de diagrama de blocos para entrada de projeto, instancie um símbolo de módulo de sistema .bdf. file.
2.2.2. Conexão de sinais e atribuição de localizações físicas de pinos
Para conectar seu projeto Altera FPGA ao seu projeto de nível de placa, execute as seguintes tarefas: · Identifique o nível superior file para seu design e sinais para conectar ao Altera externo
Pinos do dispositivo FPGA. · Entenda quais pinos conectar por meio do guia do usuário de design de nível de placa ou
· Atribua sinais no projeto de nível superior às portas do seu dispositivo Altera FPGA com pinos
ferramentas de atribuição.
O seu sistema Platform Designer pode ser o projeto de nível superior. No entanto, o FPGA Altera também pode incluir lógica adicional com base nas suas necessidades e, assim, introduzir um projeto de nível superior personalizado. file. O nível superior file conecta os sinais do módulo do sistema do processador Nios V a outras lógicas de projeto do FPGA Altera.
Guia do usuário do Quartus Prime Pro Edition: restrições de design
2.2.3. Restringindo o projeto do FPGA Altera
Um projeto adequado de um sistema FPGA Altera inclui restrições de projeto para garantir que o projeto atenda aos requisitos de fechamento de tempo e outras restrições lógicas. Você deve restringir seu projeto FPGA Altera para atender explicitamente a esses requisitos usando ferramentas fornecidas no software Quartus Prime ou provedores de EDA terceirizados. O software Quartus Prime utiliza as restrições fornecidas durante a fase de compilação para obter os melhores resultados de posicionamento.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 25
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Informações relacionadas · Guia do usuário do Quartus Prime Pro Edition: restrições de design · Parceiros EDA de terceiros · Guia do usuário do Quartus Prime Pro Edition: analisador de tempo
2.3. Projetando um Sistema de Memória com Processador Nios V
Esta seção descreve as melhores práticas para selecionar dispositivos de memória em um sistema embarcado Platform Designer com um processador Nios V e obter o desempenho ideal. Os dispositivos de memória desempenham um papel fundamental na melhoria do desempenho geral de um sistema embarcado. A memória do sistema embarcado armazena as instruções e os dados do programa.
2.3.1. Memória Volátil
Uma distinção fundamental entre os tipos de memória é a volatilidade. A memória volátil retém seu conteúdo apenas enquanto você fornece energia ao dispositivo de memória. Assim que você remove a energia, a memória perde seu conteúdo.
ExampOs tipos de memória volátil são RAM, cache e registradores. Esses são tipos de memória rápida que aumentam o desempenho de execução. A Altera recomenda que você carregue e execute instruções do processador Nios V na RAM e emparelhe o núcleo IP do Nios V com o IP de memória no chip ou o IP de interface de memória externa para obter o desempenho ideal.
Para melhorar o desempenho, você pode eliminar componentes adicionais de adaptação do Platform Designer combinando o tipo ou a largura da interface do gerenciador de dados do processador Nios V com a RAM de inicialização. Por exemploampPor exemplo, você pode configurar o On-Chip Memory II com uma interface AXI-32 de 4 bits, que corresponde à interface do gerenciador de dados Nios V.
Informações relacionadas · Centro de suporte de IP de interfaces de memória externa · Memória no chip (RAM ou ROM) Altera FPGA IP · Memória no chip II (RAM ou ROM) Altera FPGA IP · Aplicativo do processador Nios V Execute-In-Place a partir do OCRAM na página 54
2.3.1.1. Configuração de memória RAM ou ROM no chip
Você pode configurar os IPs de memória Altera FPGA On-Chip como RAM ou ROM. · A RAM oferece capacidade de leitura e gravação e é volátil. Se você estiver
Ao inicializar o processador Nios V a partir de uma RAM On-Chip, você deve garantir que o conteúdo de inicialização seja preservado e não corrompido em caso de reinicialização durante o tempo de execução. · Se um processador Nios V estiver inicializando a partir da ROM, qualquer bug de software no processador Nios V não poderá sobrescrever erroneamente o conteúdo da memória On-Chip. Assim, reduzindo o risco de corrupção do software de inicialização.
Informações relacionadas · Memória On-Chip (RAM ou ROM) Altera FPGA IP · Memória On-Chip II (RAM ou ROM) Altera FPGA IP · Aplicação do processador Nios V Execute-In-Place a partir do OCRAM na página 54
Manual de Projeto do Processador Embarcado Nios® V 26
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
2.3.1.2. Caches
Memórias on-chip são comumente usadas para implementar a funcionalidade de cache devido à sua baixa latência. O processador Nios V usa memória on-chip para seus caches de instruções e dados. A capacidade limitada da memória on-chip geralmente não é um problema para caches, pois eles costumam ser pequenos.
Os caches são comumente usados nas seguintes condições:
· A memória regular fica fora do chip e tem um tempo de acesso maior do que a memória no chip.
· As seções críticas de desempenho do código do software podem caber no cache de instruções, melhorando o desempenho do sistema.
· A seção de dados mais frequentemente usada e de desempenho crítico pode caber no cache de dados, melhorando o desempenho do sistema.
Habilitar caches no processador Nios V cria uma hierarquia de memória, o que minimiza o tempo de acesso à memória.
2.3.1.2.1. Região periférica
Nenhum IP de periféricos incorporados, como UART, I2C e SPI, deve ser armazenado em cache. O cache é altamente recomendado para memórias externas que são afetadas por longos tempos de acesso, enquanto memórias internas no chip podem ser excluídas devido ao seu curto tempo de acesso. Você não deve armazenar em cache nenhum IP de periféricos incorporados, como UART, I2C e SPI, exceto memórias. Isso é importante porque eventos de dispositivos externos, como dispositivos de agente atualizando os IPs de software, não são capturados pelo cache do processador e, por sua vez, não são recebidos pelo processador. Como resultado, esses eventos podem passar despercebidos até que você limpe o cache, o que pode levar a comportamentos indesejados no seu sistema. Em resumo, a região mapeada na memória dos IPs de periféricos incorporados não pode ser armazenada em cache e deve residir nas regiões periféricas do processador.
Para definir uma região periférica, siga estas etapas:
1. Abra o Mapa de Endereços do sistema no Designer de Plataforma.
2. Navegue até o mapa de endereços do Gerenciador de Instruções e do Gerenciador de Dados do processador.
3. Identifique os periféricos e memórias no seu sistema.
Figura 12. Exampmapa de endereços
Nota: As setas azuis apontam para as memórias. 4. Agrupe os periféricos:
a. Memória como armazenável em cache b. Periféricos como não armazenáveis em cache
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 27
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Tabela 19. Região armazenável em cache e não armazenável em cache
Subordinar
Mapa de Endereços
Status
Região Periférica
Tamanho
Endereço Base
user_application_mem.s1
0x0 ~ 0x3ffff
Armazenável em cache
N / D
N / D
cpu.dm_agent bootcopier_rom.s1
0x40000 ~ 0x4ffff 0x50000 ~ 0x517ff
Não armazenável em cache Armazenável em cache
65536 bytes N/D
0x40000 N/D
bootcopier_ram.s1 cpu.timer_sw_agent caixa de correio.avmm
0x52000 ~ 0x537ff 0x54000 ~ 0x5403f 0x54040 ~ 0x5407f
Armazenável em cache Não armazenável Não armazenável em cache
144 bytes (tamanho mínimo é 65536 bytes)
0x54000
sysid_qsys_0.control_slave
0x54080 ~ 0x54087
Não armazenável em cache
uart.avalon_jtag_escravo
0x54088 ~ 0x5408f
Não armazenável em cache
5. Alinhe as regiões periféricas com seus tamanhos específicos:
· Por exampOu seja, se o tamanho for 65536 bytes, corresponde a 0x10000 bytes. Portanto, o endereço base permitido deve ser um múltiplo de 0x10000.
· O CPU.dm_agent usa um endereço base de 0x40000, que é um múltiplo de 0x10000. Como resultado, a Região Periférica A, com um tamanho de 65536 bytes e um endereço base de 0x40000, atende aos requisitos.
· O endereço base da coleção de regiões não armazenáveis em cache em 0x54000 não é um múltiplo de 0x10000. Você deve reatribuí-las a 0x60000 ou a outro múltiplo de 0x10000. Portanto, a Região Periférica B, que tem um tamanho de 65536 bytes e um endereço base de 0x60000, atende aos critérios.
Tabela 20. Região armazenável em cache e não armazenável em cache com reatribuição
Subordinar
Mapa de Endereços
Status
Região Periférica
Tamanho
Endereço Base
user_application_mem.s1
0x0 ~ 0x3ffff
Armazenável em cache
N / D
N / D
cpu.dm_agent
0x40000 ~ 0x4ffff
65536 bytes não armazenáveis em cache
0x40000
bootcopier_rom.s1
0x50000 ~ 0x517ff
Armazenável em cache
N / D
N / D
bootcopier_ram.s1 cpu.timer_sw_agent caixa de correio.avmm sysid_qsys_0.control_slave
0x52000 ~ 0x537ff 0x60000 ~ 0x6003f 0x60040 ~ 0x6007f 0x60080 ~ 0x60087
Armazenável em cache Não armazenável Não armazenável Não armazenável
144 bytes (tamanho mínimo é 65536 bytes)
0x60000
uart.avalon_jtag_escravo
0x60088 ~ 0x6008f
Não armazenável em cache
2.3.1.3. Memória fortemente acoplada
Memórias fortemente acopladas (TCMs) são implementadas usando memória on-chip, pois sua baixa latência as torna adequadas para a tarefa. TCMs são memórias mapeadas no espaço de endereço típico, mas possuem uma interface dedicada ao microprocessador e possuem as propriedades de alto desempenho e baixa latência da memória cache. A TCM também fornece uma interface subordinada para o host externo. O processador e o host externo têm o mesmo nível de permissão para lidar com a TCM.
Manual de Projeto do Processador Embarcado Nios® V 28
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Observação:
Quando a porta subordinada do TCM está conectada a um host externo, ela pode ser exibida com um endereço base diferente do endereço base atribuído no núcleo do processador. A Altera recomenda alinhar ambos os endereços com o mesmo valor.
2.3.1.4. Interface de Memória Externa (EMIF)
A EMIF (External Memory Interface) funciona de forma semelhante à SRAM (Static Random Access Memory), mas é dinâmica e requer atualização periódica para manter seu conteúdo. As células de memória dinâmica na EMIF são muito menores do que as células de memória estática na SRAM, o que resulta em dispositivos de memória de maior capacidade e menor custo.
Além do requisito de atualização, o EMIF possui requisitos de interface específicos que frequentemente exigem hardware de controlador especializado. Ao contrário da SRAM, que possui um conjunto fixo de linhas de endereço, o EMIF organiza seu espaço de memória em bancos, linhas e colunas. Alternar entre bancos e linhas introduz alguma sobrecarga, portanto, você deve ordenar cuidadosamente os acessos à memória para usar o EMIF com eficiência. O EMIF também multiplexa endereços de linha e coluna nas mesmas linhas de endereço, reduzindo o número de pinos necessários para um determinado tamanho de EMIF.
Versões de maior velocidade do EMIF, como DDR, DDR2, DDR3, DDR4 e DDR5, impõem requisitos rigorosos de integridade de sinal que os projetistas de PCB devem considerar.
Os dispositivos EMIF estão entre os tipos de RAM mais econômicos e de alta capacidade disponíveis, o que os torna uma opção popular. Um componente essencial de uma interface EMIF é o IP EMIF, que gerencia tarefas relacionadas à multiplexação de endereços, atualização e comutação entre linhas e bancos. Esse design permite que o restante do sistema acesse o EMIF sem a necessidade de entender sua arquitetura interna.
Informações relacionadas Centro de suporte IP de interfaces de memória externa
2.3.1.4.1. Extensor de endereço IP
O IP do Extensor de Endereço Altera FPGA permite que interfaces de host mapeadas em memória acessem um mapa de endereços maior ou menor do que a largura permitida por seus sinais de endereço. O IP do Extensor de Endereço divide o espaço endereçável em várias janelas separadas para que o host possa acessar a parte apropriada da memória através da janela.
O Extensor de Extensão de Endereço não limita as larguras de host e agente a uma configuração de 32 bits e 64 bits. Você pode usar o Extensor de Extensão de Endereço com janelas de endereço de 1 a 64 bits.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 29
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Figura 13. Extensor de endereço IP Altera FPGA
Endereço da palavra do agente
Extensor de endereço
A
Tabela de Mapeamento
Porta de controle A
…
Registro de controle 0 Registro de controle Z-1
Endereço de host expandido H
Informações relacionadas
Guia do usuário do Quartus® Prime Pro Edition: Designer de plataforma Consulte o tópico Extensor de intervalo de endereço Intel® FPGA IP para obter mais informações.
2.3.1.4.2. Usando o IP do Extensor de Endereço com o Processador Nios V
O processador Nios V de 32 bits pode endereçar até 4 GB de um intervalo de endereços. Se o EMIF contiver mais de 4 GB de memória, ele excederá o intervalo de endereços máximo suportado, tornando o sistema do Platform Designer errôneo. Um IP do Extensor de Intervalo de Endereços é necessário para resolver esse problema, dividindo um único espaço de endereços EMIF em várias janelas menores.
A Altera recomenda que você considere os seguintes parâmetros.
Tabela 21. Parâmetros do extensor de endereço
Parâmetro
Configurações recomendadas
Largura do caminho de dados
Largura do endereço de byte mestre expandido
Selecione 32 bits, que corresponde ao processador de 32 bits. Depende do tamanho da memória EMIF.
Largura do Endereço da Palavra Escrava Largura da Contagem de Burst
Selecione 2 GB ou menos. O intervalo de endereço restante do processador Nios V é reservado para outros IPs soft incorporados.
Comece com 1 e aumente gradualmente esse valor para melhorar o desempenho.
Número de subjanelas
Selecione 1 subjanela se estiver conectando EMIF ao processador Nios V como memória de instruções e dados, ou ambos. Alternar entre várias subjanelas enquanto o processador Nios V estiver executando a partir do EMIF é perigoso.
Habilitar porta de controle escrava
Desabilite a porta de controle escrava se estiver conectando EMIF ao processador Nios V como memória de instruções e/ou dados. Mesmas preocupações que o número de subjanelas.
Máximo de leituras pendentes
Comece com 1 e aumente gradualmente esse valor para melhorar o desempenho.
Manual de Projeto do Processador Embarcado Nios® V 30
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
Figura 14. Conectando o Gerenciador de Instruções e Dados ao Extensor de Extensão de Endereço
Figura 15. Mapeamento de endereços
Observe que o Extensor de Extensão de Endereços pode acessar todo o espaço de memória de 8 GB do EMIF. No entanto, por meio do Extensor de Extensão de Endereços, o processador Nios V pode acessar apenas o primeiro 1 GB de espaço de memória do EMIF.
Figura 16. Diagrama de Blocos Simplificado
Sistema de designer de plataforma
Restantes 3 GB
Endereço do processador Nios V
span é para embutido
NNioios sVV PProrocecsesosor r
M
IPs suaves no mesmo sistema.
janela de 1 GB
Extensão de endereço
S
Extensor
M
Apenas o primeiro 1 GB
da memória EMIF está conectada ao Nios V
EMIF
processador.
8 GB
S
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 31
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
2.3.1.4.3. Definindo o Dispositivo de Memória Linker do Extensor de Extensão de Endereço 1. Defina o Extensor de Extensão de Endereço (EMIF) como o vetor de reinicialização. Como alternativa, você pode atribuir o vetor de reinicialização do processador Nios V a outras memórias, como OCRAM ou dispositivos flash.
Figura 17. Múltiplas opções como vetor de redefinição
No entanto, o Editor do Pacote de Suporte de Placa (BSP) não consegue registrar automaticamente o Extensor de Span de Endereço (EMIF) como uma memória válida. Dependendo da escolha feita, você verá duas situações diferentes, conforme mostrado nas figuras a seguir. Figura 18. Erro de BSP ao definir o Extensor de Span de Endereço (EMIF) como vetor de reinicialização.
Manual de Projeto do Processador Embarcado Nios® V 32
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
Figura 19. EMIF ausente ao definir outras memórias como vetor de reinicialização
2. Você deve adicionar manualmente o Address Span Extender (EMIF) usando Adicionar dispositivo de memória, Adicionar região de memória do vinculador e Adicionar mapeamentos de seção do vinculador na guia Script do vinculador BSP.
3. Siga estas etapas:
a. Determine o intervalo de endereço do extensor de intervalo de endereço usando o mapa de memória (o example na figura a seguir usa o intervalo do extensor de endereço de 0x0 a 0x3fff_ffff).
Figura 20. Mapa de Memória
b. Clique em "Adicionar Dispositivo de Memória" e preencha com base nas informações do Mapa de Memória do seu projeto: i. Nome do Dispositivo: emif_ddr4. Observação: certifique-se de copiar o mesmo nome do Mapa de Memória. ii. Endereço Base: 0x0 iii. Tamanho: 0x40000000
c. Clique em Adicionar para adicionar uma nova região de memória do vinculador:
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 33
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Tabela 22. Adicionando a região de memória do vinculador
Passos
Redefinir vetor
emif_ddr4
Outras memórias
1
Adicione uma nova Região de Memória do Linker chamada reset. Adicione uma nova Região de Memória do Linker para o
· Nome da região: reset
emif_ddr4.
· Tamanho da região: 0x20
· Nome da região: emif_ddr4
· Dispositivo de memória: emif_ddr4
· Tamanho da região: 0x40000000
· Deslocamento de memória: 0x0
· Dispositivo de memória: emif_ddr4
· Deslocamento de memória: 0x0
2
Adicione uma nova Região de Memória do Linker para o
emif_ddr4 restante.
· Nome da região: emif_ddr4
· Tamanho da região: 0x3fffffe0
· Dispositivo de memória: emif_ddr4
· Deslocamento de memória: 0x20
Figura 21. Região do Linker ao Definir o Extensor de Extensão de Endereço (EMIF) como Vetor de Redefinição
Figura 22. Região do Linker ao Definir Outras Memórias como Vetor de Redefinição
d. Depois que o emif_ddr4 for adicionado ao BSP, você poderá selecioná-lo para qualquer Seção do Linker.
Figura 23. Extensor de Endereço (EMIF) adicionado com sucesso
e. Ignore o aviso sobre o dispositivo de memória emif_ddr4 não estar visível no design do SOPC.
f. Prossiga para Gerar BSP.
Informações relacionadas Introdução aos métodos de inicialização do processador Nios V na página 51
Manual de Projeto do Processador Embarcado Nios® V 34
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
2.3.2. Memória não volátil
A memória não volátil retém seu conteúdo quando a energia é desligada, tornando-a uma boa opção para armazenar informações que o sistema precisa recuperar após um ciclo de energia. A memória não volátil geralmente armazena o código de inicialização do processador, configurações persistentes de aplicativos e dados de configuração do FPGA Altera. Embora a memória não volátil tenha a vantagemtagAlém de reter seus dados quando você desliga a energia, ela é muito mais lenta em comparação com a memória volátil e, frequentemente, possui procedimentos de gravação e apagamento mais complexos. A memória não volátil também costuma ter a garantia de poder ser apagada apenas um determinado número de vezes, após o qual pode falhar.
ExampOs tipos de memória não volátil incluem todos os tipos de flash, EPROM e EEPROM. A Altera recomenda que você armazene os fluxos de bits do FPGA Altera e as imagens de programa do Nios V em uma memória não volátil e use flash serial como dispositivo de inicialização para os processadores Nios V.
Informações relacionadas
· Guia do usuário do IP FPGA da interface flash serial genérica Altera
· Guia do usuário do cliente de caixa de correio Altera FPGA IP · Guia do usuário da memória flash MAX® 10: núcleo flash Altera FPGA IP no chip
2.4. Melhores práticas para relógios e reinicializações
É importante entender como o domínio de clock e reset do processador Nios V interage com cada periférico ao qual se conecta. Um sistema simples com processador Nios V começa com um único domínio de clock, e pode se complicar com um sistema com múltiplos domínios de clock quando um domínio de clock rápido colide com um domínio de clock lento. Você precisa observar e entender como esses diferentes domínios se sequenciam a partir do reset e garantir que não haja problemas sutis.
Como prática recomendada, a Altera recomenda colocar o processador Nios V e a memória de inicialização no mesmo domínio de clock. Não libere o processador Nios V da reinicialização em um domínio de clock rápido quando ele inicializar a partir de uma memória que reside em um domínio de clock muito lento, o que pode causar um erro de busca de instruções. Você pode precisar de algum sequenciamento manual além do que o Platform Designer fornece por padrão e planejar a topologia de liberação de reinicialização de acordo com seu caso de uso. Se você quiser reinicializar o sistema após ele ser inicializado e executado por um tempo, aplique as mesmas considerações ao sequenciamento de reinicialização do sistema e ao requisito de inicialização pós-reinicialização.
2.4.1. Sistema JTAG Relógio
Especificar as restrições de clock em cada sistema com processador Nios V é uma consideração importante no projeto do sistema e é necessária para garantir a correção e o comportamento determinístico. O Quartus Prime Timing Analyzer realiza análises de temporização estáticas para validar o desempenho de temporização de toda a lógica do seu projeto, utilizando a metodologia de restrição, análise e geração de relatórios padrão do setor.
Example 1. Relógio básico de 100 MHz com ciclo de trabalho 50/50 e 16 MHz JTAG Relógio
#**************************************************************** # Criar relógio de 100 MHz #******************************************************************** create_clock -name {clk} -period 10 [get_ports {clk}] #************************ Criar 16 MHz JTAG Relógio #************************
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 35
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
create_clock -name {altera_reserved_tck} -period 62.500 [get_ports {altera_reserved_tck}] set_clock_groups -asynchronous -group [get_clocks {altera_reserved_tck}] Informações relacionadas Livro de receitas do analisador de temporização Quartus Prime
2.4.2. Interface de solicitação de redefinição
O processador Nios V inclui um recurso opcional de solicitação de reinicialização. O recurso de solicitação de reinicialização consiste nos sinais reset_req e reset_req_ack.
Para habilitar a solicitação de redefinição no Platform Designer: 1. Inicie o Editor de Parâmetros IP do Processador Nios V. 2. Na configuração Usar Solicitação de Redefinição, ative Adicionar Interface de Solicitação de Redefinição.
opção.
Figura 24. Habilitar solicitação de reinicialização do processador Nios V
O sinal reset_req atua como uma interrupção. Ao ativar o reset_req, você está solicitando a reinicialização do núcleo. O núcleo aguarda que qualquer transação de barramento pendente conclua sua operação. Por exemplo:ampPor exemplo, se houver uma transação de acesso à memória pendente, o núcleo aguarda uma resposta completa. Da mesma forma, o núcleo aceita qualquer resposta de instrução pendente, mas não emite uma solicitação de instrução após receber o sinal reset_req.
A operação de reinicialização consiste no seguinte fluxo: 1. Concluir todas as operações pendentes; 2. Limpar o pipeline interno; 3. Definir o Contador de Programa para o vetor de reinicialização; 4. Reinicializar o núcleo. Toda a operação de reinicialização leva alguns ciclos de clock. O reset_req deve permanecer ativo até que o reset_req_ack seja ativado, indicando que a operação de reinicialização do núcleo foi concluída com sucesso. A falha em fazê-lo resulta em um estado do núcleo não determinístico.
Manual de Projeto do Processador Embarcado Nios® V 36
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
2.4.2.1. Casos de uso típicos
· Você pode ativar o sinal reset_req na inicialização para impedir que o núcleo do processador Nios V inicie a execução do programa a partir de seu vetor de reinicialização até que outros hosts FPGA no sistema inicializem a memória de inicialização do processador Nios V. Nesse caso, todo o subsistema pode passar por uma reinicialização de hardware limpa. O processador Nios V é mantido indefinidamente em um estado de solicitação de reinicialização até que os outros hosts FPGA inicializem a memória de inicialização do processador.
· Em um sistema onde você precisa redefinir o núcleo do processador Nios V sem interromper o resto do sistema, você pode ativar o sinal reset_req para interromper completamente a operação atual do núcleo e reiniciar o processador a partir do vetor de redefinição assim que o sistema liberar o sinal reset_req_ack.
· Um host externo pode usar a interface de solicitação de reinicialização para facilitar as implementações das seguintes tarefas:
— Interrompa o programa atual do processador Nios V.
— Carregue um novo programa na memória de inicialização do processador Nios V.
— Permita que o processador comece a executar o novo programa.
A Altera recomenda implementar um mecanismo de tempo limite para monitorar o estado do sinal reset_req_ack. Se o núcleo do processador Nios V entrar em um estado de espera infinito e travar por um motivo desconhecido, o reset_req_ack não poderá ser ativado indefinidamente. O mecanismo de tempo limite permite:
· Defina um período de tempo limite de recuperação e execute a recuperação do sistema com redefinição do nível do sistema.
· Execute uma reinicialização de nível de hardware.
2.4.3. Redefinir IP de liberação
Dispositivos baseados em SDM da Altera utilizam uma arquitetura paralela baseada em setores que distribui a lógica da malha central entre vários setores. A Altera recomenda o uso do IP do FPGA Altera Reset Release como uma das entradas iniciais para o circuito de reset. Dispositivos baseados em SDM da Intel® incluem dispositivos Stratix® 10 e AgilexTM. Dispositivos baseados em blocos de controle não são afetados por este requisito.
Informações relacionadas
AN 891: Usando o Reset Release Altera FPGA IP
2.5. Atribuição de um Agente Padrão
O Platform Designer permite que você especifique um agente padrão que atua como agente padrão de resposta a erros. O agente padrão designado fornece um serviço de resposta a erros para hosts que tentam acessos não decodificados ao mapa de endereços.
Os seguintes cenários acionam um evento não decodificado:
· Violação do estado de segurança da transação de barramento
· Acesso de transação a uma região de memória indefinida
· Evento de exceção e etc.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 37
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Um agente padrão deve ser atribuído para lidar com tais eventos, onde uma transação indefinida é redirecionada para o agente padrão e posteriormente responde ao processador Nios V com uma resposta de erro.
Informações relacionadas
· Guia do Usuário do Quartus Prime Pro Edition: Designer de Plataforma. Designando um Agente Padrão
· Guia do Usuário do Quartus Prime Pro Edition: Designer de Plataforma. Resposta de Erro Slave Altera FPGA IP
· Github – Componentes de redefinição suplementares para Qsys
2.6. Atribuindo um Agente UART para Impressão
A impressão é útil para depurar o aplicativo de software, bem como para monitorar o status do sistema. A Altera recomenda imprimir informações básicas, como uma mensagem de inicialização, uma mensagem de erro e o andamento da execução do aplicativo de software.
Evite usar a função de biblioteca printf() nas seguintes circunstâncias: · A biblioteca printf() faz com que o aplicativo pare se nenhum host estiver lendo a saída.
Isto é aplicável ao JTAG Somente UART. · A biblioteca printf() consome grandes quantidades de memória do programa.
2.6.1. Prevenção de estol pelo JTAG UART
Tabela 23. Diferenças entre UART tradicional e JTAG UART
Tipo UART UART tradicional
Descrição
Transmite dados seriais independentemente de um host externo estar escutando. Se nenhum host ler os dados seriais, os dados serão perdidos.
JTAG UART
Grava os dados transmitidos em um buffer de saída e depende de um host externo para ler o buffer e esvaziá-lo.
O JTAG O driver UART aguarda quando o buffer de saída está cheio. O JTAG O driver UART aguarda que um host externo leia o buffer de saída antes de gravar mais dados de transmissão. Esse processo evita a perda de dados de transmissão.
No entanto, quando a depuração do sistema não é necessária, como durante a produção, os sistemas embarcados são implantados sem um PC host conectado ao JTAG UART. Se o sistema selecionou o JTAG UART como agente UART pode causar travamento do sistema porque nenhum host externo está conectado.
Para evitar a paralisação de JTAG UART, aplique uma das seguintes opções:
Manual de Projeto do Processador Embarcado Nios® V 38
Enviar feedback
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Tabela 24. Prevenção de Paralisação por JTAG UART
Opções
Nenhuma interface UART e driver presentes
Use outra interface UART e driver
Preserve JTAG Interface UART (sem driver)
Durante o desenvolvimento de hardware (no Platform Designer)
Durante o desenvolvimento de software (no editor de pacotes de suporte da placa)
Remover JTAG UART do sistema
Configure hal.stdin, hal.stdout e hal.stderr como Nenhum.
Substituir JTAG UART com outros soft Configure hal.stdin, hal.stdout e hal.stderr
UART IP
com outro IP UART suave.
Preserve JTAG UART no sistema
· Configure hal.stdin, hal.stdout e hal.stderr como Nenhum no Editor de Pacotes de Suporte da Placa.
· Desabilitar JTAG Driver UART na aba Driver BSP.
2.7. EuTAG Sinais
O módulo de depuração do processador Nios V usa o JTAG interface para download do software ELF e depuração de software. Ao depurar seu projeto com o JTAG interface, o JTAG Os sinais TCK, TMS, TDI e TDO são implementados como parte do projeto. Especificando o JTAG restrições de sinal em cada sistema de processador Nios V são uma consideração importante de projeto do sistema e são necessárias para correção e comportamento determinístico.
A Altera recomenda que a frequência do clock do sistema de qualquer projeto seja pelo menos quatro vezes maior que a JTAG frequência de clock para garantir que o núcleo de instrumentação no chip (OCI) funcione corretamente.
Informações relacionadas · Livro de receitas do analisador de temporização Quartus® Prime: JTAG Sinais
Para mais informações sobre J.TAG diretrizes de restrições de tempo. · KDB: Por que o niosv-download falha com um processador Nios® V/m não pipelined em
JTAG frequência 24MHz ou 16Mhz?
2.8. Otimizando o desempenho do sistema do Platform Designer
O Platform Designer fornece ferramentas para otimizar o desempenho da interconexão do sistema para projetos Altera FPGA.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 39
2. Projeto do sistema de hardware do processador Nios V com o software Quartus Prime e o Platform Designer
726952 | 2025.07.16
Figura 25. Otimização Exampos
O exampo mostrado na figura demonstra as seguintes etapas:
1. Adiciona a Pipeline Bridge para aliviar os caminhos críticos, colocando-a: a. Entre o Gerenciador de Instruções e seus agentes b. Entre o Gerenciador de Dados e seus agentes
2. Aplique True Dual Port On-Chip RAM, com cada porta dedicada ao Gerenciador de Instruções e ao Gerenciador de Dados, respectivamente
Manual de Projeto do Processador Embarcado Nios® V 40
Enviar feedback
2. Projeto de sistema de hardware do processador Nios V com software Quartus Prime e Platform Designer 726952 | 2025.07.16/XNUMX/XNUMX
Consulte os seguintes links relacionados abaixo, que apresentam técnicas para aproveitar as ferramentas disponíveis e as compensações de cada implementação.
Informações relacionadas · Guia do usuário do Quartus® Prime Pro Edition: Designer de plataforma
Consulte o tópico Otimizando o desempenho do sistema Platform Designer para obter mais informações. · Guia do usuário do Quartus® Prime Standard Edition: Platform Designer Consulte o tópico Otimizando o desempenho do sistema Platform Designer para obter mais informações.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 41
726952 | 2025.07.16 Enviar comentários
3. Projeto do sistema de software do processador Nios V
Este capítulo descreve o fluxo de desenvolvimento do software do processador Nios V e as ferramentas de software que você pode usar no desenvolvimento do seu sistema de projeto embarcado. O conteúdo serve como um guia geral.view antes de desenvolver um sistema de software de processador Nios V.
Figura 26. Fluxo de projeto de software
Começar
Gere o BSP no Platform Designer usando o Editor BSP
Gerar o BSP usando o shell de comando do Nios V
Gerar a compilação do aplicativo CMake File Usando o shell de comando Nios V
Observação:
Importar o BSP e o Application CMake Build File
Crie o aplicativo do processador Nios V usando o
IDE RiscFree para Intel FPGA
Crie o aplicativo do processador Nios V usando qualquer
editor de código-fonte de linha de comando, CMake e Make
comandos
Fim
A Altera recomenda o uso de um kit de desenvolvimento FPGA da Altera ou de uma placa de protótipo personalizada para desenvolvimento e depuração de software. Muitos periféricos e recursos de nível de sistema estão disponíveis apenas quando o software é executado em uma placa real.
© Altera Corporation. Altera, o logotipo da Altera, o logotipo `a' e outras marcas da Altera são marcas registradas da Altera Corporation. A Altera reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento, sem aviso prévio. A Altera não assume qualquer responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Altera. Recomenda-se aos clientes da Altera que obtenham a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
3. Projeto de Sistema de Software do Processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
3.1. Fluxo de desenvolvimento de software do processador Nios V
3.1.1. Projeto de Pacote de Suporte ao Conselho
Um projeto de Pacote de Suporte de Placa (BSP) Nios V é uma biblioteca especializada que contém código de suporte específico do sistema. Um BSP fornece um ambiente de execução de software personalizado para um processador em um sistema de hardware de processador Nios V.
O software Quartus Prime fornece o Nios V Board Support Package Editor e as ferramentas utilitárias niosv-bsp para modificar as configurações que controlam o comportamento do BSP.
Um BSP contém os seguintes elementos: · Camada de abstração de hardware · Drivers de dispositivo · Pacotes de software opcionais · Sistema operacional em tempo real opcional
3.1.2. Projeto de Aplicação
Um projeto de aplicativo Nios VC/C++ tem os seguintes recursos: · Consiste em uma coleção de código-fonte e um CMakeLists.txt.
— O CMakeLists.txt compila o código-fonte e o vincula a um BSP e uma ou mais bibliotecas opcionais, para criar um .elf file
· Uma das fontes files contém a função main(). · Inclui código que chama funções em bibliotecas e BSPs.
A Altera fornece a ferramenta utilitária niosv-app nas ferramentas utilitárias de software Quartus Prime para criar o aplicativo CMakeLists.txt e o IDE RiscFree para FPGAs Altera para modificar o código-fonte em um ambiente baseado em Eclipse.
3.2. Ferramentas de desenvolvimento embarcadas Altera FPGA
O processador Nios V suporta as seguintes ferramentas para desenvolvimento de software: · Interface gráfica do usuário (GUI) – Ferramentas de desenvolvimento gráfico que estão disponíveis em
Sistemas Operacionais (SO) Windows* e Linux*. — Editor de Pacotes de Suporte à Placa Nios V (Editor BSP Nios V) — IDE Ashling RiscFree para FPGAs Altera · Ferramentas de Linha de Comando (CLI) – Ferramentas de desenvolvimento que são iniciadas a partir do Shell de Comando do Nios V. Cada ferramenta fornece sua própria documentação na forma de ajuda acessível a partir da linha de comando. Abra o Shell de Comando do Nios V e digite o seguinte comando: –ajudar a view o menu Ajuda. — Ferramentas de utilitários do Nios V — File Ferramentas de conversão de formato — Outras ferramentas de utilidade
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 43
3. Projeto de Sistema de Software do Processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Tabela 25. Resumo das tarefas das ferramentas da GUI e das ferramentas de linha de comando
Tarefa
Ferramenta GUI
Ferramenta de linha de comando
Criando um BSP
Nios V BSP Editor
· No software Quartus Prime Pro Edition: niosv-bsp -c -s=<.qsys file> -t= [OPÇÕES] settings.bsp
· No software Quartus Prime Standard Edition: niosv-bsp -c -s=<.sopcinfo file> -t= [OPÇÕES] settings.bsp
Gerando um BSP usando .bsp existente file
Atualizando um BSP
Editor Nios V BSP Editor Nios V BSP
niosv-bsp -g [OPÇÕES] settings.bsp niosv-bsp -u [OPÇÕES] settings.bsp
Examinando um BSP
Nios V BSP Editor
niosv-bsp -q -E= [OPÇÕES] settings.bsp
Criando um aplicativo
–
niosv-app -a= -b= -s= filediretório s> [OPÇÕES]
Criando uma biblioteca de usuário
–
niosv-app -l= -s= filediretório s> -p= [OPÇÕES]
Modificando um aplicativo Modificando uma biblioteca de usuário Construindo um aplicativo
IDE RiscFree para FPGAs Altera
IDE RiscFree para FPGAs Altera
IDE RiscFree para FPGAs Altera
Qualquer editor de código-fonte de linha de comando
Qualquer editor de código-fonte de linha de comando
· fazer · cmake
Construindo uma biblioteca de usuários
IDE RiscFree para FPGAs Altera
· fazer · cmake
Baixando um aplicativo ELF
Convertendo o .elf file
IDE RiscFree para FPGAs Altera
–
niosv-download
· elf2flash · elf2hex
Informações relacionadas
Guia do usuário do ambiente de desenvolvimento integrado (IDE) Ashling RiscFree para FPGAs Altera
3.2.1. Editor de Pacotes de Suporte para Placas Processadoras Nios V
Você pode usar o Editor BSP do processador Nios V para executar as seguintes tarefas: · Criar ou modificar um projeto BSP do processador Nios V · Editar configurações, regiões do vinculador e mapeamentos de seção · Selecionar pacotes de software e drivers de dispositivo.
Os recursos do Editor BSP incluem os recursos dos utilitários niosv-bsp. Qualquer projeto criado no Editor BSP também pode ser criado usando os utilitários de linha de comando.
Manual de Projeto do Processador Embarcado Nios® V 44
Enviar feedback
3. Projeto de Sistema de Software do Processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Observação:
Para o software Quartus Prime Standard Edition, consulte AN 980: Nios V Processor Quartus Prime Software Support para obter as etapas para invocar a GUI do BSP Editor.
Para iniciar o Editor BSP, siga estas etapas: 1. Abra o Platform Designer e navegue até o File menu.
a. Para abrir uma configuração BSP existente file, clique em Abrir… b. Para criar um novo BSP, clique em Novo BSP… 2. Selecione a guia Editor de BSP e forneça os detalhes apropriados.
Figura 27. Inicie o Editor BSP
Informações relacionadas AN 980: Processador Nios V Suporte de software Quartus Prime
3.2.2. IDE RiscFree para FPGAs Altera
O IDE RiscFree para FPGAs Altera é um IDE baseado em Eclipse para o processador Nios V. A Altera recomenda que você desenvolva o software do processador Nios V neste IDE pelos seguintes motivos: · Os recursos são desenvolvidos e verificados para serem compatíveis com o Nios V
fluxo de construção do processador. · Equipado com todas as cadeias de ferramentas necessárias e ferramentas de suporte que permitem que você
para iniciar facilmente o desenvolvimento do processador Nios V.
Informações relacionadas: Guia do usuário do ambiente de desenvolvimento integrado (IDE) Ashling RiscFree para FPGAs Altera
3.2.3. Ferramentas de utilitários do Nios V
Você pode criar, modificar e compilar programas Nios V com comandos digitados em uma linha de comando ou incorporados em um script. As ferramentas de linha de comando do Nios V descritas nesta seção estão no Diretório /niosv/bin.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 45
3. Projeto de Sistema de Software do Processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Tabela 26. Ferramentas de utilitários do Nios V
Ferramentas de linha de comando
Resumo
aplicativo niosv, niosv-bsp, download niosv, shell niosv, relatório de pilha niosv
Para gerar e configurar um projeto de aplicação.
Para criar ou atualizar as configurações do BSP file e criar o BSP files. Para baixar o ELF file para um processador Nios® V.
Para abrir o Shell de Comando do Nios V. Para informá-lo sobre o espaço de memória restante disponível para o seu aplicativo .elf para uso de pilha ou heap.
3.2.4. File Ferramentas de conversão de formato
File A conversão de formato às vezes é necessária ao passar dados de um utilitário para outro. file ferramentas de conversão de formato estão em
diretório de instalação do software>/niosv/bin.
Tabela 27. File Ferramentas de conversão de formato
Ferramentas de linha de comando elf2flash elf2hex
Resumo Para traduzir o .elf file para o formato .srec para programação em memória flash. Para traduzir o .elf file para o formato .hex para inicialização de memória.
3.2.5. Outras ferramentas de utilidade
Você pode precisar das seguintes ferramentas de linha de comando ao construir um sistema baseado no processador Nios V. Essas ferramentas de linha de comando são fornecidas pela Intel em /quartus/bin ou adquirido de
ferramentas de código aberto.
Tabela 28. Outras ferramentas de linha de comando
Ferramentas de linha de comando
Tipo
Resumo
juart-terminal
Fornecido pela Intel
Para monitorar stdout e stderr e fornecer entrada para um processador Nios® V
subsistema através de stdin. Esta ferramenta se aplica somente ao JTAG IP UART quando conectado ao processador Nios® V.
openocd
Fornecido pela Intel para executar o OpenOCD.
openocd-cfg-gen
Fornecido pela Intel · Para gerar a configuração do OpenOCD file. · Para exibir JTAG índice do dispositivo de cadeia.
Manual de Projeto do Processador Embarcado Nios® V 46
Enviar feedback
726952 | 2025.07.16 Enviar comentários
4. Soluções de configuração e inicialização do processador Nios V
Você pode configurar o processador Nios V para inicializar e executar software a partir de diferentes locais de memória. A memória de inicialização é a Quad Serial Peripheral Interface (QSPI), a memória on-chip (OCRAM) ou a memória tightly coupled (TCM).
Informações relacionadas · Condições de acionamento de inicialização na página 193 · Acionadores de inicialização
Para mais informações sobre gatilhos de inicialização.
4.1. Introdução
O processador Nios V suporta dois tipos de processos de inicialização: · Execute-in-Place (XIP) usando a função alt_load() · Programa copiado para a RAM usando o copiador de inicialização. O desenvolvimento de programas embarcados Nios V é baseado na camada de abstração de hardware (HAL). O HAL fornece um pequeno programa carregador de inicialização (também conhecido como copiador de inicialização) que copia seções relevantes do vinculador da memória de inicialização para seu local de tempo de execução no momento da inicialização. Você pode especificar os locais de tempo de execução da memória de programa e dados manipulando as configurações do Editor do Pacote de Suporte de Placa (BSP). Esta seção descreve: · Copiador de inicialização do processador Nios V que inicializa o sistema do seu processador Nios V de acordo com
seleção de memória de inicialização · opções de inicialização do processador Nios V e fluxo geral · soluções de programação Nios V para a memória de inicialização selecionada
4.2. Vinculando aplicativos
Ao gerar o projeto do processador Nios V, o Editor BSP gera dois vinculadores relacionados files: · linker.x: O comando do vinculador file que a aplicação gerada fazfile usos
para criar o binário .elf file· linker.h: Contém informações sobre o layout da memória do vinculador. Todas as modificações nas configurações do vinculador feitas no projeto BSP afetam o conteúdo desses dois vinculadores. files. Cada aplicação do processador Nios V contém as seguintes seções do vinculador:
© Altera Corporation. Altera, o logotipo da Altera, o logotipo `a' e outras marcas da Altera são marcas registradas da Altera Corporation. A Altera reserva-se o direito de fazer alterações em quaisquer produtos e serviços a qualquer momento, sem aviso prévio. A Altera não assume qualquer responsabilidade ou obrigação decorrente da aplicação ou uso de qualquer informação, produto ou serviço aqui descrito, exceto conforme expressamente acordado por escrito pela Altera. Recomenda-se aos clientes da Altera que obtenham a versão mais recente das especificações do dispositivo antes de confiar em qualquer informação publicada e antes de fazer pedidos de produtos ou serviços. *Outros nomes e marcas podem ser reivindicados como propriedade de terceiros.
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Tabela 29. Seções do Linker
.texto
Seções do vinculador
.rodata
.rwdata
.bss
.pilha
.pilha
Descrições Código executável. Quaisquer dados somente leitura usados na execução do programa. Armazena dados de leitura e gravação usados na execução do programa. Contém dados estáticos não inicializados. Contém memória alocada dinamicamente. Armazena parâmetros de chamada de função e outros dados temporários.
Você pode adicionar seções de vinculador adicionais ao .elf file para armazenar código e dados personalizados. Essas seções do vinculador são colocadas em regiões de memória nomeadas, definidas para corresponder aos dispositivos e endereços de memória física. Por padrão, o Editor BSP gera automaticamente essas seções do vinculador. No entanto, você pode controlar as seções do vinculador para um aplicativo específico.
4.2.1. Comportamento de vinculação
Esta seção descreve o comportamento de vinculação padrão do Editor BSP e como controlar o comportamento de vinculação.
4.2.1.1. Vinculação BSP padrão
Durante a configuração do BSP, as ferramentas executam as seguintes etapas automaticamente:
1. Atribuir nomes de regiões de memória: Atribuir um nome a cada dispositivo de memória do sistema e adicionar cada nome ao vinculador file como uma região de memória.
2. Encontre a maior memória: Identifique a maior região de memória de leitura e gravação no vinculador file.
3. Atribuir seções do vinculador: coloque as seções do vinculador padrão (.text, .rodata, .rwdata, .bss, .heap e .stack) na região de memória identificada na etapa anterior.
4. Escrever files: Escreva o linker.x e o linker.h files.
Normalmente, o esquema de alocação de seção do vinculador funciona durante o processo de desenvolvimento de software porque o aplicativo tem garantia de funcionamento se a memória for grande o suficiente.
As regras para o comportamento de vinculação padrão estão contidas nos scripts Tcl gerados pela Altera bsp-set-defaults.tcl e bsp-linker-utils.tcl encontrados no Diretório /niosv/scripts/bsp-defaults. O comando niosv-bsp invoca esses scripts. Não os modifique diretamente.
Manual de Projeto do Processador Embarcado Nios® V 48
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
4.2.1.2. Ligação BSP Configurável
Você pode gerenciar o comportamento de vinculação padrão na aba Script do Linker do Editor BSP. Manipule o script do linker usando os seguintes métodos: · Adicionar uma região de memória: Mapeia o nome de uma região de memória para um dispositivo de memória física. · Adicionar um mapeamento de seção: Mapeia o nome de uma seção para uma região de memória. O BSP
O editor permite que você view o mapa de memória antes e depois de fazer alterações.
4.3. Métodos de inicialização do processador Nios V
Existem alguns métodos para inicializar o processador Nios V em dispositivos FPGA Altera. Os métodos para inicializar o processador Nios V variam de acordo com a seleção de memória flash e as famílias de dispositivos.
Tabela 30. Memórias Flash Suportadas com Respectivas Opções de Inicialização
Memórias de inicialização suportadas
Dispositivo
Flash On-Chip (para configuração interna)
Máximo de 10 dispositivos apenas (com IP Flash On-Chip)
Flash QSPI de uso geral (somente para dados do usuário)
Todos os dispositivos FPGA suportados (com IP FPGA de interface flash serial genérica)
Configuração QSPI Flash (para configuração serial ativa)
Baseado em bloco de controle
dispositivos (com genérico
Interface Flash Serial Intel FPGA IP)(2)
Métodos de inicialização do processador Nios V
Localização do tempo de execução do aplicativo
copiadora de inicialização
Aplicação do processador Nios V executada no local a partir do Flash On-Chip
Flash On-Chip (XIP) + OCRAM/RAM externa (para seções de dados graváveis)
função alt_load()
Aplicação do processador Nios V copiada do Flash On-Chip para a RAM usando o copiador de inicialização
OCRAM/RAM externa
Reutilizando o Bootloader via GSFI
Aplicação do processador Nios V executada no local a partir do flash QSPI de uso geral
Flash QSPI de uso geral (XIP) + OCRAM/RAM externa (para seções de dados graváveis)
função alt_load()
Aplicação do processador Nios V copiada do flash QSPI de uso geral para a RAM usando o copiador de inicialização
OCRAM/RAM externa
Carregador de inicialização via GSFI
Aplicação do processador Nios V executada no local a partir da configuração do flash QSPI
Configuração QSPI flash (XIP) + OCRAM/ RAM externa (para seções de dados graváveis)
função alt_load()
Aplicação do processador Nios V copiada da configuração flash QSPI para a RAM usando o copiador de inicialização
OCRAM/ Bootloader de RAM externa via GSFI continua…
(2) Consulte AN 980: Suporte de software do processador Nios V Quartus Prime para obter a lista de dispositivos.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 49
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Memórias de inicialização suportadas
Memória no chip (OCRAM) Memória fortemente acoplada (TCM)
Dispositivo
Dispositivos baseados em SDM (com IP Intel FPGA do cliente de caixa de correio). (2)
Todos os dispositivos Altera FPGA suportados (2)
Todos os dispositivos Altera FPGA suportados (2)
Métodos de inicialização do processador Nios V
Aplicação do processador Nios V copiada da configuração flash QSPI para a RAM usando o copiador de inicialização
Aplicação do processador Nios V executada no local a partir do OCRAM
Aplicação do processador Nios V executada no local pelo TCM
Localização do tempo de execução do aplicativo
copiadora de inicialização
OCRAM/ Bootloader de RAM externa via SDM
OCRAM
função alt_load()
Instrução TCM (XIP) Nenhuma + Dados TCM (para seções de dados graváveis)
Figura 28. Fluxo de inicialização do processador Nios V
Reiniciar
O processador salta para o vetor de reinicialização (início do código de inicialização)
O código do aplicativo pode ser copiado para outro local de memória (dependendo das opções de inicialização)
O código de inicialização inicializa o processador
Dependendo das opções de inicialização, o código de inicialização pode copiar valores iniciais de dados/código para outro espaço de memória (alt_load)
O código de inicialização inicializa o código do aplicativo e o espaço de memória de dados
O código de inicialização inicializa todos os periféricos do sistema com drivers HAL (alt_main)
Entrada para o principal
Informações relacionadas · Guia do usuário do IP do Altera FPGA da interface flash serial genérica
Manual de Projeto do Processador Embarcado Nios® V 50
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
· Guia do usuário do cliente de caixa de correio Altera FPGA IP · AN 980: Processador Nios V Suporte de software Quartus Prime
4.4. Introdução aos métodos de inicialização do processador Nios V
Os sistemas com processador Nios V exigem que as imagens de software sejam configuradas na memória do sistema antes que o processador possa começar a executar o programa aplicativo. Consulte as Seções do Linker para ver as seções padrão do linker.
O Editor BSP gera um script do vinculador que executa as seguintes funções: · Garante que o software do processador esteja vinculado de acordo com as configurações do vinculador
do editor BSP e determina onde o software reside na memória. · Posiciona a região de código do processador no componente de memória de acordo com o
componentes de memória atribuídos.
A seção a seguir descreve brevemente os métodos de inicialização do processador Nios V disponíveis.
4.4.1. Aplicação do processador Nios V executada no local a partir do flash de inicialização
A Altera projetou os controladores flash de forma que o espaço de endereço flash de inicialização seja imediatamente acessível ao processador Nios V após a reinicialização do sistema, sem a necessidade de inicializar o controlador de memória ou os dispositivos de memória. Isso permite que o processador Nios V execute o código do aplicativo armazenado nos dispositivos de inicialização diretamente, sem usar uma copiadora de inicialização para copiar o código para outro tipo de memória. Os controladores flash são: Flash On-Chip com IP Flash On-Chip (somente no dispositivo MAX® 10); Flash QSPI de uso geral com IP de Interface Flash Serial Genérico; Flash QSPI de configuração com IP de Interface Flash Serial Genérico (exceto MAX 10).
dispositivos)
Quando o aplicativo do processador Nios V é executado no local a partir do flash de inicialização, o Editor BSP executa as seguintes funções: · Define as seções do vinculador .text para a região da memória flash de inicialização. · Define as seções do vinculador .bss, .rodata, .rwdata, .stack e .heap para a RAM
região de memória. Você deve habilitar a função alt_load() nas Configurações do BSP para copiar as seções de dados (.rodata, .rwdata, .exceptions) para a RAM após a reinicialização do sistema. A seção de código (.text) permanece na região da memória flash de inicialização.
Informações relacionadas · Guia do usuário do IP do FPGA da interface serial genérica · Guia do usuário da memória flash do usuário Altera MAX 10
4.4.1.1. alt_load()
Você pode habilitar a função alt_load() no código HAL usando o Editor BSP.
Quando usada no fluxo de inicialização de execução no local, a função alt_load() executa as seguintes tarefas:
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 51
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
· Opera como uma mini copiadora de inicialização que copia as seções de memória para a RAM com base nas configurações do BSP.
· Copia seções de dados (.rodata, .rwdata, .exceptions) para a RAM, mas não as seções de código (.text). A seção de código (.text) é somente leitura e permanece na região da memória flash de inicialização. Esse particionamento ajuda a minimizar o uso de RAM, mas pode limitar o desempenho da execução do código, pois os acessos à memória flash são mais lentos do que os acessos à RAM on-chip.
A tabela a seguir lista as configurações e funções do Editor BSP:
Tabela 31. Configurações do Editor BSP
Configuração do Editor BSP hal.linker.enable_alt_load hal.linker.enable_alt_load_copy_rodata hal.linker.enable_alt_load_copy_rwdata hal.linker.enable_alt_load_copy_exceptions
Função Habilita a função alt_load(). alt_load() copia a seção .rodata para a RAM. alt_load() copia a seção .rwdata para a RAM. alt_load() copia a seção .exceptions para a RAM.
4.4.2. Aplicativo do processador Nios V copiado da memória flash de inicialização para a RAM usando o Boot Copier
O processador Nios V e o HAL incluem um copiador de inicialização que fornece funcionalidade suficiente para a maioria dos aplicativos do processador Nios V e é conveniente para implementar com o fluxo de desenvolvimento de software Nios V.
Quando o aplicativo usa um copiador de inicialização, ele define todas as seções do vinculador (.text, .heap, .rwdata, .rodata, .bss, .stack) para uma RAM interna ou externa. Usar o copiador de inicialização para copiar um aplicativo do processador Nios V da memória flash de inicialização para a RAM interna ou externa para execução ajuda a melhorar o desempenho da execução.
Para esta opção de inicialização, o processador Nios V inicia a execução do software copiador de inicialização após a reinicialização do sistema. O software copia o aplicativo da memória flash de inicialização para a RAM interna ou externa. Após a conclusão do processo, o processador Nios V transfere o controle do programa para o aplicativo.
Observação:
Se o copiador de boot estiver em flash, a função alt_load() não precisa ser chamada porque ambas têm a mesma finalidade.
4.4.2.1. Bootloader do Processador Nios V via Interface Flash Serial Genérica
O Bootloader via GSFI é o copiador de boot do processador Nios V que suporta memória flash QSPI em dispositivos baseados em blocos de controle. O Bootloader via GSFI inclui os seguintes recursos:
· Localiza o aplicativo de software na memória não volátil.
· Descompacta e copia a imagem do aplicativo de software para a RAM.
· Alterna automaticamente a execução do processador para o código do aplicativo na RAM após a conclusão da cópia.
Manual de Projeto do Processador Embarcado Nios® V 52
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
A imagem de inicialização está localizada logo após a copiadora de inicialização. Você precisa garantir que o deslocamento de redefinição do processador Nios V aponte para o início da copiadora de inicialização. A Figura: Mapa de Memória para Flash QSPI com Bootloader via GSFI mostra o mapa de memória flash para flash QSPI ao usar uma copiadora de inicialização. Este mapa de memória pressupõe que a memória flash armazene a imagem do FPGA e o software do aplicativo.
Tabela 32. Bootloader via GSFI para núcleo do processador Nios V
Núcleo do processador Nios V
Processador Nios V/m
Carregador de inicialização via GSFI File Localização
/niosv/componentes/bootloader/ niosv_m_bootloader.srec
Processador Nios V/g
/niosv/componentes/bootloader/ niosv_g_bootloader.srec
Figura 29. Mapa de memória para QSPI Flash com Bootloader via GSFI
Dados do cliente (*.hex)
Código de Aplicação
Observação:
Redefinir deslocamento do vetor
copiadora de inicialização
0x01E00000
Imagem FPGA (*.sof)
0x00000000
1. No início do mapa de memória está a imagem FPGA seguida pelos seus dados, que consistem na copiadora de inicialização e no código do aplicativo.
2. Você deve definir o deslocamento de redefinição do processador Nios V no Platform Designer e apontá-lo para o início do copiador de inicialização.
3. O tamanho da imagem FPGA é desconhecido. Você só poderá saber o tamanho exato após a compilação do projeto Quartus Prime. Você deve determinar um limite superior para o tamanho da imagem FPGA Altera. Por exemploampou seja, se o tamanho da imagem FPGA for estimado como menor que 0x01E00000, defina o Reset Offset como 0x01E00000 no Platform Designer, que também é o início da copiadora de inicialização.
4. Uma boa prática de design consiste em definir o deslocamento do vetor de reinicialização em um limite de setor flash para garantir que nenhuma exclusão parcial da imagem FPGA ocorra caso o aplicativo de software seja atualizado.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 53
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
4.4.2.2. Bootloader do Processador Nios V via Gerenciador de Dispositivos Seguros
O Bootloader via Secure Device Manager (SDM) é um código de aplicativo HAL que utiliza o driver HAL IP do Mailbox Client FPGA da Altera para inicialização do processador. A Altera recomenda este aplicativo bootloader ao usar o flash QSPI de configuração em dispositivos baseados em SDM para inicializar o processador Nios V.
Após a reinicialização do sistema, o processador Nios V primeiro inicializa o Bootloader via SDM a partir de uma pequena memória interna e executa o Bootloader via SDM para se comunicar com o flash QSPI de configuração usando o IP do cliente de caixa de correio.
O Bootloader via SDM executa as seguintes tarefas: · Localiza o software Nios V no flash QSPI de configuração. · Copia o software Nios V para a RAM on-chip ou RAM externa. · Alterna a execução do processador para o software Nios V dentro da RAM on-chip ou
RAM externa.
Após a conclusão do processo, o Bootloader via SDM transfere o controle do programa para o aplicativo do usuário. A Altera recomenda a organização da memória conforme descrito em Organização de Memória para Bootloader via SDM.
Figura 30. Fluxo de processo do Bootloader via SDM
Configuração
Clarão
2
Software Nios V
SDM
Dispositivo FPGA baseado em SDM
IP do cliente de caixa de correio
Lógica FPGA Nios V
4 RAM externa
Software Nios V
No chip 4
EMIF
BATER
Memória no chip
IP
Nios V
1
Programas
Bootloader via SDM
3
3
1. O processador Nios V executa o Bootloader via SDM a partir da memória interna do chip.
2. O bootloader via SDM se comunica com o flash de configuração e localiza o software Nios V.
3. O bootloader via SDM copia o software Nios V do Flash de configuração para a RAM interna/RAM externa.
4. O bootloader via SDM alterna a execução do processador Nios V para o software Nios V na RAM interna/RAM externa.
4.4.3. Aplicação do Processador Nios V - Execução no Local a partir do OCRAM
Neste método, o endereço de reinicialização do processador Nios V é definido como o endereço base da memória on-chip (OCRAM). O binário do aplicativo (.hex) file é carregado na OCRAM quando o FPGA é configurado, após o projeto de hardware ser compilado no software Quartus Prime. Assim que o processador Nios V é reiniciado, o aplicativo começa a ser executado e se ramifica para o ponto de entrada.
Manual de Projeto do Processador Embarcado Nios® V 54
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Observação:
· A execução no local do OCRAM não requer copiador de inicialização porque o aplicativo do processador Nios V já está em vigor na reinicialização do sistema.
· A Altera recomenda habilitar alt_load() para este método de inicialização para que o software incorporado se comporte de forma idêntica quando reiniciado sem reconfigurar a imagem do dispositivo FPGA.
· Você deve habilitar a função alt_load() nas Configurações do BSP para copiar a seção .rwdata ao reiniciar o sistema. Neste método, os valores iniciais das variáveis inicializadas são armazenados separadamente das variáveis correspondentes para evitar sobrescrever na execução do programa.
4.4.4. Aplicação do Processador Nios V - Execução no Local a partir do TCM
O método execute-in-place define o endereço de reinicialização do processador Nios V para o endereço base da memória fortemente acoplada (TCM). O binário do aplicativo (.hex) file é carregado no TCM quando você configura o FPGA após compilar o projeto de hardware no software Quartus Prime. Assim que o processador Nios V é reiniciado, o aplicativo começa a ser executado e ramifica para o ponto de entrada.
Observação:
O Execute-In-Place do TCM não requer copiador de inicialização porque o aplicativo do processador Nios V já está em vigor na reinicialização do sistema.
4.5. Inicialização do processador Nios V a partir do On-Chip Flash (UFM)
A inicialização e a execução de software do processador Nios V a partir do flash on-chip (UFM) estão disponíveis em dispositivos FPGA com no máximo 10 unidades. O processador Nios V suporta as duas opções de inicialização a seguir usando o flash on-chip no modo de configuração interna:
· O aplicativo do processador Nios V é executado no local a partir do On-Chip Flash.
· O aplicativo do processador Nios V é copiado do On-Chip Flash para a RAM usando o copiador de inicialização.
Tabela 33. Memórias Flash Suportadas com respectivas Opções de Inicialização
Memórias de inicialização suportadas
Métodos de inicialização do Nios V
Localização do tempo de execução do aplicativo
copiadora de inicialização
Somente MÁXIMO 10 dispositivos (com IP Flash OnChip)
Aplicação do processador Nios V executada no local a partir do Flash On-Chip
Aplicação do processador Nios V copiada do Flash On-Chip para a RAM usando o copiador de inicialização
Flash On-Chip (XIP) + OCRAM/RAM externa (para seções de dados graváveis)
função alt_load()
OCRAM/RAM externa
Reutilizando o Bootloader via GSFI
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 55
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Figura 31.
Design, configuração e fluxo de inicialização
Design · Crie seu projeto baseado no processador Nios V usando o Platform Designer. · Certifique-se de que haja RAM externa ou RAM no chip no design do sistema.
Configuração e Compilação de FPGA
· Defina o mesmo modo de configuração interna no On-chip Flash IP no Platform Designer e no software Quartus Prime. · Defina o agente de redefinição do processador Nios V como On-chip Flash. · Escolha seu método de inicialização UFM preferido. · Gere seu design no Platform Designer. · Compile seu projeto no software Quartus Prime.
Projeto BSP de aplicação de usuário · Criar HAL BSP do processador Nios V baseado em .sopcinfo file criado pelo Platform Designer. · Editar as configurações do BSP do processador Nios V e o script do vinculador no Editor BSP. · Gerar projeto BSP.
Projeto de aplicativo de usuário · Desenvolver código de aplicativo do processador Nios V. · Compilar aplicativo do processador Nios V e gerar aplicativo do processador Nios V (.hex) file. · Recompile seu projeto no software Quartus Prime se você marcar a opção Inicializar conteúdo de memória no Intel FPGA On-Chip Flash IP.
Programação Files Conversão, download e execução · Gerar o Flash On-Chip .pof file usando programação de conversão Files recurso no software Quartus Prime.
· Programar o .pof file no seu dispositivo MAX 10. · Desligue e ligue novamente o seu hardware.
4.5.1. Descrição do Flash On-Chip FPGA MAX 10
Os dispositivos FPGA MAX 10 contêm flash no chip que é segmentado em duas partes: · Memória Flash de Configuração (CFM) — armazena os dados de configuração do hardware para
MÁXIMO 10 FPGAs. · Memória Flash do Usuário (UFM) — armazena dados do usuário ou aplicativos de software.
A arquitetura UFM do dispositivo MAX 10 é uma combinação de IPs soft e hard. Você só pode acessar o UFM usando o núcleo de IP Flash On-Chip do software Quartus Prime.
O núcleo IP Flash no chip oferece suporte aos seguintes recursos: · Acessos de leitura ou gravação aos setores UFM e CFM (se habilitado no Platform Designer)
usando a interface de controle e dados do Avalon MM. · Suporta apagamento de página, apagamento de setor e gravação de setor. · Modelo de simulação para acessos de leitura/gravação UFM usando várias ferramentas de simulação EDA.
Manual de Projeto do Processador Embarcado Nios® V 56
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Tabela 34. Regiões de Flash no chip em dispositivos FPGA MAX 10
Regiões Flash
Funcionalidade
Memória Flash de Configuração (setores CFM0-2)
Configuração de FPGA file armazenar
Memória Flash do Usuário (setores UFM0-1)
Aplicação do processador Nios V e dados do usuário
Os dispositivos FPGA MAX 10 suportam vários modos de configuração, e alguns deles permitem que CFM1 e CFM2 sejam usados como uma região UFM adicional. A tabela a seguir mostra o local de armazenamento das imagens de configuração do FPGA com base nos modos de configuração do FPGA MAX 10.
Tabela 35. Local de armazenamento de imagens de configuração do FPGA
Modo de configuração Imagens duplamente compactadas
Imagem compactada CFM2 2
CFM1
Imagem compactada CFM0 1
Imagem única não compactada
UFM Virtual
Imagem descompactada
Imagem única descompactada com inicialização de memória
Imagem descompactada (com conteúdo de memória pré-inicializado no chip)
Imagem compactada única com inicialização de memória Imagem compactada (com conteúdo de memória pré-inicializado no chip)
Imagem compactada única
UFM Virtual
Imagem compactada
Você deve usar o núcleo Flash IP On-chip para acessar a memória flash em no máximo 10 FPGAs. Você pode instanciar e conectar o Flash IP On-chip ao software Quartus Prime. O processador de núcleo mole Nios V usa as interconexões do Platform Designer para se comunicar com o Flash IP On-chip.
Figura 32. Conexão entre o IP Flash On-chip e o processador Nios V
Observação:
Certifique-se de que a porta CSR do Flash no chip esteja conectada ao data_manager do processador Nios V para permitir que o processador controle as operações de gravação e exclusão.
O núcleo IP Flash no chip pode fornecer acesso a cinco setores flash: UFM0, UFM1, CFM0, CFM1 e CFM2.
Informações importantes sobre os setores UFM e CFM: · Os setores CFM são destinados ao armazenamento de dados de configuração (fluxo de bits) (*.pof).
· Os dados do usuário podem ser armazenados nos setores do UFM e podem ser ocultados, se as configurações corretas forem selecionadas na ferramenta Platform Designer.
· Certos dispositivos não possuem um setor UFM1. Você pode consultar a tabela: Tamanho dos Setores UFM e CFM para ver os setores disponíveis em cada dispositivo FPGA MAX 10.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 57
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
· Você pode configurar o CFM2 como um UFM virtual selecionando o modo de configuração Imagem Única Não Compactada.
· Você pode configurar CFM2 e CFM1 como um UFM virtual selecionando o modo de configuração Imagem Única Não Compactada.
· O tamanho de cada setor varia de acordo com os dispositivos MAX 10 FPGA selecionados.
Tabela 36.
Tamanho do setor UFM e CFM
Esta tabela lista as dimensões dos conjuntos UFM e CFM.
Dispositivo
Páginas por setor
UFM1 UFM0 CFM2 CFM1 CFM0
Tamanho da página (Kbit)
Usuário máximo
Tamanho da memória flash (Kbit) (3)
Tamanho total da memória de configuração (Kbit)
10M02 3
3
0
0
34 16
96
544
10M04 0
8
41 29 70 16
1248
2240
10M08 8
8
41 29 70 16
1376
2240
10M16 4
4
38 28 66 32
2368
4224
10M25 4
4
52 40 92 32
3200
5888
10M40 4
4
48 36 84 64
5888
10752
10M50 4
4
48 36 84 64
5888
10752
Tamanho OCRAM (Kbit)
108 189 378 549 675 1260 1638
Informações relacionadas · Guia do usuário de configuração do FPGA MAX 10 · Guia do usuário da memória flash do usuário Altera MAX 10
4.5.2. Aplicação do Processador Nios V - Execução no Local a partir do UFM
A solução Execute-In-Place da UFM é adequada para aplicações com processador Nios V que exigem uso limitado de memória on-chip. A função alt_load() opera como um mini copiador de boot que copia as seções de dados (.rodata, .rwdata ou .exceptions) da memória de boot para a RAM com base nas configurações do BSP. A seção de código (.text),
que é uma seção somente leitura, permanece na região de memória flash on-chip MAX 10. Essa configuração minimiza o uso de RAM, mas pode limitar o desempenho da execução do código, pois o acesso à memória flash é mais lento do que à RAM on-chip.
O aplicativo do processador Nios V é programado no setor UFM. O vetor de reinicialização do processador Nios V aponta para o endereço base UFM para executar o código do UFM após a reinicialização do sistema.
Se você estiver usando o depurador de nível de código-fonte para depurar seu aplicativo, precisará usar um ponto de interrupção de hardware. Isso ocorre porque o UFM não suporta acesso aleatório à memória, necessário para a depuração de pontos de interrupção suaves.
Observação:
Não é possível apagar ou gravar o UFM enquanto executa a execução no local no MAX 10. Mude para a abordagem do copiador de inicialização se precisar apagar ou gravar o UFM.
(3) O valor máximo possível, que depende do modo de configuração selecionado.
Manual de Projeto do Processador Embarcado Nios® V 58
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Figura 33. Aplicação XIP do processador Nios V da UFM
Máximo de 10 dispositivos
.POF
Nios V Hardware .SOF
Software Nios V .HEX
Programador Quartus
Flash no chip
CFM
Hardware Nios V
UFM
Software Nios V
Configuração interna
IP Flash no chip
Lógica FPGA
Processador Nios V
RAM no chip
Externo
BATER
EMIF
IP
4.5.2.1. Fluxo de Projeto de Hardware
A seção a seguir descreve um método passo a passo para construir um sistema inicializável para um aplicativo de processador Nios V a partir do On-Chip Flash. O exemploampo abaixo foi criado usando o dispositivo MAX 10.
Configurações do componente IP
1. Crie seu projeto de processador Nios V usando Quartus Prime e Platform Designer. 2. Certifique-se de que a RAM externa ou memória on-chip (OCRAM) seja adicionada à sua plataforma
Sistema de designer.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 59
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Figura 34. ExampConexões IP no Platform Designer para inicialização do Nios V a partir do OnChip Flash (UFM)
3. No editor de parâmetros IP do Flash On-Chip, defina o Modo de configuração como um dos seguintes, de acordo com sua preferência de design: · Imagem única não compactada · Imagem única compactada · Imagem única não compactada com inicialização de memória · Imagem única compactada com inicialização de memória
Para obter mais informações sobre imagens compactadas duplas, consulte o Guia do usuário de configuração do FPGA MAX 10 – Atualização remota do sistema.
Observação:
Você deve atribuir acesso oculto a todas as regiões CFM no IP Flash no chip.
Figura 35. Seleção do modo de configuração no editor de parâmetros do Flash no chip
Configurações de IP Flash On-Chip – Inicialização UFM Você pode escolher um dos seguintes métodos de acordo com sua preferência:
Manual de Projeto do Processador Embarcado Nios® V 60
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Observação:
As etapas nos subcapítulos subsequentes (Fluxo de projeto de software e programação) dependem da seleção que você fizer aqui.
· Método 1: Inicializar os dados UFM no SOF durante a compilação
O Quartus Prime inclui os dados de inicialização do UFM no SOF durante a compilação. A recompilação do SOF é necessária se houver alterações nos dados do UFM.
1. Marque Inicializar conteúdo flash e Habilitar inicialização não padrão file.
Figura 36. Inicializar conteúdo Flash e habilitar inicialização não padrão File
2. Especifique o caminho do .hex gerado file (do comando elf2hex) no hexadecimal ou mif criado pelo usuário file.
Figura 37. Adicionando o .hex File Caminho
· Método 2: Combine dados UFM com um SOF compilado durante a geração de POF
Os dados UFM são combinados com o SOF compilado ao converter a programação files. Você não precisa recompilar o SOF, mesmo que os dados do UFM sejam alterados. Durante o desenvolvimento, você não precisa recompilar o SOF. files para alterações no aplicativo. Alterare recomenda este método para desenvolvedores de aplicativos.
1. Desmarque Inicializar conteúdo flash.
Figura 38. Inicializar conteúdo Flash com inicialização não padrão File
Redefinir as configurações do agente para o método de execução no local do processador Nios V
1. No editor de parâmetros do processador Nios V, defina o Reset Agent como On-Chip Flash.
Figura 39. Configurações do editor de parâmetros do processador Nios V com o agente de redefinição definido como Flash no chip
2. Clique em Gerar HDL quando a caixa de diálogo Geração aparecer. 3. Especifique a saída file opções de geração e clique em Gerar.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 61
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Quartus Prime Software Settings 1. In the Quartus Prime software, click Assignments Device Device and Pin
Options Configuration. Set the Configuration mode according to the setting in On-Chip Flash IP. Figure 40. Configuration Mode Selection in Quartus Prime Software
2. Clique em OK para sair da janela Opções de dispositivo e PIN,
3. Clique em OK para sair da janela Dispositivo.
4. Click Processing Start Compilation to compile your project and generate the .sof file.
Observação:
Se a configuração do modo no software Quartus Prime e no editor de parâmetros do Platform Designer for diferente, o projeto Quartus Prime falhará com a seguinte mensagem de erro.
Figura 41.
Mensagem de erro para configuração de modo diferente Erro (14740): O modo de configuração no átomo "q_sys:q_sys_inst| altera_onchip_flash:onchip_flash_1|altera_onchip_flash_block: altera_onchip_flash_block|ufm_block" não corresponde à configuração do projeto. Atualize e gere novamente o sistema Qsys para corresponder à configuração do projeto.
Informações relacionadas Guia do usuário de configuração do FPGA MAX 10
4.5.2.2. Fluxo de Projeto de Software
Esta seção apresenta o fluxo de design para gerar e construir o projeto de software do processador Nios V. Para garantir um fluxo de construção otimizado, recomendamos que você crie uma árvore de diretórios semelhante em seu projeto de design. O fluxo de design de software a seguir se baseia nessa árvore de diretórios.
Para criar a árvore de diretórios do projeto de software, siga estas etapas: 1. Na pasta do seu projeto de design, crie uma pasta chamada software. 2. Na pasta software, crie duas pastas chamadas hal_app e hal_bsp.
Figura 42. Árvore de diretórios do projeto de software
Manual de Projeto do Processador Embarcado Nios® V 62
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Criando o Projeto BSP do Aplicativo
Para iniciar o Editor BSP, siga estas etapas: 1. Entre no Shell de Comando do Nios V. 2. Invoque o Editor BSP com o comando niosv-bsp-editor. 3. No Editor BSP, clique em File Novo BSP para iniciar seu projeto BSP. 4. Configure as seguintes configurações:
· Informações SOPC File nome: Forneça o SOPCINFO file (.sopcinfo). · Nome da CPU: Selecione o processador Nios V. · Sistema operacional: Selecione o sistema operacional do processador Nios V. · Versão: Deixe como padrão. · Diretório de destino do BSP: Selecione o caminho do diretório do projeto BSP. Você pode
pré-definir em /software/hal_bsp habilitando Usar locais padrão. · Configurações do BSP File nome: Digite o nome das configurações do BSP File. · Scripts Tcl adicionais: Forneça um script BSP Tcl habilitando Habilitar script Tcl adicional. 5. Clique em OK.
Figura 43. Configurar novo BSP
Configurando o Editor BSP e Gerando o Projeto BSP
You can define the processor’s exception vector either in On-Chip Memory (OCRAM) or On-Chip Flash based on your design preference. Setting the exception vector memory to OCRAM/External RAM is recommended to make the interrupt processing faster. 1. Go to Main Settings Advanced hal.linker. 2. If you select On-Chip Flash as exception vector,
a. Habilite as seguintes configurações:
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 63
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
· allow_code_at_reset · enable_alt_load · enable_alt_load_copy_rodata · enable_alt_load_copy_rwdata Figura 44. Configurações do Advanced.hal.linker
b. Clique na guia Script do vinculador no Editor BSP. c. Defina as regiões .exceptions e .text no Nome da seção do vinculador para
Flash no chip. d. Defina o restante das regiões na lista Nome da seção do vinculador para o On-Chip
Memória (OCRAM) ou RAM externa.
Figure 45. Linker Region Settings (Exception Vector Memory: On-Chip Flash)
3. If you select OCRAM/External RAM as exception vector, a. Enable the following settings: · allow_code_at_reset · enable_alt_load · enable_alt_load_copy_rodata · enable_alt_load_copy_rwdata · enable_alt_load_copy_exception
Figure 46. Linker Region Settings (Exception Vector Memory: OCRAM/External RAM)
b. Click on the Linker Script tab in the BSP Editor.
c. Set the.text regions in the Linker Section Name to On-Chip Flash.
d. Set the rest of the regions in the Linker Section Name list to the On-Chip Memory (OCRAM) or external RAM.
Manual de Projeto do Processador Embarcado Nios® V 64
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Figure 47. Linker Region Settings (Exception Vector Memory: OCRAM)
4. Click Generate to generate the BSP project. Generating the User Application Project File 1. Navigate to the software/hal_app folder and create your application source
code. 2. Launch the Nios V Command Shell. 3. Execute the command below to generate the application CMakeLists.txt.
niosv-app –app-dir=software/hal_app –bsp-dir=software/hal_bsp –srcs=software/hal_app/<user application>
Building the User Application Project You can choose to build the user application project using Ashling RiscFree IDE for Altera FPGAs or through the command line interface (CLI). If you prefer using CLI, you can build the user application using the following command: cmake -G “Unix Makefiles” -B software/hal_app/build -S software/hal_app make -C software/hal_app/build
The application (.elf) file is created in software/hal_app/build folder. Generating the HEX File You must generate a .hex file from your application .elf file, so you can create a .pof file suitable for programming the devices. 1. Launch the Nios V Command Shell. 2. For Nios V processor application boot from On-Chip Flash, use the following
command line to convert the ELF to HEX for your application. This command creates the user application (onchip_flash.hex) file. elf2hex software/hal_app/build/<user_application>.elf -o onchip_flash.hex
-b <base address of On-Chip Flash UFM region> -w 8 -e <end address of On-Chip Flash UFM region> 3. Recompile the hardware design if you check Initialize memory content option in On-Chip Flash IP (Method 1). This is to include the software data (.HEX) in the SOF file.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 65
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
4.5.2.3. Programming 1. In Quartus Prime, click File Converter Programação Files. 2. Under Output programming file, choose Programmer Object File (.pof) as Programming file type. 3. Set Mode to Internal Configuration.
Figure 48. Convert Programming File Configurações
4. Click Options/Boot info…, the MAX 10 Device Options window appears. 5. Based on the Initialize flash content settings in the On-chip Flash IP, perform
one of the following steps: · If Initialize flash content is checked (Method 1), the UFM initialization data
was included in the SOF duringQuartus Prime compilation. — Select Page_0 for UFM source: option. Click OK and proceed to the
next. Figure 49. Setting Page_0 for UFM Source if Initialize Flash Content is Checked
Manual de Projeto do Processador Embarcado Nios® V 66
Enviar feedback
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
· If Initialize flash content is not checked (Method 2), choose Load memory file for the UFM source option. Browse to the generated On-chip Flash HEX file (onchip_flash.hex) in the File path: and click OK. This step adds UFM data separately to the SOF file during the programming file conversão.
Figure 50. Setting Load Memory File for UFM Source if Initialize Flash Content is Not Checked
6. In the Convert Programming File dialog box, at the Input files to convert section, click Add File… and point to the generated Quartus Prime .sof file.
Figure 51. Input Files to Convert in Convert Programming Files for Single Image Mode
7. Click Generate to create the .pof file. 8. Program the .pof file into your MAX 10 device. 9. Power cycle your hardware.
4.5.3. Nios V Processor Application Copied from UFM to RAM using Boot Copier
Altera recommends this solution for MAX 10 FPGA Nios V processor system designs where multiple iterations of application software development and high system performance are required. The boot copier is located within the UFM at an offset that is the same address as the reset vector. The Nios V application is located next to the boot copier.
For this boot option, the Nios V processor starts executing the boot copier upon system reset to copy the application from the UFM sector to the OCRAM or external RAM. Once copying is complete, the Nios V processor transfers the program control over to the application.
Observação:
The applied boot copier is the same as the Bootloader via GSFI.
Enviar feedback
Manual de Projeto do Processador Embarcado Nios® V 67
4. Soluções de configuração e inicialização do processador Nios V 726952 | 2025.07.16/XNUMX/XNUMX
Figure 52. Nios V Application Copied from UFM to RAM using Boot Copier
Máximo de 10 dispositivos
.POF
Nios V Hardware .SOF
Software Nios V .HEX
Bootloader .SREC
Programador Quartus
RAM externa
Software Nios V
Flash no chip
CFM
Nios V Hardwa
Documentos / Recursos
![]() | altera Nios V Embedded Processor [pdf] Guia do Usuário Nios V, Nios V-m, Nios V-g, Nios V-c, Nios V Embedded Processor, Nios V, Embedded Processor, Processor |