MICROCHIP - logotipo Guia do usuário do fluxo personalizado do FPGA da família PolarFire
Libero SoC v2024.2

Introdução (Faça uma pergunta)

O software Libero System-on-Chip (SoC) oferece um ambiente de projeto de Field Programmable Gate Array (FPGA) totalmente integrado. No entanto, alguns usuários podem querer usar ferramentas de síntese e simulação de terceiros fora do ambiente Libero SoC. O Libero agora pode ser integrado ao ambiente de projeto de FPGA. Recomenda-se o uso do Libero SoC para gerenciar todo o fluxo de projeto de FPGA.
Este guia do usuário descreve o Fluxo Personalizado para dispositivos PolarFire e da Família PolarFire SoC, um processo para integrar o Libero como parte do fluxo de projeto FPGA mais amplo. Famílias de Dispositivos Suportadas® A tabela a seguir lista as famílias de dispositivos suportadas pelo Libero SoC. No entanto, algumas informações neste guia podem se aplicar apenas a uma família específica de dispositivos. Nesse caso, essas informações estão claramente identificadas.
Tabela 1. Famílias de dispositivos suportados pelo Libero SoC

Família de dispositivos Descrição
PolarFire® Os FPGAs PolarFire oferecem a menor potência do setor em densidades médias com segurança e confiabilidade excepcionais.
SoC PolarFire O PolarFire SoC é o primeiro SoC FPGA com um cluster de CPU RISC-V coerente e determinístico e um subsistema de memória L2 determinístico que permite aplicativos Linux® e em tempo real.

Sobreview (Faça uma pergunta)

Enquanto o Libero SoC fornece um ambiente de design ponta a ponta totalmente integrado para desenvolver designs de SoC e FPGA, ele também fornece a flexibilidade para executar síntese e simulação com ferramentas de terceiros fora do ambiente Libero SoC. No entanto, algumas etapas de design devem permanecer dentro do ambiente Libero SoC.
A tabela a seguir lista as principais etapas no fluxo de projeto do FPGA e indica as etapas para as quais o Libero SoC deve ser usado.
Tabela 1-1. Fluxo de projeto do FPGA

Etapa do fluxo de projeto Deve usar o Libero Descrição
Entrada de projeto: HDL Não Use uma ferramenta de edição/verificação de HDL de terceiros fora do Libero® SoC, se desejar.
Entrada de Design: Configuradores Sim Crie o primeiro projeto Libero para geração de componentes principais do catálogo de IP.
Geração automática de restrições PDC/SDC Não Restrições derivadas precisam de todos os HDL files e um utilitário derive_constraints quando executado fora do Libero SoC, conforme descrito no Apêndice C — Derivação de Restrições.
Simulação Não Use uma ferramenta de terceiros fora do Libero SoC, se desejar. Requer download de bibliotecas de simulação pré-compiladas para o dispositivo de destino, simulador de destino e versão de destino do Libero usada para implementação de backend.
Síntese Não Use uma ferramenta de terceiros fora do Libero SoC, se desejar.
Implementação do projeto: gerenciar restrições, compilar netlist, colocar e rotear (consulte a seção anterior).view) Sim Crie um segundo projeto Libero para a implementação do backend.
Verificação de tempo e energia Sim Fique no segundo projeto Libero.
Configurar dados e memórias de inicialização de design Sim Use esta ferramenta para gerenciar diferentes tipos de memórias e inicialização de design no dispositivo. Fique no segundo projeto.
Programação File Geração Sim Fique no segundo projeto.

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone Importante: Você deve baixar bibliotecas pré-compiladas disponíveis no Bibliotecas de simulação pré-compiladas página para usar um simulador de terceiros.
Em um fluxo FPGA de tecido puro, insira seu projeto usando HDL ou entrada esquemática e passe isso diretamente
às ferramentas de síntese. O fluxo ainda é suportado. Os FPGAs PolarFire e PolarFire SoC têm
blocos IP rígidos proprietários que exigem o uso de núcleos de configuração (SgCores) do IP do Libero SoC
catálogo. É necessário um tratamento especial para quaisquer blocos que componham a funcionalidade SoC:

  • Polar Fire
    – PF_UPROM
    – SERVIÇOS_DO_SISTEMA_PF
    – PF_CCC
    – PF CLK DIV
    – PF_CRYPTO
    – PF_DRI
    – PF_INIT_MONITOR
    – PF_NGMUX
    – PF_OSC
    – RAM (TPSRAM, DPSRAM, URAM)
    – PF_SRAM_AHBL_AXI
    – PF_XCVR_ERM
    – PF_XCVR_REF_CLK
    – PF_TX_PLL
    – PF_PCIE
    – PF_IO
    – PF_IOD_CDR
    – PF_IOD_CDR_CCC
    – PF_IOD_GENÉRICO_RX
    – PF_IOD_GENÉRICO_TX
    – PF_IOD_GENÉRICO_TX_CCC
    – PF_RGMII_TO_GMII
    – PF_IOD_OCTAL_DDR
    – PF_DDR3
    – PF_DDR4
    – PF_LPDDR3
    – PF_QDR
    – PF_CORESMARTBERT
    – PF_TAMPER
    – PF_TVS, e assim por diante.

Além dos SgCores listados anteriormente, há muitos IPs suaves DirectCore disponíveis para as famílias de dispositivos PolarFire e PolarFire SoC no Catálogo Libero SoC que usam os recursos de estrutura FPGA.
Para a entrada de projeto, se você usar qualquer um dos componentes anteriores, deverá usar o Libero SoC para parte da entrada de projeto (Configuração de Componentes), mas poderá continuar o restante da sua Entrada de Projeto (entrada HDL e assim por diante) fora do Libero. Para gerenciar o fluxo de projeto do FPGA fora do Libero, siga as etapas fornecidas no restante deste guia.
1.1 Ciclo de vida do componente (Faça uma pergunta)
As etapas a seguir descrevem o ciclo de vida de um componente SoC e fornecem instruções sobre como manipular os dados.

  1. Gere o componente usando seu configurador no Libero SoC. Isso gera os seguintes tipos de dados:
    – HDL files
    – Memória files
    – Estímulo e Simulação files
    – Componente SDC file
  2. Para HDL files, instancie-os e integre-os no restante do design HDL usando a ferramenta/processo de entrada de design externo.
  3. Memória de fornecimento files e estímulo files para sua ferramenta de simulação.
  4. Componente de fornecimento SDC file para a ferramenta Derivar Restrições para Geração de Restrições. Consulte o Apêndice C — Derivar Restrições para mais detalhes.
  5. Você deve criar um segundo projeto Libero, onde você importa a netlist pós-Síntese e os metadados do seu componente, completando assim a conexão entre o que você gerou e o que você programou.

1.2 Criação do Projeto Libero SoC (Faça uma pergunta)
Algumas etapas de design devem ser executadas dentro do ambiente Libero SoC (Tabela 1-1). Para que essas etapas sejam executadas, você deve criar dois projetos Libero SoC. O primeiro projeto é usado para configuração e geração de componentes de design, e o segundo projeto é para a implementação física do design de nível superior.
1.3 Fluxo personalizado (Faça uma pergunta)
A figura a seguir mostra:

  • O Libero SoC pode ser integrado como parte do fluxo maior de design do FPGA com ferramentas de síntese e simulação de terceiros fora do ambiente do Libero SoC.
  • Várias etapas envolvidas no fluxo, desde a criação do design e costura até a programação do dispositivo.
  • A troca de dados (entradas e saídas) que deve ocorrer em cada etapa do fluxo de design.

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - Fluxo Personalizado SobreviewMICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone 1 Dica:

  1. SNVM.cfg, UPROM.cfg
  2. *.mem file geração para simulação: pa4rtupromgen.exe recebe UPROM.cfg como entrada e gera UPROM.mem.

