형식 동등성 검사

형식 동등성 검사(formal equivalence checking) 과정은 전자 설계 자동화(EDA)의 일부로, 디지털 집적 회로 개발 중에 일반적으로 사용되며, 회로 설계의 두 표현이 정확히 동일한 동작을 보이는지 정형적으로 증명하는 데 사용된다.

 동등성 검사 및 추상화 수준 
일반적으로 기능적 동등성의 정의는 광범위하며, 다양한 추상화 수준과 타이밍 세부 사항의 세분성을 비교하는 것을 포함한다.

 동기 기계 동등성 
디지털 칩의 레지스터 전송 수준(RTL) 동작은 일반적으로 베릴로그 또는 VHDL과 같은 하드웨어 기술 언어로 기술된다. 이 설명은 어떤 작동이 어떤 클록 사이클에 어떤 하드웨어 조각에 의해 실행될 것인지를 상세히 기술하는 골든 레퍼런스 모델이다. 논리 설계자들이 시뮬레이션 및 다른 검증 방법을 통해 레지스터 전송 설명을 검증하면, 설계는 일반적으로 논리 합성 도구에 의해 넷리스트로 변환된다. 동등성은 기능 검증에 의해 결정되어야 하는 기능적 정확성과 혼동되어서는 안 된다.

초기 넷리스트는 일반적으로 최적화, 테스트를 위한 설계 (DFT) 구조 추가 등 여러 변환을 거친 후, 논리 요소의 물리적 레이아웃 배치를 위한 기초로 사용된다. 현대의 물리적 설계 소프트웨어는 때때로 넷리스트에 상당한 수정(예: 논리 요소를 더 높은 또는 낮은 구동 강도 및 면적을 가진 동등한 유사 요소로 교체)을 가하기도 한다. 매우 복잡하고 다단계적인 절차의 모든 단계에서 원래의 기능과 원래 코드로 설명된 동작이 유지되어야 한다. 디지털 칩의 최종 테이프 아웃이 이루어질 때, 많은 다른 EDA 프로그램과 어쩌면 수동 편집이 넷리스트를 변경했을 것이다.

이론적으로, 논리 합성 도구는 첫 번째 넷리스트가 RTL 소스 코드와 논리적으로 동등함을 보장한다. 이 과정의 후반부에 넷리스트를 변경하는 모든 프로그램도 이론적으로 이러한 변경이 이전 버전과 논리적으로 동등함을 보장한다.

실제로는 프로그램에 버그가 있으며, RTL에서 최종 테이프 아웃 넷리스트까지의 모든 단계가 오류 없이 수행되었다고 가정하는 것은 큰 위험이 될 것이다. 또한 실제로는 설계자들이 넷리스트에 수동 변경을 가하는 것이 일반적이며, 이를 일반적으로 엔지니어링 변경 지시 (ECO)라고 하는데, 이는 주요 추가 오류 요인을 도입한다. 따라서 오류가 없었다고 맹목적으로 가정하는 대신, 넷리스트의 최종 버전과 설계의 원래 설명(골든 레퍼런스 모델)의 논리적 동등성을 확인하기 위한 검증 단계가 필요하다.

 같이 보기 
 정형 기법

 각주 
Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer,  A survey of the field. This article was derived, with permission, from Volume 2, Chapter 4, Equivalence Checking, by Fabio Somenzi and Andreas Kuehlmann.
R.E. Bryant, Graph-based algorithms for Boolean function manipulation, IEEE Transactions on Computers., C-35, pp. 677–691, 1986. The original reference on BDDs.
Sequential equivalence checking for RTL models. Nikhil Sharma, Gagan Hasteer and Venkat Krishnaswamy. EE Times.

 외부 링크 
 CADP – provides equivalence checking tools for asynchronous designs
 OneSpin 360 EC-FPGA – Functional correctness of FPGA synthesis from RTL code to final netlist

분류:정형 기법