알테라

최근의 FPGA는 복잡한 프로세서 시스템, 통합형 인터페이스 구조 및 설계, 칩 당 최대 300만 ASIC 게이트를 통해 유연성과 재구성가능한 아키텍처를 무기로 반도체 시장을 점령하고 있다. 짧은 설계 주기로 엔지니어를 압박하고 있는 시간제한은 실패를 허용하는 요소가 아니다. 모든 수정은 시간과 비용이 든다. 따라서 완성된 반도체 제품의 기능과 반응은 처음 실리콘 합성 이후 적절해야 한다.오늘날의 FPGA는 다음 2가지 단계에서 개발된다.쪾HDL 기능 블록은 처음에 개별적으로 시뮬레이트 되고, 그 이후 전체적으로 시뮬레이트 된다.쪾FPGA 설계는 고속 프로토타입 시스템에서 합성되고 테스트 된다.시뮬레이터 제어식 에뮬레이션인 SEmulation은 이 두 가지 단계가 결합되어 시뮬레이터(소프트웨어)에서 FPGA(소프트웨어)로 기능별 블록에 대한 단계별 이동을 가능하게 한다. 이 때 시뮬레이션 환경을 그대로 유지하면서 개발 시간이 단축된다. 현재, 시뮬레이션과 에뮬레이션 환경은 분리되어 있으며 항상 호환되는 것은 아니다. 그 결과 에뮬레이터 환경에서 동작할 수 있는 시뮬레이트 코드를 얻는데 많은 엔지니어링 시간이 낭비되고 있다. 이 경우 SEmulator를 사용하면 시뮬레이션이 타깃 하드웨어에서 시행되어 오류와 불안전성이 제거할 수 있다. SEmulator를 통해 엔지니어는 외부 부품을 시뮬레이션(‘루프 내 하드웨어’로도 알려짐)으로 도입할 수 있다. 이것은 개발자에게 개발 비용을 감소하면서 시장 조건에 대한 반응을 확대할 수 있어 기능별 최초의 실리콘을 의미한다. 그림 1은 SEmulation의 비용과 복잡도에 대한 장점을 보여준다.SEmulator, 시뮬레이션과 에뮬레이션 사이의 단점 보완시뮬레이션과 에뮬레이션이라는 단어의 조합으로 탄생한 SEmulator는 디지털 하드웨어 시뮬레이션 영역과 FPGA 프로토타입 영역 사이의 기능을 연결하는 역할을 제공한다. 설계 블록은 이 두 가지 영역에서 쉽게 이동될 수 있다.요즈음 디지털 하드웨어는 VHDL이나 Verilog와 같은 HDL(Hardware Description Language)을 사용해 설명되고 있다. 이러한 설명은 문제 전용식 테스트 벤치(HDL로 작성됨)과 함께 시뮬레이트 된다. 설계의 초기 기능 검증은 시뮬레이션을 통해 수행되며, 이 방식은 오늘날 개발된 복잡한 설계의 필수요소이다.그러나 하드웨어 설계자에게 실질적인 목적은 시뮬레이션이 아니며 실제 하드웨어에서 설계를 동작시키는 것이다. 시뮬레이션에서 실제 하드웨어 프로토타입에 이르는 단계는 엄청난 작업이며 과소평가되어서는 안 된다. 시뮬레이션 결과가 만족스러울 때, 설계자는 전체 설계를 채택하여 합성된 넷리스트를 FPGA 프로토타입 보드로 다운로드 시킨다. 그 다음, 설계자는 로직 애널라이저가 필요하며 설계에서 버그를 찾아내어 수정할 수 있는 충분한 시간이 요구된다.SEmulator 방식을 통해 설계자는 설계 플로우 초기 단계에서 프로토타입 FPGA 보드를 사용할 수 있다. SEmulator를 통해 설계 블록은 FPGA로 이동될 수 있으며 HDL 시뮬레이터에서 실제 개발된 설계블록으로 코-시뮬레이션 할 수 있다.그림 2는 SEmulator 규칙을 제시한다. HDL 시뮬레이터는 설계 파일의 기능 검증을 위해 사용된다. 설계 파일이 안정적일 때마다 이것은 FPGA 프로토타입 시스템으로 이동될 수 있으며, 이동된 블록은 시뮬레이터에 남아있는 블록과 코-시뮬레이트 될 것이다. 설계자는 HDL 설계 설명서를 이용한 시뮬레이션과 FPGA 프로토타입 시스템에 위치된 실제 하드웨어를 이용한 코-시뮬레이션 사이에 쉽게 전환할 수 있다. 이 방식은 많은 노력을 기울이지 않고도 설계 초기 단계에서 실제 하드웨어 플랫폼을 이용할 수 있다.모든 설계 블록이 HDL 시뮬레이터로 조절될 때, 이것을 시뮬레이션으로 부른다. 전체 설계가 FPGA 프로토타입 보드로 이동될 때, 이것은 전체 클록 속도에서 실행될 수 있으며 에뮬레이션으로 불린다. 이 2가지의 모드(FPGA에 합성된 블록과 시뮬레이터에서 시뮬레이션 모델로써 다른 블록을 가진다)를 혼합한 것을 SEmulation이라 명명한다. 그림 3은 SEmulator 하드웨어 플랫폼의 가장 중요한 부분을 보여준다. 마더보드(Hpe_midi, 붉은 색으로 표시)는 메모리, I/O 인터페이스, 휴먼 인터페이스와 같은 가장 일반적인 유용한 주변기기를 포함한다. 이것은 FPGA 모듈 보드(DUT Board: Device UInder Test Board)가 삽입되는 곳이다. 그림 3은 2FPGA DUT 보드(푸른색)를 보여준다.쪾클록 팩토리는 DUT 클록 입력을 위한 필수적인 클록 리소스 수 선택을 가능하게 한다.쪾Altera의 USB-Blaster 다운로드 케이블은 DUT 디바이스를 구성하기 위해 사용될 수 있다.쪾차일드-보드(Child-Board) 커넥터는 DDR2와 같은 애플리케이션 특정 하드웨어 블록으로 시스템을 확장하기 위해 사용된다.고속 인터페이스는 특수한 차일드 보드로 달성되며 차일드-보드 커넥터 가운데 하나를 통해 보드에 연결된다. 고속 인터페이스(녹색)는 PCI Express(PCIe) 인터페이스 보드를 통해 PC와 통신한다. 이것은 PC 소프트웨어(HDL 시뮬레이터 + Hpe_desk)가 하나 또는 그 이상의 DUT FPGA에 위치한 I/O 매니저와 통신할 수 있게 한다. 이 시스템은 DUT FPGA의 설계 블록을 관찰하고 제어할 수 있게 하며, 반면 고속 연결은 시뮬레이션 성능에 대해 긍정적인 영향을 미친다.SEmulation용 사례 활용하기유연한 SEmulator 방식은 광범위한 애플리케이션을 제공해 개발 과정의 속도를 가속화시키고 설계 품질을 향상시킨다. 다음 요점들은 이러한 가능성을 설명한다.기능이 풍부한 FPGA 프로토타입 환경하드웨어 프로토타입 및 에뮬레이션(Hpe) 제품군은 복잡한 고속 설계에 적합한 모듈식 FPGA 보드 컨셉을 제공한다. Hpe-midi는 확장 가능한 모듈식 FPGA 프로토타입 플랫폼이다. 베이스 보드는 USB 2.0, Ethernet 10/100/1000, RS232, LIN, CAN 2B를 포함해 광범위한 보급형 인터페이스를 갖추고 있다. 이 보드는 플래시, SRAM, EEPROM, SD카드 접속과 같은 추가적인 메모리도 제공한다. 기본적인 휴먼 인터페이스는 12키 매트릭스 키보드, 여러 개의 LED, LCD 디스플레이 커넥터로 구성된다. 향상된 사용자 인터페이스 작업을 위해, VGA 인터페이스, PS2 입력 커넥터, AC97 사운드 칩이 사용될 수 있다.베이스 보드로 시작하는 FPGA 모듈은 1개, 2개 혹은 4개까지 알테라의 Stratix II FPGA로 선택될 수 있다(Stratix III FPGA 모듈은 실리콘이 이용 가능하면 제공될 것이다). 인터페이스나 하드웨어 디바이스의 분실은 고속 차일드-보드 커넥터를 통해 쉽게 추가될 수 있다. 하나의 차일드-보드 커넥터는 엄청난 메모리 조건을 위해 DDR2 메모리 보드를 보유할 수 있다.설계 플로우에서 실제 하드웨어 사용하기설계 플로우 초기 단계에서 실제 하드웨어를 이용하는 이점은 설계자가 설계 블록을 단계별로 FPGA 보드로 이동할 수 있다는 점이다. 소규모 단계를 이용하는 것이 디버깅을 더 쉽게 만든다. 시뮬레이션 테스트 벤치의 사용은 설계자에게 상당한 시간 절약 기능을 제공한다. 시뮬레이션과 FPGA 프로토타입 보드를 위한 다른 테스트 환경이 필요 없기 때문이다.FPGA 프로토타입 보드로 설계 블록을 이용시키는 것은 단방향 방식이 아니다. 합성된 사항에서 버그가 발견될 경우, 그 블록의 시뮬레이션 모델로 쉽게 변경될 수 있다. 버그가 수정된 이후, 블록은 하드웨어로 다시 이동될 수 있다.설계 블록의 점검 버전DUT FPGA는 설계 블록의 서로 다른 버전을 병렬식으로 가질 수 있으며, 설계자는 디버깅 목적을 위해 서로 다른 버전 사이에서 쉽게 변경할 수 있다.실제 하드웨어(루프에서 하드웨어)를 통한코-시뮬레이션SEmulator 시스템은 기존의 HDL 시뮬레이션으로 실제 하드웨어 블록(예: 이더넷, 디스플레이 컨트롤러)의 코-시뮬레이션을 가능하게 한다. 이러한 방식은 설계 사이클 초기에서 실제 하드웨어의 통합을 가능하게 한다. 루프에서 하드웨어의 사용을 통한 또 다른 이점은 하드웨어 블록으로 코-시뮬레이트 하는 것이다. 여기서 시뮬레이션 모델은 이용할 수 없다. 차일드 보드에서 CPU를 위치시키고 새롭게 개발된 부품으로 이것을 코-시뮬레이트함으로써 기존의 CPU(시뮬레이션 모델 없이)로 새롭게 개발된 주변기기 블록을 코-시뮬레이트 하는 것은 가능하다.시뮬레이션 가속HDL 시뮬레이터로 엄청난 규모의 설계를 시뮬레이션 하는 것은 지루한 작업이다. 설계자가 설계의 일부를 FPGA 프로토타입 보드로 이동시켜 HDL 시뮬레이션으로 코-시뮬레이션할 경우, 시뮬레이션 동작 시간은 감소될 수 있다. 소규모 설계는 혜택을 받지 못할 것이다. 그 이유는 통신 오버헤드가 이득 시뮬레이션 성능 보다 더 높기 때문이다. 그러나 실제 설계는 속도가 매우 빨라질 것이다. 그림 4는 전체 시뮬레이션 시간에 대한 엄청난 영향과 달성 가능한 감소를 보여준다. HAC2 기술은 SEmulator 시스템으로 통합되어, 유사한 결과들이 새로운 시스템에서 달성된다.앞의 LEON3 사례에서, HDL 시뮬레이션을 작동하면 10시간이 걸린다. 이 설계를 FPGA로 위치시켜 클록 가속 시뮬레이션으로 동작시킴으로써, HDL 테스트 벤치는 HDL 시뮬레이터에서 조용히 있으나 이 때 이것은 37배 더 빠르게 동작하며 완성되기까지 16분밖에 안 걸린다. 클록 가속 기술을 통해 설계는 선택된 시간 동안 전속력(최대 100MHz)으로 동작될 수 있으며, LEON3 설계가 시뮬레이션 시간을 4분까지 감소시킬 수 있게 한다. 이것은 가속의 137배이다.고속 시뮬레이션은 고속 설계 반복을 가능하게 하며, 더욱 많은 테스트 사례를 위해 시뮬레이션을 가능하게 한다.Hpe_desk 소프트웨어Hpe_desk는 SEmulator 기능을 위해 직관적으로 이해할 수 있고 강력한 손으로 쓸 수 있는 그래픽 인터페이스를 제공한다. 그림 5는 주요한 소프트웨어 블록(Hpe_desk 와 HDL 시뮬레이터)과 설계 파일이 처리되는 방법을 제시한다.Hpe_desk 소프트웨어는 다음과 같은 주요 요소들로 구성된다.쪾VHDL/Verilog 파서쪾분류 검색쪾알테라 Quartus 개발 소프트웨어 인터페이스쪾클록 팩토리쪾로직 애널라이저쪾JTAG 보드 테스트 인터페이스VHDL/Verilog 파서VHDL/Verilog 파서(parser)는 설계를 설명하고 설계 분류 및 SEmulation을 위한 기타 관련된 데이터를 추출한다. 그 결과는 설계 데이터베이스에 저장된다.분류 검색(Hierarchy Browser)분류 검색을 통해 설계자는 FPGA에서 실행되어야 하는 설계 블록을 선택할 수 있다. 설계에 대한 필수 정보는 이 설계 데이터베이스에 저장되어 있다. 그림 6은 이에 대한 스크린 샷이다.팩토리알테라 Quartus 인터페이스알테라 Quartus 인크리멘탈 합성 플로우는 선택된 설계 블록을 FPGA 보드로 신속하게 변경하기 위해 사용될 수 있다. 그 다음, 생성된 구성 비트스트림은 FPGA 프로토타입 보드로 다운로드 될 수 있다.클록 팩토리클록 팩토리는 그림 7에서 보는 것처럼, 에뮬레이션 모드를 위해 필수 클록을 선택할 수 있는 사용하기 쉬운 인터페이스이다.JTAG 보드 테스트 인터페이스설계자는 보드 상의 JTAG 체인에 접속해 디버깅 목적을 위해 표준 프로토콜을 사용할 수 있다. 그림 8은 소규모 테스트 설계를 위한 JTAG GUI를 보여준다. 강력한 연결 테스트를 추가시켜 보드 테스트 용도로 사용될 수 있다.로직 애널라이저고속 로직 애널라이저(2008년 사용 가능)는 외부 로직 애널라이저를 사용할 필요 없이 버그의 위치를 발견하기 위해 도움을 줄 유용한 디버깅 보조 장치이다. 이 로직 애널라이저는 PCIe X4 인터페이스를 통해 PC와 통신한다.SEmulator 합성 플로우 세부 사항일단 설계자가 FPGA 프로토타입 보드에 위치할 블록을 선택하면, 알테라의 Quartus 인터페이스는 블록을 합성한다. 그 결과에 따른 설계 넷리스트와 사전 정의된 I/O 매니저 넷리스트는 상위 레벨의 넷리스트를 작성하기 위해 결합된다. I/O 매니저는 설계를 관찰하고 제어할 뿐 만 아니라 PC 소프트웨어에 통신 인터페이스를 제공하기 위해 필수적이다. Quartus 인터페이스는 보드 전용 비트스트림과 코-시뮬레이터 확장을 위한 필수적인 모드 특정 데이터를 익스포트한다. 이 합성 흐름도는 그림 9에서 볼 수 있다.보통, 하나 또는 그 이상의 서브 블록을 배제하는 것이 불가능하기 때문에, 전체 설계 계층은 FPGA에 위치된다. SEmulator 설계 흐름은 합성에서 서브-블록의 배제를 가능하게 하며 시뮬레이션 모델로써 유지시키고 있다. 이 기능은 설계 블록의 고속 코-시뮬레이션을 가능하게 한다. 대규모 하드웨어 블록이 FPGA에 위치되고 단지 소형 설계 블록들이 HDL 시뮬레이터에 의해 시뮬레이션 되기 때문이다.코-시뮬레이션 동작그림 10은 FPGA 프로토타입 보드에 연결된 멘토 그래픽스의 ModelSim 시뮬레이션의 스크린 샷을 보여준다.설계 블록이 합성되고 시뮬레이터가 이 설계 블록을 예시로 한 테스트 벤치를 로드한 후, 비트스트림은 DUT FPGA로 자동으로 전송된다. 이 지점에서 시뮬레이션은 시작될 수 있다. 합성된 블록과 선택된 내부 신호의 모든 상위 레벨 신호들은 표준 파형 창에서 볼 수 있다.SEmulation를 위한 하드웨어시뮬레이션과 에뮬레이션을 결합하기 위해, 하드웨어 가속기의 기능은 필수적이다. 1999년, 글라이히만 리서치는 기존 제품 HAC2를 기반으로 하드웨어 가속기와 코-시뮬레이터를 개발했다. HAC2는 효율적이고 관리하기 쉬운 제품이었으나, 프로토콜 속도와 같은 데이터 교환 및 데이터 수집 방법과 같은 주요 문제점이 존재한다. HAC2는 PCI 카드로 10Gbit 독자적인 인터페이스를 통해 확장할 수 있다. 이러한 시스템의 불리한 조건은 하드웨어를 위한 추가적인 비용과 이러한 시스템을 애플리케이션에 적용하는 어려움이다.하드웨어 가속기가 개발되었기 때문에, 글라이히만은 HAC2에서 알게된 개발 내용을 이용해, 병렬식의 FPGA 고속 프로토타입 보드를 개발하고 생산했다. Hpe 보드는 수많은 온보드 인터페이스의 강점과 고속 애플리케이션에 적용할 수 있는 성능을 기반으로 시장에서 이미 수용되고 있다.수백만 개의 시스템들이 전세계 대학과 실험실에서 이미 사용되고 있다. 2006년도 목표는 이 2개 시스템을 결합하는 것이다. 고객 토론과 요청들은 다음과 같은 주요 목적을 나타냈다.쪾추가적인 하드웨어 비용은 없다.쪾시뮬레이션과 에뮬레이션 간의 다른 구성은 없다.쪾넷리스트의 추가적인 합성 없이, 시뮬레이션과 에뮬레이션 간의 고속 스위치쪾편리한 핸들링쪾동일한 사용자 인터페이스에서 추가적인 디버그 툴쪾PC에 대한 표준 인터페이스쪾경쟁력 있는 가격Hpe_midi는 이러한 모든 요구 사항들을 해결할 수 있다.Hpe_midi,가장 유연한 고속 프로토타입 시스템Hpe_midi(그림 11) 는 Hpe_compact 에서 향상된 그 다음 단계로써 FPGA 프로토타입 시스템이다. 이것은 2002년 이후부터 이용할 수 있었다. 이 부품은 마더보드, 수많은 사용자 인터페이스, 제거 가능한 FPGA 모듈로 구성된다. 1 및 2 FPGA 모듈은 현재 이용 가능하며 4 및 8 FPGA모듈은 현재 개발 중이다.모든 Hpe_midis는 인클로저에서 제공된다. 이것은 기계식 및 환경적 손상에 대해 보드를 보호한다. 그러나 필요할 때마다, 시스템은 제거된 커버로 안전하게 사용될 수 있다. 이것은 숨겨진 버그 수를 감소시키는 글라이히만의 원리를 따르며, 이를 통해 설계자는 실질적인 개발 작업에 집중할 수 있다.그림 12에 Hpe_midi 베이스 보드의 특징을 나타냈다. 그림 13은 2FPGA 모듈의 블록 다이어그램을 보여준다. 글라이히만은 최대 속도에서 제한을 허용하지 않을 것이며, 따라서 모든 시스템은 가능한 최고 속도를 제공해, 고객들에게 FPGA 기술이 제공하는 모든 기능을 제공한다.쪾모든 FPGA는 알테라의 AES 암호화쪾모듈에서 프로그래머블 클록 팩토리는 유연성을 제공한다.쪾모든 FPGA에 적합한 온도 조절 팬은 최고 수준의 보안/신뢰성을 제공한다.쪾모듈에서 2개의 Hpe_child 보드와 함께 메인 보드에서 2개의 Hpe_child 보드는 거의 모든 애플리케이션에서 적용할 수 있다.쪾FPGA 간의 수많은 연결은 모든 합성을 보장한다.SEmulator 보드, 가격 대비 성능 뛰어나이 글은 더욱 단축된 검증 시간으로 개발시간 단축 및 개발비용 감소를 실현하기 위해 시뮬레이션과 설계 에뮬레이션 두 가지 모두가 단일 개발환경에서 어떻게 결합될 수 있는지를 다루고 있다. 현재 SEmulator 보드는 매우 경쟁력 있는 가격 대비 성능으로 이용할 수 있다. 유일하게 추가되는 필수 부품은 PCIe ×4 인터페이스와 같은 PCIe 외부 커넥터용 Hpe_child 보드이다. 이것은 PCIe 그래픽 슬롯(×16)에서 카드별로 PC에 최대 4개의 FPGA를 연결할 수 있으며 필수 데이터 처리량에 적합한 충분한 대역폭을 보장한다.
이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지