A seguir estão as etapas do fluxo personalizado:

  1. Configuração e geração de componentes:
    a. Criar um primeiro projeto Libero (para servir como Projeto de Referência).
    b. Selecione o núcleo no catálogo. Clique duas vezes no núcleo para atribuir um nome de componente e configurá-lo.
    Isso exporta automaticamente os dados dos componentes e files. Um Manifesto de Componente também é gerado. Veja Manifestos de Componente para detalhes. Para mais detalhes, veja Configuração de Componente.
  2. Conclua seu design RTL fora do Libero:
    a. Instanciar o componente HDL files.
    b. A localização do HDL files está listado nos Manifestos de Componentes files.
  3. Gere restrições SDC para os componentes. Use o utilitário Derive Constraints para gerar a restrição de tempo. file(SDC) com base em:
    a. Componente HDL files
    b. Componente SDC files
    c. HDL do usuário files
    Para mais detalhes, consulte Apêndice C — Derivar Restrições.
  4. Ferramenta de síntese/ferramenta de simulação:
    a. Obtenha HDL files, estímulo files e dados de componentes de locais específicos, conforme observado nos Manifestos de Componentes.
    b. Sintetizar e simular o design com ferramentas de terceiros fora do Libero SoC.
  5. Crie seu segundo Projeto Libero (Implementação).
  6. Remova a síntese da cadeia de ferramentas de fluxo de design (Projeto > Configurações do projeto > Fluxo de design > desmarque a caixa de seleção Ativar síntese).
  7. Importar a fonte do design files (netlist *.vm pós-síntese da ferramenta de síntese):
    – Importar pós-síntese *.vm netlist (File>Importar> Verilog Netlist sintetizado (VM)).
    – Metadados do componente *.cfg files para uPROM e/ou sNVM.
  8. Importar qualquer componente de bloco Libero SoC files. O bloco files deve estar em *.cxz file formatar.
    Para obter mais informações sobre como criar um bloco, consulte Guia do usuário do PolarFire Block Flow.
  9. Importe as restrições de design:
    – Restrição de E/S de importação files (Gerenciador de restrições > Atributos de E/S > Importar).
    – Importar floorplanning *.pdc files (Gerenciador de restrições > Planejador de piso > Importar).
    – Importar restrição de tempo *.sdc files (Constraints Manager > Timing >Import). Importe o SDC file gerado através da ferramenta Derivar Restrição.
    – Importar restrição *.ndc files (Constraints Manager > NetlistAttributes > Import), se houver.
  10. Restrição file e associação de ferramentas
    – No Gerenciador de Restrições, associe o *.pdc files para colocar e rotear, o *.sdc files para colocar, rotear e verificar o tempo, e o *.ndc files para compilar a Netlist.
  11. Implementação completa do design
    – Posicionar e rotear, verificar tempo e energia, configurar dados e memórias de inicialização de projeto e programação file geração.
  12. Validar o design
    – Valide o projeto no FPGA e depure conforme necessário usando as ferramentas de projeto fornecidas com o conjunto de projetos Libero SoC.

Configuração de componentes (Faça uma pergunta)

O primeiro passo no fluxo personalizado é configurar seus componentes usando um projeto de referência do Libero (também chamado de primeiro projeto do Libero na Tabela 1-1). Nas etapas subsequentes, você usará os dados desse projeto de referência.
Se você estiver usando algum componente listado anteriormente, em Overview em seu design, execute as etapas descritas nesta seção.
Se você não estiver usando nenhum dos componentes acima, você pode escrever seu RTL fora do Libero e importá-lo diretamente para suas ferramentas de Síntese e Simulação. Você pode então prosseguir para a seção pós-síntese e importar apenas sua netlist *.vm pós-síntese para seu projeto de implementação final do Libero (também chamado de segundo projeto Libero na Tabela 1-1).
2.1 Configuração de componentes usando Libero (Faça uma pergunta)
Após selecionar os componentes que devem ser utilizados na lista anterior, execute os seguintes passos:

  1. Crie um novo projeto Libero (Configuração e Geração do Núcleo): Selecione o Dispositivo e a Família para os quais você deseja direcionar seu design final.
  2. Use um ou mais dos núcleos mencionados no Fluxo Personalizado.
    a. Crie um SmartDesign e configure o núcleo desejado e instancie-o no componente SmartDesign.
    b. Promova todos os pins para o nível mais alto.
    c. Gere o SmartDesign.
    d. Clique duas vezes na ferramenta Simulate (qualquer uma das opções Pre-Synthesis ou Post-Synthesis ou Post-Layout) para invocar o simulador. Você pode sair do simulador depois que ele for invocado. Esta etapa gera a simulação fileé necessário para o seu projeto.

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone 1 Dica: Você deve executar esta etapa se quiser simular seu design fora do Libero.
Para obter mais informações, consulte Simulando seu design.
e. Salve seu projeto — este é seu projeto de referência.
2.2 Manifestos de componentes (Faça uma pergunta)
Ao gerar seus componentes, um conjunto de files é gerado para cada componente. O relatório do Manifesto do Componente detalha o conjunto de files gerados e usados ​​em cada etapa subsequente (Síntese, Simulação, Geração de Firmware e assim por diante). Este relatório fornece os locais de todos os gerados files necessário para prosseguir com o Fluxo Personalizado. Você pode acessar o manifesto do componente na área Relatórios: Clique em Design > Relatórios para abrir a aba Relatórios. Na aba Relatórios, você vê um conjunto de manifest.txt files (Acimaview), um para cada componente que você gerou.
Dica: Você deve definir um componente ou módulo como '”root”' para ver o manifesto do componente file conteúdo na aba Relatórios.
Alternativamente, você pode acessar o relatório de manifesto individual files para cada componente principal gerado ou componente SmartDesign de /componente/trabalho/ / / _manifest.txt ou /componente/trabalho/ / _manifest.txt. Você também pode acessar o manifesto file conteúdo de cada componente gerado a partir da nova aba Componentes no Libero, onde o file os locais são mencionados em relação ao diretório do projeto.MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - Guia Relatórios LiberoConcentre-se nos seguintes relatórios do Manifesto de Componentes:

  • Se você instanciou núcleos em um SmartDesign, leia o file _manifesto.txt.
  • Se você criou componentes para núcleos, leia o _manifesto.txt.

Você deve usar todos os relatórios de Manifestos de Componentes que se aplicam ao seu design. Por ex.ampou seja, se o seu projeto tiver um SmartDesign com um ou mais componentes principais instanciados nele e você pretende usá-los todos no seu design final, então você deve selecionar filelistados nos relatórios de Manifestos de Componentes de todos os componentes para uso no seu fluxo de design.
2.3 Interpretando o Manifesto Filee (Faça uma pergunta)
Quando você abre um manifesto de componente file, você vê caminhos para files no seu projeto Libero e ponteiros sobre onde no fluxo de design usá-los. Você pode ver os seguintes tipos de files em um manifesto file:

  • Fonte de HDL files para todas as ferramentas de síntese e simulação
  • Estímulo files para todas as ferramentas de simulação
  • Restrição files

A seguir está o manifesto do componente principal do PolarFire.MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - Manifesto de ComponentesCada tipo de file é necessário a jusante no seu fluxo de design. As seções a seguir descrevem a integração do files do manifesto para o seu fluxo de design.

Geração de Restrições (Faça uma pergunta)

Ao executar a configuração e a geração, certifique-se de escrever/gerar a restrição SDC/PDC/NDC files para o design passá-los para as ferramentas Síntese, Posicionar e Rotear e Verificar Tempo.
Use o utilitário Derive Constraints fora do ambiente Libero para gerar restrições em vez de escrevê-las manualmente. Para usar o utilitário Derive Constraint fora do ambiente Libero, você deve:

  • Fornecer restrição de HDL do usuário, HDL do componente e SDC do componente files
  • Especifique o módulo de nível superior
  • Especifique o local onde gerar a restrição derivada files

As restrições do componente SDC estão disponíveis em /componente/trabalho/ / / diretório após a configuração e geração do componente.
Para obter mais detalhes sobre como gerar restrições para seu projeto, consulte Apêndice C — Derivar restrições.

Sintetizando seu design (Faça uma pergunta)

