FPGA 시제품 제작

FPGA prototyping

FPGA 기반 프로토타이핑, ASIC 프로토타이핑 또는 SoC(시스템 온 칩) 프로토타이핑이라고도 하는 현장 프로그래밍 가능한 게이트 어레이 프로토타이핑(FPGA)은 하드웨어 검증 및 초기 소프트웨어 개발을 위해 FPGA에서 시스템 온칩 및 애플리케이션별 통합 회로 설계를 프로토타입화하는 방법이다.

초기 소프트웨어와 펌웨어의 공동 설계뿐만 아니라 하드웨어 설계에 대한 검증 방법이 주류를 이루었다. 하나 이상의 FPGA와 전자설계자동화(EDA) 소프트웨어로 SoC와 ASIC 디자인을 프로토타이핑하는 것이 좋은 방법이 됐다.[1]

프로토타이핑이 중요한 이유

  1. FPGA 프로토타입에서 SoC 설계를 실행하는 것은 기능적으로 정확한지 확인하는 신뢰할 수 있는 방법이다. 이는 설계자들이 하드웨어 설계가 건전하다는 것을 검증하기 위해 소프트웨어 시뮬레이션에만 의존하는 것과 비교된다. 현재 전체 SoC 설계의 약 3분의 1은 첫 번째 실리콘 패스 동안 결함이 없으며, 전체 리 스핀의 거의 절반은 기능 로직 오류로 인해 발생한다.[2] 단일 프로토타이핑 플랫폼은 첫 번째 실리콘이 통과하기 전에 하드웨어, 펌웨어 및 애플리케이션 소프트웨어 설계 기능에 대한 검증을 제공할 수 있다.[3]
  2. FPGA 프로토타이핑을 통해 출시 시간(TTM) 단축: 오늘날의 기술 주도 사회에서는, 새로운 제품이 빠르게 소개되고, 주어진 시장 창에서 제품을 준비하지 못하면 기업은 상당한 수익을 낼 수 있다.[4] 제품이 너무 늦게 시장에 출시되면 제품이 쓸모 없게 되어 회사에 제품에 대한 투자 자본이 손실될 수 있다. 설계 과정을 거쳐 FPGA는 생산 준비가 완료되고, 표준 ASIC는 생산까지 6개월 이상이 소요된다.[4]
  3. 개발 비용: 90nm ASIC/SoC 디자인 테이프의 개발비는 약 2000만달러로 마스크 세트 한 대에만 100만달러가 넘는다.[2] 45nm 설계의 개발 비용이 4000만 달러를 넘어설 것으로 예상된다. 마스크 세트 비용이 증가하고 IC 크기가 지속적으로 감소함에 따라, 리 스핀 수를 최소화하는 것이 개발 과정에 필수적이다.

프로토타이핑을 위한 설계

프로토타이핑[5] 설계(DFP)란 프로토타이핑에 적합한 시스템을 설계하는 것을 말한다. FPGA 프로토타입을 채택한 개발팀이 직면하고 있는 많은 장애물은 다음 3가지 "법"으로 세분화할 수 있다.

  • SoC가 FPGA보다 큼
  • SoCs가 FPGA보다 빠름
  • SoC 설계는 FPGA-hostile이다.

SoC 설계를 FPGA 프로토타입에 넣으려면 최소한의 노력으로 프로토타입 목표를 달성하려면 세심한 계획이 필요하다. 프로토타입 개발을 용이하게 하기 위해 Design-For-Prototyping이라고 불리는 베스트 프랙티스는 SoC 디자인 스타일과 디자인 팀이 적용하는 프로젝트 절차 모두에 영향을 미친다. 절차적 권고안에는 RTL 코딩 표준에 DFP 규약을 추가하고, 시제품 호환 시뮬레이션 환경을 채택하며, 소프트웨어 팀과 공동으로 시스템 디버그 전략을 수립하는 것이 포함된다.

파티셔닝 문제

회로 복잡성 증가와 출시 시간 단축으로 인해 애플리케이션별 통합회로(ASIC)와 시스템 온칩(SoC) 설계 검증 필요성이 커지고 있다. 하드웨어 플랫폼은 시스템 동작의 정확한 판독을 제공하지 못할 수 있는 시뮬레이션 클럭에 비해 온칩 버스 클럭으로 고속으로 시스템 설계를 테스트할 수 있는 능력 때문에 검증 엔지니어들 사이에서 더욱 두드러지고 있다.[6] 이러한 수백만 개의 관문 디자인은 일반적으로 6개 이상의 FPGA가 있는 다중 FPGA 프로토타이핑 플랫폼에 배치되는데, 이는 단일 FPGA에 완전히 맞출 수 없기 때문이다. 설계 엔지니어의 노력을 줄이기 위해 설계를 분할해야 하는 FPGA의 수가 적을수록.[7] 오른쪽은 이중 FPGA 구성을 활용한 FPGA 기반 프로토타이핑 플랫폼 사진이다.

