산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> verilog

ASIC 설계 흐름

일반적인 설계 흐름은 아래에 표시된 구조를 따르며 여러 단계로 나눌 수 있습니다. 이러한 단계 중 일부는 병렬로 발생하고 일부는 순차적으로 발생합니다. 오늘날 업계에서 일반적인 프로젝트 설계 주기가 어떻게 나타나는지 살펴보겠습니다.

<노스크립트> asic chip soc design flow

요구사항

반도체 회사의 고객은 일반적으로 시스템이나 최종 제품에 칩을 사용하려는 다른 회사입니다. 따라서 고객의 요구 사항도 칩 설계 방식을 결정하는 데 중요한 역할을 합니다. 당연히 첫 번째 단계는 요구 사항을 수집하고 최종 제품의 시장 가치를 추정하고 프로젝트를 수행하는 데 필요한 리소스의 수를 평가하는 것입니다.

사양

다음 단계는 설계할 칩의 기능, 인터페이스 및 전체 아키텍처를 추상적으로 설명하는 "사양"을 수집하는 것입니다. 이것은 다음과 같이 될 수 있습니다.

  1. 가상 현실을 지원하기 위해 이미징 알고리즘을 실행하려면 계산 능력이 필요합니다.
  2. 코히어런트 인터커넥트가 있는 ARM A53 프로세서 2개가 필요하며 600MHz에서 실행되어야 합니다.
  3. USB 3.0, Bluetooth 및 PCIe 2세대 인터페이스 필요
  4. 적절한 컨트롤러로 1920x1080 픽셀 디스플레이를 지원해야 함

건축물

이제 설계자는 칩이 어떻게 작동해야 하는지에 대한 시스템 수준의 관점을 제시합니다. 그들은 다른 모든 구성 요소가 필요한지, 실행해야 하는 클럭 주파수, 전력 및 성능 요구 사항을 목표로 하는 방법을 결정할 것입니다. 또한 데이터가 칩 내부에서 어떻게 흘러야 하는지도 결정합니다. 프로세서가 시스템 램에서 이미징 데이터를 가져와 실행할 때의 데이터 흐름을 예로 들 수 있습니다. 그 동안 그래픽 엔진은 메모리의 다른 부분 등에 덤프된 이전 배치의 후처리 데이터를 실행합니다.

<노스크립트>

디지털 디자인

최신 칩의 복잡한 특성 때문에 처음부터 무언가를 구축하는 것은 불가능하며 많은 경우 많은 구성 요소가 재사용됩니다. X 회사가 자동차의 다른 모듈과 상호 작용하기 위해 FlexCAN 모듈이 필요하다고 가정해 보겠습니다. 그들은 시간과 노력을 절약하기 위해 다른 회사에서 FlexCAN 디자인을 구입하거나 자체적으로 하나를 구축하는 데 리소스를 사용할 수 있습니다. 또한 플립플롭 및 CMOS 트랜지스터와 같은 기본 빌딩 블록에서 이러한 시스템을 설계하는 것은 실용적이지 않습니다. 대신 Verilog 또는 VHDL과 같은 하드웨어 설명 언어를 사용하여 기능, 성능 및 기타 고급 문제 측면에서 설계를 분석하기 위해 동작 설명이 개발됩니다. 이것은 일반적으로 디지털 디자이너가 수행하며 디지털 전자 기술을 갖춘 고급 컴퓨터 프로그래머와 비슷합니다.

<노스크립트>

인증

RTL 설계가 준비되면 기능적 정확성을 검증해야 합니다. 예를 들어 DSP 프로세서는 메모리에서 명령을 가져오기 위해 버스 트랜잭션을 발행해야 하지만 이것이 예상대로 일어날지 어떻게 알 수 있습니까? 따라서 이 시점에서 기능 검증이 필요하며, 이는 설계를 모델링하고 이에 다른 자극을 적용할 수 있는 기능이 있는 EDA 시뮬레이터의 도움으로 수행됩니다. 이것은 프리실리콘 검증 엔지니어의 일입니다.

<노스크립트>

시간을 절약하고 기능 종료에 도달하기 위해 설계 팀과 검증 팀은 디자이너가 RTL 버전을 "릴리스"하는 병렬로 작동하고 검증 팀은 해당 RTL 버전의 기능을 테스트하기 위해 테스트벤치 환경과 테스트 케이스를 개발합니다. 이러한 테스트 중 하나라도 실패하면 디자인에 문제가 있음을 나타낼 수 있으며 해당 디자인 요소에서 "버그"가 발생합니다. 이 버그는 디자인 팀의 다음 버전의 RTL 릴리스에서 수정되어야 합니다. 이 프로세스는 디자인의 기능적 정확성에 대한 상당한 수준의 확신이 있을 때까지 계속됩니다.

