KR20050061268A - 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법 - Google Patents

대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법 Download PDF

Info

Publication number
KR20050061268A
KR20050061268A KR1020040055330A KR20040055330A KR20050061268A KR 20050061268 A KR20050061268 A KR 20050061268A KR 1020040055330 A KR1020040055330 A KR 1020040055330A KR 20040055330 A KR20040055330 A KR 20040055330A KR 20050061268 A KR20050061268 A KR 20050061268A
Authority
KR
South Korea
Prior art keywords
design
design verification
verification
hardware
simulator
Prior art date
Application number
KR1020040055330A
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 KR20050061268A publication Critical patent/KR20050061268A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명은 설계된 수백만 게이트급 이상의 디지탈 회로의 설계 검증을 위한 설계 검증 장치 및 이를 이용한 설계 검증 방법에 관한 것이다.
본 발명에서는 임의의 컴퓨터에서 수행되어지는 본 발명의 설계검증 시스템소프트웨어로 하여금 설계검증 대상 회로에 존재하는 설계객체들 간에 동적정보 교환을 가능하게 하여 설계가 변경된 설계검증 대상 회로의 특정 부분을 하드웨어플랫폼에서 시뮬레이터로 신속히 이전시켜서 신속한 설계 검증을 가능하게 한다. 아울러 본 발명의 설계검증 인터페이스 모듈에는 대용량의 메모리를 내장시켜서 테스트벤치의 오버헤드를 최소화시키면서 설계 검증을 가능하게 한다.

Description

