ASIC 설계는 FPGA HDL 합성과 어떻게 다릅니 까?


42

Xilinx ISE, Lattice Diamond 등과 같은 FPGA / HDL 툴 제품군에 대한 경험이 있습니다. 일반적인 워크 플로우는 Verilog / VHDL 작성, 시뮬레이션, 테스트 및 FPGA 프로그래밍입니다.

두 사람이 ASIC 디자인이 매우 다르다고 말합니다. 두 가지 주요 ASIC 유형 인 게이트 레벨 ASIC 및 트랜지스터 레벨 ASIC에 사용되는 툴셋은 무엇입니까? Catapult C 및 Cadence C to Silicon과 같은 High Level Synthesis 툴을 살펴 봤지만 아직 시도한 적이 없습니다. 일반적인 HDL 워크 플로우를 변경 / 속도를 높일 수있는 ASIC / FPGA 분야에서 사용할 수있는 다양한 유형의 도구를 설명 할 수 있습니까?

답변:


39

일반적으로 ASIC 설계는 복잡성과 작업량으로 인해 팀이 노력합니다. 일부 단계는 병렬 또는 비 순차적으로 완료 될 수 있지만 대략적인 단계를 제공합니다. 각 작업에 사용한 도구를 나열하지만 백과 사전은 아닙니다.

  1. 셀 라이브러리를 빌드하십시오. (대부분의 경우, 대부분의 프로세스에는 시판되는 게이트 라이브러리가 있습니다. 사용할 수없는 것을 필요로하는 경우가 아니라면 권장 합니다.) 여기에는 필요한만큼 많은 논리 기능을위한 다중 드라이브 강도 게이트 설계, 패드 드라이버 / 수신기 설계, 및 배열 승수 또는 메모리와 같은 임의의 매크로. 각 셀의 회로도를 설계하고 확인한 후에는 실제 레이아웃을 설계해야합니다. SpectreHSPICE 와 같은 아날로그 회로 시뮬레이터와 함께이 프로세스에 Cadence Virtuoso 를 사용했습니다 .

  2. 셀 라이브러리를 특성화하십시오. (타사 게이트 라이브러리가있는 경우 이는 일반적으로 수행됩니다.) 정적 타이밍 분석 (STA)에 대한 타이밍 테이블을 생성하려면 라이브러리의 각 셀을 시뮬레이션해야합니다. 여기에는 완성 된 셀을 가져 오고 Assura , Diva 또는 Caliber를 사용하여 레이아웃 기생을 추출하고 다양한 입력 조건 및 출력 부하에서 회로를 시뮬레이션하는 과정이 포함됩니다. STA 패키지와 호환되는 각 게이트에 대한 타이밍 모델을 빌드합니다. 타이밍 모델은 일반적으로 Liberty 파일 형식입니다. 내가 사용한 실리콘 스마트자유-NCX를필요한 모든 조건을 시뮬레이션합니다. 대부분의 소프트웨어가 제대로 작동하려면 "최악의 경우", "명목상의"및 "최상의 경우"의 타이밍 모델이 필요할 수 있습니다.

  3. 디자인을 종합하십시오. 고급 컴파일러에 대한 경험은 없지만 하루가 끝나면 컴파일러 또는 컴파일러 체인에서 고급 설계를 수행하고 게이트 수준 넷리스트를 생성해야합니다. 종합적인 결과는 이론적 인 시스템 성능과 드라이브 강도 문제를 먼저 해결하는 첫 번째 엿보기입니다. RTL 코드에 Design Compiler 를 사용했습니다 .

  4. 디자인을 배치하고 라우팅하십시오. 이것은 신디사이저에서 게이트 레벨 넷리스트를 가져 와서 실제 디자인으로 바꿉니다. 이상적으로는 제작 준비가 된 패드 간 레이아웃을 생성합니다. P & R 소프트웨어가 수천 개의 DRC 오류를 자동으로 만들도록 정말 쉽게 설정할 수 있으므로이 단계의 모든 재미와 게임도 마찬가지입니다. 대부분의 소프트웨어는 드라이브 강도 문제를 관리하고 지시에 따라 클럭 트리를 생성합니다. 일부 소프트웨어 패키지에는 Astro, IC 컴파일러, Silicon EncounterSilicon Ensemble이 포함됩니다. 장소 및 경로의 최종 결과는 최종 넷리스트, 최종 레이아웃 및 추출 된 레이아웃 기생입니다.

  5. 레이아웃 후 정적 타이밍 분석. 여기서 목표는 설계가 타이밍 사양을 충족하고 설정, 유지 또는 게이팅 문제가 없는지 확인하는 것입니다. 설계 요구 사항이 빡빡하면 오류를 수정하고 P & R 도구에서 수정 사항을 업데이트하는 데 많은 시간이 소요될 수 있습니다. 우리가 사용한 마지막 STA 툴은 PrimeTime 입니다.

  6. 레이아웃의 물리적 검증. P & R 도구에서 레이아웃을 생성 한 후에는 디자인이 프로세스 디자인 규칙 (Design Rule Check / DRC)을 충족하고 레이아웃이 회로도 (레이아웃 대 회로도 / LVS)와 일치하는지 확인해야합니다. 레이아웃이 올바르게 배선되고 제작 가능한지 확인하려면이 단계를 따라야합니다. 다시, 일부 물리적 검증 도구는 Assura , Diva 또는 Caliber 입니다.

  7. 최종 디자인의 시뮬레이션. 복잡성에 따라 Specter 또는 HSPICE를 사용하여 트랜지스터 레벨 시뮬레이션 , HSIM을 사용하는 "고속 스파이스"시뮬레이션 또는 ModelSim 또는 VCS를 사용하는 완전 디지털 시뮬레이션을 수행 할 수 있습니다. STA 또는 P & R 도구를 사용하여 현실적인 지연으로 시뮬레이션을 생성 할 수 있어야합니다.

기존 게이트 라이브러리로 시작하면 메모리, 마이크로 컨트롤러 또는 대체 처리 블록과 같이 설계에 도움이되는 모든 매크로를 사용할뿐만 아니라 시간을 크게 절약 할 수 있습니다. 설계 복잡성 관리도 큰 부분을 차지합니다. 단일 클록 설계는 다중 클록 도메인이있는 회로보다 검증하기 쉽습니다.


2
Virtuoso를 언급 했으므로 Cadence는 설계를위한 완벽한 툴체인을 제공합니다 (Opus라고 생각합니다). 회로도에서 시작하고, 단일 셀을 배치하고, 기생 효과를 평가하고, 특성화 한 다음 상위 레벨로 빌드 할 수 있습니다. .
clabacchio

1
모든 주요 벤더가 완벽한 툴체인을 제공한다고 생각합니다. 우리는 툴체인에서 여러 벤더를 사용하게되었으며,이를 통해 가장 친숙하거나 업계 최고의 명성을 얻은 툴을 사용할 수있었습니다.
W5VO

1
라이브러리 또는 디자인 키트 지원을위한 선택 도구는 실질적으로 요구 사항입니다. 지원되는 특정 버전의 소프트웨어를 사용하지 않는 경우 일부 비 호환성으로 인해 설계가 중단되거나 잘못된 결과가 나올 수 있습니다. 지금까지 내가 본 대부분의 EDA 도구는 Unix / Linux 시스템에서 실행됩니다. 대부분은 가파른 학습 곡선을 가지고 있습니다.
W5VO

1
@MartinThompson 물론입니다. 기술 (ASIC / FPGA)의 경계를 넓힐수록 이러한 단계가 더 중요합니다. 즉, ASIC 버전의 해당 도구는 문제를 일으킬 수있는 더 많은 로프를 제공합니다.
W5VO

1
1과 2는 디자인의 일반적인 부분이 아닙니다. 이러한 단계는 소위 "프로세스 인증"의 일부이며 결과 (완전히 특성화 된 라이브러리)는 FAB 공급 업체에서 제공합니다. 그러나 일부 회사는 "완벽한 사용자 지정 디자인"을 수행하고 있으며 자체적으로 1과 2를 완료해야합니다.
Ale..chenski

7

W5VO대답은 백엔드 에 중점을 두는 경향이 있으며 이는 ASIC과 FPGA 흐름의 주요 차이점입니다. 그러나 디지털 디자인 검증 부분은 빠졌습니다.

실리콘에 대한 설계를 할 때 백만 달러 이상이 소요될 수 있고 FPGA에 비해 ASIC에 더 많은 사용 가능한 게이트를 포장 할 수 있다면 시뮬레이터 팜을 실행하는 워크 스테이션 앞에서 실험실과 PCB에서 더 많은 시간을 보냅니다. 프로덕션을 위해 ASIC 디자인을 출시하기 전에 ASIC 디자인을보다 완벽하게 검증하기위한 에뮬레이터 및 쓰기 테스트. FPGA 설계자들은 그 일부가 될 시스템에서 FPGA를 사용함으로써 테스트의 많은 부분을 수행하는 경향이 있습니다.


디지털 디자이너를위한 기본 워크 플로우는 ASIC과 FPGA간에 크게 다르지 않지만 ASIC은 사용 가능한 매크로 / 마이크로 요소, 배치 및 라우팅 측면에서 훨씬 더 많은 유연성을 제공하지만 FPGA는 사전 제작 된 논리 블록으로 제한됩니다 상호 연결 토폴로지에는 제한이 있습니다. 따라서 FPGA는 ASIC의 성능 수준에 도달 할 수 없으며 약간 다른 설계 솔루션을 요구할 수 있습니다.
Ale..chenski

안녕 알리 첸. 디지털 설계와 디지털 검증이 분리 된 것으로 생각되면 순수한 디지털 설계 의 흐름 은 FPGA와 ASIC에 더 가깝지만 앞서 언급 한 바와 같이 검증에는 큰 차이가 있습니다. :-)
Paddy3118
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.