KR101331270B1 - 등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법 - Google Patents

등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법 Download PDF

Info

Publication number
KR101331270B1
KR101331270B1 KR1020110124383A KR20110124383A KR101331270B1 KR 101331270 B1 KR101331270 B1 KR 101331270B1 KR 1020110124383 A KR1020110124383 A KR 1020110124383A KR 20110124383 A KR20110124383 A KR 20110124383A KR 101331270 B1 KR101331270 B1 KR 101331270B1
Authority
KR
South Korea
Prior art keywords
circuit
state elements
mapping
sequential depth
state
Prior art date
Application number
KR1020110124383A
Other languages
English (en)
Other versions
KR20120087071A (ko
Inventor
마크 떠블유. 리드코프
Original Assignee
레이티언 캄파니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 레이티언 캄파니 filed Critical 레이티언 캄파니
Publication of KR20120087071A publication Critical patent/KR20120087071A/ko
Application granted granted Critical
Publication of KR101331270B1 publication Critical patent/KR101331270B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

등가 검증을 위한 디지털 회로들의 상태 요소들을 매핑하는 시스템 및 방법을 제공한다. 제 1 회로 및 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 한 방법은, (a) 제 1 회로 및 제 2 회로의 일차 입력 및 일차 출력으로부터 제 1 회로 및 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계 ― 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트임 ― , (b) 제 1 회로 및 제 2 회로의 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별 및 매핑하는 단계, (c) 제 1 회로 및 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계, (d) 제 1 회로 및 제 2 회로의 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별 및 매핑하는 단계, 및 (e) 프로세스가 상태 요소들의 새로운 고유한 매핑을 더 이상 생성하지 않을 때까지 (c) 단계와 (d) 단계를 반복하는 단계를 포함한다.

Description

등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법{SYSTEMS AND METHODS FOR MAPPING STATE ELEMENTS OF DIGITAL CIRCUITS FOR EQUIVALENCE VERIFICATIONS}
본 발명은 DARPA에 의해 승인된 정부 계약 번호 HR0011-08-C-0005에 관한 것이다. 미국 정부는 본 발명에 대하여 소정의 권리를 갖는다.
본 발명은 등가 검증에 관한 것으로서, 더욱 상세하게는, 등가 검증을 위한 디지털 회로의 상태 요소들을 매핑하는 시스템 및 방법에 관한 것이다.
집적 회로 설계에 연관된 프로세스는 일반적으로 추상의 고 레벨 내지 추상의 중간 레벨과 저 레벨에 걸친 여러 설계 변환을 포함한다. 각 레벨에서는, 어떠한 변환도 설계를 기능적으로 또는 논리적으로 변경하지 않았음을 증명하도록 등가 검증을 수행한다.
종래의 등가 검증 방법에서는, 일반적으로 검증될 구현들(implementations) 사이의 상태 요소들의 매핑이 등가로 검증되어야 한다. 이러한 매핑 방법은 여러 카테고리들 중 하나에 속한다. 매우 흔한 명명(naming)법은, 유사하게 명명된 각 설계에서의 대응하는 지점들을 매핑한다. 그러나, 상태 요소들의 명칭은, 명명법을 이용하는 일부 설계 툴(tool)에 의해 수행되는 설계 변환 동안, 변경되거나 손실될 수 있다. 또한, 명명법은 리버스 엔지니어링(reverse engineering)형 애플리케이션에 대하여 충분히 사용될 수 없다. 다른 방안은 상태 요소의 팬 인 로직 콘(fan-in logic cone)의 표준적 표현을 이용하는 함수법이다(예를 들어, 이진 결정 다이어그램, 즉, BDD). 그러나, 함수법에서는, 그 정보가 이용가능하지 않을 수 있을 때 콘의 입력 모두를 매핑해야 하며, 이에 따라 순환 문제가 종종 발생할 수 있다.
또 다른 방안은, 설계 레벨 모두를 시뮬레이션한 후 시뮬레이션 구성요소들의 선택을, 유사한 값 벡터들을 갖는 상태 요소들과 일치시키거나 이러한 상태 요소들로 한정하는 시뮬레이션법이다. 그러나, 시뮬레이션법은, 의도한 수정 또는 의도하지 않은 수정이 존재하는 경우 사용하기 어려울 수 있다. 구조법(structural method)이라 칭하는 또 다른 방안에서는, 조합성 콘 구조를 검사하는 네트 리스트(net-list) 대 네트 리스트의 비교를 수행한다. 일부 경우에는, 이러한 방안들의 조합을 이용한다. 그러나 등가 검증을 위한 종래의 방안들의 상당수 또는 모두에는 단점이 있다. 이에 따라, 등가 검증을 수행하기 위한 개선된 방법이 필요하다.
본 발명의 양상들은 등가 검증을 위한 디지털 회로들의 상태 요소들을 매핑하는 시스템 및 방법에 관한 것이다. 일 실시예에서, 본 발명은 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 방법에 관한 것으로서, 이 방법은, (a) 제 1 회로와 제 2 회로의 일차 입력과 일차 출력으로부터 제 1 회로와 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계 ― 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트임 ― , (b) 제 1 회로와 제 2 회로에서 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별하고 매핑하는 단계, (c) 제 1 회로와 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계, (d) 제 1 회로와 제 2 회로에서 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별하고 매핑하는 단계, 및 (e) 프로세스가 상태 요소들의 새로운 고유한 매핑을 더 이상 생성하지 않을 때까지 (c) 단계와 (d) 단계를 반복하는 단계를 포함한다.
다른 일 실시예에서, 본 발명은 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 방법에 관한 것으로서, 이 방법은, (a) 제 1 회로와 제 2 회로의 일차 입력과 일차 출력부터 제 1 회로와 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계 ― 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트임 ― , (b) 각 상태 요소에 대한 제 1 순차 깊이에 기초하여 제 1 회로와 제 2 회로의 각 상태 요소에 대한 제 1 특징 벡터(feature vector)를 생성하는 단계, (c) 제 1 회로와 제 2 회로에서 고유한 제 1 벡터를 갖는 상태 요소들을 식별하고, 제 1 회로와 제 2 회로의 식별된 상태 요소들의 제 1 특징 벡터들이 거의 동일하면 제 1 회로와 식별된 상태 요소들을 제 2 회로의 식별된 상태 요소들에 매핑하는 단계, (d) 제 1 회로와 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계, (e) 식별된 상태 요소 각각에 대한 제 2 순차 깊이에 기초하여 제 1 회로와 제 2 회로의 식별된 상태 요소 각각에 대한 제 2 특징 벡터를 생성하는 단계, (f) 제 1 회로와 제 2 회로에서 고유한 제 2 벡터를 상태 요소들을 식별하고, 제 1 회로와 제 2 회로에서 고유한 제 2 벡터를 갖는 식별된 상태 요소들의 제 2 특징 벡터들이 거의 동일하면 제 1 회로에서의 고유한 제 2 벡터를 갖는 식별된 상태 요소들을 제 2 회로에서의 고유한 제 2 벡터를 갖는 식별된 상태 요소들에 매핑하는 단계, 및 (g) 매핑 프로세스의 완료를 위한 임계 조건이 충족되었는지를 결정하는 단계를 포함한다.
도 1은 본 발명의 일 실시예에 따라 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 프로세스의 흐름도이다.
도 2는 본 발명의 일 실시예에 따라 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 다른 프로세스의 흐름도이다.
도 3은 본 발명의 일 실시예에 따라 디지털 회로의 일차 입력부터 각 상태 요소까지의 순차 깊이를 결정하는 것을 도시하는 개략도이다.
도 4는 본 발명의 일 실시예에 따라 디지털 회로의 일차 출력부터 각 상태 요소까지의 순차 깊이를 결정하는 것을 도시하는 도 3의 디지털 회로의 개략도이다.
도 5는 본 발명의 일 실시예에 따라 디지털 회로의 일차 입력과 일차 출력부터 각 상태 요소까지의 순차 깊이로 이루어지는 특징 벡터를 결정하는 것을 도시하는 도 3의 디지털 회로의 개략도이다.
도 6은 본 발명의 일 실시예에 따라 동일한 특징 벡터를 갖는 상태 요소들의 그룹화 및 고유한 특징 벡터를 갖는 상태 요소들의 식별을 도시하는 도 3의 디지털 회로의 개략도이다.
도 7은 본 발명의 일 실시예에 따라 도 6의 동일한 특징 벡터를 갖는 상태 요소들의 그룹화 및 고유한 특징 벡터를 갖는 상태 요소들의 식별을 도시하는 표이다.
도 8은, 본 발명의 일 실시예에 따라 순차 깊이에 끼치는 영향을 도시하는, 상태 요소가 최적화되는 수정을 설계 툴에 의해 수행한 후의 도 3의 디지털 회로의 개략도이다.
도 9는 본 발명의 일 실시예에 따라 도 8의 상태 요소가 제거됨으로 인해 각 특징 벡터에서의 작은 차이를 도시하는, 도 7의 표의 복제 표이다.
도 10은 본 발명의 일 실시예에 따라 도 8의 상태 요소가 제거됨으로 인해 각 특징 벡터에서의 작은 차이를 도시하는 표이다.
도 11은 본 발명의 일 실시예에 따라 순차 깊이 매핑 프로세스에 연관된 개선된 매핑 성능 및 종래의 매핑 툴과의 비교를 도시하는 그래프이다.
이하 도면을 참조하여, 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 시스템 및 방법의 실시예들을 설명한다. 이러한 방법들은 각 회로의 일차 입력과 일차 출력부터 각 상태 요소까지의 순차 깊이를 결정하는 단계를 포함할 수 있고, 순차 깊이는 회로의 두 개의 지점 사이의 모든 가능한 경로들을 따라 발생하는 상태 요소들의 최소 수의 카운트이다. 방법들은, 또한, 제 1 회로와 제 2 회로에서 일차 입력과 일차 출력으로부터의 고유한 순차 깊이를 갖는 상태 요소들을 식별하고 매핑하는 단계를 포함할 수 있다. 여러 실시예들에서, 방법들은 제 1 회로에서의 고유하게 식별된 상태 요소들을 제 2 회로에서의 고유하게 식별된 대응 상태 요소들에 매핑한다. 이어서, 방법들은, 제 1 회로와 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계, 및 제 1 회로와 제 2 회로에서 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별하고 매핑하는 단계를 포함할 수 있다. 여러 실시예들에서는, 방법들이 상태 요소들의 새로운 고유한 매핑을 더 이상 생성하지 않을 때까지 위 문장의 동작을 반복한다.
여러 실시예들에서, 순차 깊이 방법은 등가 검증을 위한 개선된 성능을 제공하며, 최적의 성능을 위해 기타 등가 검증 시스템과 함께 사용될 수 있다. 일 실시예에서, 순차 깊이 방법은 종래의 등가 검증 툴을 대신하는 기점으로서 사용될 수 있다. 이러한 경우에, 순차 깊이 방법은 종래의 등가 검증 툴의 성능을 상당히 개선할 수 있다. 여러 실시예들에서, 본 명세서에서 설명하는 순차 깊이 방법은, 함수 툴, 시뮬레이션 툴, 명명 툴, 또는 기타 적절한 검증 툴 등의 종래의 등가 검증 툴들 중 하나와 함께 사용된다.
도 1은 본 발명의 제 1 실시예에 따라 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 프로세스(100)의 흐름도이다. 블록(102)에서, 프로세스는 우선 제 1 및 제 2 회로의 일차 입력과 일차 출력부터 제 1 및 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하며, 여기서 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트이다. 여러 실시예들에서, 제 1 순차 깊이는 일차 입력 또는 일차 출력 중 하나와 임의의 경로를 다른 특정한 상태 요소 사이에서 발생하는 최소 수의 카운트이다. 다수의 실시예들에서, 프로세스는, 제 1 회로의 상태 요소들 각각으로부터 제 1 회로의 일차 입력과 일차 출력 각각까지의 제 1 순차 깊이를 결정하고, 제 2 회로의 상태 요소들 각각으로부터 제 2 회로의 일차 입력과 일차 출력 각각까지의 제 1 순차 깊이를 결정한다.
블록(104)에서, 프로세스는 제 1 회로와 제 2 회로에서 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별한다. 여러 실시예들에서, 프로세스는 동일하지 않거나 고유한 제 1 상태 요소들을 식별하기 위해 거의 동일한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 그룹화한다. 고유한 순차 깊이 카운트 또는 시그너처(signature)는 제 1 및 제 2 회로 사이에서 상태 요소들을 매핑하는 기회를 제공한다. 일 실시예에서, 프로세스는, 제 1 상태 요소들을 식별하는 데 있어서, 제 1 회로에서 거의 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하고, 제 1 회로에서 그룹 카운트가 1인 제 1 상태 요소들을 선택하고, 제 2 회로에서 거의 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하고, 제 2 회로에서 그룹 카운트가 1인 제 1 상태 요소들을 선택한다. 그룹 카운트 1은 고유한 순차 깊이를 갖는 상태 요소에 해당할 수 있다.
블록(106)에서, 프로세스는 제 1 및 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정한다. 여러 실시예들에서, 나머지 상태 요소들은 이전에 고유한 제 1 순차 깊이를 갖는 것으로 식별되지 않고 매핑되지 않은 상태 요소들이다. 여러 실시예들에서, 제 2 순차 깊이는 식별된 제 1 상태 요소들 중 하나와 특정한 상태 요소 사이의 상태 요소들의 카운트이다. 일 실시예에서, 프로세스는, 제 2 순차 깊이를 결정하는 데 있어서, 제 1 회로의 식별된 제 1 상태 요소들 각각으로부터 제 1 회로의 상태 요소들 각각까지의 제 2 순차 깊이를 결정하고, 제 2 회로의 식별된 제 1 상태 요소들 각각으로부터 제 2 회로의 상태 요소들 각각까지의 제 2 순차 깊이를 결정한다.
블록(108)에서, 프로세스는, 제 1 및 제 2 회로에서 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별하고, 이러한 제 2 상태 요소들을 다른 회로의 대응하는 구성요소들에 매핑한다. 여러 실시예들에서, 프로세스는 동일하지 않거나 고유한 제 2 상태 요소들을 식별하기 위해 거의 동일한 순차 깊이를 갖는 제 2 상태 요소들을 그룹화한다. 일 실시예에서, 프로세스는, 제 2 상태 요소들을 식별하는 데 있어서, 제 1 회로에서 거의 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하고, 제 1 회로에서 그룹 카운트가 1근 제 2 상태 요소들을 선택하고, 제 2 회로에서 거의 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하고, 제 2 회로에서 그룹 카운트가 1인 제 2 상태 요소들을 선택한다. 선택된 그룹들은 제 1 및 제 2 회로 사이에서 상태 요소들을 매핑하는 기회를 제공한다.
블록(110)에서, 프로세스는 자신이 상태 요소들의 새로운 매핑을 생성하고 있는지를 결정한다. 상태 요소들의 새로운 매핑을 생성하고 있지 않다면, 프로세스는 블록(106)으로 복귀하여, 블록(110)의 조건이 충족될 때까지 블록(106, 108)의 동작을 반복한다. 일 실시예에서, 프로세스는 블록(106, 108)의 연속 반복이 상태 요소들의 새로운 고유한 매핑을 생성하지 않을 때까지 블록(106, 108)의 동작을 반복한다.
일 실시예에서, 프로세스는 동작들의 순서를 다른 순서로 수행할 수 있다. 다른 일 실시예에서, 프로세스는 동작들 중 하나 이상을 생략할 수 있다. 다른 실시예들에서, 동작들 중 하나 이상은 동시에 수행된다. 일부 실시예들에서는, 추가 동작들이 수행될 수 있다.
도 2는 본 발명의 일 실시예에 따라 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하는 다른 프로세스(200)의 흐름도이다. 블록(202)에서, 프로세스는 우선 제 1 회로와 제 2 회로의 일차 입력과 일차 출력부터 제 1 회로와 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하고, 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트이다. 여러 실시예들에서, 제 1 순차 깊이는 일차 입력 또는 일차 출력 중 하나와 임의의 경로를 따른 특정한 상태 요소 사이에서 발생하는 상태 요소들의 최소 수의 카운트이다. 일 실시예에서, 프로세스는, 제 1 순차 깊이를 결정하는 데 있어서, 제 1 회로의 일차 입력과 일차 출력 각각으로부터 제 1 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하고, 제 2 회로의 일차 입력과 일차 출력 각각으로부터 제 2 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정한다.
블록(204)에서, 프로세스는, 각 상태 요소에 대한 제 1 순차 깊이에 기초하여 제 1 회로와 제 2 회로의 각 상태 요소에 대한 제 1 특징 벡터를 생성한다. 여러 실시예들에서, 특징 벡터는 각 일차 입력과 각 일차 출력부터 각 상태 요소까지의 순차 깊이 측정값들로 이루어진다.
블록(206)에서, 프로세스는, 제 1 회로와 제 2 회로에서 고유한 제 1 벡터를 갖는 제 1 상태 요소들을 식별하고, 제 1 회로와 제 2 회로의 식별된 상태 요소들의 제 1 특징 벡터들이 거의 동일하면 제 1 회로의 식별된 상태 요소들을 제 2 회로의 식별된 상태 요소들에 매핑한다. 여러 실시예들에서, 프로세스는 동일하지 않거나 고유한 제 1 벡터들을 식별하기 위해 거의 동일한 순차 깊이 벡터를 갖는 제 1 벡터들을 그룹화한다. 일 실시예에서, 프로세스는, 제 1 상태 요소들을 식별하는 데 있어서, 제 1 회로에서 거의 동일한 제 1 벡터를 갖는 상태 요소들을 그룹화하고, 제 1 회로에서 그룹 카운트가 1인 제 1 상태 요소들을 선택하고, 제 2 회로에서 거의 동일한 제 1 벡터를 갖는 상태 요소들을 그룹화하고, 제 2 회로에서 그룹 카운트가 1인 제 1 상태 요소들을 선택한다. 그룹 카운트 1은 고유한 순차 깊이를 갖는 상태 요소에 해당할 수 있다.
일 실시예에서, 하나의 특징 벡터는 다른 하나의 특징 벡터와 거의 동일하며, 이는 이러한 특징 벡터들이 한자릿수만큼 상이한 경우에 해당한다. 다른 일 실시예에서, 하나의 특징 벡터는 다른 하나의 특징 벡터와 거의 동일하며, 이는 이러한 특징 벡터들이 미리 선택된 비율만큼 상이한 경우에 해당한다. 또 다른 일 실시예에서, 하나의 특징 벡터는 다른 하나의 특징 벡터와 거의 동일하며, 이는 이러한 특징 벡터들이 미리 선택된 거리 알고리즘에 의해 허용가능한 것으로 간주되는 미리 선택된 임계값만큼 상이한 경우에 해당한다. 상태 요소들을 매핑하기 위한 거리 매트릭(metrics) 또는 거리 알고리즘은, 작은 차이는 있지만, 더욱 상세히 후술한다.
블록(208)에서, 프로세스는 제 1 회로와 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정한다. 여러 실시예들에서, 나머지 상태 요소들은 이전에 고유한 제 1 순차 깊이를 갖는 것으로 식별되지 않은 상태 요소들이다. 일 실시예에서, 프로세스는, 제 2 순차 깊이를 결정하는 데 있어서, 제 1 회로에서 식별된 상태 요소들 각각으로부터 제 1 회로의 상태 요소들 각각까지의 제 2 순차 깊이를 결정하고, 제 2 회로에서 식별된 상태 요소들 각각으로부터 제 2 회로의 상태 요소들 각각까지의 제 2 순차 깊이를 결정한다.
블록(210)에서, 프로세스는, 각 상태 요소에 대한 제 2 순차 깊이에 기초하여 제 1 회로와 제 2 회로의 식별된 각 상태 요소에 대한 제 2 특징 벡터를 생성한다. 여러 실시예들에서, 각 제 2 특징 벡터는 식별된 상태 요소들로부터 각 상태 요소까지의 순차 깊이 측정값들로 이루어진다.
블록(212)에서, 프로세스는, 제 1 회로와 제 2 회로에서 고유한 제 2 벡터를 갖는 제 2 상태 요소들을 식별하고, 제 1 회로와 제 2 회로에서 고유한 제 2 벡터를 갖는 식별된 상태 요소들의 제 2 특징 벡터들이 거의 동일하면 제 1 회로에서 고유한 제 2 벡터를 갖는 식별된 상태 요소들을 제 2 회로에서 고유한 제 2 벡터를 갖는 식별된 상태 요소들에 매핑한다. 여러 실시예들에서, 프로세스는 동일하지 않거나 고유한 제 2 벡터들을 식별하기 위해 거의 동일한 순차 깊이를 갖는 제 2 벡터들을 그룹화한다. 일 실시예에서, 프로세스는, 제 2 상태 요소들을 식별하는 데 있어서, 제 1 회로에서 거의 동일한 제 2 벡터를 갖는 상태 요소들을 그룹화하고, 제 1 회로에서 그룹 카운트가 1인 제 2 상태 요소들을 선택하고, 제 2 회로에서 거의 동일한 제 2 벡터를 갖는 상태 요소들을 그룹화하고, 제 2 회로에서 그룹 카운트가 1인 제 2 상태 요소들을 선택한다.
블록(216)에서, 프로세스는 자신이 상태 요소들의 새로운 고유한 매핑을 생성하는지를 결정한다. 상태 요소들의 새로운 고유한 매핑을 생성하고 있지 않다면, 프로세스가 종료된다. 상태 요소들의 새로운 고유한 매핑을 생성하고 있다면, 프로세스는 블록(208)으로 복귀하여, 블록(216)의 조건이 충족될 때까지 블록(208 내지 214)의 동작을 반복한다. 여러 실시예들에서, 블록(208 내지 214)의 연속 반복이 상태 요소들의 어떠한 새로운 고유한 매핑도 생성하지 않으면 블록(26)의 조건이 충족된다.
일 실시예에서, 프로세스는 동작들의 순서를 다른 순서로 수행할 수 있다. 다른 일 실시예에서, 프로세스는 동작들 중 하나 이상을 생략할 수 있다. 다른 실시예들에서, 동작들 중 하나 이상은 동시에 수행된다. 일부 실시예들에서는, 추가 동작들이 수행된다.
일부 실시예들에서는, 플롭들(flops)을 미분할 수 있는 순차 깊이가 아닌 특성들도 사용된다. 이러한 일 실시예에서는, 다른 특성들 중 하나 이상을 특징 벡터에 부가적인 미분기(differentiator)로서 추가한다.
도 3은 본 발명의 일 실시예에 따라 디지털 회로의 일차 입력(A)부터 각 상태 요소까지의 순차 깊이를 결정하는 것을 도시하는 개략도이다. 특정한 실시예들에서, 일차 입력으로부터의 순차 깊이 결정은 도 1과 도 2의 프로세스의 블록(102, 202)과 함께 이용될 수 있다.
회로(300)는 일차 입력(A), 일차 입력(B), 일차 출력(F), 일차 출력(G), 및 상태 요소들(i0, i1, i2, i3, i4, i5, i6, i7, i8, i9)을 포함한다. 일차 입력(A)에 대한 각 상태 요소의 순차 깊이(예를 들어, 두 개의 지점 사이의 임의의 경로를 따라 발생하는 상태 요소들의 최소 카운트임)를 결정하여 도 3에 각 상태 요소 박스 위에 표시하고 있다. 예를 들어, 상태 요소(i0)부터 일차 입력(A)까지의 순차 깊이는, 상태 요소(i0)부터 일차 입력(A)까지의 최소 거리 경로가 하나의 상태 요소, 즉, i0을 가로지르므로, "1"이다. 상태 요소(i1)부터 일차 입력(A)까지의 순차 깊이는, 도달 불가를 나타내는, 또는 달리 말하면, 무한 거리에 있음을 나타내는 "-"이다. 상태 요소(i9)부터 일차 입력(A)까지의 순차 깊이는, 일차 입력(A)으로의 최단 경로가 3개의 상태 요소, 즉, i9, i7, 그리고 i4나 i5를 가로지르므로, "3"이다. 나머지 상태 요소들에 대한 순차 깊이도 마찬가지 방식으로 결정된다.
도 3의 회로는 순차 깊이 프로세스와 함께 사용될 수 있는 하나의 회로의 일례이다. 다른 실시예들에서, 순차 깊이 프로세스는 다른 회로들과 함께 사용될 수 있다. 다른 실시예들에서, 예를 들어, 순차 깊이 프로세스는 도 3의 회로보다 적은 일차 입력들과 일차 출력들을 갖거나 이러한 일차 입력들과 일차 출력들을 추가로 갖는 회로들과 함께 사용될 수 있다.
도 4는 본 발명의 일 실시예에 따라 디지털 회로의 일차 출력(G)부터 각 상태 요소까지의 순차 깊이의 결정을 도시하는 도 3의 디지털 회로(300)의 개략도이다. 일차 출력(G)에 대한 각 상태 요소의 순차 깊이를 결정하여, 각 상태 요소 박스 위에 표시하고 있다. 예를 들어, 상태 요소(i9)부터 일차 입력(A)까지의 순차 깊이는, i9부터 일차 출력(G)까지의 최소 거리 경로가 하나의 상태 요소, 즉, i9를 가로지르므로, "1"이다. 상태 요소(i8)부터 일차 출력(G)까지의 순차 깊이는 i8로부터 도달 불가이므로 "-"이다. 상태 요소(i1)부터 일차 출력(G)까지의 순차 깊이는, 최단 경로가 i1, i2 또는 i3, i6 및 i9를 가로지르므로, "4"이다. 나머지 상태 요소들로부터의 순차 깊이도 마찬가지 방식으로 결정된다.
도 5는 본 발명의 일 실시예에 따라 디지털 회로(300)의 일차 입력과 일차 출력 각각으로부터 각 상태 요소까지의 순차 깊이로 이루어지는 특징 벡터들의 결정을 도시하는 도 3의 디지털 회로(300)의 개략도이다. 각 상태 요소에서의 특징 벡터들은 A, B, F, G의 벡터 순서로 일차 입력과 일차 출력에 대한 순차 깊이를 반영한다. 예를 들어, 각 특징 벡터의 첫 자릿수에 대한 순차 깊이는, 도 3에 도시한 계산된 수와 동일한 계산된 수를 이용한, 일차 입력(A)에 대한 순차 깊이를 반영한다. 마찬가지로, 각 특징 벡터의 마지막 자릿수에 대한 순차 깊이는, 도 4에 도시한 계산된 수와 동일한 계산된 수를 이용한, 일차 출력(G)으로부터의 순차 깊이를 반영한다. 여러 실시예들에서, 일단 특징 벡터들이 결정되면, 프로세스는 이러한 특징 벡터들을 이용하여 고유한 특징 벡터들을 갖는 상태 요소들을 식별 및 매핑할 수 있다.
도 6은 본 발명의 일 실시예에 따라 동일한 특징 벡터(i2, i3, i4, i5)를 갖는 상태 요소들의 그룹화 및 고유한 특징 벡터(i0, i1, i6, i7, i8, i9)를 갖는 상태 요소들의 식별을 도시하는 도 3의 디지털 회로(300)의 개략도이다.
도 7은 본 발명의 일 실시예에 따라 도 6의 동일한 특징 벡터를 갖는 상태 요소들의 그룹화 및 고유한 특징 벡터를 갖는 상태 요소들의 식별을 도시하는 표이다. 표에서, 공통되는 특징 벡터들은 함께 그룹화되며 그룹 식별 번호를 지정받는다. 표 및 도 6으로부터 알 수 있듯이, i2, i3 및 i4, i5에 대한 특징 벡터들은 고유하지 않은 한편 나머지 특징 벡터들은 고유하다. 일반적으로, 크기가 1인 그룹들(예를 들어, 고유한 순차 깊이를 가짐)은 회로들 사이에 매핑될 수 있다.
본 명세서에서 설명하는 여러 프로세스들에 따르면, 고유한 것으로서 식별되는 특징 벡터들은 후속하는 순차 깊이 결정을 위해 사용될 수 있다. 다수의 실시예들에서, 반복 프로세스는 프로세스의 연속 반복이 상태 요소들의 새로운 고유한 매핑을 생성하지 않을 때까지 이전에 매핑된 상태 요소들로부터의 순차 깊이를 계속 계산하여 고유한 벡터를 갖는 새로운 상태 요소들을 식별한다. 여러 실시예들에서, 도 3 내지 도 6의 디지털 회로 및 도 7의 표는 도 1과 도 2에 도시한 프로세스들 중 하나 이상과 함께 사용된다.
도 8은 본 발명의 일 실시예에 따라 순차 깊이에 끼치는 영향을 도시하는, 상태 요소(ij)가 최적화되는 수정을 설계 툴에 의해 수행한 후의 도 3의 디지털 회로에 기초한 디지털 회로(400)의 개략도이다. 상태 요소(ij)가 최적화된 후 일차 출력(F)으로부터의 순차 깊이가 각 상태 요소에 도시되어 있다.
도 9는 본 발명의 일 실시예에 따라 도 8의 상태 요소가 제거됨으로 인해 각 특징 벡터에서의 작은 차이를 도시하는, 도 7의 표의 복제 표이다.
도 10은 본 발명의 일 실시예에 따라 도 8의 상태 요소가 제거됨으로 인해 각 특징 벡터에서의 작은 차이를 도시하는 표이다. 도 9와 도 10의 표로부터 알 수 있듯이, 특징 벡터들은, 도 10의 일차 출력(F)에 관한 순차 깊이(특징 벡터의 세 번째 자릿수)가 도 9의 대응하는 상태 요소 그룹화에 비해 1만큼 효과적으로 삭감되어 있다는 점을 제외하고는, 거의 동일하다. 회로 구현들 사이의 의도한 합성 차 또는 의도하지 않은 합성 차로 인해, 설계마다 대응하는 상태 요소들 또는 플롭들에서는 특징 벡터에 있어서 이러한 작은 차이가 발생할 수 있다. 여러 실시예들에서, 본 명세서에서 설명하는 프로세스들은 이러한 작은 차이에도 불구하고 거리 메트릭 또는 거리 알고리즘을 이용하여 상태 요소들을 매핑할 수 있다. 예를 들어, 일 실시예에서, 프로세스는 벡터들 사이에 "작은 차이"가 있는 이러한 벡터들을 그룹화하는 데 유클리드 거리 알고리즘, 맨하탄 거리 알고리즘, 해밍 거리 알고리즘 또는 기타 적절한 거리 알고리즘을 사용할 수 있다.
도 11은 본 발명의 일 실시예에 따라 순차 깊이 매핑 프로세스에 연관된 개선된 매핑 성능 및 종래의 매핑 툴과의 비교를 도시하는 그래프이다. 각 컬럼에서, 그래프는, 순차 깊이 프로세스 및 종래 프로세스 모두가 매핑한 플롭들(예를 들어, 상태 요소들)의 비율, 순차 깊이 프로세스만이 매핑한 플롭들의 비율, 종래의 프로세스만이 매핑한 플롭들의 비율, 및 순차 깊이 매칭 프로세스 또는 종래의 매핑 툴 어느 것도 매핑할 수 없는 플롭들의 비율을 나타낸다. 서로 다른 세 개의 회로 설계에 대한 결과는 세 개 컬럼 각각에 도시된 하나의 회로 설계와 함께 도시되어 있다. 제 1 회로 설계는 메모리 어레이를 형성하지 않는 약 1000개의 플롭을 포함한다. 제 2 회로 설계는 플롭들의 절반 이하가 메모리 어레이에 사용되는 약 10,000개의 플롭을 포함한다. 제3 회로 설계는 대부분의 플롭이 메모리 어레이에 사용되는 약 27,000개의 플롭을 포함한다. 종래의 하나의 프로세스에 더하여 순차 깊이 프로세스를 이용함으로써, 최대 24퍼센트 더 많은 플롭을 매핑할 수 있고, 이에 따라 종합적 등가 검증을 위한 더욱 양호한 툴을 제공할 수 있다.
일반적으로, 메모리 어레이의 상태 요소들은 어드레스 비트의 매핑이 알려져 있지 않을 때 명명하기 어렵다. 일부 경우에, 많은 메모리 어레이들을 포함하는 회로에는 함수 툴을 사용하는 것이 적합하다. 여러 실시예들에서, 그러나, 순차 깊이 매핑 프로세스는 메모리 어레이 구성요소에 대한 명명 프로세스를 상당히 보조할 수 있다. 일부 경우에, 순차 깊이 매핑 프로세스는 구조 방안과 함수 방안 모두를 포함하는 프로세스에서 사용될 수 있다.
위 설명에서는 본 발명의 많은 특정한 실시예들을 포함하고 있지만, 이러한 실시예들은 본 발명의 범위를 한정하는 것이 아니라 본 발명의 구체적인 실시예들의 예로서 해석되어야 한다. 이에 따라, 본 발명의 범위는 예시한 실시예들에 의해서가 아니라 청구범위 및 그 균등물에 의해 결정되어야 한다.

Claims (19)

  1. 제 1 회로 및 제 2 회로 사이의 등가 검증(equivalence verification)을 위한 상태 요소들을 매핑하기 위해 컴퓨터의 의하여 수행되는 방법으로서,
    (a) 상기 제 1 회로 및 상기 제 2 회로의 일차 입력 및 일차 출력으로부터 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이(sequenctial depth)를 결정하는 단계 ― 상기 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트(count)임 ― ;
    (b) 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별 및 매핑하는 단계;
    (c) 상기 제 1 회로 및 상기 제 2 회로의 상기 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계;
    (d) 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별 및 매핑하는 단계; 및
    (e) 상태 요소들의 새로운 고유한 매핑이 더 이상 생성되지 않을 때까지 상기 (c) 단계 및 상기 (d) 단계를 반복하는 단계
    를 포함하는, 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 일차 입력 및 일차 출력으로부터 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 일차 입력 및 일차 출력 각각으로부터 상기 제 1 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계; 및
    상기 일차 입력 및 상기 일차 출력으로부터 상기 제 2 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별 및 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로의 선택된 제 1 상태 요소들이 동일한 제 1 순차 깊이를 갖는다면, 상기 제 1 회로의 선택된 제 1 상태 요소들을 상기 제 2 회로의 선택된 제 1 상태 요소들에 매핑하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 상기 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 식별된 제 1 상태 요소들 각각으로부터 상기 제 1 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계; 및
    상기 제 2 회로의 식별된 제 1 상태 요소들 각각으로부터 상기 제 2 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별 및 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 제 2 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 제 2 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로의 선택된 제 2 상태 요소들이 동일한 제 2 순차 깊이를 갖는다면, 상기 제 1 회로의 선택된 제 2 상태 요소들을 상기 제 2 회로의 선택된 제 2 상태 요소들에 매핑하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  6. 제 1 항에 있어서,
    상태 요소들의 새로운 고유한 매핑이 더 이상 생성되지 않을 때까지 상기 (c) 단계 및 상기 (d) 단계를 반복하는 단계는,
    상기 (c) 단계 및 상기 (d) 단계의 연속적인 반복이 상태 요소들의 새로운 고유한 매핑을 생성하지 않을 때까지 상기 (c) 단계 및 상기 (d) 단계를 반복하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 일차 입력 및 일차 출력으로부터 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 일차 입력 및 일차 출력 각각으로부터 상기 제 1 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계; 및
    상기 일차 입력 및 상기 일차 출력으로부터 상기 제 2 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계를 포함하고,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 1 순차 깊이를 갖는 제 1 상태 요소들을 식별 및 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 1 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로의 선택된 제 1 상태 요소들이 동일한 제 1 순차 깊이를 갖는다면, 상기 제 1 회로의 선택된 제 1 상태 요소들을 상기 제 2 회로의 선택된 제 1 상태 요소들에 매핑하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  8. 제 7 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 상기 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 식별된 제 1 상태 요소들 각각으로부터 상기 제 1 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계; 및
    상기 제 2 회로의 식별된 제 1 상태 요소들 각각으로부터 상기 제 2 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계를 포함하고,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 순차 깊이를 갖는 제 2 상태 요소들을 식별 및 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 제 2 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 2 순차 깊이를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 제 2 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로의 선택된 제 2 상태 요소들이 동일한 제 2 순차 깊이를 갖는다면, 상기 제 1 회로의 선택된 제 2 상태 요소들을 상기 제 2 회로의 선택된 제 2 상태 요소들에 매핑하는 단계를 포함하며,
    상태 요소들의 새로운 고유한 매핑이 더 이상 생성되지 않을 때까지 상기 (c) 단계 및 상기 (d) 단계를 반복하는 단계는,
    상기 (c) 단계 및 상기 (d) 단계의 연속적인 반복이 상태 요소들의 새로운 고유한 매핑을 생성하지 않을 때까지 상기 (c) 단계 및 상기 (d) 단계를 반복하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  9. 제 1 회로 및 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위해 컴퓨터에 의하여 수행되는 방법으로서,
    (a) 상기 제 1 회로 및 상기 제 2 회로의 일차 입력 및 일차 출력으로부터 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계 ― 상기 제 1 순차 깊이는 회로의 두 개의 지점 사이의 임의의 경로를 따른 상태 요소들의 최소 카운트임 ― ;
    (b) 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소에 대한 제 1 순차 깊이에 기초하여 상기 각 상태 요소에 대한 제 1 특징 벡터(feature vector)를 생성하는 단계;
    (c) 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 1 벡터를 갖는 상태 요소들을 식별하고, 상기 제 1 회로 및 상기 제 2 회로의 식별된 상태 요소들의 제 1 특징 벡터들이 동일하면 상기 제 1 회로의 식별된 상태 요소들을 상기 제 2 회로의 식별된 상태 요소들에 매핑하는 단계;
    (d) 상기 제 1 회로 및 상기 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계;
    (e) 상기 제 1 회로 및 상기 제 2 회로 각각의 식별된 상태 요소에 대한 제 2 순차 깊이에 기초하여 상기 각각의 식별된 상태 요소에 대한 제 2 특징 벡터를 생성하는 단계;
    (f) 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 벡터를 갖는 상태 요소들을 식별하고, 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들의 제 2 특징 벡터들이 동일하면 상기 제 1 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들을 상기 제 2 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들에 매핑하는 단계; 및
    (g) 매핑 프로세스의 완료를 위한 임계값 조건이 충족되었는지를 결정하는 단계
    를 포함하는, 제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 매핑 프로세스의 완료를 위한 임계값 조건이 충족되었는지를 결정하는 단계는,
    상기 매핑 프로세스의 완료를 위한 임계값 조건이 충족될 때까지 상기 (d) 단계 내지 상기 (f) 단계를 반복하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  11. 제 10 항에 있어서,
    상기 매핑 프로세스의 완료를 위한 임계값 조건이 충족될 때까지 상기 (d) 단계 내지 상기 (f) 단계를 반복하는 단계는,
    상기 (d) 단계 내지 상기 (f) 단계의 연속적인 반복이 상태 요소들의 새로운 고유한 매핑을 생성하지 않을 때까지 상기 (d) 단계 내지 상기 (f) 단계를 반복하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  12. 제 9 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 일차 입력 및 일차 출력으로부터 상기 제 1 회로 및 상기 제 2 회로의 각 상태 요소까지의 제 1 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 일차 입력 및 일차 출력 각각으로부터 상기 제 1 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계; 및
    상기 제 2 회로의 일차 입력 및 일차 출력 각각으로부터 상기 제 2 회로의 상태 요소들 각각까지의 제 1 순차 깊이를 결정하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  13. 제 9 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 1 벡터를 갖는 상태 요소들을 식별하고, 상기 제 1 회로 및 상기 제 2 회로의 식별된 상태 요소들의 제 1 특징 벡터들이 동일하면 상기 제 1 회로의 식별된 상태 요소들을 상기 제 2 회로의 식별된 상태 요소들에 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 1 벡터를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 1 벡터를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 제 1 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로의 선택된 상태 요소들의 제 1 특징 벡터들이 동일하면, 상기 제 1 회로의 선택된 상태 요소들을 상기 제 2 회로의 선택된 상태 요소들에 매핑하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  14. 제 13 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 선택된 상태 요소들의 제 1 특징 벡터들이 동일하면, 상기 제 1 회로의 선택된 상태 요소들을 상기 제 2 회로의 선택된 상태 요소들에 매핑하는 단계는,
    상기 제 1 회로의 제 2 벡터들과 상기 제 2 회로의 제 2 벡터들 사이의 작은 차이를 해결하기 위해 거리 알고리즘을 이용하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  15. 제 14 항에 있어서,
    상기 거리 알고리즘은, 유클리드 거리 알고리즘, 맨하탄 거리 알고리즘 및 해밍 거리 알고리즘으로 이루어지는 그룹으로부터 선택되는 알고리즘을 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  16. 제 9 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 식별된 제 1 상태 요소들로부터 나머지 상태 요소들까지의 제 2 순차 깊이를 결정하는 단계는,
    상기 제 1 회로의 식별된 상태 요소들 각각으로부터 상기 제 1 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계; 및
    상기 제 2 회로의 식별된 상태 요소들 각각으로부터 상기 제 2 회로의 나머지 상태 요소들 각각까지의 제 2 순차 깊이를 결정하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  17. 제 9 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 벡터를 갖는 상태 요소들을 식별하고, 상기 제 1 회로 및 상기 제 2 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들의 제 2 특징 벡터들이 동일하면 상기 제 1 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들을 상기 제 2 회로의 고유한 제 2 벡터를 갖는 식별된 상태 요소들에 매핑하는 단계는,
    상기 제 1 회로에서 동일한 제 2 벡터를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 1 회로에서 1의 그룹 카운트를 갖는 상태 요소들을 선택하는 단계;
    상기 제 2 회로에서 동일한 제 2 벡터를 갖는 상태 요소들을 그룹화하는 단계;
    상기 제 2 회로에서 1의 그룹 카운트를 갖는 상태 요소들을 선택하는 단계; 및
    상기 제 1 회로 및 상기 제 2 회로에서 고유한 제 2 벡터를 갖는 선택된 상태 요소들의 제 2 특징 벡터들이 동일하면, 상기 제 1 회로의 고유한 제 2 벡터를 갖는 선택된 상태 요소들을 상기 제 2 회로의 고유한 제 2 벡터를 갖는 선택된 상태 요소들에 매핑하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  18. 제 17 항에 있어서,
    상기 제 1 회로 및 상기 제 2 회로에서 고유한 제 2 벡터를 갖는 선택된 상태 요소들의 제 2 특징 벡터들이 동일하면, 상기 제 1 회로의 고유한 제 2 벡터를 갖는 선택된 상태 요소들을 상기 제 2 회로의 고유한 제 2 벡터를 갖는 선택된 상태 요소들에 매핑하는 단계는,
    상기 제 1 회로의 제 2 벡터들과 상기 제 2 회로의 제 2 벡터들 사이의 작은 차이를 해결하기 위해 거리 알고리즘을 이용하는 단계를 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
  19. 제 18 항에 있어서,
    상기 거리 알고리즘은, 유클리드 거리 알고리즘, 맨하탄 거리 알고리즘 및 해밍 거리 알고리즘으로 이루어지는 그룹으로부터 선택되는 알고리즘을 포함하는,
    제 1 회로와 제 2 회로 사이의 등가 검증을 위한 상태 요소들을 매핑하기 위한 방법.
KR1020110124383A 2011-01-27 2011-11-25 등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법 KR101331270B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/015,504 2011-01-27
US13/015,504 US8407639B2 (en) 2011-01-27 2011-01-27 Systems and methods for mapping state elements of digital circuits for equivalence verification

Publications (2)

Publication Number Publication Date
KR20120087071A KR20120087071A (ko) 2012-08-06
KR101331270B1 true KR101331270B1 (ko) 2013-11-20

Family

ID=45094474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110124383A KR101331270B1 (ko) 2011-01-27 2011-11-25 등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법

Country Status (4)

Country Link
US (1) US8407639B2 (ko)
EP (1) EP2482214A1 (ko)
JP (1) JP5502836B2 (ko)
KR (1) KR101331270B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540469B2 (en) 2017-12-18 2020-01-21 International Business Machines Corporation Verifying sequential equivalence for randomly initialized designs

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020144215A1 (en) 2001-03-09 2002-10-03 Hoskote Yatin V. System and method for automatically mapping state elements for equivalence verification
JP2003058597A (ja) 2001-08-10 2003-02-28 Mitsubishi Electric Corp 論理等価性検証装置及び論理等価性検証方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0727535B2 (ja) * 1986-03-19 1995-03-29 富士通株式会社 回路の照合方法
JPH04109367A (ja) * 1990-08-29 1992-04-10 Nec Corp 電子回路接続検証装置
US6453246B1 (en) * 1996-11-04 2002-09-17 3-Dimensional Pharmaceuticals, Inc. System, method, and computer program product for representing proximity data in a multi-dimensional space
JP2917969B2 (ja) * 1997-06-06 1999-07-12 日本電気株式会社 論理等価性検証方法および論理等価性検証装置
JP2000113016A (ja) * 1998-10-05 2000-04-21 Nec Corp 論理等価性検証方法
US6247163B1 (en) 1998-10-13 2001-06-12 Cadence Design Systems, Inc. Method and system of latch mapping for combinational equivalence checking
US6496955B1 (en) 2000-06-16 2002-12-17 Sun Microsystems, Inc. Latch mapper
JP2002149737A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd 二つの論理回路間のフリップフロップの対応づけ方法
US7032192B2 (en) 2003-05-22 2006-04-18 Fujitsu Limited Performing latch mapping of sequential circuits
US20070011648A1 (en) * 2004-10-06 2007-01-11 Abrams Daniel S Fast systems and methods for calculating electromagnetic fields near photomasks
US7376919B1 (en) * 2005-05-04 2008-05-20 Synplicity, Inc. Methods and apparatuses for automated circuit optimization and verification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020144215A1 (en) 2001-03-09 2002-10-03 Hoskote Yatin V. System and method for automatically mapping state elements for equivalence verification
JP2003058597A (ja) 2001-08-10 2003-02-28 Mitsubishi Electric Corp 論理等価性検証装置及び論理等価性検証方法

Also Published As

Publication number Publication date
KR20120087071A (ko) 2012-08-06
US8407639B2 (en) 2013-03-26
EP2482214A1 (en) 2012-08-01
US20120198402A1 (en) 2012-08-02
JP2012164301A (ja) 2012-08-30
JP5502836B2 (ja) 2014-05-28

Similar Documents

Publication Publication Date Title
Malik et al. Logic verification using binary decision diagrams in a logic synthesis environment
CN107330047B (zh) 一种基于完美哈希算法的fpga训练及查询电路实现方法
US5638381A (en) Apparatus and method for deriving correspondence between storage elements of a first circuit model and storage elements of a second circuit model
CN111625534A (zh) 用于哈希运算的数据结构及基于该结构的哈希表存储、查询方法
Háleček et al. Are XORs in logic synthesis really necessary?
US5491639A (en) Procedure for verifying data-processing systems
Vasicek et al. How to evolve complex combinational circuits from scratch?
KR101331270B1 (ko) 등가 검증을 위한 디지털 회로의 상태 요소를 매핑하는 시스템 및 방법
US7369974B2 (en) Polynomial generation method for circuit modeling
US7933885B1 (en) Longest matching prefix search engine with hierarchical decoders
US8661061B2 (en) Data structure, data structure generation method, information processing apparatus, information processing system, and computer-readable storage medium having stored therein information processing program
CN110083603B (zh) 一种基于邻接表实现节点路径的查询方法及系统
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
CN103390022B (zh) 搜索查找表的方法
CN105117733A (zh) 一种确定聚类样本差异的方法及装置
US20150213086A1 (en) System and method for determining an index of an object in a sequence of objects
CN102929705B (zh) 一种在嵌入式系统中快速生成坐标点的方法
WO2018218927A1 (zh) 一种排序网络、排序方法及排序装置
Keren et al. Determining the number of paths in decision diagrams by using autocorrelation coefficients
Plambeck et al. Metrics for the evaluation of approximate sequential streaming circuits
Khan et al. Comparative analysis of five sorting algorithms on the basis of best case, average case, and worst case
CN117151015B (zh) 集成电路布局布线方法、装置、集成电路芯片
JP7495933B2 (ja) ソート方法、装置、電子デバイス及びコンピュータプログラム
Jabir et al. A graph-based unified technique for computing and representing coefficients over finite fields
CN108632131B (zh) 一种基于指纹型可变长布鲁姆过滤器的邮件地址匹配方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 7