HDL Coder

주요 특징

  • 타겟에 독립적이고 합성 가능한 VHDL 및 Verilog 코드
  • MATLAB 함수, 시스템 객체 및 Simulink 블록에 대한 코드 생성 지원
  • Stateflow를 사용한 Mealy 및 Moore 유한 상태 머신(FSM)과 제어 논리 구현
  • Xilinx 및 Altera 응용 프로그램 기판 프로그래밍을 위한 Workflow Advisor
  • 영역-속도 상반관계를 위한 리소스 공유 및 타이밍 재지정
  • DO-254를 위한 코드-모델 및 모델-코드 추적
  • 레거시 코드 통합
Generating HDL code from MATLAB or Simulink with HDL Coder.
HDL Coder를 통해 MATLAB 또는 Simulink에서 HDL 코드 생성. MATLAB 함수, Simulink 모델 또는 두 조합으로부터 합성 가능한 VHDL 및 Verilog 코드를 생성할 수 있습니다.

HDL 코드 생성

HDL Coder를 사용하면 간단한 단계를 통해 FPGA 및 ASIC 구현을 위한 합성 가능한 HDL 코드를 생성할 수 있습니다.

  • MATLAB 코드, Simulink 블록 및 Stateflow 차트의 조합을 이용하여 설계를 모델링합니다.
  • 영역-속도 설계 목표를 충족할 수 있도록 모델을 최적화합니다.
  • MATLAB 및 Simulink를 위한 통합 HDL Workflow Advisor를 이용하여 HDL 코드를 생성합니다.
  • HDL Verifier™를 사용하여 생성된 코드를 검증합니다.

MATLAB으로부터 HDL 코드 생성

HDL Coder의 HDL Workflow Advisor는 자동으로 MATLAB 코드를 부동 소수점에서 고정 소수점으로 변환하고 합성 가능한 VHDL 및 Verilog 코드를 생성합니다. 이 기능을 통해 추상적인 MATLAB 구조와 시스템 객체(System Object)를 사용하여 높은 차원에서 알고리즘을 모델링하는 동시에 하드웨어 구현을 위해 최적화된 HDL 코드 생성을 위한 옵션을 제공할 수 있습니다. HDL Coder는 카운터 및 타이머처럼 MATLAB에서 작성된 즉시 사용 가능한 논리 요소 라이브러리를 제공합니다.

Simulink에서 HDL 코드 생성

HDL Workflow Advisor는 Simulink 및 Stateflow로부터 VHDL 및 Verilog 코드를 생성합니다. Simulink를 통해 Stateflow 차트를 포함한 200개 이상의 블록 라이브러리를 사용하여 알고리즘을 모델링할 수 있습니다. 이 라이브러리는 신호 처리 및 통신 시스템 모델링과 HDL 코드 생성을 위해 Viterbi 디코더, FFT, CIC 필터 및 FIR 필터와 같은 복잡한 함수를 제공합니다.

HDL Coder Workflow Advisor for Simulink.
Simulink용 HDL Coder Workflow Advisor. Xilinx ISE 및 Altera Quartus II에 직접 연결함으로써 HDL 코드를 생성하여 Xilinx 및 Altera FPGA를 생성할 수 있습니다.

HDL 코드 최적화

MATLAB 또는 Simulink에서는 HDL 코드를 최적화하여 분산 파이프라이닝, 스트리밍 및 리소스 공유를 활용함으로써 속도-영역 목표를 달성할 수 있습니다. MATLAB에서는 루프 또는 행렬 연산을 포함한 MATLAB 설계를 위해 루프 스트리밍 및 루프 언롤링과 같은 고급 루프 최적화를 사용할 수 있습니다. MATLAB 코드에서 지속적인 어레이 또는 행렬 변수를 Block RAM으로 매핑할 수 있습니다. Simulink에서는 신호 처리 및 멀티미디어 분야에서 일반적인 다채널 설계 및 직렬화 기술을 구현할 수 있습니다.

HDL Workflow Advisor for MATLAB.
RAM 매핑, 파이프라이닝, 리소스 공유 및 루프 언롤링과 같은 최적화 옵션을 제공하는 MATLAB을 위한 HDL Workflow Advisor
Area-speed optimization.
영역-속도 최적화 4개의 멀티플라이어를 1개의 멀티플라이어로 대체하면 데이터 속도를 4배 늘리는 비용으로 설계 영역을 줄일 수 있습니다.

FPGA 설계 자동화

HDL Coder의 HDL Workflow Advisor는 MATLAB 알고리즘 및 Simulink 모델을 Xilinx 및 Altera FPGA로 구현하기 위한 작업 흐름을 자동화합니다. HDL Workflow Advisor는 다음을 포함한 모든 FPGA 설계 프로세스 단계를 통합합니다.

  • Simulink 모델의 HDL 코드 생성 호환성 확인
  • HDL 코드, HDL 테스트 벤치 및 Cosimulation 모델 생성
  • Xilinx ISE 및 Altera Quartus II와의 통합을 통해 합성 및 타이밍 분석 수행
  • 설계에서 사용된 리소스 예측
  • 중요한 경로(Critical Path) 타이밍을 포함하여 Simulink 모델을 백 애너테이션(Back-Annotation)
Back annotating a Simulink model with critical path timing.
중요한 경로 타이밍을 포함하여 Simulink 모델을 백 애너테이션. HDL Workflow Advisor는 속도 병목 현상을 파악하고 설계 성능을 향상시킬 수 있도록 Simulink에서 주 경로 타이밍을 강조 표시합니다.

합성 후 타이밍 보고서를 보고 Simulink 모델을 백 애너테이션하여 타이밍 제약 병목 현상을 파악할 수 있습니다. 이러한 합성 툴과의 통합은 신속한 설계 반복을 가능하게 하고 FPGA 설계 주기를 크게 단축합니다.

HDL 코드 검증

생성된 HDL 코드의 신속한 검증을 위해 HDL Coder는 VHDL 및 Verilog 테스트 벤치를 생성합니다. 사용자는 다양한 옵션을 사용하여 HDL 테스트 벤치를 정의할 수 있습니다. 스크립트 파일을 생성하여 HDL 시뮬레이터에서 코드를 컴파일하고 시뮬레이션하는 과정을 자동화할 수도 있습니다.

HDL Coder를 HDL Verifier와 함께 사용하여 두 가지 유형의 cosimulation 모델을 생성할 수 있습니다.

  • Cadence Incisive 또는 Mentor Graphics ModelSim 및 Questa와 같이 Simulink 및 HDL 시뮬레이터를 통해 HDL Cosimulation을 수행하기 위한 HDL cosimulation 모델
  • Simulink 및 FPGA 보드를 통해 설계를 검증하기 위한 FIL(FPGA-in-the-loop) cosimulation 모델
Automatically generated FGPA-in-the-loop (FIL) model for video sharpening.
비디오를 선명하게 처리하기 위한 자동 생성된 FIL(FPGA-in-the-loop) 모델. 하드웨어에서 설계 공간 탐색을 효율적으로 수행할 수 있는 FIL 시뮬레이션

HDL 코드 기록 및 추적

HDL Coder는 하이퍼링크된 HDL 코드와 생성된 HDL 파일이 있는 테이블을 포함한 HTML 보고서에 생성된 코드를 기록합니다. HDL 코드의 하이퍼링크를 통해 해당 코드를 생성한 MATLAB 알고리즘 또는 Simulink 블록으로 이동할 수 있습니다.

HDL Coder는 다음을 지원함으로써 DO-254와 같은 표준을 준수하는 고무결성 응용 프로그램을 위한 코드 추적성을 지원합니다.

  • 생성된 HDL 코드에서 MATLAB 코드로 이동
  • 양방향 추적을 위해 Simulink 블록과 생성된 HDL 코드 사이에서 이동
  • 사용자가 제어하는 주석과 설명을 삽입하여 코드 가독성을 향상
Code Generation Report in MATLAB, which lets you navigate to MATLAB code from generated VHDL and Verilog code
생성된 VHDL 및 Verilog 코드로부터 MATLAB 코드로 이동할 수 있는 MATLAB의 코드 생성 보고서

Simulink Verification and Validation™을 HDL Coder와 함께 사용하면 Simulink 또는 Stateflow에서 생성된 HDL 코드에 시스템 요구사항을 주석으로 포함시킬 수 있습니다. 결과적으로 시스템 요구사항부터 생성된 HDL 코드까지 전체 작업 흐름에 대해 완전한 투명성을 달성할 수 있습니다.

HDL Code Generation Report in Simulink, which lets you navigate between model and generated HDL code.
모델과 생성된 HDL 코드 사이를 이동할 수 있는 Simulink의 HDL 코드 생성 보고서

HDL Implementation and Verification of a High-Performance FFT

웨비나 보기