KR100491461B1 - SoC 설계 검증을 위한 방법 및 장치 - Google Patents
SoC 설계 검증을 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR100491461B1 KR100491461B1 KR10-2000-0063483A KR20000063483A KR100491461B1 KR 100491461 B1 KR100491461 B1 KR 100491461B1 KR 20000063483 A KR20000063483 A KR 20000063483A KR 100491461 B1 KR100491461 B1 KR 100491461B1
- Authority
- KR
- South Korea
- Prior art keywords
- verification
- soc
- silicon
- design
- test
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
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(시스템-온-칩) 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에 집적될 기능 코어들과 동일한 내부 구조 및 기능을 포함한다.
본 발명의 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의 코어들의 오류를 디버그할 수 있게 한다.
도 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
Claims (33)
- 다수의 기능 코어들이 집적되는 내장 코어 기반 SoC(system-on-a-chip)의 설계 검증(design validation)을 위한 방법에 있어서,설계가 검증될 SoC에 집적되는 대응 코어와 동일한 기능 및 회로 구조를 각각 갖는 다수의 실리콘 IC를 생성하는 단계;각각이 하드웨어 테스터인 다수의 검증 유닛 상에 상기 실리콘 IC들을 장착하는 단계;각각의 코어에 대응하는 실리콘 IC에 코어 특수 테스트 패턴 신호(core specific test pattern signals)를 인가하고 실리콘 IC로부터의 결과적인 출력을 평가하여 실리콘 IC의 성능을 평가함으로써 상기 SoC에 집적되는 개별 코어들을 검증하는 단계 -상기 코어 특수 테스트 패턴 신호는 코어들의 설계 단계를 통해 생성되는 시뮬레이션 테스트벤치들(simulation testbenches)을 사용하여 생성됨-;개별 코어들 간의 인터페이스, 코어들의 온-칩 버스 및 글루 로직(glue logic)을, 이들 간에 인터페이스 테스트 신호를 인가하여 검증하는 단계 -상기 인터페이스 테스트 신호는 SoC 설계자에 의해 개발되는 시뮬레이션 테스트벤치들과 글루 로직의 FPGA/에뮬레이션(emulation)을 사용하여 생성됨-;각각의 코어에 대응하는 실리콘 IC의 성능을 평가함으로써 코어-투-코어 타이밍(core-to-core timings)과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계; 및상기 다수의 실리콘 IC에 전체 성능 테스트 패턴 신호를 인가하고 실리콘 IC로부터의 결과적인 출력을 평가하여 상기 다수의 실리콘 IC의 전체 성능을 평가함으로써 전체 설계 검증을 행하는 단계 -상기 전체 성능 테스트 패턴 신호는 전체 SoC의 시뮬레이션 테스트벤치 및 어플리케이션 실행(application runs)을 사용하여 생성됨-를 포함하는 설계 검증 방법.
- 제1항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하는 설계 검증 방법.
- 제1항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하며, 상기 검증 유닛들의 테스트 핀들이 테스트 중인 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 방법.
- 제1항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하며, 상기 검증 유닛들 각각은 상기 시뮬레이션 테스트벤치들로부터 추출되는 값들의 변경 및 그 타이밍에 의해 테스트 패턴을 기술하는 이벤트 데이터를 토대로 상기 테스트 패턴 신호를 생성하는 이벤트 기반 테스터로서 구성되는 설계 검증 방법.
- 제4항에 있어서,상기 개별 코어들의 상기 시뮬레이션 테스트벤치가 이벤트 기반 데이터 포맷을 가짐으로써, 상기 검증 유닛에 의해 상기 SoC의 코어 내 오류를 디버그하기 위한 상기 테스트 패턴 신호를 생성하는 절차를 용이하게 하는 설계 검증 방법.
- 다수의 기능 코어들이 집적되는 내장 코어 기반 SoC의 설계 검증을 위한 방법에 있어서,SoC에 집적될 대응 코어의 기능 및 회로 구조를 각각 갖는 다수의 실리콘 IC들을 생성하는 단계;다수의 검증 유닛들을 제공하고, 상기 검증 유닛 각각을 상기 코어 각각에 대응하는 실리콘 IC에 할당하는 단계;각각이 하드웨어 테스터인 다수의 검증 유닛 상에 상기 실리콘 IC들을 장착하는 단계;상기 코어들 간의 접속을 위해 상기 SoC에 설계되는 온-칩 버스(on-chip bus)를 모델링하는 상호 접속 버스로 상기 실리콘 IC들을 상호 접속하는 단계; 및테스트 패턴들을 상기 실리콘 IC들에 인가하고, 상기 검증 유닛에 의해 상기 실리콘 IC들의 응답 출력을 모니터함으로써 상기 SoC에 집적될 상기 코어들을 검증하는 단계를 포함하되,상기 테스트 패턴들은 상기 코어들의 설계 단계에서 생성되는 시뮬레이션 테스트벤치 데이터 내의 이벤트 데이타를 사용하여 직접 생성되는 설계 검증 방법.
- 제6항에 있어서,상기 코어들의 기능 및 구조를 나타내는 실리콘 IC들 간의 인터페이스 및 상기 SoC에 집적될 글루 로직을, 에뮬레이터에 의해 상기 인터페이스 및 글루 로직을 에뮬레이트함으로써 검증하는 단계를 더 포함하는 설계 검증 방법.
- 제6항에 있어서,상기 코어들의 기능 및 구조를 나타내는 실리콘 IC들 간의 인터페이스 및 상기 SoC에 집적될 글루 로직을, FPGA(field programmable gate array)로 상기 인터페이스 및 글루 로직의 기능들을 구현함으로써 검증하는 단계를 더 포함하는 설계 검증 방법.
- 제6항에 있어서,SoC 레벨 테스트벤치 데이터를 토대로 생성되는 테스트 자극을 상기 개별 코어들의 기능 및 구조를 나타내는 실리콘 IC들에게 제공함으로써 코어-투-코어 타이밍과 SoC 레벨 타이밍 임계 경로들을 검증하는 단계를 더 포함하는 설계 검증 방법.
- 제6항에 있어서,전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용하여 생성되는 SoC 테스트 패턴들을 상기 다수의 실리콘 IC에 인가하여 상기 다수의 실리콘 IC의 전체 성능을 평가함으로써 전체 설계 검증을 행하는 단계를 더 포함하는 설계 검증 방법.
- 제6항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하는 설계 검증 방법.
- 제6항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하며, 상기 검증 유닛 각각은 값 변경들 및 그 타이밍들에 의해 테스트 패턴을 기술하는 이벤트 데이타에 기초하여 테스트 패턴을 생성하는 이벤트 기반 테스터로서 구성되는 설계 검증 방법.
- 제12항에 있어서,상기 개별 코어들의 상기 시뮬레이션 테스트벤치가 이벤트 기반 데이터 포맷을 가짐으로써, 상기 검증 유닛에 의해 상기 SoC의 코어 내 오류를 디버그하기 위한 상기 테스트 패턴 신호를 생성하는 절차를 용이하게 하는 설계 검증 방법.
- 제6항에 있어서,상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 다수의 검증 유닛을 할당하고, 대응 검증 유닛 상에 실리콘 IC를 장착한 후에, 상기 검증 단계들을 행하며, 상기 검증 유닛들의 테스트 핀들이 테스트 중인 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 방법.
- 다수의 기능 코어들이 집적되는 내장 코어 기반 SoC의 설계 검증을 위한 장치에 있어서,사용자와 인터페이스하고 설계 검증을 위한 장치의 전체 동작을 제어하기 위한 메인 시스템 컴퓨터;상기 메인 시스템 컴퓨터로부터 테스트벤치 데이터를 수신하고, SoC에 집적될 다수의 기능 코어로부터 개별적으로 생성되는 다수의 물리적 실리콘 IC를 평가함으로써 상기 다수의 기능 코어를 테스트하기 위하여 상기 테스트벤치 데이타를 이용하여 테스트 패턴들을 생성하며, 상기 메인 시스템 컴퓨터로부터의 상기 테스트벤치 데이터를 수신하는 제어 컴퓨터를 각각 포함하는 다수의 검증 유닛; 및상기 다수의 검증 유닛과 상기 메인 시스템 컴퓨터를 인터페이스하는 시스템 버스를 포함하고,상기 다수의 실리콘 IC들은 상기 검증 유닛들에 접속되어, 상기 검증 유닛들로부터 상기 테스트 패턴을 수신하고, 상기 실리콘 IC들의 응답 출력이 상기 검증 유닛들과 상기 메인 시스템 컴퓨터에 의해 평가되며, 상기 실리콘 IC들 각각은 상기 SoC에 집적될 상기 기능 코어들 중 대응하는 코어와 동일한 구조 및 기능을 갖는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛 각각의 상기 제어 컴퓨터가 상기 시스템 버스를 통해 상기 메인 시스템 컴퓨터로부터의 상기 테스트벤치 데이터를 토대로 상기 검증 유닛에 할당된 상기 실리콘 IC에 대한 테스트 패턴들을 생성하고, 상기 테스트 패턴들을 상기 실리콘 IC에 인가하여, 상기 실리콘 IC의 응답 출력을 평가하며, 상기 테스트벤치 데이타는 상기 기능 코어들의 설계 단계를 통해 생성되는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛 각각이 상기 기능 코어들을 나타내는 상기 실리콘 IC들 중 하나에 할당되는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛 각각이 상기 SoC에 집적될 기능 코어들을 나타내는 상기 실리콘 IC들 중 하나에 할당되며, 상기 검증 유닛들의 테스트 핀들은 테스트 중인 상기 실리콘 IC들의 입/출력 핀들과 관련하여 구성되는 설계 검증 장치.
- 제15항에 있어서,상기 각각의 검증 유닛이 한 그룹의 테스트 핀들을 가지며, 상기 검증 유닛의 핀 구성은 테스트 중인 상기 실리콘 IC의 핀 구성에 따라 자유롭게 변경되는 설계 검증 장치.
- 제15항에 있어서,상기 각각의 검증 유닛이 한 그룹의 테스트 핀들을 갖고, 상기 검증 유닛의 핀 구성은 테스트 중인 상기 실리콘 IC의 핀 구성에 따라 자유롭게 변경되며, 상기 그룹의 사이즈가 상기 검증 유닛에 할당된 상기 실리콘 IC의 입/출력 핀들의 수를 토대로 상기 메인 시스템 컴퓨터에 의해 결정되는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛 각각이 상기 시스템 버스를 통해 상기 메인 시스템 컴퓨터로부터 상기 테스트벤치 데이터를 수신하고 상기 테스트벤치 데이타로부터 이벤트 데이타를 추출하여 상기 테스트 패턴을 생성하고, 상기 검증 유닛에 할당된 상기 실리콘 IC에 상기 테스트 패턴을 인가하여 상기 실리콘 IC의 응답 출력을 평가하는 제어 컴퓨터를 포함하되, 상기 제어 컴퓨터는 상기 검증 유닛의 각각의 테스트 핀에 대해 제공되며, 상기 테스트벤치 데이타는 상기 기능 코어들의 설계 단계를 통해 생성되는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛은 상기 할당된 상기 실리콘 IC를 평가하여 상기 대응하는 기능 코어의 설계 완전성을 검증하고, 상기 검증 유닛들은 또한 상기 기능 코어들을 나타내는 상기 실리콘 IC들 간의 인터페이스 및 상기 SoC에 집적될 글루 로직을, 에뮬레이터로 상기 인터페이스 및 글루 로직을 에뮬레이트함으로써 평가하는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛은 상기 할당된 상기 실리콘 IC를 평가하여 상기 대응하는 기능 코어를 검증하고, 상기 검증 유닛들은 또한 상기 기능 코어들을 나타내는 상기 실리콘 IC들 간의 인터페이스 및 상기 SoC에 집적될 글루 로직을, FPGA로 상기 인터페이스 및 글루 로직의 기능들을 구현함으로써 평가하는 설계 검증 장치.
- 제15항에 있어서,상기 메인 시스템 컴퓨터와 상기 검증 유닛들은 상기 개별 코어들의 기능 및 구조를 나타내는 상기 실리콘 IC들에게 SoC 레벨 테스트벤치 데이터를 토대로 생성된 테스트 자극을 인가함으로써 코어-투-코어 타이밍과 SoC 레벨 타이밍 임계 경로들을 검증하는 설계 검증 장치.
- 제15항에 있어서,상기 메인 시스템 컴퓨터와 상기 검증 유닛들은 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용하여 상기 다수의 실리콘 IC의 전체 성능을 평가함으로써 전체 Soc 설계를 검증하는 설계 검증 장치.
- 제15항에 있어서,상기 메인 시스템 컴퓨터와 상기 검증 유닛들은 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용하여 상기 실리콘 IC들의 전체 성능을 평가함으로써 전체 Soc 설계를 검증하며, 상기 메인 시스템 컴퓨터는 분할 SoC 소프트웨어 어플리케이션 계산들(partition SoC software application computations)을 다수의 서브 작업들로 분할하고 상기 서브 작업들을 분배 방식으로 상기 다수의 검증 유닛들에게 할당함으로써 상기 검증 유닛들에게 상기 계산들을 분배하는 설계 검증 장치.
- 제15항에 있어서,상기 메인 시스템 컴퓨터와 상기 검증 유닛들은 전체 SoC의 시뮬레이션 테스트벤치들과 어플리케이션 실행들을 사용하여 상기 실리콘 IC들의 전체 성능을 평가함으로써 전체 Soc 설계를 검증하며, 상기 메인 시스템 컴퓨터는 분할 SoC 소프트웨어 어플리케이션 계산들을 다수의 서브 작업들로 분할하고 상기 서브 작업들을 분배 방식으로 상기 다수의 검증 유닛들에게 할당함으로써 상기 검증 유닛들에게 상기 계산들을 분배하며, 상기 메인 시스템 컴퓨터는 상기 검증 유닛들로부터 상기 실리콘 IC들의 응답들을 결합하여 SoC 레벨 응답을 형성함으로써 임의의 에러/고장을 결정하는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛 각각에 상기 대응하는 실리콘 IC를 장착하는 성능 보드를 더 포함하는 설계 검증 장치.
- 제15항에 있어서,테스트 중인 모든 실리콘 IC들과 글루 로직을 장착하는 성능 보드를 더 포함하는 설계 검증 장치.
- 제15항에 있어서,상기 검증 유닛들 각각이 값들의 변경 및 그 타이밍에 의해서만 테스트 패턴을 기술하는 이벤트 데이터를 토대로 상기 테스트 패턴을 생성하는 이벤트 기반 테스터로서 구성되는 설계 검증 장치.
- 제30항에 있어서,상기 개별 코어들의 상기 시뮬레이션 테스트벤치가 이벤트 기반 데이터 포맷을 가짐으로써, 상기 검증 유닛에 의해 상기 SoC의 코어 내 오류를 디버그하기 위한 테스트 패턴 신호를 생성하는 절차를 용이하게 되는 설계 검증 장치.
- 제15항에 있어서, 상기 검증 유닛 각각은,현재의 이벤트와 선정된 기준 포인트 간의 시간 차이며, 기준 클럭 주기의 정수 배수(정수 부분 데이터)와 상기 기준 클럭 주기의 소수(소수 부분 데이터)로 형성되는 각 이벤트의 타이밍 데이터를 기억하기 위한 이벤트 메모리;상기 이벤트 메모리를 액세스하기 위해 어드레스 데이터를 생성하기 위한 어드레스 시퀀서;상기 기준 클럭 주기 및 상기 정수 부분 데이타의 합에 의해 결정되는 이벤트 개시 신호를 생성하기 위한 이벤트 카운트 로직;상기 테스트 패턴을 형성하기 위해 상기 이벤트 카운트 로직으로부터의 이벤트 개시 신호 및 상기 소수 부분 데이터를 토대로 각각의 이벤트를 생성하기 위한 이벤트 생성 유닛; 및검증 유닛을 상기 실리콘 IC의 상기 핀들에게 할당하기 위해 상기 검증 유닛의 어드레스를 검출하기 위한 핀 유닛 기록 디코더를 포함하는 이벤트 기반 테스터로서 구성되는 설계 검증 장치.
- 다수의 기능 코어들이 집적되는 내장 코어 기반 SoC의 설계 검증을 위한 장치에 있어서,사용자와 인터페이스하고 설계 검증을 위한 장치의 전체 동작을 제어하기 위한 메인 시스템 컴퓨터;상기 메인 시스템 컴퓨터로부터 테스트벤치 데이터를 수신하고, SoC에 집적될 다수의 기능 코어들을, 상기 기능 코어들로부터 개별적으로 생성되는 다수의 물리적 실리콘 IC를 평가함으로써 테스트하기 위한 테스트 패턴들을 상기 테스트벤치 데이타를 이용하여 생성하는 다수의 검증 유닛; 및상기 다수의 검증 유닛과 상기 메인 시스템 컴퓨터를 인터페이스하는 시스템 버스를 포함하고,상기 다수의 실리콘 IC들은 상기 검증 유닛들에 접속되어, 상기 검증 유닛들로부터 상기 테스트 패턴을 수신하고, 상기 실리콘 IC들의 응답 출력이 상기 검증 유닛들과 상기 메인 시스템 컴퓨터에 의해 평가되며, 상기 실리콘 IC들 각각은 상기 SoC에 집적될 상기 기능 코어들 중 대응하는 코어와 동일한 구조 및 기능을 갖고,상기 메인 시스템 컴퓨터는 상기 실리콘 IC들에게 제공될 테스트 패턴들을 생성하고, 상기 실리콘 IC들의 응답 출력들을 평가하고, 상기 SoC의 타이밍 및 인터페이스 평가를 행하고, 상기 SoC의 전체 설계 검증을 행하는 모든 작업들을 수행하는 설계 검증 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/428,746 US6678645B1 (en) | 1999-10-28 | 1999-10-28 | Method and apparatus for SoC design validation |
US09/428,746 | 1999-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010067370A KR20010067370A (ko) | 2001-07-12 |
KR100491461B1 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101375171B1 (ko) | 2006-12-30 | 2014-03-18 | 삼성전자주식회사 | 시스템 온 칩 모델 검증 방법 및 장치 |
Families Citing this family (183)
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 | 박현숙 | 칩 설계 검증 및 테스트 장치 및 방법 |
EP1301875A2 (en) * | 2000-07-21 | 2003-04-16 | Telecom Italia Lab S.p.A. | Method and system for verifying modules destined for generating circuits |
US8103496B1 (en) | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US7765095B1 (en) | 2000-10-26 | 2010-07-27 | Cypress Semiconductor Corporation | Conditional branching in an in-circuit emulation system |
US6724220B1 (en) | 2000-10-26 | 2004-04-20 | Cyress Semiconductor Corporation | Programmable microcontroller architecture (mixed analog/digital) |
US8149048B1 (en) | 2000-10-26 | 2012-04-03 | Cypress Semiconductor Corporation | Apparatus and method for programmable power management in a programmable analog circuit block |
US8176296B2 (en) | 2000-10-26 | 2012-05-08 | Cypress Semiconductor Corporation | Programmable microcontroller architecture |
US8160864B1 (en) | 2000-10-26 | 2012-04-17 | Cypress Semiconductor Corporation | In-circuit emulator and pod synchronized boot |
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 |
KR100725135B1 (ko) * | 2001-06-30 | 2007-06-25 | 어보브반도체 주식회사 | 시스템 온 칩 |
KR100928134B1 (ko) * | 2001-08-14 | 2009-11-25 | 베리시티 디자인 인코포레이티드 | 주문형 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 |
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 |
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 |
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 |
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 |
CN100410950C (zh) * | 2003-10-31 | 2008-08-13 | 株式会社半导体能源研究所 | 半导体集成电路及其设计方法 |
US8504992B2 (en) * | 2003-10-31 | 2013-08-06 | Sonics, Inc. | Method and apparatus for establishing a quality of service model |
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 |
JP2007528553A (ja) * | 2004-03-09 | 2007-10-11 | セヤン ヤン | 検証性能と検証效率性を高める動的検証−基盤方式の検証装置及びこれを用いた検証方法論 |
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 | 양세양 | 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 |
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 |
US8069436B2 (en) | 2004-08-13 | 2011-11-29 | Cypress Semiconductor Corporation | Providing hardware independence to automate code generation of processing device firmware |
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 |
KR100626663B1 (ko) | 2004-12-14 | 2006-09-25 | 한국전자통신연구원 | 인터넷 전화용 시스템온칩 개발 및 검증 장치 |
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 |
WO2006101836A2 (en) * | 2005-03-16 | 2006-09-28 | Gaterocket, Inc. | Fpga 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) |
KR100750184B1 (ko) * | 2006-08-11 | 2007-08-17 | 삼성전자주식회사 | 반도체 집적 회로의 간접 시뮬레이션 방법 및 장치 |
KR100873956B1 (ko) * | 2006-08-17 | 2008-12-15 | 삼성전자주식회사 | 에뮬레이션 시스템 |
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 래퍼 셀 및 이를 이용한 테스트 방법 |
US8644305B2 (en) * | 2007-01-22 | 2014-02-04 | Synopsys Inc. | Method and system for modeling a bus for a system design incorporating one or more programmable processors |
WO2008111135A1 (ja) * | 2007-03-15 | 2008-09-18 | Fujitsu Microelectronics Limited | デバイス間接続試験回路生成方法、生成装置、および生成プログラム |
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 |
US8130025B2 (en) * | 2007-04-17 | 2012-03-06 | Cypress Semiconductor Corporation | Numerical band gap |
US8092083B2 (en) | 2007-04-17 | 2012-01-10 | Cypress Semiconductor Corporation | Temperature sensor with digital bandgap |
US7737724B2 (en) | 2007-04-17 | 2010-06-15 | Cypress Semiconductor Corporation | Universal digital block interconnection and channel routing |
US9564902B2 (en) | 2007-04-17 | 2017-02-07 | Cypress Semiconductor Corporation | Dynamically configurable and re-configurable data path |
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 |
US8838406B2 (en) * | 2008-11-11 | 2014-09-16 | Advantest (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 |
KR20110124617A (ko) | 2010-05-11 | 2011-11-17 | 삼성전자주식회사 | 시스템-온-칩 및 그것의 디버깅 방법 |
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 |
JP2015165226A (ja) | 2014-02-07 | 2015-09-17 | 株式会社半導体エネルギー研究所 | 装置 |
US9869716B2 (en) | 2014-02-07 | 2018-01-16 | Semiconductor Energy Laboratory Co., Ltd. | Device comprising programmable logic element |
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 |
KR102183267B1 (ko) * | 2020-05-28 | 2020-11-26 | 최훈기 | Ic 간의 설계 적합성 체크 시스템 |
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 |
CN111949470B (zh) * | 2020-08-24 | 2024-07-02 | 海光信息技术股份有限公司 | 一种芯片验证方法、装置、电子设备及存储介质 |
CN112580287A (zh) * | 2020-12-24 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种SoPC芯片内嵌FPGA的验证模块 |
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芯片分布式仿真验证平台和方法 |
CN116011392A (zh) * | 2022-12-23 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 用于验证环境级联的装置、方法、设备、介质和程序产品 |
CN115639461A (zh) * | 2022-12-23 | 2023-01-24 | 长沙驰芯半导体科技有限公司 | 一种基于双处理器的超宽带芯片原型验证平台 |
CN115993952B (zh) * | 2023-03-23 | 2023-05-30 | 中大智能科技股份有限公司 | 基于risc-v的桥梁支座监测芯片及设计***、方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
JPH0991326A (ja) * | 1995-09-22 | 1997-04-04 | Mitsubishi Denki Micom Kiki Software Kk | エミュレーション装置 |
JPH10115668A (ja) * | 1996-08-30 | 1998-05-06 | Texas Instr Inc <Ti> | テストインタフェースを含む集積回路及びテストインタフェースを使用する方法 |
KR19990079355A (ko) * | 1998-04-03 | 1999-11-05 | 윤종용 | 테스트벤치 발생기 및 이를 이용한 시뮬레이션방법 |
KR20000029368A (ko) * | 1998-10-30 | 2000-05-25 | 어드밴테스트 코포레이션 | 내장된 코아에 기초하는 온-칩 시스템을 테스트하기 위한방법 및 구조 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0673363B2 (ja) * | 1984-07-02 | 1994-09-14 | 株式会社東芝 | システムlsiの設計方法 |
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 | 株式会社日立製作所 | 論理エミュレーションシステム及び等価回路生成方法 |
US5903475A (en) * | 1996-07-18 | 1999-05-11 | Lsi Logic Corporation | System simulation for testing integrated circuit models |
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 |
JP3004641B2 (ja) * | 1998-02-05 | 2000-01-31 | 松下電器産業株式会社 | シミュレ―ション装置及び当該シミュレ―ション装置を実現するコンピュ―タに実行させるプログラムを記録したコンピュ―タ読み取り可能な記録媒体 |
US6094726A (en) * | 1998-02-05 | 2000-07-25 | George S. Sheng | Digital signal processor using a reconfigurable array of macrocells |
US6304837B1 (en) * | 1998-02-21 | 2001-10-16 | Adaptec, Inc. | Automated test vector generation and verification |
US6360353B1 (en) * | 1998-02-21 | 2002-03-19 | Adaptec, Inc. | Automated alternating current characterization testing |
EP1145159A3 (en) * | 1998-09-30 | 2002-07-10 | Cadence Design Systems, Inc. | Block based design methodology |
US6532561B1 (en) * | 1999-09-25 | 2003-03-11 | Advantest Corp. | Event based semiconductor test system |
-
1999
- 1999-10-28 US US09/428,746 patent/US6678645B1/en not_active Expired - Fee Related
-
2000
- 2000-10-25 TW TW089122468A patent/TW494325B/zh not_active IP Right Cessation
- 2000-10-26 DE DE10053207A patent/DE10053207A1/de not_active Withdrawn
- 2000-10-27 KR KR10-2000-0063483A patent/KR100491461B1/ko not_active IP Right Cessation
- 2000-10-27 JP JP2000333518A patent/JP4804620B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
JPH0991326A (ja) * | 1995-09-22 | 1997-04-04 | Mitsubishi Denki Micom Kiki Software Kk | エミュレーション装置 |
JPH10115668A (ja) * | 1996-08-30 | 1998-05-06 | Texas Instr Inc <Ti> | テストインタフェースを含む集積回路及びテストインタフェースを使用する方法 |
KR19990079355A (ko) * | 1998-04-03 | 1999-11-05 | 윤종용 | 테스트벤치 발생기 및 이를 이용한 시뮬레이션방법 |
KR20000029368A (ko) * | 1998-10-30 | 2000-05-25 | 어드밴테스트 코포레이션 | 내장된 코아에 기초하는 온-칩 시스템을 테스트하기 위한방법 및 구조 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101375171B1 (ko) | 2006-12-30 | 2014-03-18 | 삼성전자주식회사 | 시스템 온 칩 모델 검증 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
TW494325B (en) | 2002-07-11 |
US6678645B1 (en) | 2004-01-13 |
JP4804620B2 (ja) | 2011-11-02 |
DE10053207A1 (de) | 2001-05-03 |
KR20010067370A (ko) | 2001-07-12 |
JP2001189387A (ja) | 2001-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100491461B1 (ko) | SoC 설계 검증을 위한 방법 및 장치 | |
Rashinkar et al. | System-on-a-chip Verification: Methodology and Techniques | |
US7089517B2 (en) | Method for design validation of complex IC | |
US8997034B2 (en) | Emulation-based functional qualification | |
Civera et al. | An FPGA-based approach for speeding-up fault injection campaigns on safety-critical circuits | |
KR100936855B1 (ko) | Asic/soc 제조시에 프로토타입-홀드를 방지하기위한 제조 방법 및 장치 | |
US8136065B2 (en) | Integrated prototyping system for validating an electronic system design | |
Huang et al. | SoC HW/SW verification and validation | |
Jindal et al. | Verification of transaction-level SystemC models using RTL testbenches | |
US9183329B2 (en) | Debugging simulation with partial design replay | |
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 | |
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) | 半導体試験用プログラムデバッグ装置 | |
Choi et al. | Early HW/SW Co-Verification Using Virtual Platforms | |
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 | |
Kurula | A FRAMEWORK FOR EARLY SYSTEM-ON-CHIP CO-VALIDATION | |
Kuitunen | SoC FPGA based integration testing platform | |
WO2024049472A2 (en) | Communication link latency tolerance for hardware assisted verification systems | |
Grossman et al. | Hierarchical simulation-based verification of Anton, a special-purpose parallel machine |
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 |