SDSoC 개발환경은 C/C++ ASSP와 유사한 프로그래밍 경험으로 애플리케이션 개발, 시스템 아키텍처 정의, 플랫폼 생성 등의 생산성을 높여준다. SDSoC를 통해 임베디드 소프트웨어 개발자들은 징크 올프로그래머블 SoC 및 MPSoC를 활용해 시스템의 개발 속도를 높일 수 있다.
자일링스는 높은 수준의 프로그래밍 언어가 사용되는 FPGA의 개발 경험이 없는 임베디드 소프트웨어 개발자들을 위한 개발환경인 SDx 3세대 제품 SDSoC를 발표했다. 이 제품은 사용이 간편한 이클립스(Eclipse) 통합개발환경(IDE)과 이종 징크(Zynqⓡ) 올프로그래머블 SoC 및 MPSoC 구현을 위한 포괄적인 개발 플랫폼을 포함함으로써 대폭 간소화된 ASSP와 유사한 프로그래밍 환경을 제공한다.
또한 C/C++ 전체 시스템 최적화 컴파일러를 포함하고 있어 시스템 레벨 프로파일링, 프로그래머블 로직을 이용한 소프트웨어 가속화 및 시스템 커넥티비티를 자동으로 생성한다. 여기에 프로그래밍을 단축할 수 있는 라이브러리도 제공한다.
원래 SDx 제품군은 자일링스의 비바도(Vivado) 상위 도구에 해당하는 제품이다. 첫 번째 SDNet은 패킷 프로세싱(Packet Processing)용, 이어 소개한 SDAccel은 데이터 센터(Data Center) 및 의료(Medical) 등의 용도를 위한 것으로, 모두 C/C++를 통해 FPGA의 LC(Logic Cell)를 간단히 이용하기 도구이며, SDSoC는 그 후속 제품이라고 할 수 있다. 가장 큰 차이는 이용 형태다.
SDNet은 SDN(Software Defined Network)에 대응한 형태로 독자적인 SDNet 코드라는(C/C++ 환경) 코드를 부여하면 이에 맞춰 자동으로 FPGA에 실행 이미지가 생성된다. SDAccel은 C/C++/OpenCL의 형태로 애플리케이션을 작성하여 두고, 이를 FPGA에서 실행시키는 일종의 크로스 컴파일러이라고도 말할 수 있다. 따라서 이 두 FPGA 패브릭(Fabric)만 있으면 자일링스의 어떤 FPGA에서도 원칙적으로 동작하지만, SDSoC는 징크 및 최근 발표한 징크 MPSoC 만을 지원한다.
자일링스는 2011년에 징크-7000(Zynqⓡ-7000) 올 프로그래머블 SoC를 출시한 데 이어 현재 징크 올트라스케일+(UltraScale+)™ MPSoC를 선보이면서, 28 nm 노드와 16 nm 노드의 ARM 기반 프로세싱 시스템과 프로그래머블 로직을 조합함으로써 기존 프로세서와 도메인별 애플리케이션 SoC 시장을 넘보고 있다.
SDSoC는 징크의 ARM 코어 상에서 동작하는 C/C++ 애플리케이션의 일부를 FPGA의 LC를 이용해 고속화할 수 있는 도구이다. 징크와 같은 CPU+FPGA 구성은, CPU 쪽은 소프트웨어에서 모두 기술할 수 있기 때문에 자유도는 높지만 성능은 높지 않다.
반면 FPGA 패브릭 쪽은 성능은 매우높지만, RTL(VHDL이나 Verilog) 개발 전문지식이 있어야 한다. 이 문제를 해결하기 위해 자일링스는 RTL를 사용하지 못하는 엔지니어들에게 FPGA를 사용할 수 있게끔 하기 위한 도구인 SDSoC를 추가한 것이다.
SDSoC은 신속한 시스템 성능 예측이 가능하다. 사용자가 어느 기능을 프로그래머블 로직으로 가속화할지 지정하면 SDSoC가 소프트웨어 사이클을 보고하도록 C/C++ 코드를 생성하고, 데이터 전송뿐만 아니라 전반적인 애플리케이션 속도까지 단축하여 예측할 수 있다.
또한 조기에 신속하게 최적의 시스템 성능 및 전력을 예측하고 평가할 수 있다.
플랫폼 개발자들을 위한 전문가 사용 모델
SDSoC는 시스템 디자이너와 플랫폼 개발자를 위한 전문가 사용 모델을 제공한다. 시스템 레벨의 프로파일링과 성능분석 기능 및 자동 시스템 접속 생성을 통해, 이 툴은 디자이너들이 애플리케이션 플랫폼에 이상적이고 최적의 구현을 정의 및 탐색, 생성할 수 있도록 도와주며, 임베디드 소프트웨어 개발자들이 애플리케이션 플랫폼을 위한 애플리케이션을 구축할 수 있도록 지원한다.
디자이너는 자동 시스템 접속 생성을 활용해 빠르게 매크로 및 마이크로 시스템 아키텍처를 정의 및 탐색, 생성함으로써 징크 프로세싱 시스템과 메모리, 프로그래머블 로직 기반의 가속기 사이에서 최적화된 인터커넥트 아키텍처를 결정할 수 있다.
자일링스의 비바도 디자인 슈트와 SDSoC를 조합하여 애플리케이션별 플랫폼을 생성할 수 있다. 이 플랫폼 생성을 통해 레거시 RTL 및 IP가 C 호출 라이브러리로 활용되게 할 수도 있다. 이는 디자인을 재사용하여 플랫폼 개발 속도를 높이고자 하는 팀들에게 도움이 된다.
SDSoC는 ZC702, ZC706 등의 징크 올프로그래머블 SoC 기반의 개발 보드와 제드보드(Zedboard), MicroZed, ZYBO 등의 서드파티 및 특정용도 플랫폼에 이용하도록 보드 지원 패키지(Board Support Package, BSP)를 제공한다.
BSP는 소프트웨어 개발자들과 시스템 디자이너들의 편의를 위해 플랫폼을 추상화하는 메타데이터를 포함함으로써 보다 지능적인 이종 시스템을 간편하게 생성할 수 있고, 통합·검증할 수 있다. 자일링스에서 제공하는 것이든 자체 작성한 플랫폼이든 관계없이 SDSoC를 이용해 소프트웨어로 구성 가능한 스마트한 시스템을 설계할 수 있다.
SDSoC의 정식 버전은 6월중 공급될 예정이다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>