논리 합성

이제 디자인에 만족했으므로 이것을 조합 게이트 및 플립플롭과 같은 실제 요소가 있는 하드웨어 회로도로 변환할 때입니다. 이 단계를 합성이라고 합니다. 논리 합성 도구를 사용하면 HDL의 RTL 설명을 게이트 수준 넷리스트로 변환할 수 있습니다. 이 넷리스트는 게이트와 그들 사이의 연결 측면에서 회로에 대한 설명일 뿐입니다. 다음과 같이 보일 수 있습니다.

  
  
and_2_0     u_and2_0 ( .in_a (_net_112),
                       .in_b (_net_56),
                       .out  (_net_222));

ff_lt       u_ff_lt_122 (.d   (_net_222),
                         .clk (_net_11),
                         .q   (_net_76));

  
<노스크립트>

논리 합성 도구는 넷리스트가 타이밍, 영역 및 전력 사양을 충족하는지 확인합니다. 일반적으로 그들은 다양한 기술 노드 프로세스와 디지털 요소 라이브러리에 액세스할 수 있으며 이러한 다양한 기준을 모두 충족하는 지능적인 계산을 수행할 수 있습니다. 이러한 라이브러리는 플립플롭의 상승/하강 시간, 조합 게이트의 입력-출력 시간 등과 같은 다양한 구성요소에 대한 데이터 특성을 제공하는 반도체 팹에서 가져옵니다.

논리적 동등성

그런 다음 게이트 레벨 넷리스트가 RTL과 논리적 동등성을 확인하고 특정 요소의 검증이 다시 한 번 수행되는 경우 "게이트 레벨 검증"이 수행됩니다. 차이점은 이번에는 게이트 레벨에 있고 더 낮은 레벨에 있다는 것입니다. 추상화의. 시뮬레이션 시간은 백 어노테이션이 있는 지연 정보와 함께 이 단계에서 설계에 관련된 수많은 요소로 인해 느려지는 경향이 있습니다.

배치 및 라우팅

그런 다음 넷리스트는 물리적 설계 흐름에 입력되며, 여기서 자동 배치 및 경로(APR 또는 PnR)는 EDA 도구의 도움으로 수행됩니다. 이러한 도구의 좋은 예는 Cadence Encounter 및 Synopsys IC Compiler입니다. 이것은 표준 셀을 선택하여 행에 배치하고, 입출력을 위한 볼 맵을 정의하고, 다른 금속 층을 생성하고, 타이밍에 맞게 버퍼를 배치합니다. 이 프로세스가 완료되면 레이아웃이 생성되고 일반적으로 제작을 위해 전송됩니다. 이 단계는 일반적으로 기술 노드 및 물리적 구현 세부 정보에 정통한 물리적 설계 팀이 처리합니다.

<노스크립트>

검증

여기서 끝이 아닙니다. 샘플 칩은 동일한 반도체 회사에서 제조하거나 TSMC 또는 Global Foundries와 같은 타사 파운드리로 보내집니다. 이 샘플은 이제 다른 엔지니어 팀이 테스터에서 다른 패턴을 실행하는 실리콘 후 검증 프로세스를 거칩니다. 칩의 내부 노드에 대한 가시성 수준이 급격히 감소하기 때문에 사전 실리콘 검증보다 사후 실리콘 검증에서 디버그하는 것이 훨씬 더 어렵습니다. 게다가, 백만 클럭 사이클은 1초 안에 완료되었을 것이고 정확한 오류 시간을 추적하는 것은 시간이 많이 소요될 것입니다. 이 단계에서 실제 문제나 디자인 버그가 발견되면 RTL에서 수정하고 다시 확인해야 하며 이후의 모든 단계를 수행해야 합니다.

<노스크립트>

설계 흐름에는 여러 단계가 있지만 대부분의 설계 활동은 일반적으로 회로의 RTL 설명 최적화 및 검증에 집중됩니다. EDA 도구를 사용하여 프로세스를 자동화할 수 있지만 부적절하게 사용하면 설계가 비효율적이므로 설계자는 설계 프로세스 중에 의식적인 선택을 해야 합니다.


verilog

  1. Verilog 튜토리얼
  2. 추상화 계층 설계
  3. 우수한 제어판 디자인의 상위 4가지 측면
  4. 기계, 자동화 및 산업 분야의 제어 인클로저 설계 기본 사항
  5. 제어판 디자인 기본
  6. PCB 설계에 대한 큰 질문에 대한 짧은 답변
  7. PCB 설계에서 간섭 방지 기능을 강화하는 방법
  8. PCB 설계의 간섭을 없애는 방법
  9. 노트북 PCB의 EMC를 보장하는 세 가지 설계 고려 사항
  10. 건축 설계란 무엇입니까?