EDA Solution
NanDigits
| EDA Solution
회사 소개
NanDigits Design Automation은 2007년에 설립된 캘리포니아 산호세에 위치한 EDA 회사입니다. 당사의 전문 기술은 기능적 Netlist ECO(Engineering Change Order), 기능적 안전 오류 검증(Verification) 및 넷리스트 디버깅(Netlist Debug) 서비스를 제공하는 데 있습니다. 당사의 GOF 플랫폼은 GOF ECO, GOF Formal, GOF LEC 및 GOF 디버깅의 네 가지 기능적 구성 요소로 구성되어 있습니다.
당사는 시장에서 최고의 기능성 Netlist ECO 툴인 GOF ECO를 제공하는 것을 목표로 하며, GOF ECO는 경쟁사에 비해 가장 작은 패치 크기의 기능성 Netlist ECO를 달성하였습니다. 또한 자동차 IC 시장 진출을 위한 노력을 지속적으로 하고 있습니다.
NanDigits Design Automation은 2007년에 설립된 캘리포니아 산호세에 위치한 EDA 회사입니다. 당사의 전문 기술은 기능적 Netlist ECO(Engineering Change Order), 기능적 안전 오류 검증(Verification) 및 넷리스트 디버깅(Netlist Debug) 서비스를 제공하는 데 있습니다. 당사의 GOF 플랫폼은 GOF ECO, GOF Formal, GOF LEC 및 GOF 디버깅의 네 가지 기능적 구성 요소로 구성되어 있습니다.
당사는 시장에서 최고의 기능성 Netlist ECO 툴인 GOF ECO를 제공하는 것을 목표로 하며, GOF ECO는 경쟁사에 비해 가장 작은 패치 크기의 기능성 Netlist ECO를 달성하였습니다. 또한 자동차 IC 시장 진출을 위한 노력을 지속적으로 하고 있습니다.
제품 개요
GOF ECO 는 GOF 플랫폼 내의 기능성 넷리스트(Netlist) ECO 툴로 첨단 기술과 방법론(Methodology)을 통합하여 종합적인 기능성 넷리스트(Netlist) ECO 솔루션을 제공합니다.
- 자동 기능 ECO는 넷리스트(Netlist)를 사용하여 구현 넷리스트를 수정합니다. 더보기
- RTL 유도 방식의 자동 기능 ECO 는 더 빠르고 더 정확한 ECO 결과를 생성합니다. 더보기
- RTL 패치 ECO는 전체적(full scale)이고 긴 합성 프로세스를 방지하여 처리 시간을 단축할 수 있습니다. 더보기
- 내장된 논리 동등성 검사 엔진으로 ECO 자체적으로 억제합니다. 더보기
- 병렬 처리를 통해 여러 CPU 코어를 최대한 활용하여 ECO 실행 시간을 단축합니다. 더보기
- Metal only ECO의 표준 스페어 셀은 마스크 후 ECO의 스페어 게이트만 재매핑(remap)합니다. 더보기
- GUI와 스크립트 모드가 혼합된 자동 모드 ECO는 ECO 패치를 최대한 최적화합니다. 더보기
- ECO 리타겟팅(Retargeting)은 단기간에 거대한 넷리스트 ECO를 달성합니다. 더보기
- DFT 친화적으로 테스트 로직(Test logic)을 그대로 유지하여 후기 설계 단계에서 두 번째 ECO 발생을 방지합니다. 더보기
- 자동 기능 ECO는 넷리스트(Netlist)를 사용하여 구현 넷리스트를 수정합니다. 더보기
- RTL 유도 방식의 자동 기능 ECO 는 더 빠르고 더 정확한 ECO 결과를 생성합니다. 더보기
- RTL 패치 ECO는 전체적(full scale)이고 긴 합성 프로세스를 방지하여 처리 시간을 단축할 수 있습니다. 더보기
- 내장된 논리 동등성 검사 엔진으로 ECO 자체적으로 억제합니다. 더보기
- 병렬 처리를 통해 여러 CPU 코어를 최대한 활용하여 ECO 실행 시간을 단축합니다. 더보기
- Metal only ECO의 표준 스페어 셀은 마스크 후 ECO의 스페어 게이트만 재매핑(remap)합니다. 더보기
- GUI와 스크립트 모드가 혼합된 자동 모드 ECO는 ECO 패치를 최대한 최적화합니다. 더보기
- ECO 리타겟팅(Retargeting)은 단기간에 거대한 넷리스트 ECO를 달성합니다. 더보기
- DFT 친화적으로 테스트 로직(Test logic)을 그대로 유지하여 후기 설계 단계에서 두 번째 ECO 발생을 방지합니다. 더보기
그림1. ECO Solutions
이 도구는 글로벌 모드와 증분(Incremental) 모드 모두에서 자동 ECO를 수행합니다. 글로벌 모드는 디자인의 전체 그림의 특징을 가질 수 있으며 ECO 의 결과는 동일함을 보장할 수 있습니다.
Automatic ECO Methodologies
Automatic ECO Methodologies
GOF ECO 는 다음과 같은 다양한 자동 ECO 기법을 사용하고 있습니다:
1) 구조적 기법 (Structure Method)
2) 리오더 기법 (Reorder Method)
3) 컷 포인트 기법(cut point Method)
구조적 기법(Structure Method) 은 구현(Implementation)과 참조(Reference) 넷리스트(Netlists)의 유사성을 활용하여 기존 로직(Logic)을 최대한 유지하면서 서로 다른 하위 회로만 대체합니다. 따라서 RTL 변경 후 합성 과정에서도 동일한 제약 조건을 적용하여 방법의 효율성을 높일 수 있습니다.
리오더 기법(Reorder Method)는 로직 콘(Logic Cone)의 내부 표현(Expression) 내에서 엔드 포인트를 수정하여 최적의 수정을 생성하여 최소 크기의 ECO 패치를 생성합니다.
또한, 컷 포인트 기법(Cut Point Method)는 가능한 한 최소의 패치로 비동등성(Non-equivalance)을 수정할 수 있는 최적의 위치를 식별하여 넷리스트 구현(Netlist Implementation)에서 잠재적인 신호를 수정하려고 노력합니다.
예를 들어 RTL 변경이 조합 신호에 AND 게이트를 도입하면 신호의 이름이 변경되거나 합성 후 신호가 최적화되었을 수 있습니다. 그런 경우 GOF는 넷리스트에서 AND 게이트를 추가하기 위한 최적의 위치를 식별하고 RTL 변경에 맞는 최적의 수정을 수행할 수 있습니다.
GOF는 가장 적합한 결과를 도출하기 위해서 세 가지 방법을 모두 적용하고 성능을 평가한 후 패치 크기가 최소인 방법을 선택합니다.
구조적 기법(Structure Method) 은 구현(Implementation)과 참조(Reference) 넷리스트(Netlists)의 유사성을 활용하여 기존 로직(Logic)을 최대한 유지하면서 서로 다른 하위 회로만 대체합니다. 따라서 RTL 변경 후 합성 과정에서도 동일한 제약 조건을 적용하여 방법의 효율성을 높일 수 있습니다.
리오더 기법(Reorder Method)는 로직 콘(Logic Cone)의 내부 표현(Expression) 내에서 엔드 포인트를 수정하여 최적의 수정을 생성하여 최소 크기의 ECO 패치를 생성합니다.
또한, 컷 포인트 기법(Cut Point Method)는 가능한 한 최소의 패치로 비동등성(Non-equivalance)을 수정할 수 있는 최적의 위치를 식별하여 넷리스트 구현(Netlist Implementation)에서 잠재적인 신호를 수정하려고 노력합니다.
예를 들어 RTL 변경이 조합 신호에 AND 게이트를 도입하면 신호의 이름이 변경되거나 합성 후 신호가 최적화되었을 수 있습니다. 그런 경우 GOF는 넷리스트에서 AND 게이트를 추가하기 위한 최적의 위치를 식별하고 RTL 변경에 맞는 최적의 수정을 수행할 수 있습니다.
GOF는 가장 적합한 결과를 도출하기 위해서 세 가지 방법을 모두 적용하고 성능을 평가한 후 패치 크기가 최소인 방법을 선택합니다.
그림2. Automatic ECO Methodologies
GOF vs Conformal ECO
GOF vs Conformal ECO
시놉시스(Synopsis) 디자인 컴파일러 지형학(DCT)과 디자인 컴파일러 그래픽(DCG)은 평면 계획, 라우팅 및 타이밍을 위해 넷리스트(Netlist)를 최적화하는 도구입니다. 그러나 이러한 도구들은 기능적인 ECO를 더 어렵게 만들 수 있습니다. 합성하는 동안 그들은 계층적 모듈 경계를 변경하여 클론 포트(clone ports)를 추가하거나 원래 포트의 상(Phase)을 반전(Invert)시키고 플롭(Flop)을 병합(Merge)할 수 있습니다.
Conformal ECO는 기능적인 ECO에서 포트 매핑(Mapping)에 문제가 있습니다. 그림 2와 같이 Conformal ECO는 DCG/DCT에서 추가한 클론 포트를 잘못 매핑하여 로직(Logic)을 수정하는 데 필요한 것보다 3배 더 많은 게이트(Gate)가 사용됩니다.
그림3. Boundary mapping affects ECO quality
합성 툴(Synthesis tool)은 참조(Reference) 넷 리스트와 구현(Implementation) 넷 리스트 사이에 일대일 매핑(Mapping)이 없는 복제 포트를 추가합니다. ECO 도구가 이러한 포트를 동일하게 만들려고 하면 ECO 패치에 중복 게이트가 추가되거나 최종 로직(Logic)이 동일하지 않게 만들 수 있습니다.
그림4. DCG/DCT Boundary optimized netlist
그러나 GOF는 클론 포트를 올바르게 매핑(Mapping)하여 정확한 비동등점(Non-Equivalent point)만 고정할 수 있습니다.
그림5. GOF result, only the red spot is fixed
GUI and Script Mode
GUI and Script Mode
GUI 및 스크립트 모드의 도움으로 수동 ECO 작업은 더 간단하고 정확해집니다. 특정 상황에서 수동 ECO는 자동 ECO보다 더 나은 결과를 만들어냅니다. 게다가, 처리 시간은 훨씬 짧습니다.
GUI 모드에서 GOF는 문제 로직(Logic)을 식별하는 데 유용한 증분 도식 엔진(GofTrace)을 사용합니다. 도식에서 문제 로직이 분리되면 ECO 모드가 활성화되고 동일한 도식에서 ECO 연산이 수행될 수 있습니다.
GOF는 DEF(Design Exchange Format) 및 LEF(Librior Exchange Format)와 같은 물리적 데이터베이스 파일을 구문 분석하는 기능을 가지고 있습니다. 물리적 데이터베이스를 로드함으로써 GOF는 LayoutViewer 창에 물리적 레이아웃과 연결을 표시할 수 있습니다. LayoutViewer 창은 증분 도식인 GofTrace 창과 완전히 상호 작용합니다. 이 통합된 플랫폼은 Metal Only ECO에 이상적입니다. 사용자는 백엔드와 프론트엔드를 왔다 갔다 하는 대신 Metal Only ECO를 한 번에 해결할 수 있습니다.
GUI ECO 모드는 초보자와 자주 사용하지 않는 사용자를 위한 가파른 학습 곡선을 가지고 있습니다. GUI 모드 ECO 사용 사례의 경우 여기를 클릭하면 하나의 GUI 모드 ECO 사용 사례가 있습니다.
스크립트 모드는 펄(Perl)과 동일한 구문을 사용하므로 기존의 넷리스트 처리 스크립트를 쉽게 통합할 수 있습니다. 스크립트 모드는 모든 출력 핀에 대해 AND를 삽입하는 등의 복제 작업에 적합합니다. 또한 스크립트 모드는 설계 검사, 엔드포인트 추적, 로직 콘 추출 등의 다양한 넷리스트 처리 API를 내보냅니다.
넷리스트 처리 API와 펄의 프로그래밍 알고리즘을 결합하여 강력한 사내 툴을 효율적으로 개발할 수 있습니다. 스크립트 모드 ECO 사용 사례의 경우, 하나의 스크립트 모드 ECO 사용 사례를 보려면 여기를 클릭하십시오.
GUI 및 스크립트 모드의 도움으로 수동 ECO 작업은 더 간단하고 정확해집니다. 특정 상황에서 수동 ECO는 자동 ECO보다 더 나은 결과를 만들어냅니다. 게다가, 처리 시간은 훨씬 짧습니다.
GUI 모드에서 GOF는 문제 로직(Logic)을 식별하는 데 유용한 증분 도식 엔진(GofTrace)을 사용합니다. 도식에서 문제 로직이 분리되면 ECO 모드가 활성화되고 동일한 도식에서 ECO 연산이 수행될 수 있습니다.
GOF는 DEF(Design Exchange Format) 및 LEF(Librior Exchange Format)와 같은 물리적 데이터베이스 파일을 구문 분석하는 기능을 가지고 있습니다. 물리적 데이터베이스를 로드함으로써 GOF는 LayoutViewer 창에 물리적 레이아웃과 연결을 표시할 수 있습니다. LayoutViewer 창은 증분 도식인 GofTrace 창과 완전히 상호 작용합니다. 이 통합된 플랫폼은 Metal Only ECO에 이상적입니다. 사용자는 백엔드와 프론트엔드를 왔다 갔다 하는 대신 Metal Only ECO를 한 번에 해결할 수 있습니다.
GUI ECO 모드는 초보자와 자주 사용하지 않는 사용자를 위한 가파른 학습 곡선을 가지고 있습니다. GUI 모드 ECO 사용 사례의 경우 여기를 클릭하면 하나의 GUI 모드 ECO 사용 사례가 있습니다.
스크립트 모드는 펄(Perl)과 동일한 구문을 사용하므로 기존의 넷리스트 처리 스크립트를 쉽게 통합할 수 있습니다. 스크립트 모드는 모든 출력 핀에 대해 AND를 삽입하는 등의 복제 작업에 적합합니다. 또한 스크립트 모드는 설계 검사, 엔드포인트 추적, 로직 콘 추출 등의 다양한 넷리스트 처리 API를 내보냅니다.
넷리스트 처리 API와 펄의 프로그래밍 알고리즘을 결합하여 강력한 사내 툴을 효율적으로 개발할 수 있습니다. 스크립트 모드 ECO 사용 사례의 경우, 하나의 스크립트 모드 ECO 사용 사례를 보려면 여기를 클릭하십시오.
그림6. Incremental Schematic
그림7. ECO on the same Schematic
Mixed Mode
특정 상황에서 ECO는 매우 복잡할 수 있으며 자동 모드에만 의존하면 만족스러운 결과를 얻지 못할 수 있습니다. 최적의 ECO 패치 적용에는 자동 ECO와 수동 ECO의 조합이 필요한 경우가 많습니다.
예를 들어, 버스 포트 A(IN_A)에 의해 원래 제어되었던 로직(LOGIC B)의 절반을 제어하기 위해 새로운 버스 포트(IN_B)가 필요한 ECO 사례를 고려해 보겠습니다. 로직 A와 로직 B는 일부 중복될 수 있으며, 로직 C는 또한 자동 ECO를 사용하여 수행해야 하는 데이터 경로 변경을 포함하여 수정이 필요합니다.
자동 ECO만 적용되는 경우 수정 1(IN_A/IN_B/LOGIC-A/LOGIC-B)에는 약 200개의 게이트가 필요합니다. 그러나 GOF API를 사용하여 포트 IN_A에서 STATE_reg 및 STATE_B_reg로 이어지는 논리 경로를 분석하면 LOGIC A와 LOGIC B의 게이트 공유가 거의 없음을 확인할 수 있습니다. 따라서 이러한 공유 게이트를 복제하면 논리 A와 논리 B를 깔끔하게 잘라내어 IN_A와 IN_B로 분리하여 구동할 수 있습니다. 이 혼합 모드 ECO 사용 사례는 여기를 클릭하십시오.