이 Mandelbrot 설계 예는 Nios® II 임베디드 프로세서 C-투-하드웨어(C2H) 가속 컴파일러의 사용을 보여줍니다. 이 예에서 C2H 컴파일러는 만델브로트 알고리즘의 C 기반 구현을 하드웨어로 변환합니다. 이 디자인에는 계산된 픽셀 값의 풀 모션 비디오를 표시하는 비디오 컨트롤러도 포함되어 있습니다.
Mandelbrot 패턴은 복잡한 패턴과 프로세서 집약적 구현으로 인해 가장 잘 알려진 프랙탈 중 하나가 되었습니다. 알고리즘은 x축이 실제 구성 요소를 나타내는 복잡한 평면에서 작동하며 y축은 가상 구성 요소를 나타냅니다. 이 예는 평면의 다른 영역으로의 움직임을 수행하고 확대 및 축소하여 풀 모션 비디오를 만듭니다.
이 예는 하드웨어 가속기가 사용 중인 동안 소프트웨어에서 좌표 계산을 수행하여 병렬주의를 최대한 활용합니다. 이 작업은 DDR SDRAM에서 비디오 데이터를 세 번 버퍼링하고 Nios II 임베디드 프로세서를 사용하여 데이터 흐름을 조정합니다. 하드웨어 가속기가 전체 프레임 버퍼를 렌더링할 때마다 프로세서가 데이터를 관리하여 벤치마크 데이터를 오버레이하고 비디오 컨트롤러에 새로운 버퍼가 표시될 준비가 되었음을 알립니다.
이 설계 예제 사용
이 설계는 다음 개발 키트를 대상으로 합니다.
Nios II C2H Mandelbrot 디자인 예시 다운로드(.zip 파일)
Nios II C2H 만델브로트 디자인 예시 README(.txt 파일)를 다운로드하십시오.
이 설계의 사용은 인텔® 설계 예시 라이센스 계약의이용 약관에 따라 달라질 수 있습니다.
.zip 파일에는 예제를 재현하는 데 필요한 모든 소프트웨어 파일과 readme.txt 파일이 포함되어 있습니다. readme.txt 파일에는 기존 하드웨어 설계를 대상으로 하는 설계를 재구축하는 지침이 포함되어 있습니다.
블록 다이어그램
그림 1. C2H 컴파일러 Mandelbrot 설계 예
C2H 컴파일러 가속 결과
C2H 컴파일러 가속 Mandelbrot 알고리즘은 컴파일러 최적화 레벨 2(-O2)를 사용하여 가장 빠른 Nios II 프로세서에서 실행되는 동일한 알고리즘과 비교하여 최소 60배의 속도를 향상합니다. 이 속도 증가는 하드웨어가 제공할 수 있는 병렬 및 빠른 반복 속도 때문이며 범용 처리 장치에서는 불가능합니다.