KR20080055913A - 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 - Google Patents

집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 Download PDF

Info

Publication number
KR20080055913A
KR20080055913A KR1020087008689A KR20087008689A KR20080055913A KR 20080055913 A KR20080055913 A KR 20080055913A KR 1020087008689 A KR1020087008689 A KR 1020087008689A KR 20087008689 A KR20087008689 A KR 20087008689A KR 20080055913 A KR20080055913 A KR 20080055913A
Authority
KR
South Korea
Prior art keywords
assertion
integrated circuit
waveforms
processing device
waveform
Prior art date
Application number
KR1020087008689A
Other languages
English (en)
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 KR20080055913A publication Critical patent/KR20080055913A/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

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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 출원의 일 실시예는 처리 장치(21)에 의해 실행된 집적회로 시뮬레이션에 포함될 어써션의 준비를 포함한다. 이 처리 장치(21)로의 입력에 반응하여, 집적회로 파형 세트는 그 어써션을 테스트하도록 규정한다. 처리 장치(21)는 이 같은 파형을 이용하여 어써션을 테스트하고, 성공적인 테스트 후에, 어써션을 이용하여 집적회로 시뮬레이션을 실행한다.

Description

집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및 시스템과 장치{DEVELOPMENT OF ASSERTIONS FOR INTEGRATED CIRCUIT DESIGN SIMULATION}
본 발명은 집적회로 디자인 검증에 관한 것이며, 더 구체적으로 말하면, 집적회로 디자인을 검증하기 위해 개발된 어써션(assertion) 평가에 관한 것이지만, 이에 한정되지는 않는다.
시뮬레이션 기술은 디버그(debug)를 포함해왔고, 그렇지 않으면, 전자 회로의 성능을 평가하는 것을 포함해왔다. 시뮬레이션은 집적회로 디자인의 성향을 기술하는 하드웨어 기술 언어(HDL) 모델에 의해 종종 실행된다. HDL은 두 개의 보편적으로 인지된 표준인 베릴로그(Verilog)와 브이에이치디엘(VHDL)를 포함한다. 집적회로를 설계하는데 사용되는 또 다른 언어는 씨(C)를 포함한다. 집적회로의 디자인이 더욱 복잡해지고 비용효과적으로 시뮬레이션하기 어려워짐에 따라, 더 나은 집적회로 디자인 검증 기술에 대한 요구는 증가한다. 이 같은 요구는, 예를 들어, 몇 가지만 열거해 보면, 고밀도 응용 주문형 집적회로(higher density Application Specific Integrated Circuits(ASICs)), 필드 프로그램머블 게이트 어레이(Field Programmable Gate Arrays(FPGAs)), 시스템 온 어 칩(System on a Chip(SoC)) 장치에 대한 요구에 의해 증가하고 있다. 이 같이 증가하는 디자인 검증 요구가 인식됨에 따라, 시뮬레이션 동안 디자인 성능을 평가하는 것을 목표로 하는 새로운 장치들이 나타나고 있다.
이것들 중에는 어떤 원하는 디자인 특징이 실현되고 있는지 아닌지 판단하기 위한 시뮬레이션 동안 적용될 수 있는 논리적인 "어써션(assertions)"이 포함된다. 본 명세서에서, "어써션"은 디자인이 적절히 구성된 경우 기대되는 결과로 항상 평가하도록 예상되는 집적회로 디자인의 특정한 행동 속성에 대한 기술(statement)이다. 전형적인 사용시에, 어써션은 특정된 조건에 대해서 참(TRUE)으로 평가한다. 어써션의 의사코드(pseudocode)의 일 실시예는 "여섯 선택 라인 중 하나는 스트로브(strobe) 라인이 활성화된 후에 10 사이클 안에 활성화된다."이다. 어써션은 특정 시뮬레이터에 의해 인식되는 형식으로 컴파일될 수 있는 언어로 하나 이상의 진술로서 시뮬레이션 내에 포함될 수 있다. 예를 들면, 슈가(Sugar)와 유사한, PSL(Property Specification Language)이 케이던스 디자인 시스템(Cadence Design Systems)에 의해 제공된 시뮬레이터를 이용하여 어써션을 규정하는데 사용된다. 케이던스 디자인 시스템은 캘리포니아 95134, 산 조세(San Jose), 2665 실리(Seely) 가에 영업을 가진다. "선언형 언어(Declarative Language)" 와 " 형식 속성 언어(Formal Property Language)"는 어써션 진술의 준비와 관련하여 때때로 사용되는 다른 용어이다. 어써션은 순차적인 HDL 진술의 실행 세트의 문맥 안에서 기술되는 "프로시쥬어형"과, 집적회로 디자인의 구조적인 문맥 안에 존재하거나 규정되는 " 선언형"으로 또한 분류되고 있다.
새로 개발된 어써션의 적절한 작동이 집적회로 디자인 시뮬레이션 안에 포함되어, 테스트되는 경우가 있다. 시뮬레이션 결과, 테스트된 어써션이 원하는 대로 실행되고 있지 않다고 나타난다면, 어써션은 일반적으로 수정되고 다시 컴파일된 후, 시뮬레이션을 수정된 어써션을 이용하여 반복한다. 불행하게도, 어써션 개발에 전용되는 시뮬레이션은 부족한 처리 자원을 정체시킬 수 있고, 시간을 낭비할 수 있으며, 비쌀 수 있다. 그러므로, 이 기술적인 분야에서 보다 나은 해결책을 위한 요구가 있다.
본 발명의 일 실시형태는 집적회로 디자인 검증 또는 이와 같은 것을 위한 어써션 개발을 포함하는 고유한 기술이다. 다른 실시형태는 집적회로 디자인 검증을 위해 개발된 어써션을 평가하는 고유한 방법, 시스템, 장치, 기계를 포함한다.
또 다른 실시형태는 집적 회로 시뮬레이션을 위한 어써션을 준비하는 단계와, 어써션을 테스트하기 위해 선택된 집적 회로 파형 세트를 규정하는 단계와, 집적 회로 파형에 의해 어써션을 테스트하는 단계와 성공적인 테스트 후에 어써션을 이용하여 집적 회로를 실행하는 단계를 포함한다. 테스트가 성공적이지 않은 경우, 어써션은 원하는 작동이 실현될 때까지 수정되고 다시 테스트될 수 있다. 한 형태로, 어써션 개발 툴는 다른 파형 세트에 대하여 어써션을 테스트하고 평가하는 처리 장치를 이용하여 규정된다. 이 같은 파형은 시뮬레이터에 의한 출력일 수 있고, 사용자 인터페이스를 통하여 생성/수정될 수 있다. 어써션 개발 장치는 시뮬레이터 생성물과 함께 공급될 수 있다.
또 다른 실시형태는 디스플레이 장치와 하나 이상의 입력 장치와 디스플레이 장치와 하나 이상의 입력 장치에 동작가능하게 결합된 처리 장치를 포함하되, 처리 장치는 집적회로 모델과 제 1 파형 세트의 성향을 검증하는 어써션을 나타내는 데이터를 저장하도록 구성된 메모리를 포함하고, 처리 장치는 하나 이상의 입력 장치에 반응하여 제 1 파형 세트에 대하여 어써션의 동작을 테스트하며, 디스플레이는 처리 장치로부터의 제 1 출력에 반응하여 제 1 파형 세트와 어써션의 동작에 상응하는 적어도 하나의 표시자를 시각화하고, 처리 장치는 하나 이상의 입력 장치에 반응하여, 다른 어써션의 동작을 테스트하도록 맞춤제작된 제 2 파형 세트를 생성하고, 제 2 파형 세트와 다른 어써션을 나타내는 추가 데이터를 메모리에 저장하며, 제 2 파형의 세트를 이용하여 다른 어써션의 성능을 평가하고, 디스플레이로의 제 2 출력을 생성하여 제 2 파형 세트를 시각화하고 다른 어써션의 동작에 상응하는 또 다른 표시자를 제공한다.
또 다른 실시형태는 연산 시스템에 의해 실행가능한 오퍼레이팅 로직을 갖는 장치를 포함하여 집적회로 파형 각각이 공통의 시간주기에 대하여 변하는 집적회로 파형세트를 나타내는 파형 데이터베이스를 저장한다. 오퍼레이팅 로직은 직접회로 디자인 모델의 성향을 테스트하고, 어써션 평가에 상응하는 출력을 제공하기 위해 어써션을 집적회로의 파형의 세트에 적용함으로써 어셜션 평가를 실행한다.
따라서, 본 발명은 집적회로 디자인을 검증하기 위해 어써션의 개발을 포함하는 고유한 기술을 제공하는 것을 목적으로 한다.
다른 목적은 직접회로 디자인 시뮬레이션을 위해 개발된 어써션을 평가하기 위한 고유한 방법, 시스템, 장치, 또는 기구를 제공하는 것을 포함한다.
본 출원과 이 발명의 다른 목적, 실시형태, 형태, 양상, 이익, 장점, 그리고 특징은 본 명세서와 함께 제공된 도면과 상세한 설명으로부터 명확해질 것이다.
도 1은 컴퓨터 시스템의 개략적인 도면이다.
도 2는 도 1의 시스템과 함께 구현될 수 있는 어써션을 개발하기 위한 하나의 프로시쥬어의 플로우차트(flowchart)이다.
도 3은 도 2의 프로시쥬어에 사용되는 논리적 툴(logical tools)의 개략적인 도면이다.
도 4는 도 1의 시스템과 함께 실행될 수 있는 어써션 개발 툴의 개략적인 도면이다.
도 5는 도 4의 어써션 개발툴를 제공하기 위해 도 1의 시스템과 함께 구현될 수 있는 또 다른 프로시쥬어의 플로우차트이다.
본 발명의 원리에 대한 이해를 증진시키기 위한 목적으로, 이제 도면에 기술된 실시예를 참조하여 이를 기술할 것이다. 그럼에도 불구하고그러한 기술에 대해 본 발명의 범위가 제한되지 않는다는 것은 이해될 것이다. 기술된 실시형태에서 임의의 변경과 추가적인 수정, 그리고 본 명세서의 기술된 본 발명의 원리의 추가적 응용은 당업자가 쉽게 알 수 있을 것이다.
본 발명의 일 실시형태는 집적회로 디자인 시뮬레이션에서 어써션의 사용에 앞서 어써션의 동작을 평가하는 논리적인 어써션 툴이다. 이 툴는 사용자 인터페이스를 통한 오퍼레이터 입력에 반응하여 어써션 평가를 위해 선택된 집적회로 파형의 한 세트를 규정하며, 집적 회로 파형을 이용하여 어써션을 테스트한다. 성공적인 테스트 후에, 집적 회로 디자인 시뮬레이션이 어써션을 이용하여 실행된다.
도 1은 본 발명의 또 다른 실시형태에 따른 컴퓨터 처리 시스템(20)을 나타낸다. 시스템(20)은 처리 장치(21)를 포함한다. 처리 장치(21)는 버스(30)와 결합된 프로세서(22)와 메모리(32)를 포함한다. 처리 장치(21)는 미리 패키지화된 컴퓨터 유닛의 형태로 제공될 수 있고, 컴퓨터 네트워크에 분배된 하나 이상의 하드웨어 자원을 포함하거나 당업자가 알 수 있는 다른 형태로 제공될 수 있다. 일 실시형태로, 프로세서(22)는 버스(30)를 경유하여 메모리(32)로부터 판독된 인스트럭션(instructions)을 실행하도록 동작하는 프로그램 가능한, 고상(solid-state) 디지털 종류(variety)이다. 프로세서(22)는 프로그래밍 인스트럭션 및/또는 다른 형태의 동작 로직, 그리고 더욱 구체적으로는 시뮬레이션과 이하에 기술될 관련 동작을 실행하기 적절한 형태의 동작을 실행한다. 일 형태로, 프로세서(22)는 집적회로 기반인데, 마이크로프로세서의 형태로 하나 이상의 디지털, 고상 중앙 처리 유닛을 각각 포함한다. 하나의 프로세서(22)가 도시되어 있지만, 이는 하나의 프로세서 구성뿐만 아니라 다수의 프로세서 구성을 나타내는 것으로 이해되어야 한다. 게다가, 프로세서(22)는 RISC(reduced instruction set)형, CISC(complex instruction set) 형, 또는 이들의 조합일 수 있다. 다수의 프로세서 유형의 경우, 병렬 및/또는 파이프라인 처리가 적절히 이용될 수 있다. 이와 달리, 또는 부가적으로, 프로세서(22)는 단일 유닛 내의 하나 이상의 구성 요소 또는 다수의 유닛으로서 제공될 수 있다. 일 실시형태로, 프로세서(22)는 하나 이상의 고도로 집적된, 디지털 반도체 장치의 형태이다.
메모리(32)는 하나 이상의 유형일 수 있는데, 고상 전자 메모리, 자기 메모리, 광학 메모리, 또는 이들의 조합과 같은 것이다. 도 1에서 도시된 것처럼, 메모리(32)는 착탈가능하고/휴대가능한 메모리 장치(34)를 포함한다. 착탈가능한 메모리 장치(34)는 광학 디스크(CD 롬 또는 DVD와 같은 것) 및/또는 자기적으로 인코딩된 하드 디스크, 플로피 디스크 등을 포함할 수 있는 디스크 메모리(36)를 포함한다. 다른 실시형태로, 착탈가능한 메모리 장치(34)는 테이프 또는 카트리지 형태 및/또는 당업자가 쉽게 알 수 있는 다른 형태를 포함할 수 있다. 일 실시형태로, 메모리(32)의 적어도 한 부분은 프로세서(22)에 의해 선택적인 실행을 위한 프로그래밍 인스트럭션를 저장하도록 실시가능하다. 이와 달리 또는 부가적으로, 메모리(32)는 프로세서(22)를 위한 프로그래밍 인스트럭션이 아닌 다른 데이터를 저장하도록 구성될 수 있다. 또 다른 실시형태로, 메모리(32) 및/또는 착탈가능한 메모리 장치(34)가 포함되지 않을 수도 있다.
시스템(20)은 오퍼레이터 입력 장치(24), 오퍼레이터 출력 장치(26), 인터페이스(28), 그리고 버스(30)에 의해 처리 장치(21)와 동작가능하게 결합된 컴퓨터 네트워크(40)를 또한 포함한다. 오퍼레이터 입력 장치(24)는 표준 마우스, 키보드, 트랙볼, 광펜(light pen), 음성 인식 시스템, 및/또는 당업자가 알 수 있는 다른 입력 장치 형태를 포함할 수 있다. 오퍼레이터 출력장치(26)는 컬러 플라즈마 또는 비컬러(noncolor) 플라즈마, 음극선관(CRT), 액정 디스플레이(LCD) 유형과 같은 통상적인 그래픽 디스플레이(27)를 포함할 수 있고, 프린터, 청각의 출력 시스템 및/또는 당업자가 알 수 있는 다른 출력 장치 유형을 더 포함할 수 있다. 다른 실시형태에서, 더 많거나, 더 적은 오퍼레이터 입력 장치(24) 및/또는 오퍼레이터 출력 장치(26)가 이용될 수 있다. 인터페이스(28)는 모뎀 또는 통신 및/또는 설비 인터페이스의 다른 형태일 수 있다. 다른 실시형태에서, 인터페이스(28)가 포함되지 않을 수도 있다.
시스템(20)은 컴퓨터 네트워크(40)를 또한 포함할 수 있는데, 그것은 근거리 통신망(LAN), 지역통신망(Municipal Area Network, MAN), 인터넷과 같은 광역 통신망(WAN), 당업자가 알 수 있는 또 다른 형태, 또는 이들의 조합일 수 있다. 네트워크(40)는 시스템(20)에 의해 실행된 처리의 전부 또는 일부에 관하여, 클라이언트와 서버로 각각 구성될 수 있는 하나 이상의 다른 컴퓨터로 처리 장치(21)를 연결할 수 있다. 이 같은 구성을 위해서, 많은 다른 원격 컴퓨터들이 장치(21)의 클라이언트로서 포함될 수 있다지만, 명확성을 위해, 이를 도시하지는 않는다. 또 다른 실시형태로, 장치(21)와 하나 이상의 다른 컴퓨터는 서로에 대하여 다른 장소에 위치한 하나 이상의 처리 유닛을 갖는 분산형 처리 장치의 참여 멤버일 수 있다. 그러한 구성의 분산형 프로세서는 함께 사용되어 본 발명에 따른 루틴을 실행시킨다. 네트워크(40)는 인터페이스(28)의 대체물로서 사용될 수 있으며, 및/또는 인터페이 스(28)는 부가적인 네트워크 연결을 제공할 수 있다는 것은 더 이해되어야 한다. 또 다른 실시형태로, 네트워크(40)가 포함되지 않을 수도 있다.
프로세서(22)를 위한 오퍼레이팅 로직은 다양한 루틴, 서브루틴, 컴퓨터 모델, 시뮬레이션, 프로시쥬어, 스테이지, 작동, 및/또는 이하에 기술된 조건명제의 실행을 용이하게 하도록 구성된다. 이 오퍼레이팅 로직은 전용, 고정배선형일 수도 있고, 특정 프로세서 구성을 위해 적절한 프로그래밍 인스트럭션의 형태일 수 있다. 그러한 로직은 저장 및/또는 또 다른 컴퓨터로의 전송을 위하여 착탈가능한 메모리 장치(34)(디스크 메모리(36)와 같은)에 적어도 부분적으로 인코딩될 수 있다. 이와 달리 또는 부가적으로, 처리 장치(21)의 그 오퍼레이팅 로직은 네트워크(40)와 같은 전송 매체에 의해 전달되는 하나 이상의 신호의 형태일 수 있다.
도 2의 플로우차트는 시스템(20)에 의해 구현될 수 있는 어써션 개발 프로시쥬어(120)를 기술한다. 프로시쥬어(120)에서, 어써션은 동작(120)에 의해 초기에 준비된다. 동작(122)에서 , 프로세서(21)의 오퍼레이팅 로직은 하나 이상의 입력장치(24)로부터의 오퍼레이터 입력에 반응하고, 하나 이상의 출력장치(26)를 이용하여 오퍼레이터로 출력을 제공하는 적절한 사용자 인터페이스를 일반적으로 규정한다. 어써션의 준비는 집적회로 시뮬레이션의 일부분으로서, 또는 그러한 시뮬레이션에 포함되도록 그것을 실행가능한 형태로 컴파일하는 것을 포함한다.
프로시쥬어(120)는 동작(122)으로부터 조건(124)으로 이어진다. 조건(124)은 그 어써션의 컴파일이 적절히 실행되었는지 테스트한다. 조건(124)의 테스트가 거짓이라면, 프로시쥬어(120)의 동작(126)이 실행된다. 동작(126)에서, 컴파일 에러 가 처리되고 그 어써션은 다시 컴파일된다. 동작(126)의 실행 후에 프로시쥬어는 조건(124)으로 되돌아 와서 적절한 컴파일을 위해 다시 테스트한다. 조건(126)의 테스트 결과가 참이라면, 프로시쥬어(120)는 동작(130)으로 계속된다. 동작(130)에서, 집적회로 시뮬레이션은 컴파일된 어써션을 이용하여 실행된다.
부가적으로 도 3에서 참조하면, 프로시쥬어(120)에 상응하는 논리툴(50)이 상징적으로 도시된다. HDL 모델(52)은 집적회로를 모델링하는 것과 관련된 코드와 데이터를 HDL 포맷으로 나타낸다. 어써션 소스(54)는 HDL 모델(52)의 적절한 성향을 검증하기 위해 선택된 어써션을 나타낸다. 모델(52)과 그 어써션 소스(54)는 시뮬레이터(56)에 의한 집적회로 시뮬레이션 동안 함께 적용된다. 이에 상응하여, 프로시쥬어(120)의 동작(130)에서 실행된 시뮬레이션은 동작(122)에서 HDL(52)에 의해 준비된 그 어써션을 사용하여 시뮬레이터(56, 도 3)에 의해 실행된다.
시뮬레이터(56)의 결과 출력과 대응하는 동작(130)은 대표적인 시간 주기에 걸친 디지털 파형을 포함한다. 이들 집적회로 파형의 데이터 표현은 포착되고 분석되어 시뮬레이션 및/또는 어써션의 실행을 평가한다. 도 3의 파형 데이터베이스(58)는 동작(130)에서 시뮬레이터(56)에 의해 포착된 파형 데이터 출력에 해당한다.
프로시쥬어(120)는 동작(130)으로부터 조건(132)으로 진행되어 평가되고 있는 어써션이 그 시뮬레이션 동안 올바르게 실행되고 있는지 테스트한다. 이 테스트는 그 어써션 또는 다른 가능한 결함이 그 시뮬레이션에 의해 증명될 수 있는지 판단하는 것을 포함할 수 있다. 조건(132)의 테스트 결과가 거짓일 때, 프로시쥬 어(120)는 동작(134)으로 계속된다. 동작(134)에서, 개발 중인 어써션은 수정되고 다시 컴파일된다. 이러한 특징은 도 3의 평가툴(60)에 의한 어써션 수정에 의해 나타난다.
동작(134)으로부터, 그 수정된 어써션은 동작(136)에서 다시 평가된다. 동작(136)에서, 수정된 어써션을 이용하여 모든 시뮬레이션을 다시 실행하는 더 복잡한 과정을 사용하는 대신에, 수정된 어써션이 포착된 집적회로 파형에 대하여 평가된다. 프로시쥬어(120)는 동작(136)으로부터 조건(132)으로 되돌아와서 포착된 파형에 적용된 수정된 어써션이 올바르게 작동하는지 판단한다. 어써션에 의해 테스트되고 있는 회로 노드에 상응하는 파형만을 이용해야 한다는 것은 이해해야 한다. 동작들(134,136)과 조건(132)으로 돌아가는 루프는 조건(132)의 테스트 결과가 참이 될 때까지 반복된다. 이에 상응하여, 어써션 수정 및 평가툴(60)은 소스(54)와 연결되어 갱신된 어셜션을 제공하고 파형 데이터베이스(58)로도 연결되어 파형을 이용하여 어써션을 테스트한다.
조건(132)의 테스트가 참이 되면, 조건(140)으로 이어진다. 조건(140)은 어써션 평가가 완전한지 테스트한다. 조건(140)의 테스트 결과가 참이라면, 프로시쥬어(120)는 멈춘다. 조건(140)의 테스트 결과가 거짓이라면, 프로시쥬어(120)는 동작(122)으로 되돌아와서 또 다른 어써션을 준비하고 평가한다. 프로시쥬어(120)는 어써션이 변경될 때마다 매번 전체 시뮬레이션을 실행하지 않고, 대신 개발 중인 어써션을 위한 어써션 평가와 관련된 파형 데이터를 이용함으로써 시뮬레이션 시간을 줄인다. 어써션이 이러한 방식으로 유효화된다면, 그것은 더 높은 정정 신뢰도 를 갖는 시뮬레이션에도 적용될 수 있다. 일 구현에서, 프로시쥬어(120)는 집적회로 시뮬레이션 제품 내에 어써션 평가 및/또는 개발툴로서 제공된다. 다른 실시형태로, 그것은 독립형 툴로서 제공될 수 있다.
도 4를 참조하면, 어써션 개발툴(150)의 또 다른 실시형태가 기술되어 있다. 툴(150)는 처리 장치(21)에 의해 실행된 오퍼레이팅 로직을 통하여 더 구체적으로 규정되고 있는 동작(152)과 데이터를 이용하여 시스템(20)에 의해 실행될 수 있다. 도 4와 관련하여, 도 5의 플로우차트는 프로시쥬어(220)로서 오퍼레이팅 어써션 개발툴(150)의 한 모드를 기술한다. 프로시쥬어(220)는 동작(222)에서 시작하는데, 컴파일된 어써션이 평가를 위해 제공된다. 이 어써션의 선택과 준비는 동작 입력 장치(24) 및/또는 적절한 사용자 인터페이스를 경유하여 오퍼레이터 출력장치를 통하여 제공될 수 있다. 도 4에서, 그래픽 사용자 인터페이스(GUI, 62)는 처리 장치(21)의 오퍼레이팅 로직에 의해 규정될 수 있도록 상징적으로 도시된다. GUI(62)는 적절한 오퍼레이터 인터페이싱을 제공할 수 있어 툴(150)의 어써션 데이터베이스(164)로부터 이미 준비되고 컴파일되어 있는 어써션을 선택하고, 그 후에 데이터베이스(164)에 포함되기 위한 어써션을 준비하고 컴파일하며, 및/또는 데이터베이스(164)에 이미 포함된 어써션을 수정한다.
프로시쥬어(220)는 동작(222)으로부터 동작(223)으로 계속된다. 동작(223)에서 어써션의 평가를 위한 파형이 선택되고, 수정되거나, GUI(162)를 통하여 생성된다. 선택된 파형은 제공된 어써션을 이용하여 테스트되고 있는 회로 노드에만 부합하도록 맞춤 제작(customized)될 수 있다. 파형은 파형 데이터베이스(168, 도4)에 저장된다. 이러한 파형의 적어도 일부분은 집적회로 시뮬레이션으로부터 초기에 포착된 형태일 수 있다. 이와 달리 또는 부가적으로, 데이터베이스(168)에 저장된 파형은 포착된 파형 데이터로부터 수정될 수 있고, 및/또는 GUI(162)를 통하여 오퍼레이터에 의해 생성될 수 있다. GUI(162)의 일 구체적인 형태로, 파형은 그래픽적으로 디스플레이(27)에 표시되어 오퍼레이터가 동작(223)에서 파형을 생성/수정/선택하도록 도와준다.
프로시쥬어(220)는 동작(223)으로부터 동작(224)으로 이어진다. 동작(224)에서, 어써션은 데이터베이스(168)로부터 동작(123)에서 제공되는 파형에 적용된다. 동작(224)에서 어써션이 파형에 적용된 후에, 프로시쥬어(220)는 조건(226)으로 계속된다. 조건(226)은 어써션이 올바르게 실행되는지 테스트한다. 조건(226)의 테스트 결과가 거짓이라면, 동작(230)이 실행된다. 동작(230)에서, 어써션은 수정되고 다시 컴파일되며, 프로시쥬어는 동작(224)으로 되돌아와서 평가를 위해 파형에 다시 적용한다.
조건명제(226)의 테스트 결과가 참이라면, 프로시쥬어(220)는 조건(232)으로 계속되어 임의의 파형이 그 어써션의 추가적 평가를 실행하기 위해 조절되어야 하는지 테스트한다. 조건(232)의 테스트 결과가 참이라면, 프로시쥬어(220)는 동작(223)으로 되돌아가서 파형을 제공/생성한다. 조건(232)의 테스트 결과가 거짓이라면, 프로시쥬어(220)는 조건으로 이어진다. 조건(240)은 또 다른 어써션을 이용하여 계속될지 그만둘지 테스트한다. 조건(240)의 테스트 결과가 참이라면, 프로시쥬어(220)는 동작(222)으로 되돌아와서 평가/개발을 위한 또 다른 어써션을 제공/ 준비한다. 조건(240)의 테스트 결과가 거짓이라면, 프로시쥬어(220)는 멈춘다. 툴(150) 및/또는 프로시쥬어(220)는 시뮬레이션 플랫폼 또는 제공된 독립형의 일부분으로서 제공될 수 있다. 프로시쥬어(120)와 툴(50)의 경우에 있어서, 툴(150)과 프로시쥬어(220)는 이전에 저장된 파형을 이용하여 어써션을 평가함으로써, 어써션 개발 동안 시뮬레이션을 덜 실행하도록 만든다.
많은 다른 실시형태를 고려할 수 있다. 예를 들어, 프로시쥬어, 조건, 동작, 툴, 그리고 도 2에서 5까지의 다른 특징은 본 발명의 다른 실시형태에서 다른 순서로 구현되거나, 조합되거나, 중복되거나, 대체될 수 있다. 더 나아간 실시예로, 어써션 개발은 회로 에뮬레이션 및/또는 적절히 적용된 처리 장치에 의해 제어되는 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array) 검증에 기반한다. 또 다른 실시예로, 장치는 집적회로 디자인 어써션과 파형 데이터베이스를 저장하는 메모리를 갖는 처리 장치를 포함한다. 처리 장치는 어써션에 맞춤 제작된 데이터베이스에 저장되어 있는 제 1 집적회로 파형 세트를 생성하는 수단, 어써션을 제 1 집적회로 파형 세트에 적용함으로서 제 1 어써션 평가를 실행하는 수단, 제 1 어써션 평가의 결과에 반응하여 어써션을 선택적으로 수정하는 수단, 그리고 수정 수단에 의해 변경된 후에 그 어써션의 제 2 어써션 평가를 실행하는 수단을 포함한다.
또 다른 실시예는 집적회로 시뮬레이션을 위한 어써션을 준비하는 수단, 하나 이상의 입력 장치에 의한 입력에 응답하여 어써션을 테스트하기 위해 선택된 집적회로 파형 세트를 규정하는 수단, 집적회로 파형을 이용하여 어써션을 테스트하 는 수단, 테스트 후에 어써션을 이용하여 집적회로 시뮬레이션을 실행하는 수단을 구비하는 컴퓨터 시스템을 포함한다.
더 나아간 실시예는 여러 집적회로 파형에 상응하는 집적회로 시뮬레이션을 위한 파형 데이터베이스를 제공하는 것을 포함한다. 이 같은 파형은 공통의 시간적 주기에 걸쳐 각각 변화한다. 이 실시형태는 파형에 상응하는 집적회로 디자인 모델의 성향을 테스트하도록 구성된 처리 장치를 이용하여 그러한 파형에 제 1어써션을 적용하는 것을 포함한다. 제 1 어써션은 이 애플리케이션에 기반하여 평가되고, 이 평가에 응답하여 제 1 어써션은 수정되어 제 2 어써션을 집적회로 디자인 모델의 성향을 테스트하는데 제공한다.
더 나아간 실시예로, 장치는 컴퓨터 시스템에 의해 실행될 수 있는 오퍼레이팅 로직을 포함하여, 시뮬레이션을 통하여 집적회로 디자인 모델의 성향을 검증하기 위한 어써션을 준비하고, 컴퓨터 시스템의 하나 이상의 오퍼레이터 입력장치로부터의 입력에 응답하여 어써션을 평가하기 위해 선택된 집적회로 파형의 한 세트를 규정한다. 이 오퍼레이팅 로직은 집적회로 파형 세트를 시각화하기 위해 컴퓨터 시스템에 포함된 디스플레이에 출력을 제공하도록 실행된다. 그 오퍼레이팅 로직은 하나 이상의 오퍼레이터 입력장치로부터의 입력에 응하여 어써션 평가를 실행하도록 하나 이상의 집적회로 파형 세트를 수정하거나 생성한다. 또한, 그 오퍼레이팅 로직은 집적회로 파형을 이용하여 어써션의 동작을 테스트하고, 그 어써션의 동작이 수용가능하다고 판단된 후 집적회로 디자인 모델과 그 후에 어써션을 이용하여 그 시뮬레이션을 실행하도록 실시가능하다.
본 발명이 도면과 전술한 상세한 설명에서 상세히 설명되고 기술되었지만, 이는 설명을 위한 것으로서 고려되어야 하고 그러한 특징을 제한하는 것으로서 여겨져서는 안 되며, 선택된 실시예만 도시되고 기술되었지만 지금까지 기술된 본 발명의 사상 안 및/또는 이하의 청구항에 의해 규정된 범위 내에서의 모든 변경, 수정 그리고 균등물이 보호되어야 한다는 것을 이해해야 한다.

