하드웨어 에뮬레이션
Hardware emulation집적회로 설계에서 하드웨어 에뮬레이션은 하나 이상의 하드웨어(일반적으로 설계 중인 시스템)와 다른 하드웨어(일반적으로 특수 목적 에뮬레이션 시스템)의 동작을 모방하는 프로세스입니다.에뮬레이션 모델은 보통 하드웨어 기술 언어(예: Verilog) 소스 코드를 기반으로 하며, 이 소스 코드는 에뮬레이션 시스템에서 사용되는 형식으로 컴파일됩니다.목표는 일반적으로 설계 중인 시스템의 디버깅 및 기능 검증입니다.대부분의 경우 에뮬레이터는 아직 구축되지 않은 칩 대신 작동 대상 시스템에 연결할 수 있을 정도로 빠릅니다. 따라서 전체 시스템을 라이브 데이터로 디버깅할 수 있습니다.이것은, 회선내 에뮬레이션의 특정의 경우입니다.
하드웨어 에뮬레이션은 소프트웨어 에뮬레이션 기능을 지원하는 하드웨어 프로세서를 탑재한 확장 카드와 같은 하드웨어 디바이스와 혼동될 수 있습니다.예를 들어 x86 칩을 탑재한 오래된 도터보드에서는 x86 OS를 다른 프로세서 패밀리의 메인보드에서 실행할 수 있습니다.
서론
실리콘 집적회로 레진 및 스테핑의 대부분은 적어도 부분적으로 설계 프로세스의 RTL 단계에서 의도하지 않게 발생한 기능 오류 및 버그에 기인합니다.따라서 종합적인 기능 검증은 개발 비용을 절감하고 제품을 제시간에 납품하기 위한 핵심입니다.설계의 기능 검증은 가장 자주 필드 프로그래머블 게이트 어레이(FPGA) 상에서 논리 시뮬레이션 및/또는 프로토타이핑을 사용하여 수행됩니다.각각에 장점과 단점이 있으며 종종 둘 다 사용된다.논리 시뮬레이션은 쉽고 정확하며 유연하며 비용도 저렴합니다.그러나 대규모 설계에서는 시뮬레이션 속도가 빠르지 않고 하드웨어 설계에 대해 애플리케이션 소프트웨어를 실행하기에는 거의 항상 너무 느립니다.FPGA 기반 프로토타입은 빠르고 저렴하지만 대형 설계를 여러 FPGA에 구현하는 데 시간이 매우 오래 걸리고 오류가 발생하기 쉽습니다.설계 결함을 수정하기 위한 변경도 구현에 시간이 오래 걸리고 보드 배선을 변경해야 할 수 있습니다.기존의 벤더 툴에서는 FPGA 프로토타입은 디버깅 기능이 거의 없고 FPGA 내부의 프로빙 신호를 실시간으로 재컴파일하는 것이 매우 어려우며 프로브를 이동하기 위해 FPGA를 재컴파일하는 데 시간이 너무 오래 걸립니다.이는 신호 가시성에 대한 제한을 제거하는 고급 FPGA 프로토타입 디버깅툴의[1] 등장으로 변화하고 있습니다.일반적으로는 검증 프로세스 초기에 버그와 수정이 빈번한 경우 시뮬레이션을 사용하고 설계가 기본적으로 완료되어 시스템 수준의 버그를 발견하기 위한 충분한 테스트 속도를 필요로 하는 경우 개발 사이클이 끝날 때 프로토타이핑을 사용하는 것이 좋습니다.FPGA 프로토타이핑은 소프트웨어 테스트에도 인기가 있습니다.
시뮬레이션 가속은 시뮬레이션의 성능 단점을 어느 정도 해결할 수 있습니다.여기서 설계는 하드웨어 액셀러레이터에 매핑되어 훨씬 더 빠르게 실행되며 테스트벤치(및 동작 설계 코드)는 워크스테이션의 시뮬레이터에서 계속 실행됩니다.고대역폭, 저지연 채널은 워크스테이션을 액셀러레이터에 연결하여 테스트벤치와 설계 간에 신호 데이터를 교환합니다.Amdahl의 법칙에 따라 체인의 가장 느린 장치가 달성 가능한 속도를 결정합니다.보통 이것은 시뮬레이터의 테스트 벤치입니다.매우 효율적인 테스트벤치(C 또는 트랜잭션 기반)를 사용하면 채널이 병목현상이 될 수 있습니다.경우에 따라 트랜잭션 수준 테스트벤치는 "실시간" 자극만큼 많은 데이터를 에뮬레이트되는 설계에 제공할 수 있다.
회로 내 에뮬레이션은 FPGA 프로토타이핑의 구현 시간을 다소 단축하고 포괄적이고 효율적인 디버깅 기능을 제공합니다.에뮬레이션은 FPGA 프로토타입(75,000달러)[according to whom?]에 비해 실행 속도와 높은 비용(100만달러 이상)을 희생합니다.다른 방향에서 에뮬레이션을 보면 시뮬레이션된 테스트 벤치에 "실시간" 자극을 대체하여 가속 성능을 개선합니다.이 자극은 대상 시스템(개발 중인 제품) 또는 테스트 장비에서 발생할 수 있습니다.시뮬레이션의 10,000배에서 100,000배의 속도로 에뮬레이션을 통해 포괄적인 하드웨어 디버깅 환경을 제공하면서 애플리케이션 소프트웨어를 테스트할 수 있습니다.
디버깅 시뮬레이션 대 에뮬레이션/프로토타이핑
시뮬레이션과 프로토타이핑에는 두 가지 다른 실행 스타일이 수반됩니다.시뮬레이션은 프로토타입이 완전히 병렬로 실행되는 동안 RTL 코드를 순차적으로 실행합니다.이로 인해 디버깅에 차이가 생깁니다.시뮬레이션 시:
- 사용자는 중단점을 설정하고 시뮬레이션을 중지하여 설계 상태를 검사하고 설계와 상호 작용하며 시뮬레이션을 재개할 수 있습니다.
- 사용자는 코드의 일부만 실행된 상태에서 "미드 사이클" 실행을 중지할 수 있습니다.
- 사용자는 설계상의 모든 신호와 메모리 위치의 내용을 언제든지 볼 수 있습니다.
- 사용자는 체크포인트를 저장한 경우 시간을 백업하고 다시 실행할 수도 있습니다.
시제품의 경우:
- 사용자는 가시성을 위해 논리 분석기를 사용하기 때문에 사전에 (프로브를 클리핑하여) 결정한 제한된 수의 신호만 볼 수 있습니다.이는 Certus와 [2]같은 10,000s의 내부 신호에 대한 완전한 가시성을 제공하는 새로운 FPGA 프로토타입 툴로 인해 변화하고 있습니다.
- 로직 분석기가 트리거할 때 대상이 중지되지 않으므로 사용자가 프로브 또는 트리거 조건을 변경할 때마다 환경을 재설정하고 처음부터 다시 시작해야 합니다.
- 프로브는 특정 신호를 관찰할 수 있도록 RTL 설계에 직접 추가됩니다.시스템이 실행되면 계측된 각 신호에 연결된 RTL 기반 프로브가 각 클럭 사이클에서 신호 값을 수집합니다.데이터는 FPGA 블록 RAM의 트레이스 버퍼에 저장됩니다.시제품에 접속된 분석기는 효율적인 [3]디버깅을 위해 사용자에게 오프라인 가시성을 제공하는 정보를 시스템에 다운로드한다.
가속과 에뮬레이션은 전체 설계가 실리콘에서와 같이 동시에 실행되기 때문에 RTL 실행 및 디버깅 측면에서 프로토타이핑과 실리콘에 가깝습니다.시뮬레이션 가속과 회로 내 에뮬레이션을 모두 제공하기 위해 종종 동일한 하드웨어가 사용되기 때문에 이들 시스템은 이 두 가지 매우 다른 디버깅 스타일을 혼합하여 제공합니다.
하이엔드 하드웨어 에뮬레이터는 논리 시뮬레이터에서 볼 수 있는 많은 기능을 갖춘 디버깅 환경을 제공하며 경우에 따라서는 디버깅 기능을 능가하기도 합니다.
- 사용자는 중단점을 설정하고 에뮬레이션을 중지하여 설계 상태를 검사하고 설계와 상호 작용하며 에뮬레이션을 재개할 수 있습니다.에뮬레이터는 항상 주기 경계에서 중지됩니다.
- 사용자는 실행 전에 프로브를 설정할 필요 없이 설계에 포함된 신호 또는 메모리 내용을 볼 수 있습니다.과거 시간에도 가시성이 제공되지만 과거에 표시할 수 있는 시간이 에뮬레이터의 트레이스 메모리 깊이로 제한될 수 있습니다.
- 사용자는 체크포인트를 저장한 경우 시간을 백업하고 다시 실행할 수도 있습니다.
- 높은 비용 때문에 에뮬레이터는 많은 개발자가 접근할 수 없는 수준이며, 이는 고급 FPGA 프로토타이핑 플랫폼과 디버깅 툴의 증가로 이어집니다.
에뮬레이션 및 2스테이트 로직
시뮬레이션과 가속 및 에뮬레이션의 또 다른 차이점은 액셀러레이터가 구현에 하드웨어를 사용한 결과입니다. 액셀러레이터는 2개의 논리 상태만을 가지고 있으며 실리콘이 제조되었을 때 동작하는 방식입니다.이것은 다음을 의미합니다.
- X-상태 초기화 분석에는 도움이 되지 않습니다.
- 이들은 강도 분해능을 분석할 수 없거나 컴파일 시 최소한 정적으로 수행해야 합니다.
- 에뮬레이터는 정확한 회로 타이밍을 모델링하지 않기 때문에 레이스 조건이나 셋업 및 홀드 타임 위반을 검출하지 못할 가능성이 있습니다.
이러한 작업은 로직 시뮬레이션 중 또는 정적 타이밍 분석 도구를 사용하여 적절하게 수행됩니다.
에뮬레이션 대 프로토타이핑
에뮬레이터와 FPGA 프로토타이핑 시스템의 주요 차이점은 에뮬레이터가 풍부한 디버깅 환경을 제공하는 반면 프로토타이핑 시스템은 디버깅 기능이 거의 또는 전혀 없으며 시스템 분석 및 소프트웨어 개발을 위해 설계가 디버깅된 후에 주로 사용된다는 것입니다.작은 FPGA LUT 충격으로 완전한 RTL 신호 가시성을 실현하고, 딥 캡처 심도를 실현하며, 멀티칩 및 클럭 도메인 분석을 제공하는 새로운 툴이 등장하여 [2]에뮬레이터와 동등한 효율적인 디버깅을 가능하게 하고 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Tektronix Shakes Up Prototyping, Embedded Instrumentation Boosts Boards to Emulator Status". Electronic Engineering Journal. October 30, 2012. Retrieved October 30, 2012.
- ^ a b "Tektronix hopes to shake up ASIC prototyping". EE Times. October 30, 2012. Retrieved October 30, 2012.[영구 데드링크]
- ^ "Break Through Your ASIC Prototyping Bottlenecks". October 23, 2012. Retrieved October 30, 2012.
- Lavagno, Martin 및 Scheffer의 집적회로를 위한 전자설계 자동화 핸드북, ISBN 0-8493-3096-3 위의 요약이 도출된 필드에 대한 조사(허가를 받아 작성).