Microsemi AC490 RTG4 FPGA: Construindo um Subsistema de Processador Mi-V
Histórico de revisão
O histórico de revisão descreve as alterações que foram implementadas no documento. As alterações são listadas por revisão, começando com a publicação mais atual.
Revisão 3.0
A seguir, um resumo das alterações feitas nesta revisão.
- Atualizado o documento para Libero SoC v2021.2.
- Figura 1, página 3 atualizada até Figura 3, página 5.
- Figura 4, página 5, Figura 5, página 7 e Figura 18, página 17 substituídas.
- Tabela 2, página 6 e Tabela 3, página 7 atualizadas.
- Apêndice 1 adicionado: Programando o dispositivo usando o FlashPro Express, página 14.
- Apêndice 3 adicionado: Executando o script TCL, página 20.
- Removidas as referências aos números de versão do Libero.
Revisão 2.0
A seguir, um resumo das alterações feitas nesta revisão.
- Adicionadas informações sobre a seleção da porta COM em Configuração do hardware, página 9.
- Atualizado como selecionar a porta COM apropriada em Executando a demonstração, página 11.
Revisão 1.0
A primeira publicação do documento.
Construindo um Subsistema de Processador Mi-V
A Microchip oferece o processador Mi-V IP, um processador RISC-V de 32 bits e uma cadeia de ferramentas de software para desenvolver projetos baseados no processador RISC-V. O RISC-V, uma Arquitetura de Conjunto de Instruções (ISA) padrão aberta sob a governança da Fundação RISC-V, oferece vários benefícios, que incluem permitir que a comunidade de código aberto teste e melhore os núcleos em um ritmo mais rápido do que os ISAs fechados.
Os FPGAs RTG4® suportam o processador soft Mi-V para executar aplicativos do usuário. Esta nota de aplicação descreve como construir um subsistema de processador Mi-V para executar um aplicativo de usuário a partir das RAMs de malha designadas ou memória DDR.
Requisitos de projeto
A tabela a seguir lista os requisitos de hardware e software para executar a demonstração.
Tabela 1 • Requisitos de Projeto
Programas
- Libero® System-on-Chip (SoC)
- Flash Pro Express
- SoftConsole
Observação: Consulte o readme.txt file fornecido no projeto files para as versões de software usadas com este projeto de referência.
Observação: As capturas de tela do Libero SmartDesign e de configuração mostradas neste guia são apenas para fins ilustrativos.
Abra o design Libero para ver as atualizações mais recentes.
Pré-requisitos
Antes de começar:
- Baixe e instale o Libero SoC (conforme indicado no website para este projeto) no PC host a partir do seguinte local: https://www.microsemi.com/product-directory/design-resources/1750-libero-soc
- Para projeto de demonstração filelink para download: http://soc.microsemi.com/download/rsc/?f=rtg4_ac490_df
Descrição do Projeto
O tamanho do RTG4 μPROM é de 57 KB. Os aplicativos do usuário que não excedem o tamanho da μPROM podem ser armazenados na μPROM e executados a partir das memórias internas da Large SRAM (LSRAM). Os aplicativos do usuário que excedem o tamanho da μPROM devem ser armazenados em uma memória externa não volátil. Neste caso, um bootloader executado a partir de μPROM é necessário para inicializar as memórias SRAM internas ou externas com o aplicativo de destino da memória não volátil.
O design de referência demonstra a capacidade do carregador de inicialização para copiar o aplicativo de destino (de tamanho 7 KB) da flash SPI para a memória DDR e executar a partir da memória DDR. O bootloader é executado a partir das memórias internas. A seção de código está localizada em μPROM e a seção de dados está localizada na Large SRAM interna (LSRAM).
Observação: Para mais informações sobre como construir o projeto Mi-V bootloader Libero e como construir o projeto SoftConsole, consulte TU0775: PolarFire FPGA: Building a Mi-V Processor Subsystem Tutorial
A Figura 1 mostra o diagrama de blocos de nível superior do projeto.
Figura 1 • Diagrama de bloco de nível superior
Conforme mostrado na Figura 1, os seguintes pontos descrevem o fluxo de dados do projeto:
- O processador Mi-V executa o bootloader a partir da μPROM e das LSRAMs designadas. O gerenciador de inicialização faz interface com a GUI por meio do bloco CoreUARTapb e aguarda os comandos.
- Quando o comando do programa flash SPI é recebido da GUI, o bootloader programa o flash SPI com o aplicativo de destino recebido da GUI.
- Quando o comando de boot é recebido da GUI, o bootloader copia o código do aplicativo do flash SPI para o DDR e o executa do DDR.
Estrutura de Cronometragem
Existem dois domínios de clock (40 MHz e 20 MHz) no projeto. O oscilador de cristal integrado de 50 MHz é conectado ao bloco PF_CCC, que gera clocks de 40 MHz e 20 MHz. O clock do sistema de 40 MHz controla todo o subsistema do processador Mi-V, exceto μPROM. O clock de 20 MHz aciona o RTG4 μPROM e a interface RTG4 μPROM APB. O RTG4 μPROM suporta uma frequência de clock de até 30 MHz. DDR_FIC é configurado para a interface de barramento AHB, que opera a 40 MHz. A memória DDR opera a 320 MHz.
A Figura 2 mostra a estrutura de temporização.
Figura 2 • Estrutura de Relógio
Redefinir estrutura
Os sinais POWER_ON_RESET_N e LOCK são conectados, e o sinal de saída (INIT_RESET_N) é usado para reinicializar o bloco RTG4FDDRC_INIT. Depois de liberar a reinicialização do FDDR, o controlador FDDR é inicializado e, em seguida, o sinal INIT_DONE é ativado. O sinal INIT_DONE é usado para redefinir o processador Mi-V, periféricos e outros blocos no projeto.
Figura 3 • Estrutura de redefinição
Implementação de Hardware
A Figura 4 mostra o design Libero do design de referência Mi-V.
Figura 4 • Módulo SmartDesign
Observação: A captura de tela do Libero SmartDesign mostrada nesta nota de aplicativo é apenas para fins ilustrativos. Abra o projeto Libero para ver as últimas atualizações e versões de IP.
Blocos de IP
A Figura 2 lista os blocos de IP usados no design de referência do subsistema do processador Mi-V e suas funções.
Tabela 2 • Blocos de IP1
Todos os guias e manuais do usuário IP estão disponíveis em Libero SoC -> Catálogo.
O RTG4 μPROM armazena até 10,400 palavras de 36 bits (374,400 bits de dados). Ele suporta apenas operações de leitura durante a operação normal do dispositivo após a programação do dispositivo. O núcleo do processador MIV_RV32_C0 compreende uma unidade de busca de instruções, um pipeline de execução e um sistema de memória de dados. O sistema de memória do processador MIV_RV32_C0 inclui cache de instruções e cache de dados. O núcleo MIV_RV32_C0 inclui duas interfaces AHB externas - a interface mestre do barramento de memória AHB (MEM) e a interface mestre do barramento AHB Memory Mapped I/O (MMIO). O controlador de cache usa a interface AHB MEM para reabastecer as instruções e os caches de dados. A interface AHB MMIO é usada para um acesso sem cache aos periféricos de E/S.
Os mapas de memória da interface AHB MMIO e da interface MEM são 0x60000000 a 0X6FFFFFFF e 0x80000000 a 0x8FFFFFFF, respectivamente. O endereço do vetor de reset do processador é configurável. O reset do MIV_RV32_C0 é um sinal ativo-baixo, que deve ser desabilitado em sincronia com o relógio do sistema através de um sincronizador de reset.
O processador MIV_RV32_C0 acessa a memória de execução do aplicativo usando a interface AHB MEM. A instância de barramento CoreAHBLite_C0_0 é configurada para fornecer 16 slots escravos, cada um com tamanho de 1 MB. A memória RTG μPROM e os blocos RTG4FDDRC são conectados a este barramento. A μPROM é usada para armazenar o aplicativo bootloader.
O processador MIV_RV32_C0 direciona as transações de dados entre os endereços 0x60000000 e 0x6FFFFFFF para a interface MMIO. A interface MMIO é conectada ao barramento CoreAHBLite_C1_0 para se comunicar com os periféricos conectados aos seus slots escravos. A instância de barramento CoreAHBLite_C1_0 é configurada para fornecer 16 slots escravos, cada um com tamanho de 256 MB. Os periféricos UART, CoreSPI e CoreGPIO são conectados ao barramento CoreAHBLite_C1_0 por meio da ponte CoreAHBTOAPB3 e do barramento CoreAPB3.
Mapa de Memória
A Tabela 3 lista o mapa de memória das memórias e periféricos.
Tabela 3 • Mapa de memória
Implementação de software
O projeto de referência files incluem o espaço de trabalho do SoftConsole que contém os seguintes projetos de software:
- Carregador de inicialização
- Aplicativo de destino
Carregador de inicialização
O aplicativo bootloader é programado na μPROM durante a programação do dispositivo. O bootloader implementa as seguintes funções:
- Programando o SPI Flash com o aplicativo de destino.
- Copiando o aplicativo de destino do SPI Flash para a memória DDR3.
- Alternando a execução do programa para o aplicativo de destino disponível na memória DDR3.
O aplicativo bootloader deve ser executado a partir de μPROM com LSRAM como pilha. Portanto, os endereços de ROM e RAM no script do linker são definidos para o endereço inicial de μPROM e LSRAMs designadas, respectivamente. A seção de código é executada a partir da ROM e a seção de dados é executada a partir da RAM, conforme mostrado na Figura 5.
Figura 5 • Script do Bootloader Linker
O script do vinculador (microsemi-riscv-ram_rom.ld) está disponível no
Pasta SoftConsole_Project\mivrv32im-bootloader do design files.
Aplicativo de destino
O aplicativo de destino pisca os LEDs integrados 1, 2, 3 e 4 e imprime mensagens UART. O aplicativo de destino deve ser executado a partir da memória DDR3. Portanto, as seções de código e pilha no script do vinculador são definidas para o endereço inicial da memória DDR3, conforme mostrado na Figura 6.
Figura 6 • Script do vinculador do aplicativo de destino
O script do linker (microsemi-riscv-ram.ld) está disponível na pasta SoftConsole_Project\miv-rv32imddr- application do design files.
Configurando o hardware
As etapas a seguir descrevem como configurar o hardware:
- Certifique-se de que a placa esteja DESLIGADA usando a chave SW6.
- Conecte os jumpers do kit de desenvolvimento RTG4, conforme tabela a seguir:
Tabela 4 • JumpersPulôver Fixar de Fixar em Comentários J11, J17, J19, J23, J26, J21, J32 e J27 1 2 Padrão J16 2 3 Padrão J33 1 2 Padrão 3 4 - Conecte o PC host ao conector J47 usando o cabo USB.
- Certifique-se de que os drivers da ponte USB para UART sejam detectados automaticamente. Isso pode ser verificado no gerenciador de dispositivos do PC host.
- Conforme mostrado na Figura 7, as propriedades da porta da COM13 mostram que ela está conectada ao USB Serial Converter C. Portanto, a COM13 é selecionada neste example. O número da porta COM é específico do sistema.
Figura 7 • Gerenciador de dispositivos
Observação: Se os drivers da ponte USB para UART não estiverem instalados, baixe e instale os drivers de www.microsemi.com//documents/CDM_2.08.24_WHQL_Certified.zip. - Conecte a fonte de alimentação ao conector J9 e ligue o interruptor da fonte de alimentação, SW6.
Figura 8 • Kit de Desenvolvimento RTG4
Executando a demonstração
Este capítulo descreve as etapas para programar o dispositivo RTG4 com o design de referência, programar o SPI Flash com o aplicativo de destino e inicializar o aplicativo de destino a partir da memória DDR usando a GUI do Mi-V Bootloader.
A execução da demonstração envolve as seguintes etapas:
- Programando o dispositivo RTG4, página 11
- Executando o Mi-V Bootloader, página 11
Programando o Dispositivo RTG4
O dispositivo RTG4 pode ser programado usando FlashPro Express ou Libero SOC.
- Para programar o RTG4 Development Kit com o trabalho file fornecido como parte do projeto fileSe estiver usando o software FlashPro Express, consulte o Apêndice 1: Programando o dispositivo usando o FlashPro Express,página 14.
- Para programar o dispositivo usando o Libero SoC, consulte o Apêndice 2: Programando o dispositivo usando o Libero SoC, página 17.
Executando o gerenciador de inicialização do Mi-V
Após a conclusão bem-sucedida da programação, siga estas etapas:
- Execute o setup.exe file disponível no seguinte design filelocalização.
<$Download_Directory>\rtg4_ac490_df\GUI_Installer\Mi-V Bootloader_Installer_V1.4 - Siga o assistente de instalação para instalar o aplicativo Bootloader GUI.
A Figura 9 mostra a GUI do carregador de inicialização RTG4 Mi-V.
Figura 9 • GUI do gerenciador de inicialização Mi-V - Selecione a porta COM conectada ao USB Serial Converter C, conforme mostrado na Figura 7.
- Clique no botão conectar. Após a conexão bem-sucedida, o indicador vermelho fica verde, conforme mostrado na Figura 10.
Figura 10 • Conecte a porta COM - Clique no botão Importar e selecione o aplicativo de destino file (.bin). Após a importação, o caminho do file é exibido na GUI, conforme mostrado na Figura 11.
<$Download_Directory>\rtg4_ac490_df\Source_files
Figura 11 • Importar o aplicativo de destino File - Conforme mostrado na Figura 11, clique na opção Program SPI Flash para programar o aplicativo de destino no SPI Flash. Um pop-up é exibido após o SPI Flash ser programado, conforme mostrado na Figura 12. Clique em OK.
Figura 12 • Flash SPI programado - Selecione a opção Start Boot para copiar o aplicativo da SPI Flash para a memória DDR3 e começar a executar o aplicativo da memória DDR3. Após a inicialização bem-sucedida do aplicativo de destino a partir da memória DDR3, o aplicativo imprime mensagens UART e pisca os LED1, 2, 3 e 4 do usuário integrado, conforme mostrado na Figura 13.
Figura 13 • Executar aplicativo de DDR - O aplicativo está sendo executado a partir da memória DDR3 e isso conclui a demonstração. Feche a GUI do gerenciador de inicialização do Mi-V.
Programando o dispositivo usando o FlashPro Express
Esta seção descreve como programar o dispositivo RTG4 com o trabalho de programação file usando o FlashPro Express.
Para programar o dispositivo, siga os seguintes passos:
- Certifique-se de que as configurações dos jumpers na placa sejam as mesmas listadas na Tabela 3 do UG0617:
Guia do usuário do kit de desenvolvimento RTG4. - Opcionalmente, o jumper J32 pode ser configurado para conectar os pinos 2-3 ao usar um programador FlashPro4, FlashPro5 ou FlashPro6 externo em vez da configuração padrão do jumper para usar o FlashPro5 incorporado.
Observação: O interruptor da fonte de alimentação, SW6, deve ser DESLIGADO ao fazer as conexões de jumper. - Conecte o cabo da fonte de alimentação ao conector J9 da placa.
- Ligue o interruptor de alimentação SW6.
- Se estiver usando o FlashPro5 integrado, conecte o cabo USB ao conector J47 e ao PC host.
Como alternativa, se estiver usando um programador externo, conecte o cabo plano ao JTAG cabeçalho J22 e conecte o programador ao PC host. - No PC host, inicie o software FlashPro Express.
- Clique em New ou selecione New Job Project em FlashPro Express Job no menu Project para criar um novo projeto de job, conforme mostrado na figura a seguir.
Figura 14 • Projeto de trabalho FlashPro Express - Digite o seguinte na caixa de diálogo New Job Project from FlashPro Express Job:
- Trabalho de programação file: clique em Procurar e navegue até o local onde o .job file está localizado e selecione o file. A localização padrão é: \rtg4_ac490_df\Programming_Job
- Local do projeto de trabalho FlashPro Express: Clique em Procurar e navegue até o local do projeto FlashPro Express desejado.
Figura 15 • Novo projeto de trabalho do FlashPro Express Job
- Clique OK. A programação necessária file está selecionado e pronto para ser programado no dispositivo.
- A janela do FlashPro Express aparece conforme mostrado na figura a seguir. Confirme se um número de programador aparece no campo Programador. Caso contrário, confirme as conexões da placa e clique em Refresh/Rescan Programmers.
Figura 16 • Programação do dispositivo - Clique em EXECUTAR. Quando o dispositivo é programado com sucesso, um status RUN PASSED é exibido conforme mostrado na figura a seguir.
Figura 17 • FlashPro Express—RUN PASSED - Feche o FlashPro Express ou clique em Sair na guia Projeto.
Programando o dispositivo usando Libero SoC
O projeto de referência files incluem o projeto do subsistema do processador Mi-V criado usando Libero SoC. O dispositivo RTG4 pode ser programado usando Libero SoC. O projeto Libero SoC é completamente construído e executado a partir de Síntese, Local e Rota, Verificação de Tempo, Geração de Dados de Array FPGA, Atualização de Conteúdo de Memória μPROM, Geração de Bitstream, Programação FPGA.
O fluxo de design do Libero é mostrado na figura a seguir.
Figura 18 • Fluxo de Design Libero
Para programar o dispositivo RTG4, o projeto do subsistema do processador Mi-V deve ser aberto no Libero SoC e as seguintes etapas devem ser executadas novamente:
- Atualizar o conteúdo da memória uPROM: Nesta etapa, a μPROM é programada com o aplicativo bootloader.
- Geração de Bitstream: Nesta etapa, o Job file é gerado para o dispositivo RTG4.
- Programação FPGA: Nesta etapa, o dispositivo RTG4 é programado usando o Job file.
Siga estes passos:
- No Libero Design Flow, selecione Update uPROM Memory Content.
- Crie um cliente usando a opção Adicionar.
- Selecione o cliente e escolha a opção Editar.
- Selecione o conteúdo de file e, em seguida, selecione a opção Browse, conforme mostrado na Figura 19.
Figura 19 • Editar cliente de armazenamento de dados - Navegue até o seguinte design files e selecione o arquivo miv-rv32im-bootloader.hex file conforme mostrado na Figura 20. <$Download_Directory>\rtg4_ac490_df
- Defina o File Digite como Intel-Hex (*.hex).
- Selecione Usar caminho relativo do diretório do projeto.
- Clique em OK.
Figura 20 • Importar memória File
- Clique em OK.
O conteúdo da μPROM é atualizado. - Clique duas vezes em Generate Bitstream, conforme mostrado na Figura 21.
Figura 21 • Gerar fluxo de bits - Clique duas vezes em Run PROGRAM Action para programar o dispositivo conforme mostrado na Figura 21.
O dispositivo RTG4 está programado. Consulte Executando a demonstração, página 11.
Executando o script TCL
Os scripts TCL são fornecidos no design files dentro do diretório TCL_Scripts. Se necessário, o fluxo de design pode ser reproduzido desde a implementação do design até a geração do trabalho file.
Para executar o TCL, siga os passos abaixo:
- Inicie o software Libero.
- Selecione Projeto > Executar Script….
- Clique em Procurar e selecione script.tcl no diretório TCL_Scripts baixado.
- Clique em Executar.
Após a execução bem-sucedida do script TCL, o projeto Libero é criado no diretório TCL_Scripts.
Para obter mais informações sobre scripts TCL, consulte rtg4_ac490_df/TCL_Scripts/readme.txt.
Consulte o Guia de referência de comandos Libero® SoC TCL para obter mais detalhes sobre os comandos TCL. Contato
Suporte técnico para quaisquer dúvidas encontradas ao executar o script TCL.
A Microsemi não oferece nenhuma garantia, representação ou garantia em relação às informações aqui contidas ou a adequação de seus produtos e serviços para qualquer finalidade específica, nem assume qualquer responsabilidade decorrente da aplicação ou uso de qualquer produto ou circuito. Os produtos vendidos abaixo e quaisquer outros produtos vendidos pela Microsemi foram sujeitos a testes limitados e não devem ser usados em conjunto com equipamentos ou aplicativos de missão crítica. Todas as especificações de desempenho são consideradas confiáveis, mas não são verificadas, e o Comprador deve conduzir e concluir todos os testes de desempenho e outros dos produtos, sozinhos e em conjunto com ou instalados em quaisquer produtos finais. O Comprador não deve confiar em quaisquer dados e especificações de desempenho ou parâmetros fornecidos pela Microsemi. É responsabilidade do Comprador determinar independentemente a adequação de quaisquer produtos e testar e verificar os mesmos. As informações fornecidas pela Microsemi neste instrumento são fornecidas “como estão, onde estão” e com todas as falhas, e todo o risco associado a tais informações é inteiramente do Comprador. A Microsemi não concede, explícita ou implicitamente, a qualquer parte quaisquer direitos de patente, licenças ou quaisquer outros direitos de PI, seja com relação a tais informações em si ou qualquer coisa descrita por tais informações. As informações fornecidas neste documento são de propriedade da Microsemi, e a Microsemi se reserva o direito de fazer quaisquer alterações nas informações contidas neste documento ou em quaisquer produtos e serviços a qualquer momento, sem aviso prévio.
Sobre a Microsemi
A Microsemi, uma subsidiária integral da Microchip Technology Inc. (Nasdaq: MCHP), oferece um portfólio abrangente de soluções de semicondutores e sistemas para os mercados aeroespacial e de defesa, comunicações, data center e industrial. Os produtos incluem circuitos integrados de sinais mistos analógicos de alto desempenho e endurecidos contra radiação, FPGAs, SoCs e ASICs; produtos de gestão de energia; dispositivos de temporização e sincronização e soluções de tempo preciso, definindo o padrão mundial de tempo; dispositivos de processamento de voz; soluções de RF; componentes discretos; soluções corporativas de armazenamento e comunicação, tecnologias de segurança e anti-t escalávelamper produtos; soluções Ethernet; CIs e midspans Power-over-Ethernet; bem como recursos e serviços de design personalizado. Saiba mais em www.microsemi.com.
Sede da Microsemi
Uma Empresa, Aliso Velho,
CA 92656 EUA
Nos EUA: +1 800-713-4113
Fora dos EUA: +1 949-380-6100
Vendas: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com
©2021 Microsemi, uma subsidiária integral da Microchip Technology Inc. Todos os direitos reservados. Microsemi e o logotipo Microsemi são marcas registradas da Microsemi Corporation. Todas as outras marcas comerciais e marcas de serviço são de propriedade de seus respectivos proprietários
Documentos / Recursos
![]() |
Microsemi AC490 RTG4 FPGA: Construindo um Subsistema de Processador Mi-V [pdf] Guia do Usuário AC490 RTG4 FPGA Construindo um subsistema de processador Mi-V, AC490 RTG4, FPGA Construindo um subsistema de processador Mi-V, subsistema de processador Mi-V |