Claims (21)

  1. 공통의 시간 주기에 관하여 각각이 변화하는 다수의 집적 회로 파형에 상응하는 파형 데이터베이스(58,168)를 집적 회로 시뮬레이션를 위하여 제공하는 단계와,
    상기 집적회로 파형에 상응하는 집적회로 디자인 모델(52)의 성향(behavior)을 테스트하도록 구성된 제 1 어써션(assertion)을 처리 장치(21)를 이용하여 집적회로 파형에 적용하는 단계와,
    상기 적용에 기반하여 상기 제 1 어써션을 평가하는 단계와,
    상기 평가에 응답하여, 상기 제 1 어써션을 수정하여 제 2 어써션에 제공함으로써, 상기 집적회로 디자인 모델의 상기 성향을 테스트하는 단계를
    포함하는 방법.
  2. 제 1 항에 있어서,
    상기 처리 장치(21)에 의해 규정된 그래픽 사용자 인터페이스(162)를 이용하여 다른 어써션에 대하여 다른 집적 회로 파형 세트를 맞춤제작(customizing)하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 파형 데이터베이스를 공급하는 단계와
    상기 처리 장치(21)의 프로그래밍에 의해 적어도 부분적으로 규정된 어써션 개발 툴(150)를 이용하여 상기 제 1 어써션의 적용을 실행하는 단계
    를 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 파형 데이터베이스(58,168)는 시뮬레이터(56)에 의해 생성된 파형 데이터를 저장함으로서 제공되는 방법
  5. 제 1 항에 있어서,
    상기 집적 회로 디자인 모델(52)을 이용하여 집적 회로 시뮬레이션을 실행하는 단계와
    상기 시뮬레이션에 상기 제 2 어써션을 포함시키는 단계를
    포함하는 방법.
  6. 제 1 항에 있어서,
    상기 수정 단계는 상기 제 2 어써션을 제공하기 위해 다시 컴파일하는 단계(recompiling)를 포함하되,
    상기 제 1 및 제 2 어써션은 PSL로 공급되는 방법.
  7. 집적 회로 시뮬레이션을 위한 어써션을 준비하는 단계와, 처리 장치(21)로의 입력에 대응하여, 상기 어써션을 테스트하기 위해 선택된 집적 회로 파형 세트를 규정하는 단계와,
    상기 처리 장치(21)를 이용하여, 상기 집적 회로 파형에 의해 상기 어써션을 테스트하는 단계와,
    성공적인 테스트 후에, 상기 어써션을 이용하여 상기 집적 회로를 실행하는 단계를
    포함하는 방법.
  8. 제 7 항에 있어서,
    상기 집적 회로 파형의 세트의 규정 단계와 상기 어써션의 테스트 단계는 상기 처리 장치(21)에 제공된 어써션 개발 툴(150)에 의해 실행되고,
    상기 처리 장치(21)는 디스플레이(27)에 동작가능하게 결합되어 있어, 상기 어써션 개발 툴(150)에 반응하여 상기 집적 회로 파형의 그래픽 표시를 디스플레이하는 방법.
  9. 제 7 항에 있어서,
    상기 처리 장치(21)에 의해 규정된 그래픽 사용자 인터페이스(162)를 이용하여 다른 어써션에 대하여 다른 집적 회로 파형 세트를 맞춤 제작하는 단계를 포함하는 방법.
  10. 제 7 항에 있어서,
    상기 시뮬레이션은 HDL 모델(52)을 이용하여 실행되고
    상기 어써션은 PSL로 규정되는 방법.
  11. 제 7 항에 있어서,
    상기 테스트 단계에 응답하여 상기 어써션을 수정하는 단계와,
    수정 후에 상기 어써션을 다시 컴파일하는 단계와,
    상기 테스트 단계를 반복하는 단계를 포함하되,
    상기 집적 회로 시뮬레이션의 상기 실행 단계는 상기 반복 단계 후에 실행되는 방법.
  12. 제 11 항에 있어서,
    상기 집적 회로 파형 세트의 상기 규정 단계, 상기 어써션의 테스트 단계, 그리고 상기 시뮬레이션 단계는 상기 처리 장치(21)의 프로그래밍에 따라 실행되는 방법.
  13. 디스플레이 장치(27)와,
    하나 이상의 입력 장치(24)와,
    상기 디스플레이 장치(27)와 상기 하나 이상의 입력 장치(24)에 동작가능하게 결합된 처리 장치(21)를 포함하되,
    상기 처리 장치(21)는 집적회로 모델(52)과 제 1 파형 세트의 성향을 검증하는 어써션을 나타내는 데이터를 저장하도록 구성된 메모리(32)를 포함하고,
    상기 처리 장치(21)는 상기 하나 이상의 입력 장치(24)에 반응하여 상기 제 1 파형 세트에 대하여 상기 어써션의 동작을 테스트하며,
    상기 디스플레이(27)는 상기 처리 장치(21)로부터의 제 1 출력에 반응하여 상기 제 1 파형 세트와 상기 어써션의 상기 동작에 상응하는 적어도 하나의 표시자 를 시각화하고,
    상기 처리 장치(21)는 상기 하나 이상의 입력 장치(24)에 반응하여,
    다른 어써션의 동작을 테스트하도록 맞춤제작된 제 2 파형 세트를 생성하고, 상기 제 2 파형 세트와 상기 다른 어써션을 나타내는 추가 데이터를 상기 메모리(32)에 저장하며, 상기 제 2 파형의 세트를 이용하여 상기 다른 어써션의 성능을 평가하고, 상기 디스플레이(27)로의 제 2 출력을 생성하여 상기 제 2 파형 세트를 시각화하고 상기 다른 어써션의 동작에 상응하는 또 다른 표시자를 제공하는 시스템.
  14. 제 13 항에 있어서,
    그래픽 사용자 인터페이싱을 위한 수단(162)을 더 포함하여 파형 데이터를 대화식으로(interactively) 생성하고 수정하는 시스템.
  15. 제 13 항에 있어서,
    상기 처리 장치(21)는 어써션의 데이터베이스와 파형 데이터베이스를 저장하도록 구성되고, 상기 파형 데이터베이스는 상기 제 1 파형 세트와 상기 제 2 파형 세트를 포함하는 시스템.
  16. 제 13 항에 있어서,
    HDL 모델(52)에 기반하여 상기 어써션을 실행하는 수단을 포함하는 시스템.
  17. 제 13 항에 있어서,
    테스트된 동작에 기반하여 상기 어써션을 수정하는 수단을 더 포함하는 시스템.
  18. 컴퓨터 시스템(20)에 의해 실행가능한 오퍼레이팅 로직을 포함하여 시뮬레이션을 통해 집적 회로 디자인 모델(52)의 성향을 입증하는 어써션을 마련하고 상기 컴퓨터 시스템(20)의 하나 이상의 오퍼레이터 입력 장치(24)로부터의 입력에 대응하여 상기 어써션을 평가하도록 선택된 집적 회로 파형 세트를 규정하는 장치(23,40)를 포함하되,
    상기 오퍼레이팅 로직은 출력을 제공하여 상기 컴퓨터 시스템(20)에 포함된 디스플레이(27)에 상기 집적회로 파형 세트를 시각화하고,
    상기 오퍼레이팅 로직은 상기 하나 이상의 오퍼레이터 입력 장치(24)로부터의 입력에 반응하여 하나 이상의 상기 집적회로 파형 세트를 수정 또는 생성함으로써 어써션 평가를 실행하며,
    상기 오퍼레이팅 로직은 상기 집적회로 파형을 이용하여 상기 어써션의 동작을 테스트하고, 상기 어써션의 상기 동작이 허용가능하다고 결정한 후 상기 어써션을 갖는 상기 집적회로 디자인 모델(52)을 실행시키도록 구성되는 장치.
  19. 제 18 항에 있어서,
    상기 장치(32,40)는 상기 오퍼레이팅 로직에 의해 인코딩된 착탈가능한 디스크 메모리(36)인 장치.
  20. 제 18 항에 있어서,
    상기 장치(32,40)는 상기 로직에 상응하는 인코딩된 신호를 전달하는 컴퓨터 네트워크의 적어도 한 부분인 장치.
  21. 제 18 항에 있어서,
    상기 오퍼레이팅 로직은 어써션 수정를 실행하도록 구성되는 장치.
