Verilog 테스트 벤치 및 VHDL 테스트 벤치

MATLAB 및 Simulink에서 만든 FPGA 및 ASIC 설계 검증하기

종래의 VHDL® 또는 Verilog® 테스트 벤치에서는 HDL 코드를 사용하여 논리 설계에 대한 입력을 기술하고 설계의 출력이 사양에 부합하는지 확인하였습니다. 그러나 많은 엔지니어들은 MATLAB® 및 Simulink®를 활용하여 VHDL 또는 Verilog 테스트 벤치를 만들고 있습니다. 알고리즘 행동을 살펴볼 수 있는 시각화 툴뿐만 아니라 생산적이면서도 간소한 알고리즘 표기법을 제공하기 때문입니다.

MATLAB 및 Simulink를 이렇게 활용하고 있는 엔지니어들은 다양한 방식으로 알고리즘이 HDL로 올바르게 구현되었는지 검증할 수 있습니다.

HDL 연동 시뮬레이션을 사용한 검증

MATLAB 또는 Simulink 테스트 벤치를 HDL 시뮬레이터와 함께 사용하여 DUT(Design Under Test)를 검증할 수 있습니다. HDL Verifier™는 이러한 연동 시뮬레이션 과정을 자동화하고 MATLAB 또는 Simulink와 HDL 시뮬레이터 간의 통신 및 동기화를 수행합니다. MATLAB 또는 Simulink 테스트 벤치를 사용하면 HDL 시뮬레이터에서 나오는 출력 값을 실물 모델에서 나오는 예상 값과 비교할 수 있고, 불일치 사항을 보고할 수 있습니다.

FPGA-in-the-Loop 시뮬레이션을 사용한 검증

MATLAB 또는 Simulink 테스트 벤치를 Xilinx®, Intel® 또는 Microsemi® FPGA 개발 보드에 프로그래밍된 DUT와 함께 FPGA-in-the-loop 시뮬레이션에서 사용할 수 있습니다. HDL Verifier를 FPGA 공급업체 툴과 함께 사용하여 HDL을 컴파일하고 프로그래밍 파일을 빌드하고 개발 보드에 로드하고 MATLAB 또는 Simulink 세션과 보드 간 통신을 수행할 수 있습니다. FPGA-in-the-loop 시뮬레이션을 사용하면 MATLAB 또는 Simulink가 그 역할을 대신하기 때문에 Verilog 또는 VHDL 테스트 벤치를 생성할 필요가 없습니다.

SystemVerilog DPI 테스트 벤치를 사용한 검증

테스트 벤치 개발에 사용되는 Verilog 익스텐션인 SystemVerilog는 널리 사용되는 모든 HDL 시뮬레이터에서 지원합니다. SystemVerilog DPI(Direct Programming Interface)를 통해 C/C++ 코드를 Synopsys® VCS®, Cadence® Incisive® 또는 Xcelium™, Mentor Graphics® ModelSim® 또는 Questa® 같은 시뮬레이터와 통합할 수 있습니다. HDL Verifier를 MATLAB Coder™ 또는 Simulink Coder™와 함께 사용하여 생산 검증 환경에 사용할 수 있는 SystemVerilog DPI 테스트 벤치를 생성할 수 있습니다.

HDL Verifier는 두 가지 형태로 SystemVerilog DPI 테스트 벤치를 생성할 수 있습니다.

  • 구성요소 테스트 벤치: DPI 구성요소로 활용하기 위해 Simulink 서브시스템으로부터 C 구성요소를 생성하면 SystemVerilog 테스트 벤치를 생성할 수 있습니다. 그러한 테스트 벤치는 생성된 DPI 구성요소를 여러분의 Simulink 모델에서 온 데이터 벡터와 비교하여 검증합니다.
  • HDL 코드 테스트 벤치: HDL Coder를 사용하여 Simulink 서브시스템으로부터 HDL 코드를 생성하면 SystemVerilog 테스트 벤치를 생성할 수 있습니다. 이러한 테스트 벤치는 HDL 구현물의 출력을 Simulink 모델의 결과와 비교합니다.

UVM(범용 검증 방법론)을 사용한 검증

HDL Verifier는 Simulink 모델로부터 직접 UVM 구성요소를 생성할 수도 있습니다. HDL Verifier는 테스트 벤치의 모델로부터 SystemVerilog UVM 시퀀스와 스코어보드 구성요소를 생성합니다. 동작 DUT(Design Under Test)를 위한 SystemVerilog 파일도 생성합니다. 그런 다음 동작 DUT를 수작업으로 코딩한 RTL 또는 HDL Coder로 생성한 RTL로 교체할 수 있습니다.

생성된 구성요소는 Siemens EDA ModelSim® 또는 Questa®, Cadence® Xcelium™ 또는 Synopsys® VCS®에서 완전한 UVM 환경으로서 실행할 수 있습니다.


참조: MATLAB for FPGA, ASIC, and SoC development, HDL Coder, HDL Verifier, Vision HDL Toolbox, MATLAB Coder, Simulink Coder