대용량메모리와 컴파일 회피를 이용한 하드웨어기반 검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법{Performance Improvement Apparatus for Hardware-assisted Verification Using Massive Memory and Compilation Avoidance and Its Verification Method Using the Same}
본 발명은 설계된 수백만 게이트급 이상의 디지탈 회로를 설계 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지탈 회로를 프로그램 가능한 칩 혹은 주문형반도체 칩으로 실제 하드웨어적으로 구현하고 에뮬레이션 기법과 시뮬레이션 기법을 함께 사용하여 상기 수백만 게이트급 이상의 디지털 회로에 존재하는 1이상의 설계 오류를 신속하게 제거하는 설계 검증 방법 및 이를 위한 설계 검증 장치에 관한 것이다.
최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지탈 회로 설계의 규모가 최소 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 빠른 시간 내에 자동화된 방법으로 설계된 회로를 효율적으로 설계 검증하기 위한 효과적인 방법의 필요성이 더욱 커지고 있다.
지금까지는 설계된 디지탈 회로를 설계 검증하기 위하여서는 소프트웨어적 접근법인 시뮬레이터가 주로 사용되었으나, 시뮬레이터는 설계 검증 대상회로를 소프트웨어적으로 모델링한 순차적인 인스트럭션 시퀀스로 구성된 소프트웨어 코드를 컴퓨터 상에서 순차적으로 수행하여야 함으로 상기 수백만 게이트급 이상의 설계를 위한 설계 검증 시간이 상상을 초월할 정도로 극히 오래 걸리게 되는 한계가 있다. 뿐만 아니라 시뮬레이션을 이용하여 설계 검증을 수행하기 위해서는 설계 검증 대상회로에 설계 검증을 가능하게 하는 입력패턴 시퀀스를 생성하여야 한다. 그러나 설계 검증 대상회로의 규모가 커지게 되면 이에 지수함수적으로 비례하여 입력패턴 시퀀스의 크기가 커지게 될 뿐만 아니라 이를 대부분의 경우에 수작업으로 생성하여야만 함으로 이를 위하여 많은 시간과 비용이 투입되어야만 하고, 이와 같은 입력패턴 시퀀스를 생성하는 테스트 벤치(test bench, 이 후부터는 TB라 약칭함)는 합성가능하지 않아서 컴퓨터 상에서 수행되어야 하는데 최근에 테스트 벤치의 복잡도가 증가함으로 합성가능한 설계검증대상회로(Design Under Verification, 이 후부터는 DUV라 약칭함)가 하드웨어 에뮬레이터나 시뮬레이션가속기에서 수행되더라도 TB 수행의 오버헤드와 TB와 DUV를 연결하는 인터페이스의 속도 제약에 의하여 전체 수행의 속도가 제약을 받는다는 문제점들도 있다.
이에 비하여 설계된 회로를 실제 칩으로 구현하여 이를 이용한 하드웨어기반의 설계 검증 방법은 설계된 DUV의 모든 구성요소들이 구현된 칩상에서 실제 병렬적으로 동작되고 있는 상황에서 디지털 회로를 검증하는 것이기 때문에 시뮬레이션에 비하여 최대 일백만배 고속의 설계 검증이 가능하고, 하드웨어에뮬레이션의 경우에는 TB 대신에 다른 주변 하드웨어 환경과도 ICE 환경을 구성하여 통합적으로 검증할 수 있음으로 수행속도를 극대화 시킬 수 있다. 뿐만 아니라, 다른 주변 하드웨어 환경과 통합하여 ICE 방식으로 설계 검증을 수행하는 경우에는 설계 검증 대상회로에 주변 하드웨어 환경에서 실제의 입력패턴 시퀀스가 공급됨으로 이를 수작업으로 생성시키는 과정을 완전히 생략할 수 있다. 최근에 들어서는 인서킷 방식의 하드웨어 에뮬레이션과 TB를 사용하는 시뮬레이션가속을 혼합시킨 형태의 하이브리드방식의 하드웨어기반 검증 시스템의 사용도 일반화되어가고 있는 추세이다.
기 특허출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(특허출원번호: 10-2000-0034628)에서는 FPGA(Field Programmable Gate Array)나 CPLD(Complex Programmable Logic Device)와 같은 프로그램 가능한 칩들인 재사용 가능 프로그래밍 소자(Reusable Field Programmable Devices, 이후에는 RFPD라 약칭함)나 ASIC(Application Specific Inregrated Circuit)이나 ASSP(Application Specific Standard Product)와 같은 주문형반도체 소자를 이용한 에뮬레이션과 시뮬레이션을 함께 사용하여 디지털 시스템에 대한 설계 검증을 효과적으로 수행하는 방법을 제시하고 있다.
그러나 상기 기 출원된 특허뿐만 아니라 다른 어떠한 특허들에서도 상기에서 언급된 최소 수백만급 규모 이상의 설계에 대한 하드웨어기반의 설계 검증에 있어서 시뮬레이션가속 방식 혹은 시뮬레이션가속과 인서킷 에뮬레이션을 혼용하는 하이브리드 방식에서의 효과적인 성능 향상 기법에 대해서 만족할만한 해법을 제시하지 못하였다.
따라서, 본 발명의 목적은 초대규모급 설계 검증을 위한 1이상의 RFPD나 불리안 프로세서들을 이용하여 하드웨어적으로 구현된 대규모 디지털 시스템의 시뮬레이션가속이나 인서컷 에뮬레이션과 시뮬레이션가속을 혼용하는 설계 검증에서 테스트벤치 오버헤드와 테스트벤치와 검증대상설계 사이의 인터페이스의 오버헤드를 최소화하고 설계오류 수정에 따른 컴파일 오버헤드도 최소화함으로서 설계검증 과정에서의 성능 향상을 높일 수 있는 설계 검증 방법을 제공함에 있다.
상기 목적을 달성하기 위하여, 본 발명에 따른 설계 검증 장치는 설계검증 시스템소프트웨어와 설계검증 인터페이스 모듈(26)을 제공한다. 설계검증 인터페이스 모듈(26)은 인터페이스 모듈(interface module)(27)과 대용량의 메모리(28)로 구성될 수 있다. 설계검증 시스템소프트웨어는 컴퓨터에서 실행되며 컴퓨터는 임의의 시뮬레이터(예로 HDL 시뮬레이터나 로직 시뮬레이터, 이벤트기반 시뮬레이터, 또는 사이클기반 시뮬레이터)를 가지고 있다. 설계검증 인터페이스 모듈은 설계검증 시스템소프트웨어가 있는 컴퓨터와 설계된 수백만 게이트급 이상의 디지털 회로가 구현된 1이상의 RFPD이나 불리안프로세서들을 장착하고 있는 1이상의 임의의 에뮬레이션 하드웨어 보드 내지는 시뮬레이션가속 하드웨어 플랫폼 내지는 에뮬레이션 하드웨어 플랫폼(이를 앞으로는 하드웨어플랫폼이라 칭함)을 연결하게 된다. 이를 위하여 인터페이스 모듈은 자체적으로 FPGA나 CPLD, 혹은 마이크로프로세서나 마이크로콘트롤러, 또는 전용 ASIC/ASSP 칩으로 1이상의 인터페이스 모듈 제어용 칩을 내장하고 있다. 도1 은 컴퓨터에서 운영되는 설계검증 인터페이스 모듈과 설계검증 시스템소프트웨어로 구성된 본 발명에 관한 설계검증 장치를 개략적으로 도시한 도면이다. 구체적으로는 설계검증 인터페이스 모듈(26)은 컴퓨터의 PCI(Peripheral Computer Interface) 버스에 연결되어지도록 PCI 슬롯에 장착되어지거나 혹은 이와 같은 기능의 다른 이차 시스템버스(secondary system bus)(예로 SUN 워크스테이션의 S-bus등)에 연결되는 것이 일반적이나, 고속이 요구되는 경우에는 컴퓨터의 일차 시스템버스(primary system bus)인 메인버스(main bus)에 연결되어질 수도 있고, 저속으로도 가능하다면 USB(Universal Serial Bus)나 병렬포트 또는 시리얼포드 등으로 연결되어질 수도 있으며 이를 통하여 임의의 컴퓨터와 임의의 하드웨어플랫폼이 연결되어 진다.
설계검증 시스템소프트웨어는 설계검증 인터페이스 모듈을 통하여 설계검증과정 도중에 사용자가 원하는 임의의 시점이나 상황에서 임의의 하드웨어플랫폼에 구현된 수백만 게이트급 이상의 설계검증 대상회로의 전체나 혹은 부분에 대한 수행결과에 대한 동적정보(dynamic information)를 상기 임의의 시점이나 상황에서 하드웨어플랫폼으로부터 읽어 내거나 반대로 컴퓨터에서 전송되는 특정 값들을 설계 검증 대상회로의 전체나 혹은 부분에다 인가할 수 있도록 제어 기능을 수행해야 한다. 여기서 동적정보란 상태정보(state information)와 논리값정보(logic information)로 나눌 수 있다. 상태정보란 디지털 회로의 메모리소자(플립플롭이나 래치)들의 값과 메모리(RAM이나 ROM)의 내용을 나타내는 용어로 완전 상태정보란 설계검증 대상회로의 모든 메모리소자들의 값과 모든 메모리의 내용을 의미하며, 부분 상태정보란 설계검증 대상회로의 일부분의 메모리소자들의 값과(또는) 일부분의 메모리의 내용을 의미한다. 또한 메모리소자와 메모리는 다른 것으로 메모리소자는 플립플롭(flipflop)이나 래치(latch)를 의미하며, 메모리는 SRAM, DRAM, SDRAM, Rambus DRAM 등과 같은 모든 종류의 RAM(Random Access Memory)이나 PROM, EPROM, EEPROM, Flash Memory와 같은 모든 종류의 ROM(Read Only Memory)을 의미하는 것으로 정의한다. 반면에 논리값정보(logic information)는 디지털 회로의 존재하는 임의의 1이상의 신호선들에 나타나는 이진논리값들을 의미하면, 논리값 정보가 상태정보와 다른 것은 논리값정보는 조합논리 게이트의 출력값이나 입력 값들로써 구성된다는 것이다.
이와 같은 동적정보는 설계검증 대상회로가 하드웨어플랫폼 상에 구현되어져서 수행되는 과정 중에서 한번 이상 컴퓨터 상의 시뮬레이터나 설계검증 시스템소프트웨어로 읽어내는(read) 것이 필요하거나, 반대로 컴퓨터 상의 시뮬레이터나 설계 검증 시스템소프트웨어로부터 하드웨어플랫폼 상에서 수행되는 설계검증 대상회로로 쓰여지는(write) 것이 필요하다. 이와 같은 것의 제일 일반적인 경우는 시뮬레이션가속(simulation acceleration, 이 후 SA로 약칭함)의 경우에서 찾아볼 수 있다. SA에서는 TB는 컴퓨터 상에서 수행되는 시뮬레이터에서 돌아가게 되고, DUV는 하드웨어플랫폼에서 구현되어져서 돌아가게 되고, 이 둘 사이는 인터페이스를 통하여 매 이벤트, 혹은 매 사이클, 혹은 매 트랜잭션마다 동적정보의 교환이 필요하게 된다. 이 경우의 동적정보는 TB에서 생성되어 DUV의 입력쪽으로 인가되는 입력 스트뮬러스와 반대로 DUV의 출력이나 내부에서 생성되어 TB로 인가되는 응답으로 구성된다. 이상과 같은 통상의 SA에서의 동적정보의 교환이 얼마나 빠르게 일어날 수 있는가가 SA의 성능을 결정하게 되는데 일반적으로 이와 같이 하드웨어플랫폼 상에서 실행되는 DUV와 시뮬레이터에서 실행되는 TB 사이에 존재하는 입출력들을 연결하기 위해서 DUV의 입출력 포트에 동적정보의 교환이 가능하도록 추가회로를 첨가하는 것이 필요하다 (이상과 같은 목적으로 추가되는 추가회로를 s-PBS라 칭한다).
이와 같은 일반적인 SA에서 SA의 성능을 제약하는 요소로는 TB와 DUV간의 낮은 동적정보 교환 속도와 컴퓨터 상에서 수행되는 TB의 낮은 수행 속도를 들 수 있다. 본 특허에서는 우선 이와 같은 두가지 주된 문제점들을 해결하기 위하여 다음과 같은 방식을 취한다. 설계검증 인터페이스 모듈이나 하드웨어플랫폼에 대용량의 메모리를 장착하여서 첫 번째 SA 수행 시에 컴퓨터에 존재하는 TB에서부터 하드웨어플랫폼으로 인가되는 동적정보(즉, TB에서 생성되는 입력스티뮬러스)를 SA 전 과정에 걸쳐서 상기 대용량의 메모리에 저장한다. 뿐만 아니라 필요시에는 첫 번째 SA 수행 시에 TB에서 생성되는 입력스티뮬러스를 컴퓨터에 부착된 대용량의 하드디스크에 1이상의 파일 형태로 선택적으로 저장하거나, 컴퓨터에 존재하는 주기억장치에 저장할 수도 있다. 이와 같이 첫 번째 SA 수행 시에 설계검증 인터페이스모듈에 존재하는 대용량의 메모리에 저장된 입력스티뮬러스는 두 번째 이상의 SA 수행 시부터 대용량의 메모리부터 읽혀져서 DUV에 인터페이스 모듈의 제어 하에 하드웨어적으로 집적 인가되게 된다. 이를 통하여 두 번째 이후의 SA 수행 시에는 컴퓨터에 존재하는 TB와 하드웨어플랫폼에 존재하는 DUV 사이의 물리적 인터페이스 한계와 컴퓨터에서 수행되는 TB의 오버헤드를 완전히 제거하게 되며, 이를 통하여 검증의 성능을 수백배에서 수만배까지 높일 수 있다. 이와 같은 방법을 테스트벤치 캐싱(testbench caching, 이후에는 테스트벤치 캐싱이라 약칭함)이라 명하기로 한다. 또한 설계검증 인터페이스 모듈에 존재하는 대용량의 메모리에 수행된 것을 1차 테스트벤치 캐싱이라 칭하고, 선택적으로 컴퓨터에 부착된 대용량의 하드디스크나 주기억장치에 수행된 것을 2차 테스트벤치 캐싱이라 칭한다.
또한 하드웨어기반의 검증에서는 DUV에 존재하는 1이상의 설계오류가 수정된 경우에는 수정된 DUV를 하드웨어플랫폼에 재 구현 과정에서 많은 시간이 소비되어야 한다. 이는 수정된 DUV를 하드웨어플랫폼에 재 구현하려면 최소한 수정된 DUV의 부분에 대한 재컴파일(re-compilation) 과정이 요구되는데, 하드웨어플랫폼에 사용되는 RFPD나 불리안프로세서를 위한 재컴파일 과정은 컴퓨터 상에서 시뮬레이터의 컴파일 과정과 비교하여 최소 수배부터 수백배까지의 긴 컴파일 시간이 필요하기 때문이다. 특히 RFPD를 사용하는 경우에는 훨씬 긴 재컴파일 시간이 필요하게 된다. 이와 같은 긴 재컴파일 시간은 전체 검증의 성능 및 효율성을 크게 떨어뜨리게 한다. 특히, 설계 초기에는 DUV에 많은 설계오류들이 존재하게 되는데, 이와 같은 긴 컴파일 시간은 하드웨어기반의 검증 시스템을 설계 초기에 사용할 수 없게 하는 주된 문제점이다.
본 특허에서는 이와 같은 설계오류 수정 후의 긴 재컴파일 시간의 문제점을 해결하기 위해서 다음과 같은 방식을 취한다. 즉, 설계 오류가 수정된 DUV의 부분은 설계 오류가 수정되는 즉시 하드웨어플랫폼에서 설계 오류가 수정된 DUV 부분만을 시뮬레이터에서 컴파일하고 시뮬레이터로 이동시켜 수행되게 함으로서 긴 시간의 하드웨어플랫폼을 위한 재컴파일에 시간을 보내지 않고도 연속적인 설계 검증이 가능하게 한다(이와 같은 방법을 지금부터 컴파일 회피라 약칭함). 이를 위해서는 DUV의 특정부분을 분할시켜서 일부분(설계오류가 수정된 부분, 이를 DUV B 라 칭함)은 컴퓨터의 시뮬레이터에서 동작시키고, 이와 이벤트 단위나 혹은 사이클 단위나 혹은 트랜적션 단위로 연동하여 DUV 나머지 부분(이를 DUV PO 라 칭함)은 계속 하드웨어플랫폼에서 동작시킬 수 있어야 한다(이를 lock-step 방식으로 연동한다고 함). 그러나 여기서 어려운 문제는 이와 같은 DUV B DUV PO 를 사전에 알 수 없다는 것이다. 따라서 사전에 DUV를 임의로 n개(n은 설계자나 검증엔지니어가 결정하거나 설계검증 시스템소프트웨어가 결정할 수 있다)의 설계객체로 분할시키는 것이 필요하다. 일반적으로 설계는 계층적으로 설계하고 계층 하에서의 설계 블록이나 블록내의 모듈들 각각은 별도의 다른 설계자나 검증 엔지니어가 담당하고 있음으로 특정 분할의 선택은 여러 가지 경우가 존재할 수 있다. 분할을 분할된 설계객체 수를 줄이는 방향으로 하는 경우에는 컴파일 회피를 위하여 추가되는 부가회로의 오버헤드를 최소화할 수 있는 장점이 있는 반면에 설계 오류 수정 후에 하드웨어플렛폼에서 시뮬레이터로 이전되는 부분 DUV의 크기가 커짐으로 시뮬레이션의 속도를 저해시킬 수 있고, 반대로 분할을 분할된 설계객체 수를 늘리는 방향으로 하는 경우에는 설계 오류 수정 후에 하드웨어플랫폼에서 시뮬레이터로 이전되는 부분 DUV의 크기를 최소화시킬 수 있음으로 시뮬레이션의 속도 저하를 최소화시킬 수 있는 반면에 추가되는 회로의 오버헤드가 커지게 된다. 또한 어느 설계객체가 설계 오류 교정에 의하여 하드웨어플랫폼을 통한 수행에서 시뮬레이터를 통한 수행으로 이전 되어야 하는지를 사전에 알 수 없음으로 분할되는 객체의 복잡도가 설계객체간에 균등하게 되도록 분할하는 것도 중요하다. 이와 같은 분할은 기본적으로 DUV의 계층 구조를 참조하여 수행되어야 하며, 완전 자동화된 방식으로 수행될 수도 있고 반 자동화된 방식으로 수행될 수도 있으며 설계자나 검증 엔지니어에게 일임하여 완전 수작업 방식으로 수행될 수 있다. 상기 컴파일 회피를 위하여 추가되는 부가회로의 역할은 하드웨어플랫폼에서 계속 수행될 설계오류가 발견되지 않은 모든 설계객체들의 경계(boundary)(경계란 해당 설계객체들을 합하여 하나로 볼 때 이의 모든 입력과 출력과 입출력을 말함)에서의 동적정보와 설계오류가 발견되고 수정되어져서 하드웨어플랫폼에서 시뮬레이터로 이전되어서 시뮬레이션되어져야 하는 모든 설계객체들의 경계에서의 동적정보가 상호간에 이벤트 기반이나 혹은 사이클 기반이나 혹은 트랜잭션 기반으로 lock-step 방식으로 교환되어질 수 있도록 하여야 한다. 이와 같은 동적정보의 교환이 통상의 SA에서의 TB와 DUV 간의 동적정보 교환과 다른 것은 여기에서의 동적정보의 교환은 DUV PO 의 경계가 하드웨어플랫폼의 내부에 존재할 수 있다는 것이다. 때문에 이와 같은 동적정보 교환을 위하여 채용할 수 있는 구체적인 추가 회로의 예로는 추후에 설명한 회로를 각 설계객체 경계에 부가하거나, 또는 IEEE에서 제안된 JTAG 기반의 바운더리스캔(boundary scan) 구조를 각 설계객체 경계에 부가하는 것이다. 이와 같은 컴파일 회피를 위하여 설계검증 대상 객체에 부가되는 부가코드나 부가회로를 앞으로는 d-PBS라 약칭하기로 한다. 또한 s-PBS와 d-PBS를 합하여 PBS라 약칭하기로 한다.
위에서 설명된 컴파일 회피를 수행하게 되면 하드웨어 재컴파일 시간을 기다리지 않고 신속하게 수행될 수 있는 부분적 시뮬레이션 컴파일만을 수행하고 SA를 진행할 수 있는 장점 이외에도, DUV B 가 시뮬레이터에 존재하게 됨으로 DUV B 에 대헤서는 완벽한 가시도(visibility)가 확보될 수 있고 이와 같은 DUV B 에 대한 100% 가시도는 신속한 디버깅에 핵심적인 요소가 된다. 따라서 DUV에 대한 효과적인 디버깅을 수행하는 것에도 컴파일 회피 방법은 매우 효율적이다. 이를 위해서 설계 버그가 존재할 가능성이 있는 1이상의 설계블럭들도 컴파일 회피 과정을 통하여 시뮬레이터로 이동시켜서 100% 가시도가 확보된 상태에서 디버깅을 수행하여 설계버그의 존재 여부의 최종 확인 및 수정까지도 가능하게 된다.
이와 같은 하드웨어 재컴파일시간을 최소화시키기 위한 원 목적 이외에 효율적인 디버깅을 위한 추가적인 목적으로 컴파일 회피를 사용하게 되면 시뮬레이터에서 수행되는 1이상의 설계블럭들에 대하여 빠른 시뮬레이션을 수행할 수 있도록 하는 것이 매우 중요하다. 이를 위하여 두 가지 기법을 병행시킬 수 있다. 그 첫 번째는 하드웨어플랫폼에 존재하는 나머지 설계블럭들과 lock-step 방식으로 수행되지 않아도 될 수 있게 하는 것이고, 두 번째는 시뮬레이터에서 수행되어지는 설계블럭의 크기를 최소화시켜서 매우 빠른 속도로 시뮬레이션이 수행될 수 있도록 하는 것이다. 이를 위하여 1차 테스트벤치 캐싱과 2차 테스트벤치 캐싱을 다음과 같은 순서로 혼용적으로 이용하는 것이 필요하다. 첫 번째 시뮬레이션 세션 과정에서 수행되는 테스트벤치 캐싱을 통하여 1차 테스트벤치 캐싱된 입력스티뮬러스를 하드웨어플랫폼에 구현된 설계블럭들 전체에 대하여 하드웨어 속도로 1회 이상 인가하거나 2차 테스트빈치 캐싱된 입력스티뮬러스를 하드웨어플랫폼에 구현된 설계블럭들 전체에 대하여 1회 이상 인가하여 설계블럭들을 하드웨어플랫폼에서 실행시켜서 컴파일 회피를 통하여 시뮬레이터에서 수행되어져야 하는 최소한의 설계블럭들 B만에 대한 입력스티뮬러스 I(B)를 우선적으로 얻는다. 이와 같이 얻어진 입력스티뮬러스 I(B)를 TB로 이용하여 B에 대한 시뮬레이션을 하드웨어플랫폼에 있는 설계블럭들과의 lock-step 과정 없이 단독적으로 빠르게 수행하는 것이 가능하다. 이를 위한 입력스티뮬러스 I(B)를 하드웨어플랫폼에서 구하기 위해서는 컴파일 회피를 위하여 추가적으로 부가된 회로를 통한 설계블럭 B의 모든 입력과 입출력들에 대한 입력탐침이 필요하다. 이를 위해서는 계층적 설계구조에 맞도록 컴파일 회피를 위해 검증대상 설계객체에 대하여 부가되는 부가코드나 부가회로인 d-PBS도 계층적인 구조를 가지고 있어야 한다.
이와 같은 과정에서 기 특허출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(특허출원번호: 10-2000-0034628)에서 제시된 입출력탐침 방법을 통하여 DUV의 동적 상태정보(상태정보는 DUV의 모든 기억소자들에 대한 값들의 집합)를 읽거나 쓸수 있게 할 수 있고, 이를 통하여 하드웨어플랫폼에 존재하는 DUV의 전체 혹은 일부분에 대하여 상태정보를 원하는 특정 상태정보로 설정할 수 있을 뿐만 아니라, 시뮬레이터에 존재하는 DUV의 일부분 혹은 전체에 대하여서도 상태정보를 원하는 특정 상태정보로 설정할 수 있다. 이를 통하여 하드웨어플랫폼에서 수행되는 실행을 SA의 시뮬레이션 시점 0 이외의 다른 시점들에서 재실행될 수 있게 하거나, 시뮬레이터에서 수행되는 실행을 시뮬레이션 시점 0 이외의 다른 시점들에서 재실행될 수 있게 할 수 있고, 이를 통하여 반복되는 SA의 실행시간을 추가적으로 단축시키는 것도 가능하게 된다.
뿐만 아니라, 위 두 가지 방법을 같이 혼용하여 적용하게 되면 설계 검증 시간을 크게 단축시키는 것이 가능하다. 즉, 첫 번째 SA 수행 과정을 통하여 테스트벤치 캐싱을 수행한다. 이 과정은 다른 TB를 사용하게 되는 경우마다 수행되어져야 하며 이 과정에서 여러 개의 다른 테스트벤치 캐싱 쓰기 과정(TB를 DUV와 함께 수행하여 첫 번째 SA를 수행하면서 설계검증 인터페이스 모듈에 존재하는 대용량의 메모리나 컴퓨터에 부착된 대용량의 하드디스크에 DUV의 입력스티뮬러스를 저장하는 과정)을 수행하게 된다. 1차 테스트벤치 캐싱의 경우에는 설계검증 인터페이스모듈에 존재하는 대용량의 메모리에 저장된 입력스티뮬러스를 읽어 DUV에 인가하는 것을 전적으로 인터페이스 모듈의 제어 하에 수행하게 되며, 2차 테스트벤치 캐싱의 경우에는 컴퓨터에 부착된 대용량의 하드디스크에 저장된 입력스티뮬러스를 읽어 DUV에 인가하는 것을 인터페이스 모듈과 컴퓨터의 제어하에 수행하게 된다. 1차 테스트벤치 캐싱은 실행 속도가 빠른 반면에 대용량의 메모리가 상대적으로 컴퓨터에 부착된 대용량의 하드디스크에 비하여는 작을 수 있음으로 이를 만회하기 위하여서는 테스트벤치 캐싱의 쓰기 과정에서 데이터 압축(compression)을 수행하고 테스트벤치 캐싱 읽기 과정(설계검증 인터페이스 모듈에 존재하는 대용량의 메모리나 컴퓨터에 부착된 대용량의 하드디스크에 저장된 DUV의 입력스티뮬러스를 읽어서 DUV에 인가하는 과정)에서 데이터 복원(de-compression)을 수행하는 것을 선택적으로 수행하는 것도 가능하다. 이를 위하여서 인터페이스 모듈은 테이터 압축/복원(compression/de-compression) 하드웨어 모듈을 내장할 수 있다. 2차 테스트벤치 캐싱은 컴퓨터에 부착된 대용량의 하드디스크를 억세스하여야 함으로 버퍼링(컴퓨터의 주기억장치의 특정 영역을 버퍼로서 사용함)과 DMA(Direct Memory Access)를 이용한 빠른 억세스 방식을 채용하고 필요에 따라서는 고속의 연결방식(예로 infini-band)을 통하여 컴퓨터의 메인버스 시스템과 연결되게 한다. 이와 같이 테스트벤치 캐싱 된 입력 스티뮬러스는 2번째 이상의 SA 수행시에 테스트벤치 캐싱의 읽기 과정을 통하여 매우 빠른 속도로 DUV에 입력 스티뮬러스를 공급하게 되고, 이를 통하여 SA의 수행속도를 최대화 할 수 있다. 이를 통하여 DUV에 존재하는 1 이상의 설계 오류를 발견하게 되고 이들 설계 오류가 제거됨으로서 수정된 DUV의 특정 부분은 시뮬레이터 상에서 재컴파일되어져서 컴퓨터에서 시뮬레이션을 통하여 수행되게 된다. 이 시점에서는 TB는 앞서서 이미 caching화 되어졌음으로 설계검증 인터페이스 모듈에 대용량의 메모리에 존재하거나 혹은 컴퓨터에 부착된 대용량의 하드디스크에 존재하게 되며, 시뮬레이터에서는 오직 수정된 DUV의 특정 부분만이 수행되게 된다. 이 과정에서 수정된 DUV의 특정 부분에서 나머지 부분들에 입력되는 동적정보들 또한 caching화 하는 것이 가능하며 이와 같은 것을 순환캐싱(recursive caching)이라 칭하기로 한다. 순환캐칭이 수행된 후에는 다시 설계검증 대상회로 전체와 TB가 하드웨어플랫폼과 메모리, 또는 하드웨어플랫폼과 하드디스크, 또는 하드웨어플랫폼과 메모리와 하드디스크에 존재하게 됨으로 이후의 SA 수행속도가 다시 빨라질 수 있다. 이와 같은 순환캐싱은 계속 순환적(recursive)으로 적용하는 것이 가능하다.
이와 같은 방법은 순수 SA 뿐만 아니라, 하이브리드 방식의 하드웨어기반 검증에서도 사용되어질 수 있다.
이하, 본 발명의 실시 예를 첨부한 도면을 참조하여 설명하기로 한다.
도1 은 컴퓨터에서 운영되는 설계검증 시스템소프트웨어와 시뮬레이터와, 설계검증 인터페이스 모듈과 임의의 하드웨어플랫폼으로 구성된 본 발명에 관한 설계검증 장치를 개략적으로 도시한 도면이다.
도2 는 설계검증 인터페이스 모듈의 내부구조의 일 예를 개략적으로 도시한 도면이다.
도3 (a) 는 대용량 메모리를 사용한 1차 테스트벤치 캐싱을 통한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 개략적으로 도시한 도면이다.
도3 (b) 는 대용량 메모리를 사용한 1차 테스트벤치 캐싱에 데이터 압축/복원 하드웨어 모듈을 사용하여 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 수행하는 상황을 개략적으로 도시한 도면이다.
도 3 (c) 는 컴퓨터에 장착된 하드디스크를 사용한 2차 테스트벤치 캐싱을 통한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 개략적으로 도시한 도면이다.
도 3 (d) 는 컴퓨터에 장착된 하드디스크를 사용한 2차 테스트벤치 캐싱에 DMA 방식을 이용한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 수행하는 상황을 개략적으로 도시한 도면이다.
도 4 는 테스트벤치 캐싱을 통하여 테스트벤치의 존재 형태가 변화되는 상황을 개략적으로 도시한 도면이다.
도 5 는 설계오류 수정 후에 하드웨어플랫폼에서 존재하였던 설계객체가 시뮬레이터로 이동되어져서 설계검증이 수행되는 상황을 개략적으로 도시한 도면이다.
도 6 은 순환캐싱이 수행되는 상황을 개략적으로 도시한 도면이다.
도 7 과 도 8 은 동적정보 교환을 위하여 설계객체에 부가하는 부가회로의 예를 개략적으로 도시하는 도면이다. 이와 같이 동적정보 교환을 위하여 설계객체에 부가되는 부가회로는 설계검증 시스템소프트웨어에 의하여 자동적으로 생성되고 DUV에 자동적으로 부가되어 하드웨어플랫폼에 DUV와 더불어 구현되게 된다.
도 9 는 컴파일 회피를 위하여 시뮬레이터에 이전된 설계객체와 하드웨어플랫폼에 구현된 나머지의 설계객체들 간의 동적정보 교환을 위하여 d-PBS가 부가되어 설계검증을 수행되는 상황을 개략적으로 도시한 도면이다.
도 10 은 본 특허에서 언급된 테스트벤치 캐싱과 컴파일 회피를 가능하게 하는 일반적인 시뮬레이션 가속 시스템의 구조의 일 예를 개략적으로 도시한 도면이다.
도 11 은 도 10에서 하드웨어 플랫폼과 시뮬레이션 가속기 제어부의 일 예를 좀 더 구체적으로 도시한 도면이다.
도 12 는 PBS의 구체적 구현의 일 예를 도시한 도면이다.
도 13 은 PBS 구성의 기본 소자인 BSC의 구체적 구현의 일 예를 도시한 도면이다.
도 14 는 s-PBS를 통한 DUV의 입출력을 동적으로 접근하여 읽고 쓸수 있는 방법의 구체적 구현의 일 예를 도시한 도면이다.
도 15 는 d-PBS를 통하여 DUV에 존재하는 특정 설계블럭의 입출력을 동적으로 접근하여 읽고 쓸수 있는 방법의 구체적 구현의 일 예를 도시한 도면이다. 이와 같은 d-PBS를 이용하여 컴파일 회피를 실행할 수 있다.
도 16 (a) 는 설계버그의 존재가 의심되는 설계블럭들만을 시뮬레이터로 이동시켜서 이 설계블럭들만을 하드웨어플랫폼에서 존재하는 나머지 설계블럭들과의 연동 없이 독립적으로 빠르게 시뮬레이션할 목적으로 설계버그의 존재가 의심되는 설계블럭들만의 모든 입력과 입출력 값들만을 구하여 소프트웨어 영역으로 보내어 테스트벤치화 할 수 있도록 계층적 d-PBS 구조를 이용하여 하드웨어플랫폼에서 테스트벤치 캐싱된 데이터와 전체 DUV, 혹은 DUV의 일부분만을 1회 이상 수행시키는 상황의 일 예를 개략적으로 도시한 도면이다. 도면에 나타나 있듯이 DUV가 계층적 구조로 되어 있어, DUV는 설계블럭 M1, M2로 구성되어 있고, 설계블럭 M1은 하위 설계블럭 M11, M12로, 설계블럭 M2는 하위 설계블럭 M21, M22로 구성되어져 있다.
도 16 (b)는 도 16 (a)와 같은 계층적 DUV에 계층적 d-PBS를 부가하여서 DUV 계층구조에 존재하는 임의의 블록들만의 입출력을 매우 효과적으로 접근하여 이들 입출력들에 대한 읽기/쓰기가 효과적으로 가능한 일 예를 개략적으로 도시한 도면이다.
도 16 (c) 는 도 16 (b)의 계층적 구조의 d-PBS를 좀 더 구체적으로 구현한 일 예를 개략적으로 도시한 도면이다.
상술한 바와 같이, 본 발명에 따른 설계 검증 장치 및 이를 이용한 설계 검증 방법의 목적은 초대규모급 설계 검증을 위한 하드웨어적으로 구현된 대규모 디지털 시스템의 설계검증을 수행하여 설계검증 대상회로의 규모가 시뮬레이션의 한계를 넘어가는 경우에도 하드웨어기반의 설계검증 방법을 적용하여 신속하게 설계검증을 가능하도록 한다. 구체적으로는, 설계 오류들을 신속하게 발견하도록 하는 것을 가능하게 할뿐만 아니라, 이들 발견된 설계 오류들을 수정하고 추가적인 하드웨어기반의 설계 검증을 신속하게 수행되어지도록 하는 것도 가능하다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.
도1 은 본 발명의 설계 검증 장치와 하드웨어플랫폼을 개략적으로 도시한 도면.
도2 는 설계검증 인터페이스 모듈의 내부구조의 일 예를 개략적으로 도시한 도면.
도3 (a) 는 대용량 메모리를 사용한 1차 테스트벤치 캐싱을 통한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 개략적으로 도시한 도면.
도3 (b) 는 대용량 메모리를 사용한 1차 테스트벤치 캐싱에 데이터 압축/복원 하드웨어 모듈을 사용하여 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 수행하는 상황을 개략적으로 도시한 도면.
도 3 (c) 는 컴퓨터에 장착된 하드디스크를 사용한 2차 테스트벤치 캐싱을 통한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 개략적으로 도시한 도면.
도 3 (d) 는 컴퓨터에 장착된 하드디스크를 사용한 2차 테스트벤치 캐싱에 DMA 방식을 이용한 테스트벤치 캐싱 쓰기 과정과 테스트벤치 캐싱 읽기 과정을 수행하는 상황을 개략적으로 도시한 도면.
도 4 는 테스트벤치 캐싱을 통하여 테스트벤치의 존재 형태가 변화되는 상황을 개략적으로 도시한 도면.
도 5 는 설계오류 수정 후에 하드웨어플랫폼에서 존재하였던 설계객체가 시뮬레이터로 이동되어져서 설계검증이 수행되는 상황을 개략적으로 도시한 도면.
도 6 은 순환캐싱이 수행되는 상황을 개략적으로 도시한 도면.
도 7 은 동적정보 교환을 위하여 설계객체에 부가하는 부가회로의 일부분의 일 예를 개략적으로 도시한 도면.
도 8 은 동적정보 교환을 위하여 설계객체에 부가하는 부가회로의 나머지 부분의 일 예를 개략적으로 도시한 도면.
도 9 는 시뮬레이터에 이전된 설계가 변경된 설계객체와 하드웨어플랫폼에 구현된 나머지의 설계객체들 간의 동적정보 교환을 위하여 부가회로가 부가되어 설계검증을 수행되는 상황을 개략적으로 도시한 도면.
도 10 은 테스트벤치 캐싱과 컴파일 회피를 가능하게 하는 일반적인 시뮬레이션 가속 시스템의 구조의 일 예를 개략적으로 도시한 도면.
도 11 은 도 10에서 하드웨어 플랫폼과 시뮬레이션 가속기 제어부의 일 예를 좀 더 구체적으로 도시한 도면.
도 12 는 PBS의 구체적 구현의 일 예를 도시한 도면.
도 13 은 PBS 구성의 기본 소자인 BSC의 구체적 구현의 일 예를 도시한 도면.
도 14 는 s-PBS를 통한 DUV의 입출력을 동적으로 접근하여 읽고 쓸수 있는 방법의 구체적 구현의 일 예를 도시한 도면.
도 15 는 d-PBS를 통하여 DUV에 존재하는 특정 설계블럭의 입출력을 동적으로 접근하여 읽고 쓸수 있는 방법의 구체적 구현의 일 예를 도시한 도면.
도 16 (a) 는 계층적 d-PBS 구조를 이용하여 하드웨어플랫폼에서 테스트벤치 캐싱된 데이터와 전체 DUV, 혹은 DUV의 일부분만을 1회 이상 수행시키는 상황의 일 예를 개략적으로 도시한 도면.
도 16 (b)는 도 16 (a)와 같은 계층적 DUV에 계층적 d-PBS를 부가한 상황의 일 예를 개략적으로 도시한 도면.
도 16 (c) 는 도 16 (b)의 계층적 구조의 d-PBS를 좀 더 구체적으로 구현한 일 예를 도시한 도면.
<도면의 주요부분에 대한 부호의 설명>
10 : 불리안프로세서
12 : RFPD 20 : 컴퓨터
26 : 설계검증 인터페이스 모듈 27 : 인터페이스 모듈
28 : 대용량의 메모리 29 : 데이터 압축/복원 모듈
30 : 메모리 읽기/쓰기 모듈
31 : 인터페이스 모듈 제어용 칩 내부의 주제어부
32 : 설계검증 시스템소프트웨어
33 : 인터페이스 모듈 제어용 칩 34 : 임의의 시뮬레이터
35 : 테스트벤치가 실행되는 컴퓨터의 시스템버스와 인터페이스 모듈을 고속으로 연결하기 위한 인터페이스 모듈 제어용 칩 내부의 인터페이스부
36 : DMA 컨트롤러 37 : 테스트벤치
44 : 임의의 하드웨어플랫폼 45 : DUV
64 : 캐싱된 테스트벤치
65 : 캐싱된 설계가 변경된 DUV의 부분
66 : 설계가 변경되어야 하는 DUV의 부분
67 : DUV에서 설계가 변경되어야 하는 DUV의 부분을 제외한 나머지 부분
68 : 시뮬레이터로 이전된 설계가 변경된 DUV의 부분
69 : 버퍼로 사용된 컴퓨터 주기억장치의 일부분
70 : 컴퓨터에 부착된 하드디스크 71 : 멀티플렉서 선택입력 제어 모듈
72 : 소프트웨어적으로 구현된 멀티플렉서
73 : PBS
74 : 하드웨어적으로 구현된 멀티플렉서
75 : PBS 콘트롤러 76 : 테스트벤치 캐싱 콘트롤러
77 : SA 메인콘트롤러
86 : 출력탐침 대상 신호선
87 : 출력탐침용 부가회로의 쉬프트레지스터를 형성하는 플립플롭들
88 : 입력탐침용 부가회로의 쉬프트레지스터를 형성하는 플립플롭들
90 : 특정 RFPD나 불리안 프로세서에 구현된 설계검증 대상회로 부분
92 : 특정 RFPD나 불리안 프로세서에 구현된 설계검증 대상회로의 부분 중에서 계속 하드웨어플랫폼에서 수행되어야 하는 설계검증 대상회로의 나머지 부분
94 : 특정 RFPD나 불리안 프로세서에 구현된 설계검증 대상회로의 부분 중에서 설계검증 대상회로 전체에서 설계가 수정되어 시뮬레이터로 이전되어져 시뮬레이션되는 설계검증 대상회로의 부분

