SystemVerilog

SystemVerilog란?

SystemVerilog는 하드웨어 기술 언어이자 하드웨어 검증 언어입니다. ASIC 및 FPGA/SoC에 대한 알고리즘 또는 시스템의 모델링, 설계, 시뮬레이션, 검증, 테스트 및 구현에 쓰입니다. SystemVerilog는 Verilog 언어 기반에 다양한 확장 기능을 갖췄으며, 2009년에 Verilog와 동일한 IEEE 표준을 구성하게 되었습니다.

SystemVerilog는 객체 지향 프로그래밍을 지원할 뿐만 아니라 제약 조건이 있는 무작위 검증, 어설션, 기능 커버리지도 지원하기 때문에 RTL 테스트벤치 개발에 오랫동안 사용되어 왔습니다.

SystemVerilog를 통한 설계 가속화

MATLAB® 및 Simulink®는 하드웨어에서의 구현을 위한 알고리즘 개발에 널리 사용됩니다. HDL Coder™를 사용하여 MATLAB 코드와 Simulink 모델로부터 SystemVerilog HDL을 자동으로 생성하면 FPGA/SoC 및 ASIC 설계 과정을 가속화하고 RTL 테스트벤치 컴포넌트 생성을 자동화할 수 있습니다.

SystemVerilog를 사용한 ASIC 및 FPGA 코드 생성

HDL Coder는 MATLAB 함수와 Simulink 모델, 그리고 Stateflow® 차트로부터 이식성이 좋고 합성 가능한 SystemVerilog 코드를 생성하여 FPGA, SoC, ASIC의 상위 설계를 지원합니다. 사용자는 생성된 HDL 코드를 FPGA 프로그래밍, ASIC 프로토타이핑, 프로덕션 설계에 활용할 수 있습니다.

HDL Coder에는 생성된 SystemVerilog 코드를 AMD®, Intel®, Microchip 보드에서 프로토타이핑하는 작업을 자동화하고 ASIC 및 FPGA 워크플로에 대한 IP 코어를 생성하는 HDL Workflow Advisor가 있습니다. 사용자는 합성 전에 속도 및 영역에 대해 최적화를 수행하고, 중요 경로를 강조 표시하고, 리소스 사용률 추정값을 생성할 수 있습니다. HDL Coder는 Simulink 모델과 생성된 SystemVerilog 코드 간의 추적성을 제공해 DO-254 및 기타 표준을 따르는 고무결성 애플리케이션에 대한 코드 검증을 지원합니다.

HDL Coder가 MATLAB 함수, Simulink 모델, Stateflow 차트 및 Simscape 모델로부터 합성 가능한 VHDL, Verilog 또는 SystemVerilog를 생성할 수 있음을 보여주는 도식.

HDL Coder는 MATLAB 코드 또는 Simulink 모델로부터 합성 가능한 SystemVerilog를 생성합니다.

SystemVerilog DPI를 사용한 ASIC 및 FPGA 검증

SystemVerilog DPI(Direct Programming Interface)는 SystemVerilog 시뮬레이터와 C와 같은 외부 프로그래밍 언어 간의 인터페이스 역할을 하여 기존 C 코드를 주요 HDL 시뮬레이터에서 재사용할 수 있게 해줍니다. ASIC 및 FPGA 프로젝트 팀은 HDL Verifier™를 사용하여 MATLAB 코드 및 Simulink 모델로부터 입력, 검사기, 동작 DUT(Design-Under-Test) 블록 등의 SystemVerilog DPI 컴포넌트의 형태로 검증 컴포넌트를 직접 생성할 수 있습니다.

MATLAB 또는 Simulink에서 생성된 SystemVerilog DPI 모델은 기존의 UVM(범용 검증 방법론) 환경에 통합할 수도 있습니다.

입력, 알고리즘 및 검사기의 SystemVerilog DPI 파일을 MATLAB 또는 Simulink에서 생성할 수 있음을 보여주는 도식

HDL Verifier는 MATLAB 코드 또는 Simulink 모델로부터 SystemVerilog DPI 파일을 생성합니다.

SystemVerilog DPI 테스트벤치 생성

  • 컴포넌트 테스트벤치: DPI 컴포넌트로 사용할 목적으로 Simulink 서브시스템에서 C 컴포넌트를 생성하면 SystemVerilog 테스트벤치를 생성할 수 있습니다. 그러한 테스트벤치는 Simulink 모델의 데이터 벡터와 비교하여 생성된 DPI 컴포넌트를 검증합니다. (SystemVerilog DPI 컴포넌트 생성 참조)
  • HDL 코드 테스트벤치: HDL Coder를 사용하여 Simulink 서브시스템에서 HDL 코드를 생성하면 SystemVerilog 테스트벤치를 일련의 벡터 형태로 생성할 수 있습니다. 이 테스트벤치는 HDL 구현의 출력 결과를 시뮬레이션 실행으로부터 수집된 Simulink 모델의 결과와 비교합니다. (SystemVerilog DPI 테스트벤치를 사용한 HDL 설계 검증 참조)

참조: HDL Coder, HDL Verifier, FPGA, ASIC 및 SoC 개발, 혼성 신호 시스템, 반도체, UVM 검증, ASIC 설계, ASIC 검증