Archived: 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.

개요

FPGA 어플리케이션이 갈수록 대형화되고 복합화되고 있으므로, 시간 집약적인 컴파일을 수행하고 높은 정확성의 테스트 범위로 디자인을 디버깅하기 전에 IP를 검증하기 위해서 시뮬레이션은 매우 중요합니다. NI LabVIEW 소프트웨어에서 기능과 타이밍에 대한 어플리케이션 로직을 시뮬레이션할 수 있습니다. 정밀 주기 시뮬레이터는 로직(알고리즘)의 보급을 검증하기 위한 수단을 제공함으로써 어플리케이션의 타이밍 제약을 테스트합니다. 또한 이같은 시뮬레이터는 전체 FPGA 어플리케이션을 테스트하는 기능을 제공하여 LabVIEW FPGA와 Component-Level IP (CLIP) 또는 IP 통합 노드 로직을 통합합니다. 본 기술 백서에서는 타사의 정밀 주기 시뮬레이터를 사용하여 LabVIEW FPGA를 통합하는 내용을 중점적으로 살펴봅니다. LabVIEW FPGA의 기능적인 시뮬레이션에 대한 보다 자세한 내용은LabVIEW FPGA 온라인 도움말을 참조하십시오.

 

참고: Mentor Graphics Questa Advanced Simulator가 LabVIEW 2018 FPGA 모듈 버전부터는 더 이상 LabVIEW FPGA의 시뮬레이션 도구로 지원되지 않습니다.

 

참고: LabVIEW 2014부터는 Mentor Graphics ModelSim이 LabVIEW FPGA의 시뮬레이션 도구로 더 이상 지원되지 않습니다.

내용

LabVIEW와 타사 시뮬레이터로 통합 시뮬레이션 (Co-Simulation)

FPGA 어플리케이션의 통합 시뮬레이션은 LabVIEW에서 시뮬레이션을 직접 생성하고 실행하는 기능을 제공하는 동시에 배후에서 타사의 고급 정밀 주기 시뮬레이터를 활용함으로써 높은 수준의 정의 및 검증을 제공합니다.

LabVIEW는 통합 시뮬레이션을 위해 테스트 중인 IP에 입력을 제공하고 시뮬레이터의 실행을 컨트롤하며 응답을 수집합니다. LabVIEW 통합 시뮬레이션에서 호스트 VI가 입력을 유도하고 일반 FPGA 호스트 인터페이스 함수로 실행함으로써 기존의 VDHL 기반 테스트 벤치를 대체합니다. 기존의 LabVIEW 기술을 사용하여 테스트 벤치를 정의하면 생산성이 증대되며, LabVIEW FPGA VI에서 정밀 주기 시뮬레이션을 개발할 수 있고, 이를 수행하기 위해 VHDL에 대한 전문 지식이 필요하지 않습니다.

 

그림 1. LabVIEW FPGA의 정밀 주기 통합 시뮬레이션은 LabVIEW에서 작성된 테스트 벤치를 지원하므로 VHDL 전문 지식이 필요하지 않습니다.

개별 FPGA 호스트 함수의 각 실행은 타사 시뮬레이터가 시뮬레이션의 다음 요소를 언제 실행하는 지를 결정합니다. 예를 들어, LabVIEW 호스트 VI에서 쓰기 프로퍼티 노드가 실행되면, 적절한 입력으로 시뮬레이터와 통신하며 시뮬레이션 시간을 앞당깁니다. 시뮬레이터가 결과를 연산하면 실행을 중지하고 LabVIEW로부터 다음 컨트롤 명령을 기다립니다.

시뮬레이션 실행의 추가적인 컨트롤과 유연성을 위해 Simulation FPGA 호스트 인터페이스 팔레트는 현재 시뮬레이션 시간을 추출하기 위한 함수를 제공하며, 배정된 시간 동안 시뮬레이션이 대기하도록 하며 또는 시뮬레이터의 실행을 중지합니다.

 

그림 2. Simulation FPGA 호스트 인터페이스 팔레트는 타사 시뮬레이터 실행 시간에 대한 보다 정밀한 컨트롤을 위한 함수를 제공합니다.

LabVIEW 테스트 벤치를 사용한 통합 시뮬레이션은 현재 Mentor Graphics ModelSim에서만 지원됩니다. 단계별 튜토리얼은 Cycle-Accurate Co-Simulation With LabVIEW and Mentor Graphics ModelSim문서를 확인하십시오.

타사 시뮬레이터에서 사용하기 위한 시뮬레이션 생성하기

정밀 주기 시뮬레이션을 위한 두 번째 방법이자 로우 레벨의 방법은 타사 시뮬레이터에서 직접 사용하기 위해 LabVIEW FPGA 시뮬레이션을 생성하고 반출하는 방법입니다. 통합 시뮬레이션과 달리 이 방법을 사용하기 위해서는 입력을 제공하고 테스트 실행을 컨트롤하며 출력을 수집/검증하는 VHDL 기반 테스트 벤치가 필요합니다. 따라서 LabVIEW FPGA에서 이 방법을 사용할 때에는 HDL 시뮬레이터와 VHDL에 익숙해야 합니다. 이 방식의 장점은 Mentor Graphics ModelSim 이외에도 시뮬레이션 파일을 LabVIEW FPGA에 포함된 Xilinx ISim 주기 정밀 시뮬레이터에 반입할 수 있다는 점입니다.

그림 3. LabVIEW에서 생성된 테스트 벤치를 변경한 후, ModelSim 또는 ISim에서 주기 정밀 시뮬레이션을 실행할 수 있습니다.

LabVIEW는 Simulation Export의 일환으로 FPGA 어플리케이션을 위해 맞춤화된 템플릿 테스트 벤치 파일을 생성합니다. 그 후, 디자인을 적절하게 사용하기 위해 특정 VHDL을 추가할 수 있습니다.

그림 4. LabVIEW는 테스트 벤치 개발을 가속화하기 위해 시뮬레이션 반출 파일의 일부로 템플릿 VHDL 테스트 벤치를 생성합니다.

시뮬레이션 파일 생성, 테스트 벤치 편집, Xilinx ISim에서 시뮬레이션 실행을 위한 자세한 방법은 튜토리얼 Cycle-Accurate Simulation With Xilinx ISim 문서를 참조하십시오.

결론

 

LabVIEW FPGA는 컴파일과 배포 전에 FPGA 어플리케이션을 효율적으로 시뮬레이션하기 위해 기능적이며 정밀 주기 타이밍 시뮬레이션을 수행하기 위한 툴을 제공합니다. 주기 정밀 시뮬레이터는 중요한 신호 전송 충돌과 병렬 코드간 원치 않는 상호작용을 발견합니다. 이를 위해서는 일반적으로 기본적인 IP 개발을 능가하는 특수 기술과 시간에 대한 투자가 필요합니다.

Mentor Graphics ModelSim을 사용하여 LabVIEW FPGA에서 주기 정밀 통합 시뮬레이션을 진행하면 VHDL에 대한 전문 지식 없이도 기존의 LabVIEW 기술을 활용함으로써 테스트 벤치 개발 시간을 대폭 단축할 수 있습니다.

또한 LabVIEW FPGA는 정밀 주기 시뮬레이터인 Xilinx ISim이 무료로 포함 제공됩니다. 그러나 이 경우, LabVIEW는 디자인을 적절하게 수행하기 위해 사용자가 반드시 변경해야 하는 VHDL 템플릿 테스트 벤치를 생성합니다. 

LabVIEW 2011 FPGA Module로 FPGA 코드를 보다 효율적으로 개발하는 자세한 내용을 확인하십시오.