KR1020087008689A 2005-09-12 2006-09-11 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치 KR20080055913A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US71639105P 2005-09-12 2005-09-12
US60/716,391 2005-09-12

Publications (1)

Publication Number Publication Date
KR20080055913A true KR20080055913A (ko) 2008-06-19

Family

ID=37865344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087008689A KR20080055913A (ko) 2005-09-12 2006-09-11 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치

Country Status (7)

Country Link
US (1) US8234102B2 (ko)
EP (1) EP2100240A2 (ko)
JP (1) JP2009508203A (ko)
KR (1) KR20080055913A (ko)
CN (1) CN101263498A (ko)
TW (1) TW200717276A (ko)
WO (1) WO2007031938A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448777B2 (en) 2012-09-07 2016-09-20 Samsung Electronics Co., Ltd. Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098366A1 (en) * 2006-10-09 2008-04-24 Via Technologies, Inc. Assertion Tester
US8271252B2 (en) * 2007-11-08 2012-09-18 Nvidia Corporation Automatic verification of device models
US8510616B2 (en) * 2008-02-14 2013-08-13 Nvidia Corporation Scalable scan-based test architecture with reduced test time and test power
US8745200B2 (en) * 2008-05-06 2014-06-03 Nvidia Corporation Testing operation of processors setup to operate in different modes
JP4950942B2 (ja) * 2008-05-23 2012-06-13 株式会社東芝 半導体集積回路の検証装置
US8943457B2 (en) * 2008-11-24 2015-01-27 Nvidia Corporation Simulating scan tests with reduced resources
CN101901490B (zh) * 2010-07-15 2011-12-07 北京信息科技大学 生成信号调理电路图像的***
CN103902668B (zh) * 2014-03-14 2017-07-04 中国电子科技集团公司第十三研究所 一种InP基HEMT在太赫兹频段的建模方法
US9483591B1 (en) 2015-11-27 2016-11-01 International Business Machines Corporation Assuring chip reliability with automatic generation of drivers and assertions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305977A (ja) * 1999-04-26 2000-11-02 Hitachi Ltd 論理データの検証方法、該論理検証方法を実行する論理検証システム及び前記論理検証方法を実行するプログラムを記憶した記録媒体
US6530065B1 (en) * 2000-03-14 2003-03-04 Transim Technology Corporation Client-server simulator, such as an electrical circuit simulator provided by a web server over the internet
US6675310B1 (en) * 2000-05-04 2004-01-06 Xilinx, Inc. Combined waveform and data entry apparatus and method for facilitating fast behavorial verification of digital hardware designs
US7051299B2 (en) * 2003-07-31 2006-05-23 International Business Machines Corporation Method for generating reusable behavioral code
US7236917B1 (en) * 2003-10-31 2007-06-26 Sun Microsystems, Inc. Method and apparatus for generating minimal node data and dynamic assertions for a simulation
JP4481762B2 (ja) * 2004-08-13 2010-06-16 富士通株式会社 論理検証装置、論理検証方法、論理検証プログラムおよび記録媒体
US7143373B2 (en) * 2004-10-14 2006-11-28 Synopsys, Inc. Method and apparatus for evaluating and debugging assertions
US7421668B1 (en) * 2004-12-08 2008-09-02 Jasper Design Automation, Inc. Meaningful visualization of properties independent of a circuit design
US7404160B2 (en) * 2005-02-18 2008-07-22 Quickturn Design Systems Inc. Method and system for hardware based reporting of assertion information for emulation and hardware acceleration
US7313772B2 (en) * 2005-05-24 2007-12-25 International Business Machines Corporation Systems, methods, and media for block-based assertion generation, qualification and analysis

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448777B2 (en) 2012-09-07 2016-09-20 Samsung Electronics Co., Ltd. Apparatus and method for generating assertion based on user program code, and apparatus and method for verifying processor using assertion