Aldec FPGA-based prototyping platform with dual FPGA configuration.
Aldec의 HES-7 ASIC 프로토타이핑 솔루션

시스템 RTL 설계 또는 넷리스트는 각 FPGA에 분할되어 설계가 프로토타입 플랫폼에 장착될 수 있어야 한다.[8] 이는 수동 파티셔닝에 엄청난 노력이 필요하며 (시험 중인 설계의) 속도가 저하되는 경우가 많기 때문에 엔지니어가 새로운 과제를 제기한다.[7] 숫자나 파티션을 줄이거나 전체 설계를 단일 FPGA에 배치할 수 있는 경우, 프로토타입 플랫폼에 대한 설계 구현이 쉬워진다.

디자인 파티션을 생성하는 동안 FPGA 리소스 밸런싱

회로 파티션을 만들 때 엔지니어는 FPGA 패브릭에 설계가 배치되므로 FPGA가 제공하는 가용 자원을 먼저 관찰해야 한다.[7] 각 FPGA의 아키텍처는 제조사에 따라 달라지지만, 설계 파티셔닝의 주요 목표는 FPGA 자원 활용의 균등한 균형을 유지하는 것이다. 다양한 FPGA 자원에는 룩업 테이블(LUT), D 플립 플롭, 블록 RAM, 디지털 신호 프로세서(DSP), 클럭 버퍼 등이 있다. 설계 파티션의 균형을 맞추기 전에, 중복되거나 사용되지 않는 로직을 제거하기 위해 글로벌 로직 최적화를 수행하는 것도 사용자에게 중요하다. 균형 잡힌 파티션을 만들 때 발생하는 일반적인 문제는 컷이 많은 신호 라인에 있을 경우 타이밍이나 리소스 충돌로 이어질 수 있다는 점이다. 완전히 최적화된 파티셔닝 전략을 가지려면 엔지니어는 타이밍/전원 제약 조건, 배치 및 라우팅과 같은 문제를 고려해야 하며 FPGA 간에 균형이 잡힌 파티션을 유지해야 한다. 파티션 중에 한 문제에 엄격하게 집중하면 다른 문제에 여러 가지 문제가 발생할 수 있다.

파티션 배치 및 라우팅

분할 설계의 최적 장소 및 경로 지정을 달성하기 위해 엔지니어는 FPGA 핀 카운트와 FPGA 간 신호에 초점을 맞춰야 한다. 설계를 별도의 FPGA로 분할한 후, FPGA 간 신호 수는 FPGA의 핀 카운트를 초과하지 않아야 한다.[9] 회로 설계가 방대한 경우 이를 피하기 매우 어렵기 때문에 신호는 한 회선을 통해 여러 신호를 전송할 수 있는 시간 분할 다중화(TDM) 등의 전략을 활용해야 한다.[10] 서브 채널이라고 불리는 이러한 다중 신호는 시간 슬롯을 통해 회선 상에 전달된다. TDM 비율이 높을 때는 각 하위 채널의 시간 슬롯을 수용하도록 버스 클럭 주파수를 줄여야 한다. 클럭 주파수를 줄임으로써 시스템의 처리량을 방해한다.[7]

타이밍 요구사항

시스템 설계는 일반적으로 개별 도메인을 가로지르는 신호와 함께 몇 개의 클럭 도메인을 포함한다.[7] 온보드 클럭 오실레이터와 글로벌 클럭 라인은 일반적으로 이러한 문제를 완화하지만, 때로는 이러한 자원이 제한적이거나 모든 설계 요건을 충족하지 못할 수 있다. 클럭 라인 및 클럭 버퍼 연결은 FPGA 간에 제한되므로 FPGA 장치 내에서 내부 클럭을 구현해야 한다. 여러 FPGA에 걸쳐 분할된 내부 클럭 처리 설계는 FPGA 내에서 클럭 생성기를 복제하여 FPGA 간 신호 간 클럭 스큐가 낮도록 보장해야 한다. 또한 게이트 클럭 논리는 클럭이 높은 클럭 주파수에서 작동하면서 스큐를 줄일 수 있도록 변환해야 한다.

클럭 도메인 교차로는 별도의 FPGA로 분할해서는 안 된다. 교차로를 통과하는 신호는 FPGA 간 지연 시간이 추가되면 다른 도메인에 문제가 발생할 수 있으므로 단일 FPGA 내부로 유지해야 한다. 또한 FPGA 사이에 라우팅된 신호를 레지스터로 클럭할 것을 권장한다.

디버깅

FPGA 프로토타이핑에서 가장 어렵고 시간이 많이 걸리는 작업 중 하나는 시스템 디자인을 디버깅하는 것이다. 이것을 위해 만들어진 용어는 "FPGA 지옥"[11][12]이다. 디버깅은 크고 복잡한 ASIC와 SoC 설계가 등장하면서 더욱 어렵고 시간이 많이 소요되고 있다. FPGA 프로토타입을 디버깅하기 위해 프로브를 RTL 설계에 직접 추가하여 특정 신호를 관찰에 사용할 수 있도록 하고, 합성하여 FPGA 프로토타입 플랫폼에 다운로드한다.

ChipScope, SignalTAP 등 FPGA 벤더가 제공하는 표준 디버깅 툴은 다양하다. 이러한 도구는 최대 1024개의 신호를 프로빙할 수 있으며 광범위한 LUT 및 메모리 리소스를 필요로 한다. SoC 및 기타 설계의 경우 효율적인 디버깅은 종종 10,000개 이상의 신호에 동시에 액세스해야 한다. 원래 프로브 세트에 버그를 캡처할 수 없는 경우 추가 신호에 액세스하면 "오늘 퇴근" 상황이 발생한다. 이는 합성을 위한 길고 복잡한 CAD 흐름과 8시간에서 18시간까지 소요될 수 있는 장소 및 경로 때문이다.

개선된 접근법에는 Tektronix의[13] Certus 또는 Exostiv Labs의 EXOSTIV와 같은 도구가 포함된다.[14]

Certus는 FPGA 기반 디버깅에 대한 RTL 수준의 가시성을 향상시켰다. 관측망의 기준으로 고효율 다단계 집선장치를 사용해 신호당 필요한 LUT 수를 줄여 주어진 공간에서 프로빙할 수 있는 신호 수를 늘린다. 어떤 신호 조합이든 볼 수 있는 기능은 Certus만의 특유하며 가장 중요한 프로토타이핑 병목 현상 중 하나를 돌파한다.[15]

EXOSTIV는 대형 외장 스토리지와 기가비트 트랜시버를 사용해 고속으로 달리는 FPGA에서 깊은 흔적을 추출한다. 그 개선은 시간 내에 큰 흔적을 연속적인 스트림이나 버스트 형태로 보는 능력에 있다. 이를 통해 기존의 내장형 계측기법으로는 도달할 수 없는 확장 디버깅 시나리오를 탐구할 수 있다. 이 솔루션은 가시성 측면에서 10만 배 이상의 개선 효과를 위해 기가비트 트랜스시버를 희생하여 FPGA I/O 리소스와 FPGA 메모리를 모두 저장한다고 주장한다.[16][17]

참고 항목

참조

  1. ^ "FPGA vs ASIC: Differences between them and which one to use? – Numato Lab Help Center". numato.com. Retrieved October 17, 2018.
  2. ^ a b "Archived copy". Archived from the original on February 2, 2013. Retrieved October 9, 2012.CS1 maint: 제목으로 보관된 복사본(링크)
  3. ^ Rittman, Danny (January 5, 2006). "Nanometer prototyping" (PDF). Tayden Design. Retrieved October 7, 2018.
  4. ^ a b "FPGA Prototyping to Structured ASIC Production to Reduce Cost, Risk & TTM". Design And Reuse. Retrieved October 7, 2018.
  5. ^ "Prototyping System Designs on FPGAs". New Electronics. March 22, 2011. Retrieved March 22, 2011.
  6. ^ "Best Practices for FPGA Prototyping of MATLAB and Simulink Algorithms". EEJournal. August 25, 2011. Retrieved October 8, 2018.
  7. ^ a b c d e "Aldec Xilinx 공동 작성 백서 "HES-7 ASIC 프로토타이핑", 등록 필요
  8. ^ "Archived copy". Archived from the original on January 22, 2013. Retrieved October 9, 2012.CS1 maint: 제목으로 보관된 복사본(링크)
  9. ^ http://www.fpga-faq.com/FAQ_Pages/prototyping.pdf
  10. ^ "Time-Division Multiplexing". www.inetdaemon.com. Retrieved October 8, 2018.
  11. ^ "FPGA Hell". zipcpu.com. Retrieved November 5, 2019.
  12. ^ "Getting Started with FPGAs" (PDF).
  13. ^ "Tektronix Shakes Up Prototyping, Embedded Instrumentation Boosts Boards to Emulator Status". Electronic Engineering Journal. October 30, 2012. Retrieved October 30, 2012.
  14. ^ "Exostiv Labs announces the availability of its 'EXOSTIV' solution for FPGA debug". Design & Reuse. October 14, 2015. Retrieved November 25, 2015.
  15. ^ "Break Through Your ASIC Prototyping Bottlenecks". October 23, 2012. Retrieved October 30, 2012.
  16. ^ "Why EXOSTIV?". October 14, 2015. Retrieved November 25, 2015.
  17. ^ "ASIC/SoC Prototyping". Retrieved April 12, 2020.

외부 링크