Claims (16)

  1. 임의의 시뮬레이터와 임의의 하드웨어플랫폼을 이용한 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈을 구비하는 설계검증 장치에 있어서,
    상기 설계검증 인터페이스 모듈이나 하드웨어플랫폼에 대용량의 메모리를 구비하여 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  2. 임의의 시뮬레이터와 임의의 하드웨어플랫폼을 이용한 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈을 구비하는 설계검증 장치에 있어서,
    임의의 시뮬레이터가 인스톨된 컴퓨터에 장착된 하드디스크를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  3. 임의의 시뮬레이터와 임의의 하드웨어플랫폼을 이용한 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈을 구비하는 설계검증 장치에 있어서,
    임의의 시뮬레이터가 인스톨된 컴퓨터에 장착된 주기억장치를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  4. 첫 번의 시뮬레이션 세션에서 임의의 컴퓨터 상에서 테스트벤치를 실행시켜서 생성되는 입력스티뮬러스를 첫 번의 시뮬레이션 세션의 실행 과정 중에서 대용량의 메모리나 하드디스크에 저장시켜서 테스트벤치 캐싱화하고 이를 이용하여 이후의 동일한 테스트벤치를 이용한 시뮬레이션 세션들을 신속하게 진행하는 설계검증 방법.
  5. 하드웨어기반의 설계검증 방법에 있어서 설계가 부분적으로 변경된 후에는 부분적으로 변경된 부분을 시뮬레이션을 위한 재컴파일 과정만을 거쳐서 시뮬레이터로 수행될 수 있도록 시뮬레이터에 로딩하고 시뮬레이션을 하드웨어플랫폼에 계속 존재하고 있는 설계가 변경되지 않은 설계의 나머지 부분과의 하드웨어적인 수행과 같이 연동되면서 진행할 수 있도록 이 두 부분간의 동적정보 교환을 수행하는 하드웨어기반의 설계검증 방법.
  6. 제 5 항에 있어서,
    상기 동적정보 교환을 위하여 설계검증 시스템소프트웨어가 설계검증 대상 하프웨어코드나 회로에 동적정보 교환을 가능하게 하는 추가 하드웨어코드나 추가회로를 부가하는 설계검증 방법.
  7. 제 5 항에 있어서,
    상기 동적정보 교환을 위하여 설계검증 시스템소프트웨어가 설계검증 대상 하드웨어코드나 회로에 동적정보 교환을 가능하게 하는 인스트럭션시퀀스를 생성하는 부가하는 설계검증 방법.
  8. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 시스템소프트웨어와 시뮬레이터와 설계검증 인터페이스 모듈과 하드웨어플랫폼을 구비하는 설계검증 장치에 있어서,
    상기 설계검증 장치에 대용량의 메모리를 구비하여 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  9. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 시스템소프트웨어와 설계검증 인터페이스 모듈과 하드웨어플랫폼을 구비하는 설계검증 장치에 있어서,
    상기 설계검증 장치에 대용량의 메모리를 구비하여 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  10. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈과 하드웨어플랫폼과 시뮬레이터를 구비하는 설계검증 장치에 있어서,
    상기 시뮬레이터가 인스톨된 컴퓨터에 장착된 하드디스크를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  11. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈과 하드웨어플랫폼과 시뮬레이터를 구비하는 설계검증 장치에 있어서,
    상기 시뮬레이터가 인스톨된 컴퓨터에 장착된 주기억장치를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  12. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈과 하드웨어플랫폼을 구비하는 설계검증 장치에 있어서,
    테스트벤치를 실행시키는 컴퓨터에 장착된 하드디스크를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  13. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 인터페이스 모듈과 하드웨어플랫폼을 구비하는 설계검증 장치에 있어서,
    테스트벤치를 실행시키는 컴퓨터에 장착된 주기억장치를 이용한 테스트벤치 캐싱을 통한 반복적인 시뮬레이션가속의 성능을 향상시키는 설계검증 장치.
  14. 시뮬레이션 가속이나 하이브리드 형태의 하드웨어기반 검증을 위하여 설계검증 소프트웨어와 임의의 시뮬레이터와 임의의 하드웨어플랫폼을 구비하는 설계검증 장치에 있어서,
    설계검증 소프트웨어를 통하여 설계검증 대상에 대하여 부가코드나 부가회로를 부가하여 설계검증 대상에 존재하는 1 이상의 특정 설계블럭들에 대하여 설계검증 실행 도중에 접근하여 이들 1 이상의 특정 설계블럭들의 모든 입력들과 입출력 값들을 특정 실행 구간동안에 읽어서 이들 읽은 값들을 이들 1 이상의 특정 설계블럭들에 대한 입력스티뮬러스로 활용하여 시뮬레이터에서 이들 1 이상의 특정 설계블럭들만을 시뮬레이션하여 이들 1 이상의 특정 설계블럭들만에 대한 가시도를 제공하는 설계검증 장치.
  15. 제 14 항에 있어서,
    상기 설계검증 대상에 대하여 부가되는 부가코드나 부가회로가 d-PBS 구조인 설계검증 방법.
  16. 제 15 항에 있어서,
    상기 설계검증 대상에 대하여 부가되는 부가코드나 부가회로가 계층적 d-PBS 구조인 설계검증 방법.
    [청구항 16]
    제 14 항에 있어서,
    상기 설계검증 소프트웨어를 통하여 설계검증 대상에 대하여 부가코드나 부가회로를 부가하여 설계검증 대상에 존재하는 1 이상의 특정 설계블럭들에 대하여 설계검증 실행 도중에 접근하여 이들 1 이상의 특정 설계블럭들의 모든 입력들과 입출력값들을 특정 실행 구간동안에 읽어내는 것을 하드웨어플랫폼 상에 구현된 설계블럭들을 1회 이상 수행함으로서 달성하는 설계검증 방법.
    [추가 청구항 내용들]
    1. 소프트웨어 도메인으로 불러 왔다가, 의심이 풀리면 하드웨어 도메인으로 다시 보내는 것, 소프트웨어 도메인으로 온 것은 소프트 캐싱 한 후에 이를 TB화하거나 API나 집적 연결함으로 속도향상. 설계 코드가 디버깅에 의하여 디버깅에 의하여 바뀌었으면 compare & switch 적용
    2. PISC를 집어넣은 것도 포함시킬 것
    [추가 생각할 것들]
    1. UoVP에서도 compare & switch를 청구항에 포함시킨다???
    2. Incremental emulation을 별도의 특허로 이 특허를 우선권으로 하여 따로 제출? 즉 이 특허를 우선권으로 하는 특허가 2개가 생성된다.