Also Published As

Publication number Publication date
US8234102B2 (en) 2012-07-31
CN101263498A (zh) 2008-09-10
JP2009508203A (ja) 2009-02-26
TW200717276A (en) 2007-05-01
WO2007031938A3 (en) 2007-11-22
US20080222205A1 (en) 2008-09-11
EP2100240A2 (en) 2009-09-16
WO2007031938A2 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
US8234102B2 (en) Development of assertions for integrated circuit design simulation
US7900181B2 (en) Systems, methods, and media for block-based assertion generation, qualification and analysis
JP3118592B2 (ja) よりハイレベルのビヘイビア指向のデスクリプションから回路又は装置の構造上のデスクリプションを生成する方法
US8453110B2 (en) Automatic generation of code for component interfaces in models
US10387585B2 (en) System and method for performing model verification
JP4806529B2 (ja) 複製されたロジックを使用するデバッグの方法とシステム
US20070276644A1 (en) Conversion of circuit description to a transaction model
US8181131B2 (en) Enhanced analysis of array-based netlists via reparameterization
US7421668B1 (en) Meaningful visualization of properties independent of a circuit design
US20080005710A1 (en) Automatic generation of timing constraints for the validation/signoff of test structures
US20030018461A1 (en) Simulation monitors based on temporal formulas
US9626468B2 (en) Assertion extraction from design and its signal traces
US9235670B2 (en) Method and an apparatus for automatic generation of verification environment for processor design and verification
US8140315B2 (en) Test bench, method, and computer program product for performing a test case on an integrated circuit
US7606694B1 (en) Framework for cycle accurate simulation
US8065641B2 (en) Automatically creating manufacturing test rules pertaining to an electronic component
US8429581B2 (en) Method for verifying functional equivalence between a reference IC design and a modified version of the reference IC design
Hekmatpour et al. Block-based schema-driven assertion generation for functional verification
US7277840B2 (en) Method for detecting bus contention from RTL description
TW201933156A (zh) 用於增強可現場規劃閘陣列(fpga)驗證的仿真技術之方法及設備
US20100251197A1 (en) Method, system and application for sequential cofactor-based analysis of netlists
Jenihhin et al. PSL Assertion Checking Using Temporally Extended High-Level Decision Diagrams
US20220300690A1 (en) Incremental compilation for fpga-based systems
US7634396B2 (en) Method and computer program product for generation of bus functional models
Goli et al. Automated Debugging-Aware Visualization Technique for SystemC HLS Designs

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
NORF Unpaid initial registration fee