Archived: Cycle-Accurate Simulation in LabVIEW FPGA

NI does not actively maintain this document.

This content provides support for older products and technology, so you may notice outdated links or obsolete information about operating systems or other relevant products.

Visão geral

As field-programmable gate array (FPGA) applications grow larger and more complex, simulation has increasingly become important to validate IP before committing to a time-intensive compilation process and debugging the design with high-fidelity test coverage. In NI LabVIEW software, you can simulate your application logic for both functionality and timing. Cycle-accurate simulators test the timing constraints of your application by providing a means to validate the signal propagation of your logic. These simulators also give you the ability to test your entire FPGA application because they incorporate both your LabVIEW FPGA and Component-Level IP (CLIP) or IP Integration Node logic. This white paper focuses on LabVIEW FPGA integration with third-party cycle-accurate simulators. To learn more about the functional simulation capabilities of LabVIEW FPGA, refer to LabVIEW FPGA Online Help.

 

Note: The Mentor Graphics Questa Advanced Simulator is no longer supported as a simulation tool in LabVIEW FPGA as of the LabVIEW 2018 FPGA Module release.

 

Note: The Mentor Graphics ModelSim is no longer supported as a simulation tool in LabVIEW FPGA as of LabVIEW 2014.

Contents

Cossimulação com o LabVIEW e o simulador de terceiros

A cossimulação de sua aplicação FPGA oferece a você o nível mais alto de abstração, dando-lhe a capacidade de criar e executar simulações diretamente no LabVIEW e ainda usar em segundo plano um simulador cycle-accurate sofisticado de outro fornecedor.

Na cossimulação, o LabVIEW fornece estímulos à IP sob teste, controla a execução do simulador e captura as respostas. Com a cossimulação do LabVIEW, você pode usar um VI host para controlar as entradas e a execução com as funções normais de interface do host FPGA, substituindo os arquivos testbench convencionais em VDHL. Com os seus conhecimentos no LabVIEW, você pode deixar de usar esses arquivos testbench, o que lhe traz uma maior produtividade; além disso, não precisa mais ser um especialista em VHDL para desenvolver e executar simulações cycle-accurate nos VIs de seu LabVIEW FPGA.

 

Figura 1. Com a cossimulação cycle-accurate no LabVIEW FPGA, você não precisa mais ser um especialista em VHDL, podendo usar testbenches escritos no LabVIEW.

A execução de cada uma das funções host do FPGA determina o momento no qual o simulador de outro fornecedor executará o próximo componente da simulação. Por exemplo, quando o nó de propriedade write é executado no VI host LabVIEW, ele comunica o estímulo apropriado ao simulador e incrementa o tempo de simulação. Assim que o simulador tiver calculado esse resultado, suspenderá a execução e aguardará o próximo comando de controle enviado pelo LabVIEW.

Para proporcionar maior controle e flexibilidade sobre a execução do simulador, a paleta Simulation da interface host FPGA oferece funções para recuperar o tempo de simulação atual, forçar a simulação a aguardar o intervalo de tempo indicado ou interromper a execução do simulador.

 

Figura 2. A paleta Simulation da interface host da FPGA apresenta funções que oferecem um controle mais completo sobre o tempo de execução de simuladores de outros fornecedores.

A cossimulação com testbenches do LabVIEW atualmente tem suporte apenas no Mentor Graphics ModelSim. Veja um tutorial em Cossimulação cycle-accurate com o LabVIEW e o Mentor Graphics ModelSim.

Geração de exportações de simulação para uso em simuladores de terceiros

O segundo método para a simulação cycle-accurate, de baixo nível, envolve a geração e exportação da simulação do LabVIEW FPGA, para usá-la diretamente no simulador de outro fornecedor. Diferentemente da cossimulação, esse método exige um arquivo testbench em VHDL para fornecer estímulos, controlar a execução do teste e capturar/verificar as saídas. Desa forma, para usar esse método com o LabVIEW FPGA você deverá conhecer simuladores HDL e o VHDL. A vantagem desse método é que, além do Mentor Graphics ModelSim, você também pode importar esses arquivos de simulação no simulador cycle-accurate XilinX ISim incluído no LabVIEW FPGA.

Figura 3. Após modificar o arquivo testbench gerado pelo LabVIEW, você poderá executar simulações cycle-accurate no ModelSim ou no ISim.

Como parte do Simulation Export, o LabVIEW gera um template de arquivo testbench customizado para a sua aplicação FPGA. Com esses recursos em suas mãos, você pode incluir VHDLs específicas para testar seu projeto apropriadamente.

Figura 4. O LabVIEW gera um template de arquivo testbench em VHDL entre os arquivos de exportação da simulação, para acelerar o desenvolvimento de seu testbench.

Veja como gerar os arquivos de simulação, editar o arquivo testbench e executar a simulação no Xilinx ISim no tutorial: Simulação cycle-accurate com o Xilinx ISim.

Conclusão

Para que você possa simular a sua aplicação FPGA antes da compilação e desenvolvimento de maneira eficiente, o LabVIEW FPGA oferece ferramentas que permitem fazer simulações cycle-accurate e funcionais da temporização. Os simuladores cycle-accurate podem revelar conflitos importantes na propagação de sinais e interações indesejadas entre códigos executados em paralelo. Tradicionalmente, isso exigiria conhecimentos especializados e um investimento de tempo muitas vezes maior que o gasto no desenvolvimento original da IP.

A cossimulação cycle-accurate no LabVIEW FPGA com o Mentor Graphics ModelSim dispensa a necessidade de conhecimento especializado em VHDL e reduz drasticamente o tempo de desenvolvimento de testbenches, aproveitando o conhecimento que você já tem no LabVIEW.

Além disso, o LabVIEW FPGA é fornecido com um simulador cycle-accurate grátis, o Xilinx ISim. Entretanto, nesse caso o LabVIEW gera um template de arquivo testbench em VHDL que você pode modificar para testar o seu projeto de maneira apropriada. 

Saiba mais sobre como desenvolver códigos de FPGA com maior eficiência em LabVIEW 2011 FPGA Module.

Was this information helpful?

Yes

No