KR1020040055330A 2003-12-16 2004-07-12 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법 KR20050061268A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020030094173 2003-12-16
KR20030094173 2003-12-16

Publications (1)

Publication Number Publication Date
KR20050061268A true KR20050061268A (ko) 2005-06-22

Family

ID=37252830

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020040055330A KR20050061268A (ko) 2003-12-16 2004-07-12 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법
KR1020040081966A KR20050059985A (ko) 2003-12-16 2004-10-11 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020040081966A KR20050059985A (ko) 2003-12-16 2004-10-11 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법

Country Status (1)

Country Link
KR (2) KR20050061268A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328263B1 (ko) * 2005-10-10 2013-11-14 양세양 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100873956B1 (ko) * 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101328263B1 (ko) * 2005-10-10 2013-11-14 양세양 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법

Also Published As

Publication number Publication date
KR20050059985A (ko) 2005-06-21

Similar Documents

Publication Publication Date Title
US8781808B2 (en) Prediction-based distributed parallel simulation method
KR100921314B1 (ko) 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
Civera et al. Exploiting circuit emulation for fast hardness evaluation
US9026966B1 (en) Co-simulation methodology to address performance and runtime challenges of gate level simulations with, SDF timing using emulators
KR100491461B1 (ko) SoC 설계 검증을 위한 방법 및 장치
US20090150136A1 (en) Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
KR100794916B1 (ko) 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
WO2005093575A1 (en) Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
US10546081B2 (en) Full memory logical erase for circuit verification
US10664637B2 (en) Testbench restoration based on capture and replay
Civera et al. FPGA-based fault injection for microprocessor systems
Bening A two-state methodology for RTL logic simulation
KR20060066634A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
Bombieri et al. Hybrid, incremental assertion-based verification for TLM design flows
KR20050061268A (ko) 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법
Wile et al. Functional verification of the CMOS S/390 parallel enterprise server G4 system
Kayser et al. Hyper-acceleration and HW/SW co-verification as an essential part of IBM eServer z900 verification
Civera et al. FPGA-based fault injection techniques for fast evaluation of fault tolerance in VLSI circuits
Johnson Behavioral-level test development
Banerjee et al. A scalable hybrid verification system based on HDL slicing
Khosla Veloce Emulation
Grossman et al. Simulation and embedded software development for anton, a parallel machine with heterogeneous multicore asics
Banerjee et al. Logic emulation with forced assertions: A methodology for rapid functional verification and debug
Rahkonen Mutation-based qualification of module verification environments

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination