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 솔루션을 제공합니다.

그림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

어떤 경우에는 단일 인버터(Inverter)를 통합하기 위해 수백 만 개의 게이트로 디자인을 재합성 하는 것이 실용적이지 않을 수 있습니다. 마찬가지로 기가바이트 크기의 넷 리스트를 수동으로 편집하는 것이 권장되지 않습니다. 디자인이 적절하게 검증되면 20개 이상의 게이트를 포함하는 ECO는 10% 미만이어야 합니다. 더 작거나 복제된 나머지 90%의 ECO의 경우 글로벌 모드를 사용하는 것이 매우 오래 걸릴 수 있습니다. GOF ECO는 사용자에게 더 작은 ECO를 위한 GUI 및 스크립트 모드를 선택할 수 있는 유연성을 제공합니다.
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 사용 사례를 보려면 여기를 클릭하십시오.
 
어떤 경우에는 단일 인버터(Inverter)를 통합하기 위해 수백 만 개의 게이트로 디자인을 재합성 하는 것이 실용적이지 않을 수 있습니다. 마찬가지로 기가바이트 크기의 넷 리스트를 수동으로 편집하는 것이 권장되지 않습니다. 디자인이 적절하게 검증되면 20개 이상의 게이트를 포함하는 ECO는 10% 미만이어야 합니다. 더 작거나 복제된 나머지 90%의 ECO의 경우 글로벌 모드를 사용하는 것이 매우 오래 걸릴 수 있습니다. GOF ECO는 사용자에게 더 작은 ECO를 위한 GUI 및 스크립트 모드를 선택할 수 있는 유연성을 제공합니다.
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 사용 사례는 여기를 클릭하십시오.

그림8. Mixed Automatic and Manual ECO

Resources

기타 사용법 및 흐름에 대해서는 온라인 매뉴얼에서 자세한 내용을 확인하십시오