KR20010067370A - SoC 설계 검증을 위한 방법 및 장치 - Google Patents

SoC 설계 검증을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20010067370A
KR20010067370A KR1020000063483A KR20000063483A KR20010067370A KR 20010067370 A KR20010067370 A KR 20010067370A KR 1020000063483 A KR1020000063483 A KR 1020000063483A KR 20000063483 A KR20000063483 A KR 20000063483A KR 20010067370 A KR20010067370 A KR 20010067370A
Authority
KR
South Korea
Prior art keywords
verification
soc
cores
silicon
design
Prior art date
Application number
KR1020000063483A
Other languages
English (en)
Other versions
KR100491461B1 (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 KR20010067370A publication Critical patent/KR20010067370A/ko
Application granted granted Critical
Publication of KR100491461B1 publication Critical patent/KR100491461B1/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
    • 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

Abstract

본 발명은 정확성이 높고 고속이며 비용이 저렴한 SoC(system-on-a-chip) 설계 검증을 위한 방법 및 장치에 관한 것이다. 상기 장치는, 코어 제공자(core provider)에 의해 제공된 각각의 코어의 실리콘 IC 및 시뮬레이션 테스트벤치들 (simulation testbenches)을 사용하여, SoC에 집적될 개별 코어들을 검증하는 단계; SoC 설계자에 의해 개발된 시뮬레이션 테스트벤치들과 글루 로직(glue logic)의 FPGA/에뮬레이션(emulation)을 사용하여 개별 코어들 간의 인터페이스, 코어들의 온-칩 버스들(on-chip buses), 및 글루 로직을 검증하는 단계; 코어-투-코어 타이밍(core-to-core timings)과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계; 및 전체 SoC의 시뮬레이션 테스트벤치 및 어플리케이션 실행(application runs)을 사용하여 전체 설계 검증을 실행하는 단계를 포함하는 방법을 사용하도록 허용한다.

Description

SoC 설계 검증을 위한 방법 및 장치{METHOD AND APPARATUS FOR SoC DESIGN VALIDATION}
본 발명은 다수의 기능 코어들을 갖는 SoC(시스템-온-칩) IC의 설계 완전성 (design integrity)을 검사하기 위한 방법 및 장치에 관한 것으로, 특히, 설계 검증이 코어 각각의 의도된 기능, 각각의 코어의 타이밍, 코어들 간의 인터페이스, 및 SoC IC 전체 시스템 동작에 대하여 평가될 수 있는 SoC 설계 검증을 위한 방법 및 장치에 관한 것이다.
최근 5년 동안, ASIC 기술은 칩-세트(chip-set) 개념으로부터 시작해서 내장 코어 기저 시스템-온-칩(SoC) 개념까지 발전되어 왔다. 이러한 시스템-칩들은 다양한 어플리케이션들을 제공하는 "코어들"로 공지된(또한 지적 재산 또는 IP로 공지된) 복합 기능의 미리 설계된 모델들을 사용하여 조립된다. 상기 코어들은 일반적으로 베릴로그/HDL(Verilog/HDL; 소프트-코어로 공지됨)과 같은 하이-레벨 기술 언어(HDL; high-level description language)에서 또는 GDSII(하드-코어로 공지됨)와 같은 트랜지스터 레벨 레이아웃에서 유용하다. 시스템-칩은 마이크로프로세서, 대형 메모리 배열들, 오디오 및 비디오 제어기들, 모뎀, 인터넷 튜너, 2D 및 3D 그래픽 제어기들, DSP 기능들(functions) 등과 같은 온-칩 기능들을 위한 하드 코어 및 소프트 코어의 결합들을 포함할 수 있다.
상기 코어들은 코어 제공자 회사들로부터 수회 취득되었고 SoC를 만들기 위해 함께 집적되었다. 코어가 외부로부터 취득되면, 코어 제공자는 코어의 시뮬레이션 테스트벤치와 함께 설계 네트리스트(netlist)를 제공한다. 따라서, 코어가 SoC에 집적되는 경우, 집적 SoC 설계에서의 동작을 검증하기 위해 임의의 변형 없이 코어의 테스트벤치를 직접 적용하는 것이 바람직하다.
설계는 베릴로그/VHDL과 같은 하이-레벨 언어를 사용하는 블록들 및 서브-블록들로 기술되고 행동/게이트-레벨 베릴로그/VHDL 시뮬레이터에 의해 시뮬레이트된다. 그러한 시뮬레이션은 설계가 실리콘 IC로 제조되기 이전에 기능을 검사하기 위한 것을 목표로 한다. 설계 검증은 전체 기능을 검증하지 않고는 설계 에러들이 발견되지도 제거되지도 않기 때문에 가장 중요하고 어려운 작업들(tasks) 중의 하나이다. 시뮬레이션의 속도가 느리고 SoC 설계 사이즈가 크기 때문에, SoC 레벨 설계 검증은 오늘날의 도구와 방법으로는 거의 불가능한 작업이다.
검증은 용인된 실체(accepted entity)에 대한 검사를 함축한다. 이는 시스템 설계에 있어서 명세서를 배경으로 설계를 검사하는 것을 의미한다. 검증은 시스템 설계 중에 하나의 추상 레벨로부터 다른 추상 레벨로의 변환이 정확하게 이루어졌는지를 검증하는 것이 아니다. 검증의 목적은 실제의 한계들 내에서 시스템이 구현되고 제조된 후에 의도대로 작동할 것인지를 알아내는 데 있다. 시스템-온-칩은 다수의 내장 코어들을 갖는 단일 하드웨어 구성 요소를 포함한다. 따라서, SoC의 설계 검증은 코어들을 검증하고, 코어들 간의 상호 접속들을 검증하고, 결합된 시스템 동작을 검증하는 것으로 이루어진다.
오늘날, SoC 명세서의 개발과 함께 행동 모델들이 개발됨으로써, 시뮬레이션 테스트벤치가 설계 검증 또는 시스템 동작의 검증을 위해 생성될 수 있다. 시스템 레벨 검증은 설계 계층 구조(design hierarchy)를 근거로 이루어진다. 먼저, 일반적으로 코어 레벨에서 리프(leaf) 레벨 블록들이 스탠드 얼론 방식(stand-alone way)으로 정확성에 대한 검사를 받는다. 그 후, 코어들 간의 인터페이스들이 트랜잭션 타입과 데이터 내용면에서 정확성에 대한 검사를 받는다. 다음 단계는 전체적으로 어셈블된 칩(fully assembled chip)에서 어플리케이션 소프트웨어 또는 등가 테스트벤치를 실행하는 단계이다. 이는 하드웨어/소프트웨어 공동 검증을 포함한다 (1998년의 Kluwer Academic Press에 의한 M. Keating과 P. Bricaud의 "재사용 방법 수동(Reuse methodology manual)"; 1997년의 Kluwer Academic Press에 의한 J. Stcunstrub과 W. Wolf의 "하드웨어-소프트웨어 공동 설계(Hardware-software co-design)"). 소프트웨어는 소프트웨어 코드의 실행 시간동안의 실행들에 의해서만 검증될 수 있으므로, 하드웨어-소프트웨어 공동-시뮬레이션(co-simulation)이 실행될 수 있다. 또한 종종 ASIC(응용 주문형 집적회로; application specific IC) 형태 또는 FPGA(현장 프로그램가능한 게이트 어레이; field programmable gate array)를 사용한 하드웨어 기본형(prototype)이 개발되어 전체 시스템 동작의 검증을 위해 사용된다.
기능 검증(Functional Verification)
도 1은 상이한 추상 레벨에서의 코어 설계 및 각 레벨에서 오늘날 어떤 타입의 검증 방법이 사용되는지를 도시한 것이다. 도 1은 최저 추상 레벨로부터 최고 추상 레벨까지 도시하고 있다. 즉, 도 1은 행동 HDL 레벨(21), RTL(register transfer language) 레벨(23), 게이트 레벨(25) 및 물리 설계 레벨(physical design level; 27)을 도시하고 있다. 상이한 추상 레벨들에 대응하는 검증 방법들은 도 1의 블록(28)에 리스트되어 있다. 기본 타입의 검증 테스트들은 다음을 포함할 수 있다.
(1) 설계 명세서에 순응하는지를 확인하기 위한 순응 테스팅(compliance testing).
(2) 전압, 온도 및 공정에 있어서 최소 상태이거나 최대 상태인 복합 시나리오 및 코너 케이스에 대한 코너 테스팅.
(3) 상당히 불명료한 버그들을 검출할 수 있는 테스팅으로 기본적으로 목표가 되지 않은(non-targeted) 랜덤 테스팅.
(4) 기능에 있어서의 임의의 오류(misrepresentation)가 정정될 수 있도록 설계상의 실제 어플리케이션을 실행함으로써 이루어지는 실제 코드 테스팅(real code testing).
(5) 설계에 있어서 임의의 변형 후에 테스트 집합(collection)을 실행함으로써 행해지는 회귀 테스팅(regression testing). 각각의 버그 픽스(bug fix)는 추가 테스트 조건들을 갖는 새로운 테스트 케이스를 추가할 것을 요구한다.
테스트벤치의 발달은 코어 및 타겟 SoC의 기능에 따른다. 예를 들면, 프로세서를 위한 테스트벤치는 명령 세트를 토대로 테스트 프로그램들을 실행하지만, PCI 코어와 같은 버스 제어기 인터페이스 코어에 대한 테스트벤치는 자극을 적용하고 시뮬레이션 출력 결과들을 검사하기 위해 버스 기능 모델들과 버스 모니터들을 사용한다. 이러한 기법의 문제점은 행동 테스트벤치들이 매우 느리다는 것이다.
테스트 케이스들(자극 또는 패턴)을 생성한 후에, 출력 응답들이 정확한지의 여부를 검사할 필요가 있다. 오늘날은 출력 파형을 관찰함으로써 수동으로 행해지지만, 설계가 변경됨에 따라 수동 검사가 불가능해진다. 출력 응답들을 검증하기위한 다른 방법은 기본적으로 하드웨어/소프트웨어 공동-시뮬레이션인 실제 소프트웨어 어플리케이션을 실행하는 것이다. 이러한 접근은 오늘날의 계산 공급원들 (computational resources)에 있어서 매우 비효율적이다. 또한, 이와 같은 테스트벤치에서, 어플리케이션과 코어 간의 실제 트랜잭션들은 시뮬레이트될 총 사이클들 중 단지 작은 부분이다. 따라서, 기능의 단지 작은 부분만이 검증된다.
인터페이스 검증(Interface Verification)
SoC 설계에서, 코어들 간의 인터페이스들이 검증될 필요가 있다. 통상 인터페이스들은 코어들, 코어-투-코어 혹은 온-칩 글로벌 버스들을 접속하는 어드레스 및 데이터를 포함하는 정규 구조를 갖는다. 또한 인터페이스는 요구/승인 프로토콜 및 버스 제어기와 같은 몇몇 형태의 제어 메카니즘과 신호들을 갖는다. 이러한 인터페이스들의 정규 구조는 제한된 수의 데이터 시퀀스 및 제어 신호들의 트랜잭션에 의해 정의될 수 있다.
인터페이스 검증은 각각의 인터페이스에서 모든 가능한 트랜잭션들의 목록을 필요로하므로, 모든 가능한 테스트 케이스들이 생성될 수 없기 때문에 불가능한 작업이다. 따라서, 제한된 검증이 실행된다. 제한된 검증 후에, 다음 작업은 각각의 코어가 수신하는 데이터의 모든 값들과 모든 데이터 시퀀스들에 대해서 코어가 정확하게 행동하는지를 검증하는 것이다. 이 검증 역시 불가능하여, 트랜잭션의 모든 상이한 데이터 값들이 너무 크기 때문에 매우 불완전한 검증이 행해진다.
타이밍 검증(Timing Verification)
타이밍 검증은 기능 검증 보다 훨씬 더 어려운 작업이다. 정적 타이밍 분석은 오늘날 가장 흔하게 사용되는 방법이다. 정적 타이밍 분석은 다양한 기술 라이브러리들과 함께 합성된 코어들의 대표적인 네트리스트에 대해 실행된다. 정적 타이밍 분석은 거짓 경로들이 적합하게 여과되지 않기 때문에 비관적인 경향이 있다. 거짓 경로들을 제거하는 것은 수동 공정이며, 따라서 에러가 생기게 된다. 게이트-레벨 시뮬레이션은 이러한 타입의 에러들에 대한 적합한 검사를 제공하지만, 자극을 발전시키고 게이트-레벨의 모든 타이밍 경로들을 시뮬레이트하는 것은 과도한 시간이 걸리기 때문에 완전한 해결 방법이 될 수 없다. 또한, 최악의 케이스의 타이밍 시나리오들은 설계 엔지니어에 의해 적합하게 식별되기에는 너무 복잡하거나 수없이 많기 때문에 게이트-레벨 시뮬레이션에서 실행되지 않는다.
전체 SoC 설계 검증(Full SoC Design Validation)
SoC 설계 검증의 주요 목적은 최종 사용자(end user)에 의해 사용되는 방식으로 전체 시스템을 검증하는데 있다. 이는 모든 코어들의 전체 기능 모델들(즉, 하드웨어 모델들) 및 합당한 양의 실제 시스템 어플리케이션들을 필요로 한다. 새로운 시스템이면, 어플리케이션들이 존재하지 않을 수 있다. 주요 관건은 시뮬레이션 속도이다. 예를 들어, RTL(레지스터 전송 레벨)에서조차 프로세서의 동작 시스템을 부팅하는데 시간이 많이 걸린다. 시뮬레이션 속도를 향상시키기 위해 2개의 방법들 중 하나가 사용된다. 하나는 시뮬레이션을 보다 빨리 실행시키기 위한 보다 높은 레벨의 추상(abstractions)이고, 다른 하나는 하드웨어의 기본형 또는 에뮬레이션이다.
보다 높은 추상 모델들의 경우, 메모리 및 프로세서 코어들과 버스 기능 모델들 및 모니터들이 통신 블록들과 함께 트랜잭션들을 생성하고 검사하는데 사용되기 때문에, 기능 코어들, 행동 혹은 ISA(명령 세트 구조; instruction set architecture) 모델들용으로 RTL 모델들이 사용된다. 미디어 프로세서로서의 SoC에 있어서, 소정의 어플리케이션 코드는 시뮬레이션 환경에서 실행하도록 생성된다. 소프트웨어 어플리케이션들을 적용할 때는 거의 행해질 수 없는데, 실리콘이 작동하고 있는지 아니면 완전히 교착 상태(dead) 인지를 검사하고 기본 버그들을 찾는 것에 제한된다. 오늘날, 에러들은 통신 인터페이스의 버스 모니터 혹은 시퀀스 검사기/모니터를 사용하여 수동으로 검출된다. 그러나, 시뮬레이션 속도는 임의의 합당한 사이즈의 어플리케이션을 실행시키기에는 너무 느린 대략 초당 10 사이클이다.
하드웨어 및 소프트웨어가 동시 방식(concurrent way)으로 시뮬레이트될 때, 공동-시뮬레이션(co-simulation)이라 칭한다. 하드웨어는 C 언어 함수로 모델링될 수 있고, 전체 시스템은 단일 C 언어 프로그램 처럼 수행될 수 있다. 그러나, 그것은 구현 레벨(implementation level)에 있지 않으므로 설계 검증이 아니고, 오히려 행동 검증 혹은 타당성 조사(feasibility study)이다. HDL/RTL 기술은 하드웨어 구성요소의 구현을 나타내므로 전체 시스템 검증에 필요하다. 공동-시뮬레이션은 하나 이상의 HDL 스뮬레이터 혹은 C/C++ 프로그램(컴퓨터 작동 시스템으로부터의 컴파일러, 로더, 링커 및 다른 요소들을 필요로 하는)들 간의 통신을 필요로 한다. 따라서, 공동-시뮬레이션에 있어서의 부가적인 문제는 다른 시뮬레이터들 간의 통신이다.
하드웨어 기본형(Hardware Prototyping)
모든 설계 팀들은 제1 실리콘이 전체적으로 기능하도록 시도했지만, 설계에서 처음으로 시스템으로 도입할 때 50% 이상이 실패한다. 이는 시스템 레벨 검증 또는 SoC 레벨 설계 검증의 부족으로 인한 것이다. 제1 시도를 신뢰성있게 성공시키기 위해서는, 보다 실제적인 어플리케이션들이 시뮬레이트되어야만 한다. 시뮬레이션 시간이 적합치 않게 길기 때문에, 오늘날로서는 상당히 비용이 많이 들더라도 실리콘 기본형들(prototypes)을 사용하는 방법밖에 없다. 유용한 기술들은 FPGA/ LPGA 및 에뮬레이션이다.
보다 소형의 설계를 위해, FPGA(field programmable gate array) 기본형 또는 LPGA(laser programmable gate array) 기본형이 제조될 수 있다. FPGA 및 LPGA는 비록 게이트 카운트 용량 및 ASIC의 속도가 부족하지만, 보다 소형의 블록들 또는 코어들에게는 양호한 반면, 전체 SoC에게는 적합하지 않다. 몇몇 FPGA들은 회로 보드에서 상호 접속될 수 있고 전체 SoC의 기본형을 만드는데 사용될 수 있다. 이러한 경우에, 버그 픽스가 SoC 칩의 재분할(re-partitioning)을 요구하면 FPGA들 간의 상호 접속들이 변형되어 새로운 회로 보드를 필요로 하게 되므로 변형하는데 비용과 시간이 상당히 많이 든다.
에뮬레이션 기술은 대안으로 대형 칩들을 위해 FPGA 집합을 제공한다. 프로그램 가능한 상호 접속, 고정 보드 설계들, 비교적 큰 게이트 카운트들과 특정 메모리 및 프로세서 서포트를 제공한다. 에뮬레이션은 전체 설계가 에뮬레이션 엔진 자체로 로드될 수 있는 경우 시뮬레이션 보다는 빠른 성능을 제공할 수 있다. 그러나, 실제 실리콘에 비해 실행 속도가 여전히 상당히 느리다. 칩 데이터 또는 테스트벤치 데이터의 상당한 부분이 호스트 컴퓨터에 로드되면 에뮬레이션 성능은 더 떨어진다. 상기 방법의 또 하나의 결점은 그것의 비용에 있다. 오늘날 상업적으로 유용한 모든 에뮬레이션 시스템들은 백만 달러가 넘는다.
설계가 너무 길 때(multi-million transistors; 멀티-밀리언 트랜지스터들), 실제 실리콘 기본형을 만들어서 최종 시스템을 디버그하는 것이 현재로서는 유일한 방법이다. 이러한 상황에서, 새로운 실리콘을 실행하지 않고 처음 몇 개의 버그들을 위해 동일한 실리콘이 사용될 수 있다. 전체 공정은 두세개의 실리콘 실행들(fabrication cycles; 제조 사이클들)을 필요로 하는데, 각각의 실행은 전체 제품 개발에 대하여 상당한 비용을 추가시킨다.
상술된 바와 같이, 현존 기술은 성능, 비용, 및 속도면에서 SoC 설계를 효율적으로 테스트하고 검증을 할 수 없다. 따라서, 고속으로 또한 저렴한 비용으로 SoC 설계 검증을 실행할 수 있는 새로운 방법 및 장치가 반도체 산업에서 필요하다.
본 발명의 목적은 각각의 코어 기능, 코어들 간의 상호 접속, 및 전체 시스템 성능에 대한 SoC 설계 검증을 실행할 수 있는 SoC 설계 검증 방법 및 장치를 제공하는데 있다.
본 발명의 다른 목적은 빠른 속도와 저렴한 비용으로 SoC 설계 검증을 실행할 수 있는 SoC 설계 검증 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 SoC의 전체 기능을 검증하기 위해 SoC 설계 검증이 행해지는 설계 검증국(design validation station)을 제공하는데 있다.
본 발명의 또 다른 목적은 사용자가 현재 시스템들 보다 더 쉽게 SoC의 코어들의 오류를 디버그할 수 있게 하는 방법 및 장치를 제공하는데 있다.
본 발명은 내장 코어 기저 시스템-온-칩 IC(system-on-a-chip ICs)들의 설계 검증에 있어서 현재의 어려움들을 해결하는 새로운 설계 검증 또는 전체 기능 검증을 위한 방법 및 장치를 제공한다. 본 발명자는 상기 장치가 SoC의 전체 기능을 검증하는데 사용되기 때문에 설계 검증국이라고 한다. 본 명세서에 설명된 시스템 구조는 매우 효율적이고 비용이 적게 들며 임의의 이전 시스템과 기본적으로 상이하다.
본 발명의 한 양상은 다수의 기능 코어들이 집적되어 있는 내장 코어 기저 SoC(시스템-온-칩)들의 설계 검증 방법이다. 상기 방법은 코어 제공자에 의해 제공된 각각의 코어의 실리콘 IC 및 시뮬레이션 테스트벤치들을 사용하여, SoC에 집적될 개별 코어들을 검증하는 단계; SoC 설계자에 의해 개발된 시뮬레이션 테스트벤치들과 글루 로직의 FPGA/에뮬레이션을 사용하여 개별 코어들 간의 인터페이스, 코어들의 온-칩 버스들, 및 글루 로직을 검증하는 단계; 코어-투-코어 타이밍과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계; 및 전체 SoC 및 어플리케이션 실행의 시뮬레이션 테스트벤치를 사용하여 전체 설계 검증을 실행하는 단계를 포함한다.
본 발명의 다른 양상은 SoC의 설계 검증을 위한 장치이다. 상기 장치는 사용자와 인터페이스하고 설계 검증을 위한 장치의 전체 동작을 제어하기 위한 메인 시스템 컴퓨터, 메인 시스템 컴퓨터로부터의 테스트벤치 데이터를 수신하고 SoC에 집적될 다수의 기능 코어들을 테스트하기 위해 테스트벤치 데이터를 사용하여 테스트 패턴들을 생성하는 다수의 검증 유닛들, 및 다수의 검증 유닛들과 메인 시스템 컴퓨터를 인터페이스하는 시스템 버스를 포함한다. 본 발명의 장치에 있어서, 다수의 실리콘 IC들은 검증 유닛들로부터의 테스트 패턴을 수신하기 위해 검증 유닛에 접속되고 검증 유닛과 메인 시스템 컴퓨터에 의해 평가될 응답 출력들을 생성한다. 실리콘 IC들은 SoC에 집적될 기능 코어들과 동일한 내부 구조 및 기능을 포함한다.
도 1은 기능 코어들의 설계에서의 추상 레벨들과 관련 검증 방법들을 도시한 도면.
도 2는 본 발명에 따른 시스템-온-칩(SoC; system-on-a chip) IC의 전체 개념 및 설계 검증 절차를 도시한 순서도.
도 3은 전자 설계 자동화(EDA; electonic design automation) 환경과 본 발명의 설계 검증국 간의 관계를 포함하는 본 발명의 설계 검증의 전체 개념을 도시한 개략 블록도.
도 4a는 도 3의 EDA 환경에서 설계된 SoC의 일례를 도시한 블록도.
도 4b는 도 3의 설계 검증국의 기본 구성의 일례를 도시한 블록도.
도 5는 다수의 검증 유닛들(VU; verification units)이 제공되는 본 발명의 설계 검증국의 구성의 일례를 보다 상세히 도시한 블록도.
도 6은 한 형태의 이벤트 테스터(event tester)를 갖는 도 5의 검증 유닛(VU)의 구성의 일례를 도시한 블록도.
도 7은 테스트 중 SoC의 글루 로직을 평가하기 위한 검증 유닛의 구조의 일례를 도시한 블록도.
도 8은 테스트 중 SoC의 글루 로직을 평가하기 위한 검증 유닛의 구조의 다른 일례를 도시한 블록도.
도 9는 하이 레벨 어플리케이션 언어들을 지지하는 본 발명의 설계 검증국의 다른 일례를 도시한 블록도.
도 10은 테스트될 장착 기능 코어들과 성능 보드(performance board)와의 구조 관계를 도시하는 본 발명의 설계 검증국의 또 다른 일례를 도시한 블록도.
도 11은 다수의 검증 유닛(VU)들이 메인 시스템 컴퓨터에 의해 직접 제어되는 본 발명의 설계 검증국의 또 다른 일례를 도시한 블록도.
<도면의 주요 부분에 대한 부호의 설명>
41 : EDA(전자 설계 자동화)
43 : 시스템-온-칩(SoC)
45 : 설계 데이터 파일
62 : 메인 시스템 CPU
64 : 시스템 버스
66 : 검증 유닛
67 : 제어 CPU
68 : 실리콘 IC
본 발명의 SoC 설계 검증의 전체 흐름은 도 2에 도시되어 있다. 검증 방법은 개별 코어들, 온-칩 버스와 글루 로직을 상호 접속하고, 타이밍을 검증하고, 최종적으로 SoC의 전체 시스템 성능을 검증하는 4 단계의 시스템 절차를 토대로 한다.
특히, 단계 S31에서, 검증 절차는 제일 먼저 실리콘 IC들 및 코어 기능 테스트벤치들을 사용하여 개별 코어들을 검증한다. 그 후, 다음 단계 S32에서, 글루 로직용 FPGA/에뮬레이션 유닛을 사용하여 온-칩 버스의 기능들 및 글루 로직을 포함하는 코어들 간의 상호 접속을 검증한다. 다음 단계 S33에서, 검증 방법은 코어-투-코어 통신용 시뮬레이션 테스트벤치들 및 SoC 레벨 임계 경로들을 사용하여 코어들의 타이밍을 검증한다. 최종 단계 S34에서, 전체 SoC 설계 검증이 전체기능 시뮬레이션 테스트벤치들을 사용하고 어플리케이션 소프트웨어를 실행시킴으로써 이루어진다.
본 발명의 방법은 새로운 테스트 시스템의 전체 개념과 전자 설계 자동화(EDA) 환경과의 관계를 설명한 도 3에 도시된 장치로 구현된다. 도 3의 좌측 상부는 SoC(43)와 같은 반도체 장치들이 CAD 도구들을 사용하여 설계되는 EDA를 도시한 것이다. 도 3의 우측 하부에서, 본 발명의 설계 검증국(50)이 구현된다. 설계 검증국(50)은 SoC에 집적될 개별 코어들을 갖는 실제 반도체 IC들 뿐만 아니라 테스트 될 SoC(43)의 설계 환경에서 생성된 테스트 데이터 및 설계 데이터를 토대로 SoC 설계 검증을 실행한다.
이 실시예에서, SoC(43)는 기능 코어들(A, B, C)을 포함하는데, 자세한 구조는 도 4a에 도시되어 있다. EDA 환경(41)에서 SoC(43)를 설계한 후에, 설계 데이터 파일(45) 및 테스트 설계 파일(53)이 획득된다. 다양한 데이터 변환 공정들을 통해, 설계 데이터(45)는 설계된 반도체 집적 회로를 형성하는 각각의 게이트를 나타내는 물리 레벨 데이터로 변환된다. 물리 레벨 데이터를 토대로, 실제 SoC(49)가 반도체 IC 제조 공정(실리콘 공정)에서 생산된다. 그러나, 본 발명에서는 완전한 SoC를 직접 테스트하기 보다는 코어들 A, B 및 C와 같은 SoC (43)의 개별 코어들을 대표하는 분리 IC들이 설계 검증국(50)에서 사용된다.
SoC의 설계 단계를 통해 유도된 테스트 데이터(53)를 사용하여 테스트벤치 (54)에 의한 로직 시뮬레이션을 실행함으로써, 베릴로그/VCD 파일과 같은 데이터 파일(55)이 생성된다. 이는 개별 코어들 및/또는 SoC의 전체 시스템의 입출력 관계들을 보여 준다. 이하에 설명된 바와 같이, VCD 파일(55)의 데이터는 이벤트 기저 포맷으로 되어 있다. VCD 파일(55)의 데이터는 설계 검증국(50)에서 이벤트 파일들(58)로 전송된다. 설계 검증국(50)은 도 2의 상술된 절차에서의 테스트를 실행하기 위해 다수의 이벤트 테스터들(59)(도 4b의 검증 유닛들(66))을 포함한다.
설계 검증국(50)의 기본 구조의 일례가 소프트웨어/하드웨어 공동 개발/검증 (co-development/verification)을 위해 도 4b의 개략도에 도시되어 있다. 설계 검증국(50)은 테스트될 장치들의 핀에 따라 재구성될 수 있는 다수의 검증 유닛들 (VU)(661-66N)을 포함한다. 검증 유닛들(661-66N)은 평가될 SoC에 집적될 대응 코어들(A-N)의 기능과 회로 구조를 갖는 실리콘 IC들(681-68N)에게 할당된다.
메인 시스템 CPU(62)는 검증 절차의 전체 동작을 제어한다. 메인 시스템 CPU(62) 및 검증 유닛들(661-66N)은 시스템 버스(64)를 통해 접속된다. 검증 절차를 시작하기 전에, 메인 시스템 CPU(62)가 각각의 코어들(A-N)의 설계 단계로부터 유도된 설계 데이터(61) 및 테스트벤치 데이터(63)와 함께 제공된다.
설계 검증국(50)은 도 5에 더 상세히 도시되어 있는데, 여기서 설계 검증국은 기술된 목적들만을 위한 다수의 설계 검증국들(DVS1-DVS6)로 도시되어 있다. 이 일례는 코어들(A-E) 및 글루 로직을 갖는 SoC가 설계 타당성으로 평가되는 케이스를 도시한 것이다. 이러한 실시예에서, 검증 기지국(DVS1)은 "버스 마스터 코어"(코어 A)를 테스트하도록 구성되고, 검증 기지국(DVS2)은 "프로세서 코어"(코어 B)를테스트하도록 구성되고, 검증 기지국들(DVS3, DVS4)은 "기능 특정 코어들"(코어들 C 및 D)을 테스트하도록 구성되고, 검증 기지국(DVS5)은 "메모리 코어"(코어 E)를 테스트하도록 구성된다. 유사하게, 검증 기지국(DVS6)은 SoC의 "글루 로직"을 테스트하도록 구성된다. 본 발명에서, 상술된 코어들(A-E)은 설계 검증을 목적으로 분리 실리콘 IC들(681-685)로 공식화된다.
도 4a 및 도 5에 도시된 바와 같이, 시스템은 버스 기저 구조(bus based architecture)를 포함한다. 시스템 버스(64)는 데이터가 메인 시스템 CPU(62)로부터 검증 유닛들(661-665)로 전송될 수 있게 하는 VME, VXI, 또는 PCI 버스와 같은 산업 표준 버스(industry standard bus)일 수 있다. 시스템 핀들은 사용자에 의해 구성될 수 있다. 즉, 사용자는 개별 코어들(A-E)의 실리콘 IC들(681-685)의 입출력에 따라 검증 유닛(VU)들의 테스트 핀들을 그룹화할 수 있다. 실리콘 IC들(681-685)은 핀 일렉트로닉스 및 장치 로드 보드들(691-695)(이하 "핀 일렉트로닉스"라고 함)에 장착되고 상호 접속 버스(71)를 통해 서로 접속된다.
도 5에 도시된 바와 같이, 각각의 핀-그룹(할당된 검증 유닛)은 개별 코어들 및 SoC 상태의 모니터링 뿐만 아니라 데이터 흐름, 실리콘 코어들(681-685)에 대한 시뮬레이션 데이터의 어플리케이션, 응답 비교, 개별 블록들/코어들에 대한 다양한 작업들의 스케줄링(scheduling)을 제어하는 제어 CPU(67)를 포함한다. 제어CPU들(671-676)은 서로 접속되어 있다. 제어 CPU들(671-676)은 또한 버스 시스템(64)을 통해 메인 시스템 CPU에 접속된다. 글루 로직을 위한 설계 검증국(DVS6)에서, 동기화 유닛(75) 및 중재 유닛(arbitration unit)(76)이 메인 시스템 CPU(62)와 설계 검증국들(DVS1-DVS6)의 제어 CPU들(671-676) 간의 데이터 전송을 향상시키기 위해 제공된다.
검증 공정에 앞서, 메인 시스템 CPU(62)는 개별 테스트벤치 데이터(78)를 초기화하고 테스트벤치 데이터를 검증 유닛들(661-66N)에게 분배한다. 메인 시스템 CPU(62)는 사용자 인터페이스, 설계의 공동 검증을 위해 코어들에서의 소프트웨어 어플리케이션 실행, 및 검증 유닛들의 다중 분배 제어를 포함하는 설계 검증의 전체 절차를 제어한다. 각각의 설계 검증국(DVS)에서, 검증 유닛(VU)(66)은 코어의 대응 실리콘 IC(68)로의 테스트벤치 데이터를 토대로 생성된 테스트 패턴을 사용한다. 양호하게, 각각의 검증 유닛(VU)(66)은 이벤트 테스터로서 구성되는데 이에 대한 설명은 후에 기술될 것이다.
이벤트들(테스트 패턴들)은 도 5의 핀 일렉트로닉스들(69)을 통해 DUT에 적용된다. 핀 일렉트로닉스들(69)은 실리콘 IC(68; DUT)의 할당된 장치 핀들과 테스트 핀들을 물리적으로 접속시킨다. 기본적으로, 핀 일렉트로닉스들(69)은 검증 유닛(VU; 66)과 테스트될 실리콘 IC(68) 간의 인터페이스를 위해 인터페이스 회로를 포함한다. 예를 들어, 각각의 인터페이스 회로는 성능 보드 뿐만 아니라 하나 이상의 구동기와 비교기로 구성된다. 구동기는 DUT의 입력 핀에 테스트 패턴을 적용하고 비교기(도시되지 않음)는 DUT의 응답 출력을 예측 값과 비교한다. 성능 보드는 테스트 중에 DUT를 기계적으로 접속하는데 사용된다.
개별 코어들의 검증(Verification of Individual Cores)
본 발명에서, 개별 코어들(A-E)의 검증을 위해 개별 코어들의 실리콘 IC들 (681-685)이 사용된다. 이 실리콘 IC들(68)은 제조 파트너 회사들 뿐만 아니라 코어 제공자 회사들에 의해서도 일반적으로 사용된다. 전체 시스템은 도 4a와 도 5에 도시된 코어당 하나의 검증 유닛(66)을 매핑하도록 재구성된다. 검증을 위해, 개별 코어들의 테스트벤치들이 코어 각각의 입출력 정보와 함께 메인 시스템 CPU(62)에 로드된다.
메인 시스템 CPU(62)는 코어 당 하나의 검증 유닛(VU; 66)으로 시스템 핀들을 재구성하고 제어 CPU(67)를 할당한다. 시스템 성능을 강화하기 위해, 검증 유닛(VU; 66) 당 하나의 제어 CPU(67) 대신 핀 당 하나의 제어 CPU(67) 방식으로 상기 개념을 구현할 수 있음을 주목해야만 한다. 이러한 구현은 도 4a와 도 5에 도시된 시스템의 직접적이고 자연적인 강화(enhancement)인데 이에 대한 설명은 생략된다.
코어의 입출력들을 토대로, 구성 검증 유닛(66)은 2N형태로 64 내지 256개의 핀들 사이 어디에서나 존재할 수 있다. 기본적으로 상기 핀들은 이벤트 테스터 채널들이고 구동/비교 동작을 허용한다. 도 4b와 도 5에 도시된 시스템은 이러한 핀들의 재구성을 허용하고 핀들을 개별 코어들위에 매핑한다. 따라서, 본질적으로, 전체 시스템은 도 5에 도시된 바와 같이 하나의 IP 또는 코어로 각각 매핑되는 다수의 검증 유닛들(66)로 구성된다. 따라서, 각각의 개별 코어에 대해, 할당된 VU(66)가 전용(dedicated) 이벤트 기저 검증 시스템이라고 여겨진다. 이벤트 기저 검증 시스템의 일례는 미국 특허 출원 제09/406,300호, "이벤트 기저 반도체 테스트 시스템(Event Based Semiconductor Test System)"에 기술되어 있고, 이후에 간단하게 설명될 것이다. 응답이 관측되어 검증 유닛(66)에 의해 시뮬레이션 데이터와 비교될 수 있을 뿐만 아니라, (기능 및 구조 검사를 위한) 코어의 이벤트 기저 시뮬레이션 벡터가 코어(실리콘 IC; 68)에 적용될 수도 있다.
코어 기능 및 타이밍 검증에 있어서, 메인 시스템 CPU(62)는 코어 시뮬레이션 테스트벤치 데이터를 관련 검증 유닛(VU; 66)의 제어 CPU(67)에 전달한다. 상기 데이터는 코어의 설계-시뮬레이션 테스트벤치이다. 상기 데이터는 신호 값이 0으로부터 1로 또는 1로부터 0으로 변경될 때의 순간들, 즉, 이벤트 기저 테스트 패턴들을 식별하기 위해 신호 값들과 타이밍 정보를 포함한다. 따라서, 변환이 필요 없고 데이터가 직접 코어 실리콘(68)에 적용된다.
데이터가 설계 시뮬레이션 데이터이면, 결함 없는 코어가 시뮬레이션에 의해 예측된 대로 정확하게 실행된다. 이러한 응답은 관측되어서 검증 유닛(66)의 제어 CPU(67)에 의해 비교된다. 시뮬레이션으로부터의 임의의 일탈(deviation)은 제어 CPU(67)에 의해 식별된다. 이는 검증 유닛(VU; 66)에 코어 IC의 임의의 오류가 존재함을 알려 준다. 이 단계는 SoC 레벨 설계 검증 전에 검증 유닛(VU; 66)에 대한 코어의 오류 없는 실리콘 IC를 갖게 한다.
또한 본 발명의 방법 및 장치가 사용자로 하여금 현재 시스템들 보다 훨씬 더 쉽게 코어의 오류를 디버그할 수 있게 함을 주목해야만 한다. 이는 본 발명의 검증 시스템의 환경이 고유 설계 시뮬레이션 환경과 동일하기 때문인제, 즉 이벤트 기저 데이터를 사용하는 EDA 환경이기 때문이다.
검증 유닛(Verification Unit; 이벤트 테스터)
상술된 바와 같이, 본 발명에 있어서 각각의 검증 유닛(66)은 이벤트 테스터로서 구성된다. 이벤트 테스터의 일례가 도 6을 참조하여 간단하게 설명된다. 보다 상세한 설명은 본 발명과 동일한 출원인이 소유한 상술된 미국 특허 출원 제09/406,300호, "이벤트 기저 반도체 테스트 시스템"에 기술되어 있다. 이벤트 테스터에서, 테스트 패턴은 기준 포인트로부터의 시간 길이 파라미터로서 0 에서 1로 또는 1에서 0으로의 신호 값 변경에 의해 기술된다. 전형적인 사이클 기저 테스트 데이터에 있어서, 테스트 패턴은 각각의 테스트 사이클에 대한 타이밍 데이터, 파형 데이터 및 벡터 데이터의 결합에 의해 묘사된다. 오늘날의 설계 자동화 도구들은 설계된 반도체 장치를 위한 로직 시뮬레이션을 실행할 때 이벤트 기저 테스트 데이터를 생성하기 때문에, 이벤트 기저 테스트 시스템은 반도체 장치의 설계 단계에서 생성된 시뮬레이션 데이터를 직접 사용할 수 있다.
도 6의 실시예에 있어서, 검증 유닛(66)은 핀-유닛 버스(63), 내부 버스 (85), 어드레스 시퀀서(88), 고장 메모리(87), 이벤트 메모리(90), 압축 해제 유닛 (92), 타이밍 카운트 및 스케일링 로직(93), 및 이벤트 생성 유닛(94)에 접속된 검증 유닛 기록 디코더(83)와 제어 CPU(67)를 포함한다. 검증 유닛(66)은 핀 일렉트로닉스들을 통해 코어를 포함하는 실리콘 IC(68)에 테스트 패턴을 제공한다.
검증 유닛 기록 디코더(83)는 메인 시스템 CPU(62)가 시스템 버스(64)에 그룹 선택 어드레스를 송신함으로써 검증 유닛들(66)을 구성할 수 있도록 검증 유닛 (66)의 식별명(identification)을 보여주기 위한 것이다. 내부 버스(85)는 하드웨어 이벤트 테스터의 버스이며, 어드레스 시퀀서(88), 고장 메모리(87), 압축 해제 유닛(92), 타이밍 카운트 및 스케일링 로직(93), 및 이벤트 생성 유닛(94)과 같은 대부분의 기능 블록들과 공통으로 접속된다.
상술된 바와 같이, 제어 CPU(67)는 메인 시스템 CPU(62)로부터의 코어 테스트벤치 데이터를 토대로 검증 유닛(66)의 다른 기능 블록들에게 명령들을 제공한다. 고장 메모리(87)는 어드레스 시퀀서(88)에 의해 제공된 어드레스 정보와 함께, 비교기(도시되지 않음)로부터의 코어의 실리콘 IC(68)의 고장 정보와 같은 테스트 결과들을 기억한다. 고장 메모리(87)에 기억된 정보는 코어들과 SoC의 고장 분석 단계에서 사용된다.
어드레스 시퀀서(88)는 이벤트 메모리(90)에게 어드레스 데이터를 제공한다. 이벤트 메모리(90)는 각각의 이벤트에 대한 타이밍 데이터를 기억한다. 예를 들어, 이벤트 메모리(90)는 2개의 분리된 방식들로 이벤트 데이터를 기억한다. 하나는 마스터 (참조) 클럭의 한 사이클의 정수 배인 타이밍 데이터를 기억하기 위한 것이고, 다른 하나는 기준 클럭의 한 사이클의 소수(fraction) 또는 소수들인 타이밍 데이터를 기억하기 위한 것이다.
바람직하게는, 이벤트 메모리(90)의 타이밍 데이터가 필요한 메모리 용량을감소시키기 위해 압축된다. 압축 해제 유닛(92)은 이벤트 메모리(90)로부터 압축된 데이터를 수신하여서 압축 해제 공정을 통해 타이밍 데이터를 재생성한다. 압축 해제 타이밍 데이터는 타이밍 카운트 및 스케일링 로직(93)에 제공된다.
타이밍 카운트 및 스케일링 로직(93)은 이벤트 메모리(90)로부터의 타이밍 데이터를 근거로 현재의 이벤트를 생성한다. 전체 타이밍 데이터는 현재의 타이밍 데이터를 이전 타이밍 데이터와 합산함으로써 생성될 수 있다. 타이밍 카운트 및 스케일링 로직(93)은 또한 스케일링 팩터에 비례하여 타이밍 데이터를 수정하도록 동작한다. 타이밍 데이터의 스케일링 동작은 타이밍 데이터(각각의 델타 시간 또는 절대 시간)에 스케일링 팩터를 곱함으로써 이루어진다. 이벤트 생성 유닛 (94)은 타이밍 카운트 및 스케일링 로직(93)으로부터의 전체 타이밍 데이터를 근거로 실 시간 이벤트 신호들을 생성한다. 이벤트 생성 유닛(94)은 핀 일렉트로닉스들(69)에게 이벤트 신호들(테스트 패턴들)을 제공한다.
인터페이스, 온-칩 버스 및 글루 로직 검증(Interface, On-Chip Bus and Glue Logic Verification)
SoC 설계의 대부분은 미리 설계된 코어들로 구성되지만, 다양한 코어들을 접속하도록 할 뿐만 아니라 소정의 특정 기능들을 실행하도록 코어 인테그레이터(SoC 설계자)에 의해 설계된 항상 일정한 로직이 존재한다. 상기 로직은 일반적으로 "글루 로직"이라고 한다. 전형적으로, 글루 로직은 주문 설계를 통해 구현되어져 왔지만, 최근에는 내장된 FPGA(field programmable gate array)이 이러한 로직을 구현하도록 제안되어 왔다. 상술된 바와 같이, 현재의 기술에 있어서 매우 불완전한 검증은 상기 로직으로 끝났다.
제안된 방법에 있어서, 상기 로직의 검증은 글루 로직 검증을 위한 설계 검증국(DVS6)으로 도 5에 도시된 전용 서브-시스템에 의해 이루어 졌다. 기본적인 방법은 다음과 같다:
(1) SoC 온-칩 버스를 모델링하기 위해 도 5에 도시된 바와 같이 다양한 실리콘 IC들(68)을 접속하는 상호 접속 버스(71)를 사용. 상호 접속 버스(71)는 온-칩 버스의 행동을 모델링하는 다양한 코어들(A-E)을 접속하는 시스템 버스이다. 이 버스는 SoC 레벨(하나의 코어에서부터 다른 코어로)에서의 명령 및 데이터 흐름을 설계 검증국 레벨(하나의 검증 유닛으로부터 다른 검증 유닛으로)에서의 명령 및 데이터 흐름으로 매핑한다. 따라서, 이 버스는 개별 코어들의 각각의 인터페이스의 모든 데이터 트랜잭션들 뿐만 아니라 SoC 온-칩 버스의 임의의 요구/승인 프로토콜을 포착한다.
(2) 전용 서브-시스템에 글루 로직을 구현하는 FPGA(field programmable gate array)를 사용. 다른 기법(alternate approach)은 전용 서브-시스템에 글루 로직을 에뮬레이트하는 것이다. 2가지 기법들 모두가 도 7과 도 8에 각각 도시되어 있다.
도 7은 에뮬레이터 서브-시스템을 도시한 것이다. 이 기법에서, 임의의 상업용 에뮬레이터 시스템이 사용될 수 있다. 도 7에서, 에뮬레이터(72)는 글루 로직의 합성 가능 RTL과 글루 로직 테스트벤치 파일(77)의 테스트벤치 데이터와 함께로드된다. 합성 유닛 및 중재 유닛들은 다른 검증 유닛들(66)과의 인터페이스를 위해 상업용 에뮬레이터와 함께 사용된다. 제어 CPU(67)는 메인 시스템 CPU(62)와의 동기화 및 통신 작업들을 실행한다.
도 8은 FPGA 접근을 도시한 것이다. 이러한 접근에 있어서, 글루 로직 설계는 FPGA(73)를 사용하여 구현되고 실리콘 IP 또는 코어로서 FPGA(73)를 처리한다. 글루 로직이, 내장된 FPGA에 의해 SoC에서 구현되면, FPGA(73)는 내장된 FPGA(글루 로직)의 스탠드 얼론(stand-alone) 복사품이다. FPGA(73)는 독립 IP로서 사용되고 전용 검증 유닛(VU)에 할당된다.
글루 로직이 주문 설계에 의해 SoC에서 구현되면, 글루 로직의 RTL은 전용 검증 유닛에서 사용되는 스탠드 얼론 FPGA에서 구현된다. 이 경우에, 대부분의 시간에 FPGA의 속도가 SoC의 주문형 글루 로직보다 더 느리다. 따라서, 전용 (dedicated) 유닛은 추가의 동기화 유닛(75)과 버스 중재 유닛(76)을 필요로 한다. 느린 동작 속도 외에도 검증 유닛은 동작이 임의의 다른 검증 유닛과 유사할 뿐만 아니라 임의의 다른 검증 유닛과 동일하다.
타이밍 검증(Timing Verification)
개별 코어들의 기능, 인터페이스 및 글루 로직이 검증되면, 타이밍 검증이 SoC 레벨 임계 경로들에서 검사된다. 도 2의 단계 31 및 32의 완료 후에, SoC의 모든 개별 부분들과 상호 접속이 본 발명의 설계 검증국에서 사용됨을 주목해야만 한다. 개별 코어들의 타이밍이 검증되었을 뿐만 아니라 개별 코어들의 기능 및 글루 로직이 검증되었다. 따라서, 전체 어플리케이션들 뿐만 아니라 SoC 레벨 시뮬레이션 테스트벤치가 전체 시스템에서 실행될 수 있고, 임의의 에러의 경우, 코어를 집적할 때 에러가 나타난다는 것을 알 수 있다.
본 발명의 방법에 있어서, 코어-투-코어 타이밍의 정확성과 SoC 레벨에서의 타이밍 임계 경로들의 정확성을 검증하는 적은 수의 SoC 레벨 시뮬레이션 벡터들을 실행하는 것이 바람직하다. 상기 목적을 위해, SoC 레벨 시뮬레이션 테스트벤치가 메인 CPU에 로드된다. SoC 설계 동안, 상기 시뮬레이션 테스트벤치들이 개발되어 설계의 타이밍 임계 경로들을 실행시킨다. 이러한 테스트벤치들(벡터들)의 데이터는 이벤트 형태이고, 오늘날의 기술에 있어서 베릴로그/VHDL 시뮬레이터로부터 획득된 VCD(value change dump) 포맷이 일반적으로 사용된다.
테스트벤치 데이터의 벡터들은 SoC의 상이한 부분들을 접속하는 SoC의 다양한 타이밍 임계 경로들을 실행시킨다. 상술된 바와 같이, 본 발명의 설계 검증국은 SoC의 모든 구성 요소들을 갖는데, 타이밍 검증을 위한 시뮬레이션 테스트벤치가 실행되어 시뮬레이션과 동일한 결과들을 생성할 것으로 예측된다. 시뮬레이션 결과들로부터의 임의의 변형은 에러를 식별하는데, 에러는 설계 시뮬레이션 환경과 동일한 본 발명의 이벤트 기저 환경에서 쉽게 디버그된다.
SoC 또는 전체 설계 확인의 검증(Verification of SoC or Overall Design Validation)
시스템으로서의 SoC 전체 기능 검증을 위해, 설계 시뮬레이션 중에 개발된 SoC 레벨 기능 벡터들이 설계 검증국에서 실행된다. 또한 상기 벡터들은 이벤트 형태이다. SoC 설계(베릴로그/VHDL RTL 모델 또는 행동 모델)에서 실행되는 소프트웨어 어플리케이션에 의해 벡터들이 수회 생성된다. 그러나, 벡터들은 SoC의 상이한 경로들을 동시에 또는 상이한 시간에 실행시키므로, SoC 전체 행동은 결합된 응답에 의해 결정된다.
어플리케이션 프로그램이 C/C++ 언어와 같은 하이 레벨 언어로 되어 있거나 이진 형태로 되어 있을 때, API(application program interface) 및 PLI(program language interface)가 도 9에 도시된 바와 같이 외부 세계와 메인 시스템 CPU(62) 간의 통신을 위해서 뿐만 아니라 메인 시스템 CPU(62)에 상기 프로그램들을 로드하기 위해 필요하다.
이를 달성하기 위해, 메인 시스템 CPU(62)는 (도 5 및 도 9에 멀티-BP로 도시된) 다중 버스 프로토콜을 갖는 다중 분배 제어(multiple distribution control)를 포함한다. 메인 시스템 CPU(62)는 어플리케이션 작업을 다수의 서브-작업들로 분할하고 스케줄링해서(schedule), 개별 코어들로 매핑되는 상이한 검증 유닛들(66)에게 서브-작업들을 할당하도록 어플리케이션 작업(소프트웨어 어플리케이션)에 대한 "포크(Fork)" 동작을 실행한다. 상기 "포크" 동작은 베릴로그/VHDL 또는 심지어 C/C++ 언어와 같은 하이 레벨 언어로 된 어플리케이션 소프트웨어에 대하여서 실행됨을 주목해야만 한다. 따라서, 다중 분배 제어를 갖는 시스템 컴파일러가 다수의 검증 유닛들(66)로 이루어진 분배 계산 환경에서 실행시키기 위해 어플리케이션 작업에 대하여 "포크" 동작을 실행시킬 수 있다.
이러한 "포크" 동작 후에, 서브-작업들은 시스템 버스(64)를 통해 개별 검증 유닛들(66)에게 분배된다. 제어 CPU(67), 중재 유닛(76) 및 동기화 클럭 유닛(75)은 메인 시스템 CPU(62)로부터 개별 검증 유닛들(66)의 제어 CPU(67)로의 통신 및 에러 없는 데이터 전송을 허용한다. 제어 CPU(67), 중재 유닛(76) 및 동기화 클럭 유닛(75)을 갖는 구조는 도 9에 도시되어 있다.
서브-작업 할당을 근거로, 제어 CPU들(67)은 이벤트 기저 벡터들을 개별 코어들에게 적용시키고 그로부터의 응답을 수집한다. 이 응답은 에러 없는 데이터 전송을 위해 버스 제어 CPU, 버스 중재 유닛 및 동기화 유닛을 다시 사용하여 메인 시스템 CPU(62)에게 전달된다. 메인 시스템 CPU(62)는 "연결(Join)" 동작을 실행하여 다양한 응답들을 병합하고 SoC 레벨 응답을 형성한다. 상기 응답은 SoC가 정확한 동작을 실행했는지를 결정하기 위해 시뮬레이션 응답과 비교된다. 이것이 어플리케이션 실행이면, 그 때 상기 응답은 어플리케이션의 예측된 결과이다. 예를 들어, 비디오 어플리케이션 실행이 픽쳐 프레임의 디스플레이를 야기하게 된다. 환경이 이벤트 기저 고유 설계 환경과 동일한 것이기 때문에 시뮬레이션 데이터 또는 예측된 어플리케이션 출력의 변경은 제어 CPU(67)에 의해 식별되고 설계 엔지니어에 의해 쉽게 디버그된다.
고정 또는 성능 보드(Fixture or Performance Board)
본 발명의 설계 검증국은 실리콘 코어들(68)과 글루 로직(FPGA)이 인터페이스하는 성능 보드를 필요로 한다. 도 5 내지 도 9의 실시예에서, 장치 로드 보드 또는 성능 보드(69)가 코어(각각의 설계 검증국(DVS)) 마다 제공된다. 도 10의 블록도는 성능 보드에 대한 다른 일례의 구조를 도시한 것이다. 이러한 실시예에서, 성능 보드(90)는 테스트될 모든 코어들 및 글루 로직을 포함한다. 커넥터들(95)은검증 유닛(66)과 실리콘 코어(68)를 연결하기 위해 그 사이에 제공된다.
성능 보드(90)는 다층 프린트 회로 보드(multi-layered printed circuit board)인 종래의 테스터의 성능 보드와 매우 유사하다. 상기 성능 보드(90)와 테스터 성능 보드와의 주요한 차이는 테스터 성능 보드가 오직 하나의 DUT만을 포함하지만, 본 발명의 설계 검증국의 상기 성능 보드(90)는 모든 코어들의 실리콘 IC들(68)과 글루 로직(FPGA)을 포함한다는 점이다.
도 11은 다수의 검증 유닛들(VU)이 메인 시스템 컴퓨터에 의해 직접 제어되는 본 발명의 설계 검증국의 다른 실시예를 도시한 것이다. 이러한 실시예에서는 이전 실시예들과 달리, 각각의 설계 검증국이 제어 CPU를 포함하지 않고 시스템 버스(64)를 통해 메인 시스템 컴퓨터(62)에 의해 집적 제어된다. 따라서, 동기화, 코어들의 응답 평가, 타이밍 평가, 및 전체 SoC 평가 등과 같은 모든 작업들은 메인 시스템 컴퓨터(62)에 의해 실행된다.
양호한 실시예가 특정하게 도시되고 기술되었지만, 상술된 설명의 견지에서 또한 본 발명의 정신과 목적을 벗어나지 않고 첨부된 청구항들의 범위 내에서 본 발명의 다양한 변형 및 변화가 가능함을 알 수 있다.
본 발명은 각각의 코어 기능, 코어들 간의 상호 접속, 및 전체 시스템 성능에 대한 SoC 설계 검증을 실행할 수 있는 SoC 설계 검증 방법 및 장치를 제공한다.
또한, 본 발명은 빠른 속도와 저렴한 비용으로 SoC 설계 검증을 실행할 수 있는 SoC 설계 검증 방법 및 장치를 제공한다.
또한, 본 발명은 SoC의 전체 기능을 검증하기 위해 SoC 설계 검증이 행해지는 설계 검증국을 제공한다. 본 발명은 내장 코어 기저 시스템-온-칩의 설계 검증의 현재의 어려움들을 해결하는 새로운 설계 검증 또는 전체 기능 검증을 위한 방법 및 장치를 제공한다. 본 명세서에 설명된 시스템 구조는 매우 효율적이고 비용이 적게 들며 임의의 이전 시스템과 기본적으로 상이하다.
본 발명의 검증 시스템의 환경이 고유 설계 시뮬레이션 환경과 동일한 이벤트 기저 데이터를 사용하는 EDA 환경이기 때문에 본 발명은 사용자로 하여금 현재 시스템들 보다 훨씬 더 쉽게 SoC의 코어들의 오류를 디버그할 수 있게 한다.

Claims (33)

  1. 다수의 기능 코어들이 집적되어 있는 내장 코어 기저 SoC(system-on-a-chip)의 설계 검증(design validation)를 위한 방법에 있어서,
    코어 제공자(core provider)에 의해 제공된 코어 각각의 실리콘 IC 및 시뮬레이션 테스트벤치들(simulation testbenches)을 사용하여, SoC에 집적될 개별 코어들을 검증하는 단계;
    SoC 설계자에 의해 개발된 시뮬레이션 테스트벤치들과 글루 로직(glue logic )의 FPGA/에뮬레이션(emulation)을 사용하여 상기 개별 코어들 간의 인터페이스, 상기 코어들의 온-칩 버스들(on-chip buses), 및 글루 로직을 검증하는 단계;
    코어-투-코어 타이밍(core-to-core timings)과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계; 및
    전체 SoC 및 어플리케이션 실행(application runs)의 시뮬레이션 테스트벤치를 사용하여 전체 설계 검증을 실행하는 단계
    를 포함하는 설계 검증 방법.
  2. 제1항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지는 설계 검증 방법.
  3. 제1항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지되, 상기 검증 유닛들의 테스트 핀들이 테스트될 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 방법.
  4. 제1항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지되, 각각의 상기 검증 유닛들은 값들의 변경 및 타이밍에 의해 테스트 패턴을 기술하는 이벤트 데이터를 토대로 테스트 패턴을 생성하는 이벤트 기저 테스터로서 구성되는 설계 검증 방법.
  5. 제4항에 있어서,
    상기 개별 코어들의 상기 시뮬레이션 테스트 벤치가 이벤트 기저 데이터 포맷을 가지며, 이로써 이벤트 기저 테스터인 상기 검증 유닛에 의해 상기 SoC의 코어에 있어서의 오류 디버그를 용이하게 하는 설계 검증 방법.
  6. 다수의 기능 코어들이 집적되어 있는 내장 코어 기저 SoC(system-on-chip)의 설계 검증을 위한 방법에 있어서,
    SoC로 집적될 대응 코어의 회로 구조를 각각 갖는 다수의 실리콘 IC들을 생성하는 단계;
    다수의 검증 유닛들을 제공하고 각각의 상기 검증 유닛을 상기 코어의 각각의 상기 실리콘 IC에 할당하는 단계;
    상기 코어들 간의 접속을 위해 상기 SoC에서 설계된 온-칩 버스(on-chip bus)를 모델링하는 상호 접속 버스로 상기 코어들을 상호 접속하는 단계; 및
    테스트 패턴들을 상기 실리콘 IC들에게 적용시키고 상기 실리콘 IC들의 응답 출력을 모니터함으로써 상기 SoC에 집적될 상기 코어들을 검증하는 단계
    를 포함하되,
    상기 데이트 패턴들은 코어 제공자에 의해 제공된 시뮬레이션 테스트벤치 데이터를 사용함으로써 직접적으로 제공되는 설계 검증 방법.
  7. 제6항에 있어서,
    에뮬레이터에 의해 상기 인터페이스 및 글루 로직을 에뮬레이트함으로써 상기 SoC에 집적될 코어들 및 글루 로직 사이의 인터페이스를 검증하는 단계를 더 포함하는 설계 검증 방법.
  8. 제6항에 있어서,
    FPGA(field programmable gate array)로 상기 인터페이스 및 글루 로직의 기능들을 구현함으로써 상기 SoC에 집적될 코어들 및 글루 로직 간의 인터페이스를 검증하는 단계를 더 포함하는 설계 검증 방법.
  9. 제6항에 있어서,
    SoC 레벨 테스트벤치 데이터를 토대로 생성된 테스트 자극을 상기 개별 코어들의 실리콘 IC들에게 제공함으로써 코어-투-코어 타이밍과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계를 더 포함하는 설계 검증 방법.
  10. 제6항에 있어서,
    전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용함으로써 전체 설계 검증을 실행하는 단계를 더 포함하는 설계 검증 방법.
  11. 제6항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지는 설계 검증 방법.
  12. 제6항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지되, 각각의 상기 검증 유닛들은 값들의 변경 및 타이밍에 의해 테스트 패턴을 기술하는 이벤트 기저 테스트 패턴을 생성하는 이벤트 기저 테스터로서 구성되는 설계 검증 방법.
  13. 제12항에 있어서,
    상기 개별 코어들의 상기 시뮬레이션 테스트벤치가 이벤트 기저 데이터 포맷을 가지며, 이로써 상기 이벤트 기저 테스터인 상기 검증 유닛에 의해 상기 SoC의 상기 코어들에 있어서의 오류 디버그가 용이하게 되는 설계 검증 방법.
  14. 제6항에 있어서,
    다수의 검증 유닛들을 상기 개별 코어들의 상기 실리콘 IC들에게 할당한 후에 상기 검증 단계들이 행해지되, 상기 검증 유닛들의 테스트 핀들은 테스트될 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 방법.
  15. 다수의 기능 코어들이 집적되어 있는 내장 코어 기저 SoC(system-on-chip)의 설계 검증을 위한 장치에 있어서,
    사용자와 인터페이스하고 설계 검증을 위한 장치의 전체 동작을 제어하기 위한 메인 시스템 컴퓨터;
    상기 메인 시스템 컴퓨터로부터 테스트벤치 데이터를 수신하고 SoC에 집적될 다수의 기능 코어들을 테스트하기 위해 상기 테스트벤치 데이터를 사용하여 테스트 패턴들을 생성하며, 상기 메인 시스템 컴퓨터로부터의 상기 테스트벤치 데이터를 수신하는 제어 컴퓨터를 각각 포함하는 다수의 검증 유닛들; 및
    상기 다수의 검증 유닛들과 상기 메인 시스템 컴퓨터를 인터페이스하는 시스템 버스
    를 포함하되,
    다수의 실리콘 IC들은 상기 검증 유닛들로부터 상기 테스트 패턴을 수신하고 상기 검증 유닛들과 메인 시스템 컴퓨터에 의해 평가될 응답 출력들을 생성하기 위해 상기 검증 유닛들과 접속되며, 상기 실리콘 IC들은 상기 SoC에 집적될 상기 기능 코어들과 동일한 내부 구조를 갖는 설계 검증 장치.
  16. 제15항에 있어서,
    각각의 상기 검증 유닛의 상기 제어 컴퓨터가 상기 시스템 버스를 통해 상기 메인 시스템 컴퓨터로부터 상기 테스트벤치 데이터를 토대로 상기 검증 유닛에 할당된 상기 실리콘 IC를 위한 상기 테스트 패턴들을 생성하고 상기 실리콘 IC의 상기 응답 출력을 평가하는 설계 검증 장치.
  17. 제15항에 있어서,
    각각의 상기 검증 유닛이 상기 실리콘 IC들 중 하나에 할당되는 설계 검증 장치.
  18. 제15항에 있어서,
    각각의 상기 검증 유닛이 상기 실리콘 IC들 중 하나에 할당되며, 상기 검증 유닛들의 테스트 핀들은 테스트될 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 장치.
  19. 제15항에 있어서,
    각각의 검증 유닛이 한 그룹의 테스트 핀들을 가지며, 상기 검증 유닛의 핀 구성은 테스트될 상기 실리콘 IC의 핀 구성에 따라 자유롭게 변형되는 설계 검증 장치.
  20. 제15항에 있어서,
    각각의 검증 유닛이 한 그룹의 테스트 핀들을 갖고 상기 검증 유닛의 핀 구성은 테스트될 상기 실리콘 IC의 핀 구성에 따라 자유롭게 변형되며, 상기 그룹의 사이즈가 상기 검증 유닛에 할당된 상기 실리콘 IC의 입/출력 핀들의 수를 토대로 상기 메인 시스템 CPU에 의해 결정되는 설계 검증 장치.
  21. 제15항에 있어서,
    각각의 상기 검증 유닛이 상기 시스템 버스를 통해 상기 메인 시스템 컴퓨터로부터 상기 테스트벤치 데이터를 수신하고 상기 검증 유닛에 할당된 상기 실리콘 IC에 대한 상기 테스트 패턴들을 생성하며 상기 실리콘 IC의 상기 응답 출력을 평가하는 제어 컴퓨터를 포함하되, 상기 제어 컴퓨터는 상기 검증 유닛의 각각의 테스트 핀을 위해 제공되는 설계 검증 장치.
  22. 제15항에 있어서,
    상기 검증 유닛이 상기 대응 기능 코어를 검증하기 위해 할당된 상기 실리콘IC를 평가하고, 상기 검증 유닛들은 에뮬레이터로 상기 인터페이스 및 글루 로직을 에뮬레이트함으로써 상기 SoC에 집적될 상기 실리콘 IC들 및 글루 로직 간의 인터페이스를 더 평가하는 설계 검증 장치.
  23. 제15항에 있어서,
    상기 검증 유닛이 상기 대응 기능 코어를 검증하기 위해 할당된 상기 실리콘 IC를 평가하고, 상기 검증 유닛들은 FPGA로 인터페이스 및 글루 로직의 기능들을 구현함으로써 상기 SoC에 집적될 상기 실리콘 IC 및 글루 로직들 간의 인터페이스를 더 평가하는 설계 검증 장치.
  24. 제15항에 있어서,
    상기 메인 시스템 컴퓨터와 상기 검증 유닛들이 상기 개별 코어들을 대표하는 상기 실리콘 IC들에게 SoC 레벨 테스트벤치 데이터를 토대로 생성된 테스트 자극을 제공함으로써 코어-투-코어 타이밍과 SoC 레벨 타이밍 임계 경로들을 검증하는 설계 검증 장치.
  25. 제15항에 있어서,
    상기 메인 시스템 컴퓨터와 상기 검증 유닛들이 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용함으로써 전체 설계 검증을 검증하는 설계 검증 장치.
  26. 제15항에 있어서,
    상기 메인 시스템 컴퓨터와 상기 검증 유닛들이 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용함으로써 전체 설계 확인을 검증하며, 상기 메인 시스템 컴퓨터는 계산들을 다중 서브-작업들로 분할하고 상기 서브-작업들을 분배 방식으로 상기 다수의 검증 유닛들에게 할당함으로써 상기 검증 유닛들에게 분할 SoC 소프트웨어 어플리케이션 계산들을 분배하는 설계 검증 장치.
  27. 제15항에 있어서,
    상기 메인 시스템 컴퓨터와 상기 검증 유닛들이 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용함으로써 전체 설계 확인을 검증하며, 상기 메인 시스템 컴퓨터는 계산들을 다수의 서브-작업들로 분할하고 상기 서브-작업들을 분배 방식으로 상기 다수의 검증 유닛들에게 할당함으로써 상기 검증 유닛들에게 분할 SoC 소프트웨어 어플리케이션 계산들을 분배하고, 상기 메인 컴퓨터가 임의의 에러/고장을 결정하기 위해 SoC 레벨 응답을 형성하도록 상기 검증 유닛들로부터의 상기 실리콘 IC들의 응답들을 결합하는 설계 검증 장치.
  28. 제15항에 있어서,
    각각의 상기 검증 유닛의 상기 대응 실리콘 IC를 보유하는 성능 보드를 더 포함하는 설계 검증 장치.
  29. 제15항에 있어서,
    테스트 하에 모든 실리콘 IC들과 글루 로직을 보유하는 성능 보드를 더 포함하는 설계 검증 장치.
  30. 제15항에 있어서,
    각각의 상기 검증 유닛들이 값들의 변경 및 타이밍에 의해 테스트 패턴을 기술하는 이벤트 데이터를 토대로 상기 테스트 패턴을 생성하는 이벤트 기저 테스터로서 구성되는 설계 검증 장치.
  31. 제30항에 있어서,
    상기 개별 코어들의 상기 시뮬레이션 테스트벤치가 이벤트 기저 데이터 포맷을 가지며, 이로써 상기 이벤트 기저 테스터인 상기 검증 유닛에 의해 상기 SoC의 상기 코어들의 오류 디버그가 용이하게 되는 설계 검증 장치.
  32. 제15항에 있어서, 상기 검증 유닛 각각은,
    현재의 이벤트와 선정된 기준 포인트 간의 시간 차이며, 기준 클럭 주기의 정수 배수(정수 부분 데이터)와 기준 클럭 주기의 소수(소수 부분 데이터)로 형성되는 각 이벤트의 타이밍 데이터를 기억하기 위한 이벤트 메모리;
    상기 이벤트 메모리를 액세스하기 위해 어드레스 데이터를 생성하기 위한 어드레스 시퀀서;
    상기 정수 부분 데이터로 곱해진 상기 기준 클럭 주기만큼 지연된 이벤트 개시 신호를 생성하기 위한 이벤트 카운트 로직;
    상기 테스트 패턴을 공식화하기 위해 이벤트 카운트 로직 및 소수 부분 데이터로부터의 이벤트 개시 신호를 토대로 각각의 이벤트를 생성하기 위한 이벤트 생성 유닛; 및
    상기 검증 유닛을 상기 실리콘 IC의 상기 핀들에게 할당하기 위해 검증 유닛의 어드레스를 검출하기 위한 검증 유닛 기록 디코더
    를 포함하는 이벤트 기저 테스터로서 구성되는 설계 검증 장치.
  33. 다수의 기능 코어들이 집적되어 있는 내장 기저 SoC(system-on-chip)의 설계 검증을 위한 장치에 있어서,
    사용자와 인터페이스하고 설계 검증을 위한 장치의 전체 동작을 제어하기 위한 메인 시스템 컴퓨터;
    상기 메인 시스템 컴퓨터로부터의 테스트벤치 데이터를 수신하고 SoC에 집적될 다수의 기능 코어들을 테스트하기 위해 상기 테스트벤치 데이터를 사용하여 테스트 패턴들을 생성하는 다수의 검증 유닛들; 및
    상기 다수의 검증 유닛들과 상기 메인 시스템 컴퓨터를 인터페이스하는 시스템 버스
    를 포함하되,
    다수의 실리콘 IC들은 상기 검증 유닛들로부터 상기 테스트 패턴을 수신하기 위해 상기 검증 유닛들을 연결하여 상기 검증 유닛들 및 메인 시스템 컴퓨터에 의해 평가될 응답 출력들을 생성하고, 상기 실리콘 IC들이 상기 SoC에 집적될 상기 기능 코어들과 동일한 내부 구조를 가지며;
    상기 메인 시스템 컴퓨터는 상기 실리콘 IC들에게 제공될 테스트 패턴들을 생성하고, 상기 실리콘 IC들의 응답 출력들을 평가하고, 상기 SoC의 타이밍 및 인터페이스 평가를 실행하고, 상기 SoC의 전체 설계 검증을 하는 모든 작업들을 실행시키는 설계 검증 장치.
KR10-2000-0063483A 1999-10-28 2000-10-27 SoC 설계 검증을 위한 방법 및 장치 KR100491461B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/428,746 1999-10-28
US09/428,746 US6678645B1 (en) 1999-10-28 1999-10-28 Method and apparatus for SoC design validation

Publications (2)

Publication Number Publication Date
KR20010067370A true KR20010067370A (ko) 2001-07-12
KR100491461B1 KR100491461B1 (ko) 2005-05-25

Family

ID=23700234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0063483A KR100491461B1 (ko) 1999-10-28 2000-10-27 SoC 설계 검증을 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US6678645B1 (ko)
JP (1) JP4804620B2 (ko)
KR (1) KR100491461B1 (ko)
DE (1) DE10053207A1 (ko)
TW (1) TW494325B (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005093575A1 (en) * 2004-03-09 2005-10-06 Seiyang Yang Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
KR100725135B1 (ko) * 2001-06-30 2007-06-25 어보브반도체 주식회사 시스템 온 칩
KR100873956B1 (ko) * 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템
US7526679B2 (en) 2004-12-14 2009-04-28 Electronics And Telecommunications Research Institute Apparatus for developing and verifying system-on-chip for internet phone
US7991604B2 (en) 2006-08-11 2011-08-02 Samsung Electronics Co., Ltd. Method and apparatus for indirectly simulating a semiconductor integrated circuit
US8656220B2 (en) 2010-05-11 2014-02-18 Samsung Electronics Co., Ltd. System-on-chip and debugging method thereof
KR102183267B1 (ko) * 2020-05-28 2020-11-26 최훈기 Ic 간의 설계 적합성 체크 시스템

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076415B1 (en) * 1998-12-17 2006-07-11 Cadence Design Systems, Inc. System for mixed signal synthesis
US6904397B1 (en) * 2000-02-22 2005-06-07 Xilinx, Inc. System and method for assisting in the development and integration of reusable circuit designs
US6970814B1 (en) * 2000-03-30 2005-11-29 International Business Machines Corporation Remote IP simulation modeling
US7191112B2 (en) * 2000-04-28 2007-03-13 Cadence Design Systems, Inc. Multiple test bench optimizer
US7124376B2 (en) * 2000-05-02 2006-10-17 Palmchip Corporation Design tool for systems-on-a-chip
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
KR100374328B1 (ko) * 2000-06-03 2003-03-03 박현숙 칩 설계 검증 및 테스트 장치 및 방법
US20030154465A1 (en) * 2000-07-21 2003-08-14 Gianmario Bollano Method and system for verifying modules destined for generating circuits
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7016826B2 (en) * 2000-12-21 2006-03-21 Intel Corporation Apparatus and method of developing software for a multi-processor chip
US6922665B1 (en) * 2001-01-08 2005-07-26 Xilinx, Inc. Method and system for device-level simulation of a circuit design for a programmable logic device
US20020107678A1 (en) * 2001-02-07 2002-08-08 Chuan-Lin Wu Virtual computer verification platform
US6880112B2 (en) * 2001-04-04 2005-04-12 Nec Corporation Method and apparatus for online detection and correction of faults affecting system-on-chip buses
US6876941B2 (en) * 2001-04-12 2005-04-05 Arm Limited Testing compliance of a device with a bus protocol
JP4078435B2 (ja) * 2001-06-06 2008-04-23 株式会社ルネサステクノロジ 論理集積回路及び論理集積回路設計方法及び論理集積回路のハードウェア動作記述を生成するハードウェア記述生成方法
US20030005396A1 (en) * 2001-06-16 2003-01-02 Chen Michael Y. Phase and generator based SOC design and/or verification
US7260517B2 (en) * 2001-06-17 2007-08-21 Brian Bailey Synchronization of multiple simulation domains in an EDA simulation environment
US7401015B1 (en) 2001-06-17 2008-07-15 Brian Bailey Coherent state among multiple simulation models in an EDA simulation environment
JP4102752B2 (ja) * 2001-08-14 2008-06-18 ベリシティー デザイン, インコーポレイテッド Vcd−オン−デマンドのシステムおよび方法
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7627462B2 (en) * 2001-11-27 2009-12-01 Arm Limited Hardware simulation using a test scenario manager
US20030105617A1 (en) * 2001-12-05 2003-06-05 Nec Usa, Inc. Hardware acceleration system for logic simulation
US7171602B2 (en) * 2001-12-31 2007-01-30 Advantest Corp. Event processing apparatus and method for high speed event based test system
US7353156B2 (en) * 2002-02-01 2008-04-01 International Business Machines Corporation Method of switching external models in an automated system-on-chip integrated circuit design verification system
US6941538B2 (en) * 2002-02-22 2005-09-06 Xilinx, Inc. Method and system for integrating cores in FPGA-based system-on-chip (SoC)
US7577540B2 (en) * 2002-03-01 2009-08-18 Nec Corporation Re-configurable embedded core test protocol for system-on-chips (SOC) and circuit boards
JP2003271694A (ja) * 2002-03-18 2003-09-26 Fujitsu Ltd プロセッサを含む論理回路の検証用シミュレーション方法及び装置並びに論理回路検証用エラー検出プログラム
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7099813B2 (en) * 2002-04-09 2006-08-29 Arm Limited Simulating program instruction execution and hardware device operation
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6880133B2 (en) * 2002-05-15 2005-04-12 Sonics, Inc. Method and apparatus for optimizing distributed multiplexed bus interconnects
FR2841668B1 (fr) * 2002-06-26 2006-08-11 Emulation And Verification Eng Procede et systeme d'emulation d'un circuit sous test associe a un environnement de test
KR100487535B1 (ko) * 2002-08-14 2005-05-03 삼성전자주식회사 다른 종류의 반도체 장치들을 동시에 테스트하는 시스템
US7340585B1 (en) * 2002-08-27 2008-03-04 Xilinx, Inc. Method and system for fast linked processor in a system on a chip (SoC)
US7761845B1 (en) * 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7092865B1 (en) * 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
US20040078179A1 (en) * 2002-10-17 2004-04-22 Renesas Technology Corp. Logic verification system
US8332197B2 (en) * 2002-12-12 2012-12-11 Pmc-Sierra Us, Inc. Simulation of complex system architecture
JP3951925B2 (ja) * 2003-01-31 2007-08-01 セイコーエプソン株式会社 ハードウェア/ソフトウェア協調検証方法
US7587690B1 (en) * 2003-04-29 2009-09-08 Cadence Design Systems, Inc. Method and system for global coverage analysis
US7216318B1 (en) * 2003-04-29 2007-05-08 Cadence Design Systems, Inc. Method and system for false path analysis
US7007264B1 (en) * 2003-05-02 2006-02-28 Xilinx, Inc. System and method for dynamic reconfigurable computing using automated translation
US20040236562A1 (en) * 2003-05-23 2004-11-25 Beckmann Carl J. Using multiple simulation environments
US7194658B2 (en) * 2003-07-24 2007-03-20 Sonics, Inc. Various methods and apparatuses for interfacing of a protocol monitor to protocol checkers and functional checkers
US6920621B1 (en) * 2003-08-20 2005-07-19 Xilinx, Inc. Methods of testing for shorts in programmable logic devices using relative quiescent current measurements
US7376917B1 (en) * 2003-08-25 2008-05-20 Xilinx, Inc. Client-server semiconductor verification system
US7606695B1 (en) * 2003-09-30 2009-10-20 Sun Microsystems, Inc. Self-checking simulations using dynamic data loading
US8065128B1 (en) * 2003-10-23 2011-11-22 Altera Corporation Methods and apparatus for automated testbench generation
US8504992B2 (en) * 2003-10-31 2013-08-06 Sonics, Inc. Method and apparatus for establishing a quality of service model
WO2005043617A1 (en) * 2003-10-31 2005-05-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor integrated circuit and design method thereof
US9087036B1 (en) * 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7409602B2 (en) * 2003-11-12 2008-08-05 Lsi Corporation Methodology for debugging RTL simulations of processor based system on chip
DE10353580A1 (de) * 2003-11-14 2005-06-30 Infineon Technologies Ag Verfahren zur Simulation der Systemleistung eines On-Chip-Systems
US20050120278A1 (en) * 2003-11-19 2005-06-02 Smith Zachary S. Systems and methods for verifying lockstep operation
US20050114735A1 (en) * 2003-11-20 2005-05-26 Smith Zachary S. Systems and methods for verifying core determinacy
US8856401B2 (en) * 2003-11-25 2014-10-07 Lsi Corporation Universal controller for peripheral devices in a computing system
US7475303B1 (en) 2003-12-29 2009-01-06 Mips Technologies, Inc. HyperJTAG system including debug probe, on-chip instrumentation, and protocol
US8180620B2 (en) * 2004-01-27 2012-05-15 Arm Limited Apparatus and method for performing hardware and software co-verification testing
US6972571B2 (en) * 2004-03-22 2005-12-06 Freescale Semiconductor, Inc. Load board with embedded relay tracker
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8818784B1 (en) 2004-06-23 2014-08-26 Cypress Semiconductor Corporation Hardware description language (HDL) incorporating statistically derived data and related methods
KR100921314B1 (ko) * 2004-07-12 2009-10-13 양세양 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
TWI299468B (en) * 2004-09-06 2008-08-01 Matsushita Electric Ind Co Ltd Debug system for debugging multi-task system and a circuit device connected with a host computer
US7516058B2 (en) * 2004-09-21 2009-04-07 Faraday Technology Corp. Method for IP characterization and path finding, and computer readable recording medium for storing program thereof
US7676661B1 (en) 2004-10-05 2010-03-09 Xilinx, Inc. Method and system for function acceleration using custom instructions
US7526745B2 (en) * 2004-12-08 2009-04-28 Telefonaktiebolaget L M Ericsson (Publ) Method for specification and integration of reusable IP constraints
US7290194B2 (en) * 2004-12-17 2007-10-30 Lsi Corporation System for performing automatic test pin assignment for a programmable device
KR100638476B1 (ko) * 2004-12-22 2006-10-26 삼성전자주식회사 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7353162B2 (en) * 2005-02-11 2008-04-01 S2C, Inc. Scalable reconfigurable prototyping system and method
US7313738B2 (en) * 2005-02-17 2007-12-25 International Business Machines Corporation System and method for system-on-chip interconnect verification
EP1859289A4 (en) * 2005-03-16 2011-03-30 Gaterocket Inc FPGA MATRIX EMULATION SYSTEM
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) * 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US7562001B2 (en) * 2005-07-29 2009-07-14 International Business Machines Corporation Creating a behavioral model of a hardware device for use in a simulation environment
US20070073999A1 (en) * 2005-09-28 2007-03-29 Verheyen Henry T Hardware acceleration system for logic simulation using shift register as local cache with path for bypassing shift register
US7444276B2 (en) 2005-09-28 2008-10-28 Liga Systems, Inc. Hardware acceleration system for logic simulation using shift register as local cache
US20070074000A1 (en) * 2005-09-28 2007-03-29 Liga Systems, Inc. VLIW Acceleration System Using Multi-state Logic
JP4667206B2 (ja) * 2005-10-31 2011-04-06 富士通セミコンダクター株式会社 マルチコアモデルシミュレーションプログラム、該プログラムを記録した記録媒体、マルチコアモデルシミュレータ、およびマルチコアモデルシミュレーション方法
US20070129926A1 (en) * 2005-12-01 2007-06-07 Verheyen Henry T Hardware acceleration system for simulation of logic and memory
US20070129924A1 (en) * 2005-12-06 2007-06-07 Verheyen Henry T Partitioning of tasks for execution by a VLIW hardware acceleration system
US7444258B2 (en) * 2005-12-05 2008-10-28 International Business Machines Corporation Automated simulation testbench generation for serializer/deserializer datapath systems
US7711534B2 (en) * 2005-12-09 2010-05-04 International Business Machines Corporation Method and system of design verification
US7509605B2 (en) 2005-12-12 2009-03-24 International Business Machines Corporation Extending incremental verification of circuit design to encompass verification restraints
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US20070150702A1 (en) * 2005-12-23 2007-06-28 Verheyen Henry T Processor
US7469401B2 (en) * 2006-02-22 2008-12-23 International Business Machines Corporation Method for using partitioned masks to build a chip
US7496464B2 (en) * 2006-03-21 2009-02-24 Mediatek Usa Inc. Validation system with flow control capability
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7571414B2 (en) * 2006-06-15 2009-08-04 National Chip Implementation Center, National Applied Research Laboratories Multi-project system-on-chip and its method
WO2008013968A2 (en) 2006-07-28 2008-01-31 Vast Systems Technology Corporation Virtual processor generation model for co-simulation
US7823017B2 (en) * 2006-08-02 2010-10-26 International Business Machines Corporation Structure for task based debugger (transaction-event-job-trigger)
US8868397B2 (en) 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
KR100851524B1 (ko) 2006-12-29 2008-08-11 전자부품연구원 SoC 코아로직의 천이 지연 고장 테스트를 지원하는IEEE 1500 래퍼 셀 및 이를 이용한 테스트 방법
KR101375171B1 (ko) 2006-12-30 2014-03-18 삼성전자주식회사 시스템 온 칩 모델 검증 방법 및 장치
WO2008091575A2 (en) 2007-01-22 2008-07-31 Vast Systems Technology Corporation Method and system for modeling a bus for a system design incorporating one or more programmable processors
JP5099119B2 (ja) * 2007-03-15 2012-12-12 富士通セミコンダクター株式会社 デバイス間接続試験回路生成方法、生成装置、および生成プログラム
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8130025B2 (en) * 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US20080263489A1 (en) * 2007-04-23 2008-10-23 Canada Miles G Method to identify and generate critical timing path test vectors
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US8145967B2 (en) * 2007-10-12 2012-03-27 Oracle America, Inc. System and method for verifying the receive path of an input/output component
US8136065B2 (en) * 2007-12-10 2012-03-13 Inpa Systems, Inc. Integrated prototyping system for validating an electronic system design
US8275975B2 (en) * 2008-01-25 2012-09-25 Mtekvision Co., Ltd. Sequencer controlled system and method for controlling timing of operations of functional units
US8046726B2 (en) * 2008-09-16 2011-10-25 Lsi Corporation Waiver mechanism for physical verification of system designs
TWI381180B (zh) * 2008-10-03 2013-01-01 Holtek Semiconductor Inc Circuit Simulation System
WO2010054669A1 (en) * 2008-11-11 2010-05-20 Verigy (Singapore) Pte.Ltd. Re-configurable test circuit, method for operating an automated test equipment, apparatus, method and computer program for setting up an automated test equipment
US8032848B2 (en) * 2009-01-29 2011-10-04 Synopsys, Inc. Performing abstraction-refinement using a lower-bound-distance to verify the functionality of a circuit design
US8020126B2 (en) * 2009-02-05 2011-09-13 Texas Instruments Incorporated Links and chains verification and validation methodology for digital devices
US8413103B2 (en) * 2009-03-13 2013-04-02 Synopsys, Inc. Execution monitor for electronic design automation
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8015537B1 (en) 2009-05-19 2011-09-06 Xilinx, Inc. Automated rate realization for circuit designs within high level circuit implementation tools
US8042079B1 (en) * 2009-05-19 2011-10-18 Xilinx, Inc. Synchronization for a modeling system
US9081924B2 (en) * 2010-03-29 2015-07-14 Synopsys, Inc. Method and apparatus for transaction recording and visualization
TWI450118B (zh) * 2010-11-02 2014-08-21 Global Unichip Corp 混合的電子設計系統及其可重組連接矩陣
US20120330637A1 (en) * 2011-06-21 2012-12-27 International Business Machines Corporation Method for providing debugging tool for a hardware design and debugging tool for a hardware design
US8429581B2 (en) * 2011-08-23 2013-04-23 Apple Inc. Method for verifying functional equivalence between a reference IC design and a modified version of the reference IC design
US9734263B2 (en) * 2012-12-20 2017-08-15 Intel Corporation Method and apparatus for efficient pre-silicon debug
US8645897B1 (en) * 2013-01-07 2014-02-04 Freescale Semiconductor, Inc. Integrated circuit design verification system
KR20140113175A (ko) 2013-03-15 2014-09-24 삼성전자주식회사 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법
US9038006B2 (en) * 2013-04-30 2015-05-19 Freescale Semiconductor, Inc. Method and apparatus for generating gate-level activity data for use in clock gating efficiency analysis
US9195575B2 (en) 2013-05-17 2015-11-24 Coherent Logix, Incorporated Dynamic reconfiguration of applications on a multi-processor embedded system
US8856708B1 (en) * 2013-07-12 2014-10-07 Hamilton Sundstrand Corporation Multi-tier field-programmable gate array hardware requirements assessment and verification for airborne electronic systems
US9298250B2 (en) 2013-08-06 2016-03-29 Globalfoundries Inc. Reconfigurable circuit to emulate system critical paths
KR102122455B1 (ko) 2013-10-08 2020-06-12 삼성전자주식회사 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치
JP6478562B2 (ja) 2013-11-07 2019-03-06 株式会社半導体エネルギー研究所 半導体装置
JP6393590B2 (ja) 2013-11-22 2018-09-19 株式会社半導体エネルギー研究所 半導体装置
US9317385B2 (en) 2013-12-30 2016-04-19 Samsung Electronics Co., Ltd. Hardware profiling
JP6444723B2 (ja) 2014-01-09 2018-12-26 株式会社半導体エネルギー研究所 装置
US9379713B2 (en) 2014-01-17 2016-06-28 Semiconductor Energy Laboratory Co., Ltd. Data processing device and driving method thereof
JP6545970B2 (ja) 2014-02-07 2019-07-17 株式会社半導体エネルギー研究所 装置
JP2015165226A (ja) 2014-02-07 2015-09-17 株式会社半導体エネルギー研究所 装置
US9760663B2 (en) * 2014-10-30 2017-09-12 Synopsys, Inc. Automatic generation of properties to assist hardware emulation
US9804911B2 (en) 2015-05-27 2017-10-31 Apple Inc. Concurrent validation of hardware units
US10176078B1 (en) * 2015-08-28 2019-01-08 Cadence Design Systems, Inc. Debugging process
CN105302950B (zh) * 2015-10-19 2018-07-24 北京精密机电控制设备研究所 一种软、硬件协同的可编程逻辑器件交联仿真测试方法
US10338138B2 (en) * 2015-12-31 2019-07-02 Chinsong Sul Low cost design for test architecture
US10534882B2 (en) * 2016-03-29 2020-01-14 Qualcomm Incorporated Method and apparatus for configuring an integrated circuit with a requested feature set
US10437946B1 (en) * 2016-09-01 2019-10-08 Xilinx, Inc. Using implemented core sources for simulation
KR20180043626A (ko) 2016-10-20 2018-04-30 삼성전자주식회사 버퍼를 포함하는 버스를 라우팅하기 위한 시스템 및 방법
CN106599343B (zh) * 2016-11-01 2020-10-20 深圳国微技术有限公司 一种提高仿真效率的soc系统验证方法和装置
CN109933880B (zh) * 2019-03-06 2022-10-11 西安微电子技术研究所 基于配置驱动的SoC原型验证用例提取模型建模方法
KR20210047127A (ko) 2019-10-21 2021-04-29 삼성전자주식회사 반도체 회로를 검증하기 위한 최적화된 검증 벡터를 생성하는 전자 장치 및 그 동작 방법
CN110907798A (zh) * 2019-10-23 2020-03-24 盛科网络(苏州)有限公司 集成SoC的交换芯片的测试验证板、测试装置及方法
US11144696B1 (en) * 2020-05-27 2021-10-12 Chinsong Sul Low cost design for test architecture
CN111859832B (zh) * 2020-07-16 2022-07-08 山东云海国创云计算装备产业创新中心有限公司 一种芯片仿真验证方法、装置及相关设备
US20220019720A1 (en) * 2020-07-17 2022-01-20 University Of Florida Research Foundation, Incorporated Framework for automated synthesis of secure, optimized system-on-chip architectures
CN111949470A (zh) * 2020-08-24 2020-11-17 海光信息技术有限公司 一种芯片验证方法、装置、电子设备及存储介质
CN114722750A (zh) * 2022-03-18 2022-07-08 北京遥感设备研究所 Soc芯片仿真验证方法、装置、设备和存储介质
CN114860519B (zh) * 2022-04-08 2022-12-23 中国人民解放军国防科技大学 一种面向大规模asic芯片的多芯片联合验证方法及装置
CN115248998B (zh) * 2022-09-22 2023-01-03 济南新语软件科技有限公司 一种SoC芯片分布式仿真验证平台和方法
CN115639461A (zh) * 2022-12-23 2023-01-24 长沙驰芯半导体科技有限公司 一种基于双处理器的超宽带芯片原型验证平台
CN116011392A (zh) * 2022-12-23 2023-04-25 摩尔线程智能科技(北京)有限责任公司 用于验证环境级联的装置、方法、设备、介质和程序产品
CN115993952B (zh) * 2023-03-23 2023-05-30 中大智能科技股份有限公司 基于risc-v的桥梁支座监测芯片及设计系统、方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0673363B2 (ja) * 1984-07-02 1994-09-14 株式会社東芝 システムlsiの設計方法
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5555201A (en) * 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
JP2752262B2 (ja) * 1991-04-19 1998-05-18 株式会社東芝 1チップlsiの製造方法
JP3168839B2 (ja) * 1994-09-09 2001-05-21 株式会社日立製作所 論理エミュレーションシステム及び等価回路生成方法
JP2888512B2 (ja) * 1995-09-22 1999-05-10 三菱電機マイコン機器ソフトウエア株式会社 エミュレーション装置
US5903475A (en) * 1996-07-18 1999-05-11 Lsi Logic Corporation System simulation for testing integrated circuit models
JP4020462B2 (ja) * 1996-08-30 2007-12-12 テキサス インスツルメンツ インコーポレイテツド テストインタフェースを含む集積回路及びテストインタフェースを使用する方法
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6094726A (en) * 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
JP3004641B2 (ja) * 1998-02-05 2000-01-31 松下電器産業株式会社 シミュレ―ション装置及び当該シミュレ―ション装置を実現するコンピュ―タに実行させるプログラムを記録したコンピュ―タ読み取り可能な記録媒体
US6360353B1 (en) * 1998-02-21 2002-03-19 Adaptec, Inc. Automated alternating current characterization testing
US6304837B1 (en) * 1998-02-21 2001-10-16 Adaptec, Inc. Automated test vector generation and verification
KR19990079355A (ko) * 1998-04-03 1999-11-05 윤종용 테스트벤치 발생기 및 이를 이용한 시뮬레이션방법
JP2002526908A (ja) * 1998-09-30 2002-08-20 ケイデンス デザイン システムズ インコーポレイテッド ブロックをベースとする設計方法
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
US6532561B1 (en) * 1999-09-25 2003-03-11 Advantest Corp. Event based semiconductor test system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725135B1 (ko) * 2001-06-30 2007-06-25 어보브반도체 주식회사 시스템 온 칩
WO2005093575A1 (en) * 2004-03-09 2005-10-06 Seiyang Yang Dynamic-verification-based verification apparatus achieving high verification performance and verification efficency and the verification methodology using the same
US7526679B2 (en) 2004-12-14 2009-04-28 Electronics And Telecommunications Research Institute Apparatus for developing and verifying system-on-chip for internet phone
US7991604B2 (en) 2006-08-11 2011-08-02 Samsung Electronics Co., Ltd. Method and apparatus for indirectly simulating a semiconductor integrated circuit
KR100873956B1 (ko) * 2006-08-17 2008-12-15 삼성전자주식회사 에뮬레이션 시스템
US8165866B2 (en) 2006-08-17 2012-04-24 Samsung Electronics Co., Ltd. Emulation system
US8656220B2 (en) 2010-05-11 2014-02-18 Samsung Electronics Co., Ltd. System-on-chip and debugging method thereof
KR102183267B1 (ko) * 2020-05-28 2020-11-26 최훈기 Ic 간의 설계 적합성 체크 시스템

Also Published As

Publication number Publication date
DE10053207A1 (de) 2001-05-03
US6678645B1 (en) 2004-01-13
JP4804620B2 (ja) 2011-11-02
KR100491461B1 (ko) 2005-05-25
JP2001189387A (ja) 2001-07-10
TW494325B (en) 2002-07-11

Similar Documents

Publication Publication Date Title
KR100491461B1 (ko) SoC 설계 검증을 위한 방법 및 장치
Rashinkar et al. System-on-a-chip Verification: Methodology and Techniques
KR100936855B1 (ko) Asic/soc 제조시에 프로토타입-홀드를 방지하기위한 제조 방법 및 장치
US8997034B2 (en) Emulation-based functional qualification
US7089517B2 (en) Method for design validation of complex IC
Huang et al. SoC HW/SW verification and validation
Civera et al. An FPGA-based approach for speeding-up fault injection campaigns on safety-critical circuits
US6629293B2 (en) Block based design methodology
US20080005710A1 (en) Automatic generation of timing constraints for the validation/signoff of test structures
EP2227764A1 (en) Integrated prototyping system for validating an electronic system design
Jindal et al. Verification of transaction-level SystemC models using RTL testbenches
US20020173942A1 (en) Method and apparatus for design validation of complex IC without using logic simulation
Bombieri et al. On the evaluation of transactor-based verification for reusing TLM assertions and testbenches at RTL
US9183329B2 (en) Debugging simulation with partial design replay
US10664563B2 (en) Concurrent testbench and software driven verification
US7065724B2 (en) Method and apparatus for generating and verifying libraries for ATPG tool
Ke et al. Verification of AMBA bus model using SystemVerilog
JP2001051025A (ja) 半導体試験用プログラムデバッグ装置
Yadu et al. Block Level SoC Verification Using Systemverilog
Choi et al. Early HW/SW Co-Verification Using Virtual Platforms
Sforza et al. A" design for verification" methodology
US20040230414A1 (en) Method for verification of hardware designs with multiple asynchronous frequency domains
Lam New design-to-test software strategies accelerate time-to-market
Dahmoune et al. An embedded reachability analyzer and invariant checker (eraic)
Siddiqui System-on-Chip (SoC) emulation

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: 20100512

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee