일반적으로 ASIC 설계는 복잡성과 작업량으로 인해 팀이 노력합니다. 일부 단계는 병렬 또는 비 순차적으로 완료 될 수 있지만 대략적인 단계를 제공합니다. 각 작업에 사용한 도구를 나열하지만 백과 사전은 아닙니다.
셀 라이브러리를 빌드하십시오. (대부분의 경우, 대부분의 프로세스에는 시판되는 게이트 라이브러리가 있습니다. 사용할 수없는 것을 필요로하는 경우가 아니라면 권장 합니다.) 여기에는 필요한만큼 많은 논리 기능을위한 다중 드라이브 강도 게이트 설계, 패드 드라이버 / 수신기 설계, 및 배열 승수 또는 메모리와 같은 임의의 매크로. 각 셀의 회로도를 설계하고 확인한 후에는 실제 레이아웃을 설계해야합니다. Spectre 및 HSPICE 와 같은 아날로그 회로 시뮬레이터와 함께이 프로세스에 Cadence Virtuoso 를 사용했습니다 .
셀 라이브러리를 특성화하십시오. (타사 게이트 라이브러리가있는 경우 이는 일반적으로 수행됩니다.) 정적 타이밍 분석 (STA)에 대한 타이밍 테이블을 생성하려면 라이브러리의 각 셀을 시뮬레이션해야합니다. 여기에는 완성 된 셀을 가져 오고 Assura , Diva 또는 Caliber를 사용하여 레이아웃 기생을 추출하고 다양한 입력 조건 및 출력 부하에서 회로를 시뮬레이션하는 과정이 포함됩니다. STA 패키지와 호환되는 각 게이트에 대한 타이밍 모델을 빌드합니다. 타이밍 모델은 일반적으로 Liberty 파일 형식입니다. 내가 사용한 실리콘 스마트 와 자유-NCX를필요한 모든 조건을 시뮬레이션합니다. 대부분의 소프트웨어가 제대로 작동하려면 "최악의 경우", "명목상의"및 "최상의 경우"의 타이밍 모델이 필요할 수 있습니다.
디자인을 종합하십시오. 고급 컴파일러에 대한 경험은 없지만 하루가 끝나면 컴파일러 또는 컴파일러 체인에서 고급 설계를 수행하고 게이트 수준 넷리스트를 생성해야합니다. 종합적인 결과는 이론적 인 시스템 성능과 드라이브 강도 문제를 먼저 해결하는 첫 번째 엿보기입니다. RTL 코드에 Design Compiler 를 사용했습니다 .
디자인을 배치하고 라우팅하십시오. 이것은 신디사이저에서 게이트 레벨 넷리스트를 가져 와서 실제 디자인으로 바꿉니다. 이상적으로는 제작 준비가 된 패드 간 레이아웃을 생성합니다. P & R 소프트웨어가 수천 개의 DRC 오류를 자동으로 만들도록 정말 쉽게 설정할 수 있으므로이 단계의 모든 재미와 게임도 마찬가지입니다. 대부분의 소프트웨어는 드라이브 강도 문제를 관리하고 지시에 따라 클럭 트리를 생성합니다. 일부 소프트웨어 패키지에는 Astro, IC 컴파일러, Silicon Encounter 및 Silicon Ensemble이 포함됩니다. 장소 및 경로의 최종 결과는 최종 넷리스트, 최종 레이아웃 및 추출 된 레이아웃 기생입니다.
레이아웃 후 정적 타이밍 분석. 여기서 목표는 설계가 타이밍 사양을 충족하고 설정, 유지 또는 게이팅 문제가 없는지 확인하는 것입니다. 설계 요구 사항이 빡빡하면 오류를 수정하고 P & R 도구에서 수정 사항을 업데이트하는 데 많은 시간이 소요될 수 있습니다. 우리가 사용한 마지막 STA 툴은 PrimeTime 입니다.
레이아웃의 물리적 검증. P & R 도구에서 레이아웃을 생성 한 후에는 디자인이 프로세스 디자인 규칙 (Design Rule Check / DRC)을 충족하고 레이아웃이 회로도 (레이아웃 대 회로도 / LVS)와 일치하는지 확인해야합니다. 레이아웃이 올바르게 배선되고 제작 가능한지 확인하려면이 단계를 따라야합니다. 다시, 일부 물리적 검증 도구는 Assura , Diva 또는 Caliber 입니다.
최종 디자인의 시뮬레이션. 복잡성에 따라 Specter 또는 HSPICE를 사용하여 트랜지스터 레벨 시뮬레이션 , HSIM을 사용하는 "고속 스파이스"시뮬레이션 또는 ModelSim 또는 VCS를 사용하는 완전 디지털 시뮬레이션을 수행 할 수 있습니다. STA 또는 P & R 도구를 사용하여 현실적인 지연으로 시뮬레이션을 생성 할 수 있어야합니다.
기존 게이트 라이브러리로 시작하면 메모리, 마이크로 컨트롤러 또는 대체 처리 블록과 같이 설계에 도움이되는 모든 매크로를 사용할뿐만 아니라 시간을 크게 절약 할 수 있습니다. 설계 복잡성 관리도 큰 부분을 차지합니다. 단일 클록 설계는 다중 클록 도메인이있는 회로보다 검증하기 쉽습니다.