Um dos principais recursos do Custom Flow é permitir que você use uma síntese de terceiros
ferramenta fora do Libero. O fluxo personalizado suporta o uso do Synopsys SynplifyPro. Para sintetizar seu
projeto, utilize o seguinte procedimento:

  1. Crie um novo projeto na sua ferramenta Synthesis, visando a mesma família de dispositivos, matriz e pacote do projeto Libero que você criou.
    a. Importe seu próprio RTL filecomo você faz normalmente.
    b. Defina a saída da Síntese como Structural Verilog (.vm).
    Dica: Estrutural Verilog (.vm) é o único formato de saída de síntese suportado no PolarFire.
  2. Importar componente HDL files em seu projeto de síntese:
    a. Para cada Relatório de Manifestos de Componentes: Para cada file sob fonte HDL files para todas as ferramentas de Síntese e Simulação, importe o file em seu Projeto de Síntese.
  3. Importar o file polarfire_syn_comps.v (se estiver usando Synopsys Synplify) de
    Local de instalação>/data/aPA5M no seu projeto Synthesis.
  4. Importar o SDC gerado anteriormente file através da ferramenta Restrição Derivada (ver Apêndice
    COMOamp(le SDC Constraints) na ferramenta Synthesis. Esta restrição file restringe a ferramenta de síntese para atingir o fechamento de tempo com menos esforço e menos iterações de design.

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone Importante: 

  • Se você planeja usar o mesmo *.sdc file Para restringir o Place-and-Route durante a fase de implementação do projeto, você deve importar este *.sdc para o projeto de síntese. Isso garante que não haja incompatibilidades de nomes de objetos de design na netlist sintetizada e nas restrições do Place-and-Route durante a fase de implementação do processo de design. Se você não incluir este *.sdc file na etapa de Síntese, a netlist gerada a partir da Síntese pode falhar na etapa de Inserir e Rotear devido a incompatibilidades de nomes de objetos de design.
    a. Importe atributos da Netlist *.ndc, se houver, para a ferramenta Síntese.
    b. Execute a síntese.
  • A localização da saída da sua ferramenta de síntese tem a netlist *.vm file gerado após a Síntese. Você deve importar a netlist para o Libero Implementation Project para continuar com o processo de design.

Simulando seu design (Faça uma pergunta)

Para simular seu projeto fora do Libero (ou seja, usando seu próprio ambiente de simulação e simulador), execute as seguintes etapas:

  1. Projeto Files:
    a. Simulação de pré-síntese:
    • Importe seu RTL para seu projeto de simulação.
    • Para cada Relatório de Manifestos de Componentes.
    – Importar cada file sob fonte HDL files para todas as ferramentas de Síntese e Simulação em seu projeto de simulação.
    • Compile estes files de acordo com as instruções do seu simulador.
    b. Simulação pós-síntese:
    • Importe sua netlist *.vm pós-síntese (gerada em Synthesizing Your Design) para seu projeto de simulação e compile-a.
    c. Simulação pós-layout:
    • Primeiro, conclua a implementação do seu design (consulte Implementando seu Design). Certifique-se de que seu projeto Libero final esteja no estado pós-layout.
    • Clique duas vezes em Gerar BackAnnotated Files na janela do Fluxo de Design do Libero. Ele gera dois files:
    /designer/ / _ba.v/vhd /designer/
    / _ba.sdf
    • Importe ambos files na sua ferramenta de simulação.
  2. Estímulo e Configuração files:
    a. Para cada Relatório de Manifestos de Componentes:
    • Copiar tudo files sob o Estímulo Files para todas as seções das Ferramentas de Simulação no diretório raiz do seu projeto de Simulação.
    b. Certifique-se de que qualquer Tcl fileOs itens nas listas anteriores (na etapa 2.a) são executados primeiro, antes do início da simulação.
    c. UPROM.mem: Se você usar o núcleo UPROM em seu projeto com a opção Usar conteúdo para simulação habilitada para um ou mais clientes de armazenamento de dados que deseja simular, você deve usar o executável pa4rtupromgen (pa4rtupromgen.exe no Windows) para gerar o UPROM.mem file. O executável pa4rtupromgen pega o UPROM.cfg file como entradas por meio de um script Tcl file e gera o UPROM.mem file necessário para simulações. Este UPROM.mem file deve ser copiado para a pasta de simulação antes da execução da simulação. Um example mostrando o uso do executável pa4rtupromgen é fornecido nas etapas a seguir. O UPROM.cfg file está disponível no diretório /componente/trabalho/ / no projeto Libero que você usou para gerar o componente UPROM.
    d. snvm.mem: Se você usar o núcleo de Serviços do Sistema em seu design e configurar a guia sNVM no núcleo com a opção Usar conteúdo para simulação habilitada para um ou mais clientes que deseja simular, um snvm.mem file é gerado automaticamente para
    o diretório /componente/trabalho/ / no projeto Libero que você usou para gerar o componente System Services. Este snvm.mem file deve ser copiado para a pasta de simulação antes da execução da simulação.
  3. Crie uma pasta de trabalho e uma subpasta chamada simulation dentro da pasta de trabalho.
    O executável pa4rtupromgen espera a presença da subpasta de simulação na pasta de trabalho e o script *.tcl é colocado na subpasta de simulação.
  4. Copie o UPROM.cfg file do primeiro projeto Libero criado para geração de componentes para a pasta de trabalho.
  5. Cole os seguintes comandos em um script *.tcl e coloque-o na pasta de simulação criada na etapa 3.
    Sample *.tcl para dispositivos PolarFire e PolarFire Soc Family para gerar URPOM.mem file
    de UPROM.cfg
    set_device -fam -morrer -pacote
    set_input_cfg -caminho
    set_sim_mem -caminhoFile/UPROM.mem>
    gen_sim -use_init falso
    Para o nome interno apropriado a ser usado para o dado e o pacote, veja o *.prjx file do primeiro projeto Libero (usado para geração de componentes).
    O argumento use_init deve ser definido como falso.
    Use o comando set_sim_mem para especificar o caminho para a saída file UPROM.mem que é
    gerado durante a execução do script file com o executável pa4rtupromgen.
  6. No prompt de comando ou no terminal do Cygwin, vá para o diretório de trabalho criado na etapa 3.
    Execute o comando pa4rtupromgen com a opção –script e passe para ele o script *.tcl criado na etapa anterior.
    Para Windows
    /designer/bin/pa4rtupromgen.exe \
    –script./simulação/ .tcl
    Para Linux:
    /bin/pa4rtupromgen
    –script./simulação/ .tcl
  7. Após a execução bem-sucedida do executável pa4rtupromgen, verifique se o UPROM.mem file é gerado no local especificado no comando set_sim_mem no script *.tcl.
  8. Para simular o sNVM, copie o snvm.mem file do seu primeiro projeto Libero (usado para configuração de componentes) para a pasta de simulação de nível superior do seu projeto de simulação para executar a simulação (fora do Libero SoC). Para simular o conteúdo da UPROM, copie o UPROM.mem gerado file na pasta de simulação de nível superior do seu projeto de simulação para executar a simulação (fora do Libero SoC).

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone Importante: Para Para simular a funcionalidade dos componentes SoC, baixe as bibliotecas de simulação PolarFire pré-compiladas e importe-as para o seu ambiente de simulação, conforme descrito aqui. Para mais detalhes, consulte o Apêndice B — Importando Bibliotecas de Simulação para o Ambiente de Simulação.

Implementando seu design (Faça uma pergunta)

Após concluir a simulação de síntese e pós-síntese em seu ambiente, você deve usar o Libero novamente para implementar fisicamente seu projeto, executar análise de tempo e potência e gerar sua programação. file.

  1. Crie um novo projeto Libero para a implementação física e o layout do design. Certifique-se de direcionar o projeto para o mesmo dispositivo do projeto de referência criado na Configuração de Componentes.
  2. Após a criação do projeto, remova o Synthesis da cadeia de ferramentas na janela Design Flow (Projeto > Configurações do projeto > Design Flow > Desmarque Habilitar Synthesis).
  3.  Importe seu pós-síntese *.vm file neste projeto, (File > Importar > Verilog Netlist (VM) sintetizada.
    MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone 1 Dica: É recomendável que você crie um link para este file, de modo que se você ressintetizar seu design, o Libero sempre usará a netlist pós-síntese mais recente.
    a. Na janela Hierarquia de Design, anote o nome do módulo raiz.MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - Hierarquia de Design
  4. Importe as restrições para o projeto Libero. Use o Gerenciador de Restrições para importar restrições *.pdc/*.sdc/*.ndc.
    a. Restrição de importação de E/S *.pdc files (Gerenciador de restrições > Atributos de E/S > Importar).
    b. Importar restrição Floorplanning *.pdc files (Gerenciador de restrições > Planejador de piso > Importar).
    c. Importar restrição de tempo *.sdc files (Constraints Manager > Timing > Import). Se o seu design tiver algum dos núcleos listados em Overview, certifique-se de importar o SDC file gerado através da ferramenta de derivação de restrição.
    d. Importar restrição *.ndc files (Gerenciador de restrições > Atributos da Netlist > Importar).
  5. Restrições associadas Files para projetar ferramentas.
    a. Abra o Gerenciador de Restrições (Gerenciar Restrições > Abrir Gerenciar Restrições View).
    Marque a caixa de seleção Verificação de local e rota e tempo ao lado da restrição file para estabelecer restrição file e associação de ferramentas. Associe a restrição *.pdc a Place-andRoute e o *.sdc a Place-and-Route e Timing Verification. Associe o *.ndc file para compilar Netlist.
    MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone 1 Dica: Se O local e a rota falham com esta restrição *.sdc file, então importe este mesmo *.sdc file para sintetizar e reexecutar a síntese.
  6. Clique em Compilar Netlist e depois em Inserir e Rotear para concluir a etapa de layout.
  7. A ferramenta Configurar Dados e Memórias de Inicialização de Projeto permite inicializar blocos de projeto, como LSRAM, µSRAM, XCVR (transceptores) e PCIe, usando dados armazenados em µPROM não volátil, sNVM ou memória de armazenamento Flash SPI externa. A ferramenta possui as seguintes guias para definir a especificação da sequência de inicialização do projeto, a especificação dos clientes de inicialização e os clientes de dados do usuário.
    – Guia de inicialização do design
    – Guia µPROM
    – guia sNVM
    – Guia SPI Flash
    – Aba de RAMs de tecido
    Use as guias na ferramenta para configurar os dados de inicialização do projeto e as memórias.MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - Dados e MemóriasApós concluir a configuração, execute as seguintes etapas para programar os dados de inicialização:
    • Gerar clientes de inicialização
    • Gerar ou exportar o bitstream
    • Programar o dispositivo
    Para obter informações detalhadas sobre como usar esta ferramenta, consulte o Guia do usuário do fluxo de design do Libero SoC. Para obter mais informações sobre os comandos Tcl usados ​​para configurar várias guias na ferramenta e especificar a configuração de memória files (*.cfg), veja Guia de referência de comandos Tcl.
  8. Gerar uma Programação File deste projeto e use-o para programar seu FPGA.

Apêndice A-SampRestrições do SDC (Faça uma pergunta

O Libero SoC gera restrições de tempo SDC para certos núcleos IP, como CCC, OSC, Transceiver e assim por diante. Passar as restrições SDC para ferramentas de design aumenta a chance de atender ao fechamento de tempo com menos esforço e menos iterações de design. O caminho hierárquico completo da instância de nível superior é fornecido para todos os objetos de design referenciados nas restrições.
7.1 Restrições de tempo do SDC (Faça uma pergunta)
No projeto de referência do núcleo IP do Libero, esta restrição SDC de nível superior file está disponível no Gerenciador de Restrições (Fluxo de Design > Abrir Gerenciar Restrições View >Tempo > Derivar Restrições).
MICROCHIP DS00004807F PolarFire Family FPGA Fluxo Personalizado - ícone Importante: Veja esse file Para definir as restrições do SDC se o seu projeto contiver CCC, OSC, Transceptor e outros componentes. Modifique o caminho hierárquico completo, se necessário, para corresponder à hierarquia do seu projeto ou use o utilitário Derive_Constraints e as etapas do Apêndice C — Derivar Restrições no SDC de nível de componente. file.
Salve o file para um nome diferente e importar o SDC file para a ferramenta de síntese, ferramenta Place-and-Route e verificações de tempo, assim como qualquer outra restrição SDC files.
7.1.1 SDC derivado File (Faça uma pergunta)
# Esse file foi gerado com base na seguinte fonte SDC files:
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
PF_CCC_C0/PF_CCC_C0_0/PF_CCC_C0_PF_CCC_C0_0_PF_CCC.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
CLK_DIV/CLK_DIV_0/CLK_DIV_CLK_DIV_0_PF_CLK_DIV.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
TRANSMIT_PLL/TRANSMIT_PLL_0/TRANSMIT_PLL_TRANSMIT_PLL_0_PF_TX_PLL.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
DMA_INITIATOR/DMA_INITIATOR_0/DMA_INITIATOR.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
FIC0_INITIATOR/FIC0_INITIATOR_0/FIC0_INITIATOR.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
ICICLE_MSS/ICICLE_MSS.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
PF_PCIE_C0/PF_PCIE_C0_0/PF_PCIE_C0_PF_PCIE_C0_0_PF_PCIE.sdc
# /drive/icicle_kit_ref_des/icicle-kit-reference-design-master/MPFS_ICICLE/component/work/
PCIE_INITIATOR/PCIE_INITIATOR_0/PCIE_INITIATOR.sdc
# /drive/aPA5M/cores/constraints/osc_rc160mhz.sdc
# *** Quaisquer modificações a este file será perdido se as restrições derivadas forem executadas novamente. ***
create_clock -name {CLOCKS_AND_RESETS_inst_0/OSCILLATOR_160MHz_inst_0/OSCILLATOR_160MHz_0/
I_OSC_160/CLK} -período 6.25
[ get_pins { RELÓGIOS_E_REINICIALIZAÇÕES_inst_0/OSCILADOR_160MHz_inst_0/OSCILADOR_160MHz_0/
I_OSC_160/CLK } ] create_clock -nome {REF_CLK_PAD_P} -período 10 [ get_ports { REF_CLK_PAD_P } ] create_clock -nome {RELOGIOS_E_REINICIAÇÕES_inst_0/TRANSMIT_PLL_0/TRANSMIT_PLL_0/txpll_isnt_0/
DIV_CLK} -período 8
[ get_pins { RELÓGIOS_E_REINICIAÇÕES_inst_0/TRANSMIT_PLL_0/TRANSMIT_PLL_0/txpll_isnt_0/DIV_CLK } ] criar_relógio_gerado -nome { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/
OUT0} -multiplicar_por 25 -dividir_por 32 -fonte
[ get_pins { RELÓGIOS_E_REINICIALIZAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/REF_CLK_0 } ] -fase 0
[ get_pins { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/OUT0 } ] criar_relógio_gerado -nome { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/
OUT1} -multiplicar_por 25 -dividir_por 32 -fonte
[ get_pins { RELÓGIOS_E_REINICIALIZAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/REF_CLK_0 } ] -fase 0
[ get_pins { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/OUT1 } ] criar_relógio_gerado -nome { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/
OUT2} -multiplicar_por 25 -dividir_por 32 -fonte
[ get_pins { RELÓGIOS_E_REINICIALIZAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/REF_CLK_0 } ] -fase 0
[ get_pins { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/OUT2 } ] criar_relógio_gerado -nome { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/
OUT3} -multiplicar_por 25 -dividir_por 64 -fonte
[ get_pins { RELÓGIOS_E_REINICIALIZAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/REF_CLK_0 } ] -fase 0
[ get_pins { RELÓGIOS_E_REINICIAÇÕES_inst_0/CCC_FIC_x_CLK/PF_CCC_C0_0/pll_inst_0/OUT3 } ] create_generated_clock -name { RELÓGIOS_E_REINICIAÇÕES_inst_0/CLK_160MHz_a_CLK_80MHz/CLK_DIV_0/I_CD/
Y_DIV} -dividir_por 2 -fonte
[obter_pinos {RELÓGIOS_E_REINICIAÇÕES_inst_0/CLK_160MHz_a_CLK_80MHz/CLK_DIV_0/I_CD/A}] [obter_pinos {RELÓGIOS_E_REINICIAÇÕES_inst_0/CLK_160MHz_a_CLK_80MHz/CLK_DIV_0/I_CD/Y_DIV}] definir_caminho_falso -através [obter_redes {INICIADOR_DMA_inst_0/ARESETN*}] definir_caminho_falso -de [obter_células {INICIADOR_DMA_inst_0/*/SlvConvertor_loop[*].slvcnv/slvCDC/
genblk1*/rdGrayCounter*/cntGray* } ] -para [obter_células { DMA_INITIATOR_inst_0/*/SlvConvertor_loop[*].slvcnv/slvCDC/genblk1*/
rdPtr_s1* } ] set_false_path -from [ obter_células { DMA_INITIATOR_inst_0/*/SlvConvertor_loop[*].slvcnv/slvCDC/
genblk1*/wrGrayCounter*/cntGray* } ] -para [obter_células { DMA_INITIATOR_inst_0/*/SlvConvertor_loop[*].slvcnv/slvCDC/genblk1*/
wrPtr_s1* } ] definir_caminho_falso -através [ obter_redes { FIC0_INITIATOR_inst_0/ARESETN* } ] definir_caminho_falso -para [ obter_pinos { PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[0] PCIE/PF_PCIE_C0_0/
PCIE_1/INTERRUPT[1] PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[2] PCIE/PF_PCIE_C0_0/PCIE_1/
INTERRUPT[3] PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[4] PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[5] PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[6] PCIE/PF_PCIE_C0_0/PCIE_1/INTERRUPT[7] PCIE/PF_PCIE_C0_0/
PCIE_1/WAKEREQ PCIE/PF_PCIE_C0_0/PCIE_1/MPERST_N } ] definir_caminho_falso - de [ obter_pinos { PCIE/PF_PCIE_C0_0/PCIE_1/TL_CLK } ] definir_caminho_falso - por meio de [ obter_redes { PCIE_INITIATOR_inst_0/ARESETN* } ] Apêndice B — Importando bibliotecas de simulação para o ambiente de simulação (Faça uma pergunta)
O simulador padrão para simulação RTL com Libero SoC é o ModelSim ME Pro.
Bibliotecas pré-compiladas para o simulador padrão estão disponíveis com a instalação do Libero no diretório /Designer/lib/modelsimpro/precompiled/vlog para famílias suportadas®. O Libero SoC também suporta outras edições de simuladores de terceiros, como ModelSim, Questasim, VCS e Xcelium.
, Active HDL e Riviera Pro. Baixe as respectivas bibliotecas pré-compiladas de Libero SoC v12.0 e posterior com base no simulador e sua versão.
Semelhante ao ambiente Libero, run.do file deve ser criado para executar a simulação fora do Libero.
Crie um run.do simples file que tem comandos para estabelecer biblioteca para resultados de compilação, mapeamento de biblioteca, compilação e simulação. Siga os passos para criar um run.do básico file.

  1. Crie uma biblioteca lógica para armazenar resultados de compilação usando o comando vlib vlib presynth.
  2. Mapeie o nome da biblioteca lógica para o diretório da biblioteca pré-compilada usando o comando vmap vmap .
  3. Compilar fonte files—use comandos de compilador específicos da linguagem para compilar o design files no diretório de trabalho.
    – vlog para .v/.sv
    – vcom para .vhd
  4. Carregue o projeto para simulação usando o comando vsim especificando o nome de qualquer módulo de nível superior.
  5. Simule o projeto usando o comando run.
    Após carregar o design, o tempo de simulação é definido como zero e você pode inserir o comando de execução para iniciar a simulação.
    Na janela de transcrição do simulador, execute run.do file como run.do execute a simulação. Sample run.do file do seguinte modo.

silenciosamente defina ACTELLIBNAME PolarFire silenciosamente defina PROJECT_DIR “W:/Test/basic_test” se
{[file existe presynth/_info]} { echo “INFO: Biblioteca de simulação presynth existe” } else
{ file excluir -forçar presynth vlib presynth } vmap presynth presynth vmap PolarFire
“X:/Libero/Designer/lib/modelsimpro/precompiled/vlog/PolarFire” vlog -sv -work presynth
“${PROJECT_DIR}/hdl/top.v” vlog “+incdir+${PROJECT_DIR}/stimulus” -sv -work presynth “$
{PROJECT_DIR}/stimulus/tb.v” vsim -L PolarFire -L presynth -t 1ps presynth.tb adicionar onda /tb/*
executar 1000ns log /tb/* sair

Apêndice C — Derivar Restrições (Faça uma pergunta)

Este apêndice descreve os comandos Tcl Derive Constraints.
9.1 Derivação de Restrições Comandos Tcl (Faça uma pergunta)
O utilitário derive_constraints ajuda você a derivar restrições do RTL ou do configurador fora do ambiente de design do Libero SoC. Para gerar restrições para seu design, você precisa do HDL do usuário, HDL do componente e Restrições do componente files. As restrições do componente SDC files estão disponíveis em /componente/trabalho/ / / diretório após a configuração e geração do componente.
Cada restrição de componente file consiste no comando tcl set_component (especifica o nome do componente) e na lista de restrições geradas após a configuração. As restrições são geradas com base na configuração e são específicas para cada componente.
Example 9-1. Restrição de Componente File para o núcleo PF_CCC
Aqui está um example de uma restrição de componente file para o núcleo PF_CCC:
conjunto_componente PF_CCC_C0_PF_CCC_C0_0_PF_CCC
# Microchip Corp.
# Data: 2021 de outubro de 26 04:36:00
# Relógio base para PLL #0
criar_relógio - período 10 [obter_pinos {pll_inst_0/REF_CLK_0}] criar_relógio_gerado - dividir_por 1 - fonte [obter_pinos {pll_inst_0/
REF_CLK_0 } ] -phase 0 [ get_pins { pll_inst_0/OUT0 } ] Aqui, create_clock e create_generated_clock são restrições de relógio de referência e saída, respectivamente, que são geradas com base na configuração.
9.1.1 Trabalhando com o utilitário derive_constraints (Faça uma pergunta)
Derivar restrições percorre o design e alocar novas restrições para cada instância do componente com base no SDC do componente fornecido anteriormente files. Para os relógios de referência CCC, ele se propaga de volta pelo design para encontrar a fonte do relógio de referência. Se a fonte for uma E/S, a restrição do relógio de referência será definida na E/S. Se for uma saída CCC ou outra fonte de relógio (por exemploample, Transceptor, oscilador), ele usa o clock do outro componente e relata um aviso se os intervalos não corresponderem. As restrições de derivação também alocarão restrições para algumas macros como osciladores on-chip se você os tiver em seu RTL.
Para executar o utilitário derive_constraints, você deve fornecer um .tcl file argumento de linha de comando com as seguintes informações na ordem especificada.

  1. Especifique as informações do dispositivo usando as informações na seção set_device.
  2. Especifique o caminho para o RTL files usando as informações na seção read_verilog ou read_vhdl.
  3. Defina o módulo de nível superior usando as informações na seção set_top_level.
  4. Especifique o caminho para o componente SDC files usando as informações na seção read_sdc ou read_ndc.
  5. Execute o files usando as informações na seção derive_constraints.
  6.  Especifique o caminho para as restrições derivadas do SDC file usando as informações na seção write_sdc ou write_pdc ou write_ndc.

Example 9-2. Execução e conteúdo do derive.tcl File
O seguinte é um exampo argumento da linha de comando para executar o utilitário derive_constraints.
$ /bin{64}/derive_constraints derive.tcl
O conteúdo do derive.tcl file:
# Informações do dispositivo
set_device -família PolarFire -die MPF100T -velocidade -1
# RTL files
read_verilog -mode system_verilog projeto/componente/trabalho/txpll0/
txpll0_txpll0_0_PF_TX_PLL.v
read_verilog -mode system_verilog {projeto/componente/trabalho/txpll0/txpll0.v}
read_verilog -mode system_verilog {projeto/componente/trabalho/xcvr0/I_XCVR/
xcvr0_I_XCVR_PF_XCVR.v}
read_verilog -mode system_verilog {projeto/componente/trabalho/xcvr0/xcvr0.v}
read_vhdl -mode vhdl_2008 {projeto/hdl/xcvr1.vhd}
#Componente SDC files
definir_nível_superior {xcvr1}
read_sdc -component {projeto/componente/trabalho/txpll0/txpll0_0/
txpll0_txpll0_0_PF_TX_PLL.sdc}
read_sdc -component {projeto/componente/trabalho/xcvr0/I_XCVR/
xcvr0_I_XCVR_PF_XCVR.sdc}
#Use o comando derive_constraint
derivar_restrições
Resultado #SDC/PDC/NDC files
write_sdc {projeto/restrição/restrições_derivadas_do_xcvr1.sdc}
write_pdc {projeto/restrição/fp/xcvr1_derived_constraints.pdc}
9.1.2 set_device (Faça uma pergunta)
Descrição
Especifique o nome da família, o nome da matriz e o grau de velocidade.
set_device -família -morrer -velocidade
Argumentos

Parâmetro Tipo Descrição
-família Corda Especifique o nome da família. Os valores possíveis são PolarFire®, PolarFire SoC.
-morrer Corda Especifique o nome do dado.
-velocidade Corda Especifique a velocidade do dispositivo. Os valores possíveis são STD ou -1.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 Parâmetro obrigatório — dado ausente A opção die é obrigatória e deve ser especificada.
ERRO0005 Desconhecido morre 'MPF30' O valor da opção -die não está correto. Veja a lista possível de valores na descrição da opção.
ERRO0023 Parâmetro — o dado está com valor faltando A opção die é especificada sem valor.
ERRO0023 Parâmetro obrigatório — família ausente A opção família é obrigatória e deve ser especificada.
ERRO0004 Família desconhecida 'PolarFire®' A opção family não está correta. Veja a lista possível de valores na descrição da opção.
………… continuou
Código de erro Mensagem de erro Descrição
ERRO0023 Parâmetro—família não possui valor A opção família é especificada sem valor.
ERRO0023 Parâmetro obrigatório — velocidade ausente A opção de velocidade é obrigatória e deve ser especificada.
ERRO0007 Velocidade desconhecida ' ' A opção speed não está correta. Veja a lista possível de valores na descrição da opção.
ERRO0023 Parâmetro — velocidade é um valor ausente A opção de velocidade é especificada sem valor.

Example
set_device -família {PolarFire} -die {MPF300T_ES} -velocidade -1
set_device -família SmartFusion 2 -die M2S090T -velocidade -1
9.1.3 read_verilog (Faça uma pergunta)
Descrição
Leia um Verilog file usando o Verific.
ler_verilog [-lib ] [-modo ]filenome>
Argumentos

Parâmetro Tipo Descrição
-lib Corda Especifique a biblioteca que contém os módulos a serem adicionados à biblioteca.
-modo Corda Especifique o padrão Verilog. Os valores possíveis são verilog_95, verilog_2k, system_verilog_2005, system_verilog_2009, system_verilog, verilog_ams, verilog_psl, system_verilog_mfcu. Os valores não diferenciam maiúsculas de minúsculas. O padrão é verilog_2k.
filenome Corda Verilog file nome.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 Parâmetro—lib não possui valor A opção lib é especificada sem valor.
ERRO0023 Parâmetro—modo não possui valor A opção mode é especificada sem valor.
ERRO0015 Modo desconhecido ' ' O modo verilog especificado é desconhecido. Consulte a lista de modos verilog possíveis em —descrição da opção de modo.
ERRO0023 Parâmetro obrigatório file nome está faltando Não verilog file caminho é fornecido.
ERRO0016 Falha devido ao analisador do Verific Erro de sintaxe em verilog file. O analisador do Verific pode ser observado no console acima da mensagem de erro.
ERRO0012 set_device não é chamado As informações do dispositivo não foram especificadas. Use o comando set_device para descrever o dispositivo.

Example
read_verilog -mode system_verilog {componente/trabalho/topo/topo.v}
read_verilog -mode sistema_verilog_mfcu design.v
9.1.4 leia_vhdl (Faça uma pergunta)
Descrição
Adicionar um VHDL file na lista de VHDL files.
ler_vhdl [-lib ] [-modo ]filenome>
Argumentos

Parâmetro Tipo Descrição
-lib Especifique a biblioteca na qual o conteúdo deve ser adicionado.
-modo Especifica o padrão VHDL. O padrão é VHDL_93. Os valores possíveis são vhdl_93, vhdl_87, vhdl_2k, vhdl_2008, vhdl_psl. Os valores não diferenciam maiúsculas de minúsculas.
filenome VHDL file nome.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 Parâmetro—lib não possui valor A opção lib é especificada sem valor.
ERRO0023 Parâmetro—modo não possui valor A opção mode é especificada sem valor.
ERRO0018 Modo desconhecido ' ' O modo VHDL especificado é desconhecido. Consulte a lista de modos VHDL possíveis em — descrição da opção de modo.
ERRO0023 Parâmetro obrigatório file nome está faltando Sem VHDL file caminho é fornecido.
ERRO0019 Não é possível registrar invalid_path.v file O VHDL especificado file não existe ou não tem permissões de leitura.
ERRO0012 set_device não é chamado As informações do dispositivo não foram especificadas. Use o comando set_device para descrever o dispositivo.

Example
read_vhdl -modo vhdl_2008 osc2dfn.vhd
ler_vhdl {hdl/topo.vhd}
9.1.5 definir_nível_superior (Faça uma pergunta)
Descrição
Especifique o nome do módulo de nível superior em RTL.
definir_nível_superior [-lib ]
Argumentos

Parâmetro Tipo Descrição
-lib Corda A biblioteca para procurar o módulo ou entidade de nível superior (opcional).
nome Corda O nome do módulo ou entidade de nível superior.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 O parâmetro obrigatório de nível superior está faltando A opção de nível superior é obrigatória e deve ser especificada.
ERRO0023 Parâmetro—lib não possui valor A opção lib é especificada sem valores.
ERRO0014 Não é possível encontrar o nível superior na biblioteca O módulo de nível superior especificado não está definido na biblioteca fornecida. Para corrigir esse erro, o nome do módulo ou da biblioteca superior deve ser corrigido.
ERRO0017 Elaboração falhou Erro no processo de elaboração de RTL. A mensagem de erro pode ser observada no console.

Example
set_top_level {topo}
set_top_level -lib hdl topo
9.1.6 read_sdc (Faça uma pergunta)
Descrição
Leia um SDC file no banco de dados de componentes.
read_sdc -componentfilenome>
Argumentos

Parâmetro Tipo Descrição
-componente Este é um sinalizador obrigatório para o comando read_sdc quando derivamos restrições.
filenome Corda Caminho para o SDC file.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 Parâmetro obrigatório file nome está faltando. A opção obrigatória file nome não especificado.
ERRO0000 SDC file <file_path> não é legível. O SDC especificado file não tem permissões de leitura.
ERRO0001 Não é possível abrirfile_caminho> file. O SDC file não existe. O caminho precisa ser corrigido.
ERRO0008 Comando set_component ausente emfile_caminho> file O componente especificado do SDC file não especifica o componente.
Código de erro Mensagem de erro Descrição
ERRO0009 <List of errors from sdc file> O SDC file contém comandos sdc incorretos. Por exemploampele,

quando há um erro na restrição set_multicycle_path: Erro ao executar o comando read_sdc: emfile_caminho> file: Erro no comando set_multicycle_path: Parâmetro desconhecido [get_cells {reg_a}].

Example
read_sdc -component {./component/work/ccc0/ccc0_0/ccc0_ccc0_0_PF_CCC.sdc}
9.1.7 read_ndc (Faça uma pergunta)
Descrição
Leia uma NDC file no banco de dados de componentes.
read_ndc -componentfilenome>
Argumentos

Parâmetro Tipo Descrição
-componente Este é um sinalizador obrigatório para o comando read_ndc quando derivamos restrições.
filenome Corda Caminho para o NDC file.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0001 Não é possível abrirfile_caminho> file O NDC file não existe. O caminho precisa ser corrigido.
ERRO0023 Parâmetro obrigatório—AtclParamO_ está ausente. A opção obrigatória filenome não especificado.
ERRO0023 Parâmetro obrigatório — componente ausente. A opção de componente é obrigatória e deve ser especificada.
ERRO0000 NDC file 'file_path>' não é legível. O NDC especificado file não tem permissões de leitura.

Example
read_ndc -componente {componente/trabalho/ccc1/ccc1_0/ccc_comp.ndc}
9.1.8 derive_constraints (Faça uma pergunta)
Descrição
Instanciar componente SDC files no banco de dados de nível de design.
derivar_restrições
Argumentos

Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0013 O nível superior não está definido Isso significa que o módulo ou entidade de nível superior não foi especificado. Para corrigir essa chamada, emita o comando
comando set_top_level antes do comando derive_constraints.

Example
derivar_restrições
9.1.9 write_sdc (Faça uma pergunta)
Descrição
Escreve uma restrição file no formato SDC.
escrever_sdcfilenome>
Argumentos

Parâmetro Tipo Descrição
<filenome> Corda Caminho para o SDC file será gerado. Esta é uma opção obrigatória. Se o file existir, ele será substituído.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0003 Não é possível abrirfile caminho> file. File path não está correto. Verifique se os diretórios pais existem.
ERRO0002 SDC file 'file path>' não é gravável. O SDC especificado file não tem permissão de gravação.
ERRO0023 Parâmetro obrigatório file nome está faltando. O SDC file path é uma opção obrigatória e deve ser especificada.

Example
write_sdc “derivado.sdc”
9.1.10 write_pdc (Faça uma pergunta)
Descrição
Escreve restrições físicas (somente Derive Constraints).
escrever_pdcfilenome>
Argumentos

Parâmetro Tipo Descrição
<filenome> Corda Caminho para o PDC file será gerado. Esta é uma opção obrigatória. Se o file caminho existir, ele será substituído.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagens de erro Descrição
ERRO0003 Não é possível abrirfile caminho> file O file path não está correto. Verifique se os diretórios pais existem.
ERRO0002 PDC file 'file path>' não é gravável. O PDC especificado file não tem permissão de gravação.
ERRO0023 Parâmetro obrigatório file nome está faltando O PDC file path é uma opção obrigatória e deve ser especificada.

Example
write_pdc “derivado.pdc”
9.1.11 write_ndc (Faça uma pergunta)
Descrição
Escreve restrições NDC em um file.
escrever_ndcfilenome>
Argumentos

Parâmetro Tipo Descrição
filenome Corda Caminho para o NDC file será gerado. Esta é uma opção obrigatória. Se o file existir, ele será substituído.
Tipo de retorno Descrição
0 Comando bem-sucedido.
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagens de erro Descrição
ERRO0003 Não é possível abrirfile_caminho> file. File caminho não está correto. Os diretórios pais não existem.
ERRO0002 NDC file 'file_path>' não é gravável. O NDC especificado file não tem permissão de gravação.
ERRO0023 O parâmetro obrigatório _AtclParamO_ está faltando. O NDC file path é uma opção obrigatória e deve ser especificada.

Example
write_ndc “derivado.ndc”
9.1.12 add_include_path (Faça uma pergunta)
Descrição
Especifica um caminho para incluir a pesquisa files ao ler RTL files.
adicionar_caminho_de_inclusão
Argumentos

Parâmetro Tipo Descrição
diretório Corda Especifica um caminho para incluir a pesquisa files ao ler RTL files. Esta opção é obrigatória.
Tipo de retorno Descrição
0 Comando bem-sucedido.
Tipo de retorno Descrição
1 O comando falhou. Há um erro. Você pode observar a mensagem de erro no console.

Lista de Erros

Código de erro Mensagem de erro Descrição
ERRO0023 O caminho de inclusão do parâmetro obrigatório está faltando. A opção de diretório é obrigatória e deve ser fornecida.

Nota: Se o caminho do diretório não está correto, então add_include_path será passado sem erro.
Entretanto, os comandos read_verilog/read_vhd falharão devido ao analisador do Verific.
Example
add_include_path componente/trabalho/COREABC0/COREABC0_0/rtl/vlog/core

Histórico de Revisão (Faça uma pergunta)

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 Data Descrição
F 08/2024 As seguintes alterações são feitas nesta revisão:
• Seção atualizada do Apêndice B — Importando bibliotecas de simulação para o ambiente de simulação.
E 08/2024 As seguintes alterações são feitas nesta revisão:
• Seção atualizada sobreview.
• Seção atualizada SDC Derivado File.
• Seção atualizada do Apêndice B — Importando bibliotecas de simulação para o ambiente de simulação.
D 02/2024 Este documento foi lançado com o Libero 2024.1 SoC Design Suite sem alterações da v2023.2.
Seção atualizada Trabalhando com o utilitário derive_constraints
C 08/2023 Este documento foi lançado com o Libero 2023.2 SoC Design Suite sem alterações da v2023.1.
B 04/2023 Este documento foi lançado com o Libero 2023.1 SoC Design Suite sem alterações da v2022.3.
A 12/2022 Revisão Inicial.

Suporte a microchips FPGA
O grupo de produtos Microchip FPGA apoia seus produtos com vários serviços de suporte, incluindo Atendimento ao Cliente, Centro de Suporte Técnico ao Cliente, website e escritórios de vendas em todo o mundo.
Sugere-se que os clientes visitem os recursos online da Microchip antes de entrar em contato com o suporte, pois é muito provável que suas dúvidas já tenham sido respondidas.
Entre em contato com o Centro de Suporte Técnico através do website em www.microchip.com/support. Mencione o número de peça do dispositivo FPGA, selecione a categoria de caso apropriada e carregue o design files ao criar um caso de suporte técnico.
Entre em contato com o Atendimento ao cliente para obter suporte não técnico ao produto, como preços de produtos, atualizações de produtos, informações de atualização, status do pedido e autorização.

  • Da América do Norte, ligue para 800.262.1060
  • Do resto do mundo, ligue para 650.318.4460
  • Fax, de qualquer lugar do mundo, 650.318.8044

Informação do Microchip
O Microchip Website
A Microchip fornece suporte online através do nosso website em www.microchip.com/. Esse website é usado para fazer files e informações facilmente disponíveis para os clientes. Alguns dos conteúdos disponíveis incluem:

  • Suporte ao produto – folhas de dados e errata, notas de aplicação e sampprogramas, recursos de design, guias do usuário e documentos de suporte de hardware, lançamentos de software mais recentes e software arquivado
  • Suporte técnico geral – Perguntas frequentes (FAQs), solicitações de suporte técnico, grupos de discussão on-line, lista de membros do programa de parceiros de design da Microchip
  • Business of Microchip – Seletor de produtos e guias de pedidos, últimos comunicados de imprensa da Microchip, lista de seminários e eventos, listas de escritórios de vendas da Microchip, distribuidores e representantes de fábrica

Serviço de notificação de alteração de produto
O serviço de notificação de alteração de produto da Microchip ajuda a manter os clientes atualizados sobre os produtos da Microchip. Os assinantes receberão notificação por e-mail sempre que houver alterações, atualizações, revisões ou errata relacionadas a uma família de produtos específica ou ferramenta de desenvolvimento de interesse. Para se inscrever, acesse www.microchip.com/pcn e siga as instruções de registro.

Suporte ao cliente
Os usuários de produtos Microchip podem receber assistência por meio de vários canais:

  • Distribuidor ou Representante
  • Escritório de vendas local
  • Engenheiro de Soluções Incorporadas (ESE)
  • Suporte Técnico

Os clientes devem entrar em contato com seu distribuidor, representante ou ESE para obter suporte. Os escritórios de vendas locais também estão disponíveis para ajudar os clientes. Uma lista de escritórios de vendas e locais está incluída neste documento. O suporte técnico está disponível através do website em: www.microchip.com/support
Recurso de proteção de código de dispositivos de microchip
Observe os seguintes detalhes do recurso de proteção de código em produtos Microchip:

  • Os produtos Microchip atendem às especificações contidas em sua Ficha de Dados Microchip específica.
  • A Microchip acredita que sua família de produtos é segura quando usada da maneira pretendida, dentro das especificações operacionais e sob condições normais.
  • A Microchip valoriza e protege agressivamente seus direitos de propriedade intelectual. Tentativas de violar os recursos de proteção de código do produto Microchip são estritamente proibidas e podem violar a Lei de Direitos Autorais do Milênio Digital.
  • Nem a Microchip nem nenhum outro fabricante de semicondutores pode garantir a segurança de seu código. Proteção de código não significa que estamos garantindo que o produto seja "inquebrável". A proteção de código está em constante evolução. A Microchip está comprometida em melhorar continuamente os recursos de proteção de código de nossos produtos.

Aviso Legal
Esta publicação e as informações aqui contidas podem ser usadas apenas com produtos Microchip, inclusive para projetar, testar e integrar produtos Microchip com seu aplicativo. O uso dessas informações de qualquer outra forma viola estes termos. As informações sobre os aplicativos do dispositivo são fornecidas apenas para sua conveniência e podem ser substituídas por atualizações. É sua responsabilidade garantir que seu aplicativo atenda às suas especificações. Entre em contato com o escritório de vendas local da Microchip para obter suporte adicional ou obtenha suporte adicional em www.microchip.com/en-us/support/design-help/client-support-services.
ESSAS INFORMAÇÕES SÃO FORNECIDAS PELA MICROCHIP “COMO ESTÃO”. A MICROCHIP NÃO FAZ REPRESENTAÇÕES OU GARANTIAS DE QUALQUER TIPO, SEJA EXPRESSA OU IMPLÍCITA, ESCRITA OU ORAL, LEGAL OU OUTRA, RELACIONADA ÀS INFORMAÇÕES, INCLUINDO, SEM LIMITAÇÃO, QUAISQUER GARANTIAS IMPLÍCITAS DE NÃO VIOLAÇÃO, COMERCIALIZAÇÃO E ADEQUAÇÃO PARA UM DETERMINADO FIM OU GARANTIAS RELACIONADO COM SUA CONDIÇÃO, QUALIDADE OU DESEMPENHO. EM NENHUM CASO A MICROCHIP SERÁ RESPONSÁVEL POR QUALQUER PERDA, DANO, CUSTO OU DESPESA INDIRETA, ESPECIAL, PUNITIVA, INCIDENTAL OU CONSEQUENTE DE QUALQUER TIPO RELACIONADA ÀS INFORMAÇÕES OU SEU USO, SEJA QUAL FOR A CAUSA, MESMO QUE A MICROCHIP TENHA SIDO AVISADA DA POSSIBILIDADE OU OS DANOS SÃO PREVISÍVEIS. ATÉ O LIMITE MÁXIMO PERMITIDO POR LEI, A RESPONSABILIDADE TOTAL DA MICROCHIP EM TODAS AS RECLAMAÇÕES DE QUALQUER FORMA RELACIONADAS ÀS INFORMAÇÕES OU SEU USO NÃO EXCEDERÁ O VALOR DAS TAXAS, SE HOUVER, QUE VOCÊ PAGOU DIRETAMENTE À MICROCHIP PELAS INFORMAÇÕES.
O uso de dispositivos Microchip em aplicações de suporte à vida e/ou segurança é de inteira responsabilidade do comprador, que concorda em defender, indenizar e isentar a Microchip de quaisquer danos, reclamações, processos ou despesas decorrentes de tal uso. Nenhuma licença é concedida, implícita ou de outra forma, sob quaisquer direitos de propriedade intelectual da Microchip, salvo disposição em contrário.
Marcas registradas
O nome e logotipo Microchip, o logotipo Microchip, Adaptec, AVR, logotipo AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, logotipo Microsemi, MOST, logotipo MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, logotipo PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, logotipo SST, SuperFlash, Symmetricom , SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron e XMEGA são marcas registradas da Microchip Technology Incorporated nos EUA e em outros países.
AgileSwitch, ClockWorks, The Embedded Control Solutions Company, EtherSynch, Flashtec, Hyper Speed ​​Control, HyperLight Load, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, logotipo ProASIC Plus, Quiet-Wire, SmartFusion, SyncWorld, TimeCesium, TimeHub, TimePictra, TimeProvider e ZL são marcas registradas da Microchip Technology Incorporated nos EUA
Supressão de chave adjacente, AKS, analógico para a era digital, qualquer capacitor, AnyIn, AnyOut, comutação aumentada, BlueSky, BodyCom, Clockstudio, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, correspondência média dinâmica , DAM, ECAN, Espresso T1S, EtherGREEN, EyeOpen, GridTime, IdealBridge, IGaT, Programação serial em circuito, ICSP, INICnet, Paralelismo inteligente, IntelliMOS, Conectividade entre chips, JitterBlocker, Knob-on-Display, MarginLink, maxCrypto, máx.View, memBrain, Mindi, MiWi, MPASM, MPF, logotipo certificado MPLAB, MPLIB, MPLINK, mSiC, MultiTRAK, NetDetach, Geração de código onisciente, PICDEM, PICDEM.net, PICkit, PICtail, Power MOS IV, Power MOS 7, PowerSmart, PureSilicon , QMatrix, REAL ICE, bloqueador de ondulação, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance , Tempo Confiável, TSHARC, Turing, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect e ZENA são marcas comerciais da Microchip Technology Incorporated nos EUA e em outros países.
SQTP é uma marca de serviço da Microchip Technology Incorporated nos EUA
O logotipo da Adaptec, Frequency on Demand, Silicon Storage Technology e Symmcom são marcas registradas da Microchip Technology Inc. em outros países.
GestIC é uma marca registrada da Microchip Technology Germany II GmbH & Co. KG, uma subsidiária da Microchip Technology Inc., em outros países.
Todas as outras marcas registradas aqui mencionadas são propriedade de suas respectivas empresas.
2024, Microchip Technology Incorporated e suas subsidiárias. Todos os direitos reservados.
ISBN: 978-1-6683-0183-8
Sistema de Gestão da Qualidade
Para obter informações sobre os Sistemas de Gestão de Qualidade da Microchip, visite www.microchip.com/quality.
Vendas e serviços em todo o mundo

AMÉRICAS  ÁSIA/PACÍFICO  ÁSIA/PACÍFICO  EUROPA
Escritório Corporativo
2355 West Chandler Blvd.
Chandler, Arizona 85224-6199
Telefone: 480-792-7200
Fax: 480-792-7277
Suporte técnico: www.microchip.com/support
Web Endereço: www.microchip.com
Atlanta
Duluth, Geórgia
Telefone: 678-957-9614
Fax: 678-957-1455
Austin, Texas
Telefone: 512-257-3370
Boston
Westborough, Massachusetts
Telefone: 774-760-0087
Fax: 774-760-0088
Chicago
Itasca, IL
Telefone: 630-285-0071
Fax: 630-285-0075
Dallas
Addison, TX
Telefone: 972-818-7423
Fax: 972-818-2924
Detroit
Novi, MI
Telefone: 248-848-4000
Houston, Texas
Telefone: 281-894-5983
Indianápolis
Noblesville, Indiana
Telefone: 317-773-8323
Fax: 317-773-5453
Telefone: 317-536-2380
Los Angeles
Missão Viejo, CA
Telefone: 949-462-9523
Fax: 949-462-9608
Telefone: 951-273-7800
Raleigh, Carolina do Norte
Telefone: 919-844-7510
Nova Iorque, NY
Telefone: 631-435-6000
São José, CA
Telefone: 408-735-9110
Telefone: 408-436-4270
Canadá – Toronto
Telefone: 905-695-1980
Fax: 905-695-2078
Austrália – Sydney
Telefone: 61-2-9868-6733
China – Pequim
Telefone: 86-10-8569-7000
China-Chengdu
Telefone: 86-28-8665-5511
China – Chongqing
Telefone: 86-23-8980-9588
China – Dongguan
Telefone: 86-769-8702-9880
China – Cantão
Telefone: 86-20-8755-8029
China – Hangzhou
Telefone: 86-571-8792-8115
China – RAE de Hong Kong
Telefone: 852-2943-5100
China – Nanquim
Telefone: 86-25-8473-2460
China-Qingdao
Telefone: 86-532-8502-7355
China – Xangai
Telefone: 86-21-3326-8000
China-Shenyang
Telefone: 86-24-2334-2829
China – Shenzen
Telefone: 86-755-8864-2200
China – Suzhou
Telefone: 86-186-6233-1526
China-Wuhan
Telefone: 86-27-5980-5300
China –Xian
Telefone: 86-29-8833-7252
China – Xiamen
Telefone: 86-592-2388138
China-Zhuhai
Telefone: 86-756-3210040
Índia – Bangalore
Telefone: 91-80-3090-4444
Índia – Nova Deli
Telefone: 91-11-4160-8631
Índia - Pune
Telefone: 91-20-4121-0141
Japão – Osaka
Telefone: 81-6-6152-7160
Japão – Tóquio
Telefone: 81-3-6880-3770
Coreia – Daegu
Telefone: 82-53-744-4301
Coreia – Seul
Telefone: 82-2-554-7200
Malásia – Kuala Lumpur
Telefone: 60-3-7651-7906
Malásia – Penang
Telefone: 60-4-227-8870
Filipinas – Manila
Telefone: 63-2-634-9065
Cingapura
Telefone: 65-6334-8870
Taiwan-Hsin Chu
Telefone: 886-3-577-8366
Taiwan – Kaohsiung
Telefone: 886-7-213-7830
Taiwan – Taipé
Telefone: 886-2-2508-8600
Tailândia – Bangkok
Telefone: 66-2-694-1351
Vietnã – Ho Chi Minh
Telefone: 84-28-5448-2100
Áustria – Wels
Telefone: 43-7242-2244-39
Fax: 43-7242-2244-393
Dinamarca – Copenhague
Telefone: 45-4485-5910
Fax: 45-4485-2829
Finlândia – Espoo
Telefone: 358-9-4520-820
França – Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79
Alemanha – Garching
Telefone: 49-8931-9700
Alemanha – Han
Telefone: 49-2129-3766400
Alemanha – Heilbronn
Telefone: 49-7131-72400
Alemanha – Karlsruhe
Telefone: 49-721-625370
Alemanha – Munique
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Alemanha – Rosenheim
Telefone: 49-8031-354-560
Israel – Hod Hasharon
Telefone: 972-9-775-5100
Itália – Milão
Telefone: 39-0331-742611
Fax: 39-0331-466781
Itália – Pádua
Telefone: 39-049-7625286
Holanda – Drunen
Telefone: 31-416-690399
Fax: 31-416-690340
Noruega – Trondheim
Telefone: 47-72884388
Polônia – Varsóvia
Telefone: 48-22-3325737
Romênia – Bucareste
Tel: 40-21-407-87-50
Espanha – Madri
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Suécia – Gotemburgo
Tel: 46-31-704-60-40
Suécia – Estocolmo
Telefone: 46-8-5090-4654
Reino Unido – Wokingham
Telefone: 44-118-921-5800
Fax: 44-118-921-5820

MICROCHIP - logotipo

Documentos / Recursos

MICROCHIP DS00004807F PolarFire Family FPGA Fluxo personalizado [pdf] Guia do Usuário
DS00004807F PolarFire Family FPGA Fluxo personalizado, DS00004807F, PolarFire Family FPGA Fluxo personalizado, Família FPGA Fluxo personalizado, Fluxo personalizado, Fluxo

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *