KR19980032933A - 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치 - Google Patents
에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치 Download PDFInfo
- Publication number
- KR19980032933A KR19980032933A KR1019970053374A KR19970053374A KR19980032933A KR 19980032933 A KR19980032933 A KR 19980032933A KR 1019970053374 A KR1019970053374 A KR 1019970053374A KR 19970053374 A KR19970053374 A KR 19970053374A KR 19980032933 A KR19980032933 A KR 19980032933A
- Authority
- KR
- South Korea
- Prior art keywords
- event
- design
- simulation
- microprocessor
- reconfigurable
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- 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
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명은 논리 설계의 에뮬레이션 및 시뮬레이션을 결합시키는 방법 및 장치에 관한 것이다. 게이트-레벨 기술(gate-level description), 행위적 표현(behavioral representation), 구조적 표현(structural representation), 또는 그 결합을 포함하는 논리 설계에 의해 방법 및 장치가 사용될 수 있다. 에뮬레이션 및 시뮬레이션 부분은 2개의 부분간에 데이터를 전송하기 위한 시간을 최소화하는 방향으로 결합된다. 시뮬레이션은 하나 이상의 마이크로프로세서에 의해 수행되는 반면에, 에뮬레이션은 필드 프래그래머블 게이트 어레이(field programmable gate array)와 같은 재구성가능한 하드웨어 내에서 수행된다. 다수의 마이크로프로세서가 채용되는 경우, 논리 설계의 독립적 부분이 다수의 동기화된 마이크로프로세서 상에서 실행되도록 선택된다. 재구성가능한 하드웨어는 또한 시뮬레이션을 보조하고, 프로세싱 시간을 감소시키기 위해 이벤트 검출 및 스케쥴 동작을 수행한다.
Description
본 발명은 논리 설계를 검증하기 위해 에뮬레이션과 시뮬레이션을 결합시키는 것에 관한 것이다.
에뮬레이션 제조 전에 시스템 및 집적회로는 기능적으로 테스트하기 위한 회로 및 시스템 설계자의 강력한 방법을 제공한다. 회로 설계자 및 엔지니어는 설계를 일시 동작 하드웨어(temporary operating hardware)로 전환하기 위해 에뮬레이터을 이용하여, 엔지니어가 실시간 조건에서 또는 그 조건에 근접하여 설계를 테스트할 수 있게 한다. 부가적으로, 엔지니어는 집적 회로, 시스템 하드웨어, 및 소프트웨어를 동시에 검증할 수 있다. 에뮬레이션 시스템의 예가 샘플 등의 미국 특허 제5,109,353호 및 버츠 등의 미국 특허 제5,036,473호에 설명되어 있으며, 상기 양 특허는 본 명세서에 참조로서 고려된다.
전형적으로, 설계 프로세스는 초기 설계 아이디어 레벨에서 상세한 제조 레벨까지의 설계의 다수의 변형들(transformation)을 포함한다. 엔지니어는 설계 아이디어로부터 시작할 것이다. 이어서 엔지니어는 설계 아이디어의 행위 정의(behavioral definition)를 발생시킬 것이다. 행위 설계(behavioral design)의 결과는 플로우챠트이거나 또는 플로우 그래프일 것이다. 다음으로, 엔지니어는 시스템 데이터 경로를 설계할 수 있으며 시스템의 구현에 필요한 레지스터 및 논리 유닛을 명기할 수 있다. 이 단계에서, 엔지니어는 버스을 통한 레지스터과 논리 유닛간의 데이터의 이동을 제어하는 절차를 성립시킬 수 있다. 설계 프로세스에서 논리 설계가 다음 단계로서, 이에 의해 엔지니어는 데이터 레지스터, 버스, 논리 유닛, 및 그것의 제어 하드웨어의 구현을 위해 프리머티브 게이트들(primitive gate) 및 플립-플롭을 이용한다. 이 설계 단계의 결과는 게이트 및 플립-플롭의 넷리스트(netlist)이다.
다음 설계 단계는 게이트 및 플립-플롭의 넷리스트를 트랜지스터 리스트(transistor list) 또는 레이아웃으로 변환한다. 따라서, 게이트 및 플립-플롭은 그것의 트랜지스터 등가물 또는 라이브러리 셀들로 교체된다. 셀 및 트랜지스터 선택 프로세스 동안에, 타이밍 및 로딩 요구가 고려된다. 최종적으로, 설계가 제조되며, 이에 의해 프로그램가능한 디바이스의 퓨즈를 가열하거나(burn) 집적회로 제조를 위한 마스크를 발생하기 위해 트랜지스터 리스트 또는 레이아웃 명세가 사용된다.
하드웨어 기술 언어들(HLDs)은 상술된 다양한 설계 단계의 출력을 표현하는 다양한 포맷을 제공한다. 이언어은 기능 블록의 게이트-레벨 기술 및 완전 시스템들(complete system)의 하이-레벨 기술(High-level description)을 포함하는 다양한 레벨에서 회로를 생성하기 위해 사용될 수 있다. 따라서, HDL은 추상화된 많은 레벨에서 전자 시스템을 기술할 수 있다.
하드웨어 기술 언어는 설계의 시뮬레이션, 모델링, 테스팅, 생성 및 문서화(documentation)를 목적으로 하드웨어를 기술하기 위해 사용된다. 이전에, 회로 설계자는 논리 게이트 레벨에서 설계하려는 경향이 있었다. 점차로, 설계자는 특히, HDL 방법론을 이용하여 더욱 하이 레벨로 설계하고 있다. HDL은 설계의 기능 및 배선 세부사항의 표현을 위한 편리한 포맷을 제공하며 추상화된 1개 이상의 레벨로 하드웨어를 표현할 수 있다.
2개의 인기있는 하드웨어 기술 언어가 베리로그(Verilog) 및 초고속 집적회로(Very-High-Speed Integrated Circuit; VHSIC) 하드웨어 기술 언어(VHDL)이다. VHDL은 1980년대 초기에 미국 국방성에서 시작하였으며 처음에는 디지털 하드웨어 시스템을 기술하기 위한 문서화 언어로서 시작되었다. 이후에, 이 언어는 기술(description)이 시뮬레이션되고 합성될 수 있도록 정련되었다. 설계 엔트리(design entry), 시뮬레이션 및 합성을 포함하는 HDL-기본 설계 툴의 등장은 결과적으로 VHDL의 초점을 설계 문서화로부터 하이-레벨 설계로 이양시켰다. 다른 하드웨어 기술 언어는 다음과 같은 것을 포함하며, 그에 한정되는 것은 아니다; 하드웨어 프로그래밍 언어(A Hardware Programming Language; AHPL), 컴퓨터 설계 언어(Computer Design Language; CDL), 컨센서스 랭귀지(CONsensus LANguage; CONLAN), 대화형 설계 언어(Interactive Design Language; IDL), 명령어 집합 프로세서 규약(Instruction Set Processor Specification; ISPS), 테스트 발생 및 시뮬레이션(Test Generation And Simulation; TEGAS), 텍사스 인스트루먼츠 하드웨어 기술 언어(Texas Instrument Hardware Description Language; Ti-HDL), 도시바 기술 언어(Toshiba Description Language; TDL), ZEUS, 및 NDL.
시뮬레이션은 오랫동안 복잡한 전자 회로 설계의 논리적 교정의 검증을 위한 양호한 방법이었다. 시뮬레이션은 임의의 자극이 가해지는 경우, 제조되고 테스트된 설계와 유사한 방식으로 응답하는 모델의 생성으로서 광범위하게 정의되었다. 보다 구체적으로, 시뮬레이션이라는 용어는 전형적으로 그러한 모델이 컴퓨터 프로그램으로서 수행되는 경우에 사용된다. 그와 대조적으로, 에뮬레이션은 프로그램가능(혹은 재구성가능) 논리 또는 필드-프로그래머블 게이트 어레이(FPGA) 디바이스을 이용하는 모델의 생성이다. 시뮬레이션은 설계자의 비싼 제조 프로세스가 수행되기 이전에 설계상의 에러를 검출할 수 있게 하기 때문에 많은 양의 시간 및 재정 자원을 절감한다. 더욱이, 설계 프로세스 그 자체는 새로운 제품의 초기 일반적인 개념이 상세한 청사진으로 변환되는 일련의 단계들로서 보여질 수 있다. 이러한 프로세스의 초기 단계에서의 에러의 검출은 또한 시간 및 엔지니어링 자원을 절감한다.
시뮬레이터은 2가지 종류로 분할될 수 있다. 제1 종류의 시뮬레이터는 레벨화된 시뮬레이션 원리(levelized simulation principle)를 따르며, 제2 종류는 이벤트-중심 시뮬레이션 원리(event-driven simulation principle)를 따른다. 각 시뮬레이션 사이클에서, 레벨화된 시뮬레이터은 컴포넌트의 입력 신호가 변화되는 것에 상관없이 시뮬레이트된 설계의 모든 컴포넌트의 새로운 상태를 재평가해야 한다. 부가적으로 상태가 변화되지 않았을지라도 컴포넌트의 상태는 재전송되어야 한다. 이벤트 중심 시뮬레이터는 어떤 입력 조건이 현재의 시뮬레이션 사이클에서 변화하는 컴포넌트만을 평가한다. 결과적으로, 이벤트 중심 시뮬레이터는 컴포넌트 평가 시간의 현저한 절감을 실현한다. 그러나, 현저한 부가적 소프트웨어 실행 시간이 특정 컴포넌트가 평가되어야 하는 지에 대한 결정 수립에 소비된다. 그 결과, 두가지 종류의 종래의 시뮬레이터(레벨화된 시뮬레이터 및 이벤트 중심 시뮬레이터)는 유사한 성능을 갖는다.
시뮬레이션에 대한 에뮬레이션의 제1 장점은 속도이다. 에뮬레이션은 검증 하에 있는 각 컴포넌트를 물리적으로 상이한 프로그램 가능한 논리 디바이스로 맵핑하여 그러한 모든 컴포넌트가 동시에 검증된다. 그러나, 전형적인 시뮬레이터에서, 단일 프로세싱 엘리먼트는 각 시뮬레이션 시간 단계에서 각 컴포넌트의 다음 상태를 연속적으로 계산한다.
에뮬레이션은 논리 게이트의 네트워크로서 표현되거나 또는 네트워크로 용이하게 변환된 설계에 대한 효율적인 검증 기술(verification technology)이다. 그러나, 현대의 설계 방법론은 초기 설계 단계에서, 큰 설계부이 행위 모델(behavioral model)로서 표현될 것을 필요로 한다. 일련의 설계 결정을 통해서 이와 같은 행위 모델은 점차로 동등한 구조적 표현으로 교체된다. 각 교체 단계의 교정은 어떤 지점에서 설계 그 자체가 행위적, 구조적, 및 게이트-레벨 컴포넌트의 복잡화된 혼합으로서 표현되는 지가 검증된다. 설계의 구조적 부분은 광범위하게 유용한 논리 합성 프로그램을 이용하여 에뮬레이션 하드웨어 내로 직접적으로 맵핑된다. 그러나, 행위 부분(behavioral portion)은 컴퓨터 프로그램으로 컴파일되고 실행되기만 할 수 있다. 그 성질에 의해, 에뮬레이션은 실제 하드웨어를 이용하여 모델을 생성할 것을 필요로 하며 따라서 새로운 제품의 개념이 그 기능의 하이-레벨 기술에 의하지 않고서는 그 컴포넌트에 의해 표현되지 않는 경우에 설계 사이클의 초기 단계에서 사용될 수 없다. 따라서, 설계 단계의 초기에 검증을 수행하기 위해, 가장 적합한 환경은 에뮬레이션 및 행위 시뮬레이션의 특성을 효율적으로 결합시킬 것이다. 또한, 에뮬레이션과 시뮬레이션을 결합시킴으로써 설계자가 아날로그 신호와 같은 물리적 제약조건 때문에 에뮬레이트될 수 없는 설계 컴포넌트를 시뮬레이트할 수 있게 한다.
설계가 완료되어 감에 따라, 행위 시뮬레이션에서 논리 에뮬레이션으로 주안점이 이양된다. 그러나, 미래의 제품의 동작 환경을 나타내는 부분은 결코 구조적 표현으로 변환될 수 없다. 이러한 경우에, 시스템-레벨 환경의 행위 기술(behavioral description)은 에뮬레이트된 설계를 위한 테스트 벤치로서의 역할을 한다. 시스템-레벨 기술(system-level description)은 테스트 자극(test stimulus)을 생성하고 실제 동작 조건을 아주 유사하게 복사하는 방법으로 검증 하에 있는 설계의 응답을 평가한다. 그러한 행위 테스트 벤치을 실행할 필요성은 하나의 논리 검증 시스템에서 시뮬레이션 및 에뮬레이션 기능을 결합하는 다른 동기이다.
에뮬레이션과 시뮬레이션을 결합시키는 한 방법은 신호 상태의 이벤트 또는 변화을 네트워크 인터페이스 상의 설계의 에뮬레이트된 부분으로 또는 에뮬레이트된 부분으로부터 통신하는 호스트 워크스테이션 (또는 그 네트워크) 상에서 시뮬레이터를 실행시키는 것이다. 그러나, 그러한 방법에서, 이벤트 전달의 속도는 성능을 크게 제한한다. 실험에 의하면, SUN 워크스테이션 컴퓨터(예, SPARC-20) 상에서 실행되는 전송 제어 프로토콜(TCP) 상에서 4-바이트 데이터 패킷을 전달하는 평균 시간은 50 마이크로초 내외이다. 그와 같은 크기의 데이터 패킷이 이벤트 및 시뮬레이션 사이클 당 1000 이벤트의 주어진 평균 설계 활동성을 인코딩하기 위해 사용된다고 가정하면, 시뮬레이션의 속도는 초당 20 사이클로 한정될 것이다. 따라서, 현재 게이트-레벨, 구조적 및 행위 표현의 혼합일 수 있는 회로 설계를 효율적으로 검증하기 위해 에뮬레이션과 시뮬레이션을 결합시킬 필요성이 존재한다.
따라서, 본 발명의 일반적인 목적은 논리 설계의 시뮬레이션과 에뮬레이션을 효율적으로 결합시키는 장치 및 방법을 제공하여, 시뮬레이트된 그리고 에뮬레이트된 설계 부분간의 이벤트 전송의 오버헤드가 최소화되게 하는 것이다.
상기 목적을 실현하기 위해, 상기 설계 검증 방법 및 장치는 검증 하에 있는 논리 설계의 일부분을 에뮬레이트하는데 사용되는 적어도 하나의 재구성가능한 디바이스를 포함한다. 부가적으로, 행위 기술로서 표현될 수 있는 다른 설계 부분을 시뮬레이트하기 위해 적어도 하나의 마이크로프로세서가 사용된다. 이 마이크로프로세서는 시뮬레이트된 부분과 에뮬레이트된 부분 간의 데이터 전송 시간을 최소화하는 방법으로 재구성가능한 디바이스에 접속된다. 또한, 설계의 검증 동안에 이벤트를 검출하기 위해 이벤트 검출기가 제공된다. 마이크로프로세서는 그러한 이벤트 검출 기능을 수행하는 것으로부터 해방되고, 이에 의해 설계 검증 시간을 절감한다.
본 발명의 다른 목적, 장점, 및 특성이 당분야의 숙련된 사람에게 있어 다음의 명세서 및 도면을 연구함으로써 더욱 명확해질 것이다.
도 1은 다수의 프로세서 및 프로그램가능한 게이트 어레이 디바이스를 갖는 논리 검증 시스템의 한 실시예의 블럭 다이어그램.
도 2는 글로벌-이벤트-전송 버스를 포함하는 논리 검증 시스템의 다른 실시예의 블럭 다이어그램.
도 3은 시뮬레이트된 설계부분으로부터 에뮬레이트된 설계부분 내로의 변수의 계산된 값의 전송의 블럭 다이어그램.
도 4는 에뮬레이트된 설계부분으로부터 시뮬레이트된 설계부분 내로의 변수의 계산된 값의 포획의 블럭 다이어그램.
도 5는 이벤트 코드의 계산 및 행위 시뮬레이션을 수행하는 마이크로프로세서로의 전송의 블럭 다이어그램.
도 6은 이벤트가 예를 들어, 활성 이벤트, 비활성 이벤트, 비블록화 할당 업데이트 이벤트, 및 모니터 이벤트들로 그룹화할 때 이벤트 코드의 계산 및 행위 시뮬레이션을 수행하는 마이크로프로세서로의 전송을 도시하는 다른 실시예의 블럭 다이어그램.
도 7은 이벤트 그룹내의 두드러진 이벤트의 검출의 블럭 다이어그램.
도 8은 시뮬레이션 시간을 선행시키는 신호의 계산을 설명하는 블럭 다이어그램.
도 9는 공유 멀티플렉스된 버스 상에서 한 마이크프로세서로부터 다른 마이크로프로세서로의 이벤트의 전송의 도면.
도 10은 이벤트 검출기의 블럭 다이어그램.
도 11은 설계의 에뮬레이션 동안에 보류-시간 위반을 방지하기 위해 검증 하에서 논리 설계에 대해서 고안된 한 변환의 블럭 다이어그램.
도 12는 설계 에뮬레이션 동안에 보류-시간 위반을 방지하기 위해 논리 설계에 대해서 고안된 다른 변환의 블럭 다이어그램.
도 13은 논리 검증 시스템의 프로그래밍의 블럭 다이어그램.
도 14는 Verilog 하드웨어 기술 언어 내의 코드 프래그먼트를 사용하여 부분적으로는 컴포넌트 상호접속에 의해, 그리고 부분적으로는 행위 기술에 의해 표현된 논리 설계의 예의 도면.
도 15는 (도 13에 도시된 입력 단계(132)의 완료 후에) 행위 데이터베이스 내의 논리 설계의 중간 표현의 예의 도면.
도 16은 넷리스트 발생 단계(140)(도 13에 도시된 단계)에 의해 생성된 회로 프래그먼트의 예의 도면.
도 17은 코드 발생 단계(144)(도 13에 도시된 단계)에 의해 생성된 ('C' 프로그래밍 언어 내의) 실행가능한 코드의 예의 도면.
도면의 주요 부분에 대한 부호의 설명
10 : FPGA
12 : 프로그램가능한 상호접속부
16 : CPU
20 : RAM
22 : FPGA
24 : 버스 제어기
26 : 제어기
28 : 시스템 버스
도 1은 논리 검증 시스템의 양호한 실시예의 도면이다. 이 시스템은 프로그램가능한 상호접속부(12)를 사용하여 상호접속된 프로그램가능한 게이트 어레이(FPGA) 디바이스(10)일 수 있는 하나 이상의 재구성가능한 논리 컴포넌트를 포함한다. 상호접속부(12)는 그에 접속된 디바이스의 몇 개의 입력 또는 출력간의 임의의 접속을 생성하도록 프로그램될 수 있다. 장치는 또한 하나 이상의 시뮬레이션 모듈(14)을 포함한다(예시의 목적상 3개가 도시되어 있음). 각각의 시뮬레이션 모듈(14)은 마이크로프로세서 버스(18)를 통해 하나 이상의 일시 접근 메모리 디바이스(20), FPGA(22)일 수 있는 하나 이상의 재구성가능한 논리 컴포넌트, 및 시스템 버스 제어기(24)로 접속된 마이크로프로세서(16)를 포함한다. 비록 도 1에는 하나의 임의 접속 메모리 디바이스(20), 및 하나의 FPGA(22) 만이 도시되어 있으나, 당분야의 숙련공이라면 몇 개의 메모리 디바이스(20) 또는 FPGA(22)가 채용될 수 있다는 것이 알 수 있을 것이다. 또한, 어떤 종류의 메모리도 임의 접속 메모리(20)의 기능을 유사하게 수행하는데 사용될 수 있다. 부가적으로, PAL 또는 PLA같은 다른 종류의 재구성가능한 논리 컴포넌트가 FPGA(10)(22)의 기능을 수행할 수 있다. 어떤 종류의 FPGA를 사용할 것인가는 순전히 설계자의 선택의 문제이다. 양호한 실시예에서, Xilinx, Inc(사)로부터의 4036EX 디바이스가 사용되었다. 이 디바이스는 본 명세서에 참조로서 고려되는 Xilinx 사의 1996년 6월호 PN 0010303, 프로그램가능한 논리 데이터 북(Programmable Logic Data Book)에 설명되어 있다. 어떤 CPU(16)를 사용할 것인 가도 또한 설계자의 선택의 문제이다. 양호한 실시예에서, IBM(사)로부터의 PPC403GC CPU 칩이 사용되었다. 각 시뮬레이션 모듈(14) 내의 각 FPGA 디바이스들(22)은 또한 프로그램가능한 상호접속부(12)에 접속된다.
FPGA 디바이스(10)는 버츠 등의 미국 특허 제5,036,473호에 개시된 바와 같이, 컴포넌트의 상호접속으로서 나타나는 검증 하에 있는 논리 회로 부분을 에뮬레이트한다. 시뮬레이션 모듈(14)은 행위 기술에 의해 표현될 수 있는 검증 하에 있는 논리 회로 부분을 시뮬레이트한다. 모듈(14) 내에는, 마이크로프로세서(16)가 행위 기술의 프래그먼트를 선택적으로 실행한다. FPGA(22) 내에서 수행되는 하드웨어 논리는 실행될 행위 프래그먼트 및 실행의 순서를 선택한다. 종래 기술에서 공지된 이벤트-중심 시뮬레이터와는 달리, 마이크로프로세서(16)는 검출, 스케쥴, 및 이벤트의 순서 정렬(ordering the event)의 기능으로부터 해방된다. 그 결과, 시뮬레이션 속도가 극적으로 향상된다. FPGA 디바이스(22)는 또한 컴포넌트의 상호접속에 의해 표현되는 행위 기술부와 그것의 설계부 사이에 공유된 신호값을 통신한다. 부가적으로, FPGA(22)은 상이한 시뮬레이션 모듈(14) 간에 공유된 신호값을 통신한다.
FPGA 디바이스(22)가 컴포넌트 상호접속으로서 표현된 논리 회로 부분을 에뮬레이트하지 않는다는 것은 본 발명에 있어서 필수인 것은 아니다. 유사하게, FPGA 디바이스(10)가 마이크로프로세서(16)에 의한 실행을 위한 행위 코드 프래그먼트의 선택 및 순서를 결정하는 논리를 수행하지 않는다는 것이 본 발명에 필수인 것은 아니다. 오히려, 양호한 실시예에서, 본 발명은 FPGA 디바이스(10) 및 FPGA 디바이스(22) 중에서 이러한 목적중에서 어떤 것을 위해 사용된 하드웨어 로직의 임의의 배분을 허용한다. 비록 간략화를 위해 FPGA 디바이스(22)가 채용되었으나, 당분야의 숙련공이라면 FPGA 디바이스(10)가 유사하게 채택될 수 있다는 것이 이해될 수 있다.
시스템 버스 제어기(24)가 시스템 버스(28)를 통해서 시스템 제어기(26)에 접속된다. 시스템 제어기(26)는 구성 데이터를 FPGA 디바이스(10)(22) 내로의 다운로딩, 실행가능한 데이터의 임의 접속 메모리 디바이스(20)로의 다운로딩, 논리 검증 시스템의 시동, 논리 검증 시스템과 호스트 워크스테이션(도시 생략) 사이의 데이터의 통신의 기능을 수행한다. 이 시스템 제어기(26)는 상업적으로 삽입된 제어기 보드를 사용하여 또는 당분야의 업자에게 공지된 다른 수단에 의해 수행된다.
임의 접속 메모리 디바이스(20)는 행위 코드 프래그먼트 및 행위 기술 부분과 컴포넌트 상호접속부간에 또는 다수의 시뮬레이션 모듈(14) 간에 공유되지 않은 시뮬레이션 변수의 값을 저장한다. 시스템 버스 제어기(24)는 시스템 버스(28)를 통해서 시스템 제어기(26)로 또는 제어기로부터 데이터를 통신한다. 논리 검증 시스템은 FPGA 디바이스(10)(22) 및 프로그래밍 상호접속부(12)에 대한 구성 데이터의 프로그래밍을 가능하게 한다. 또한 실행가능한 소프트웨어 코드 프래그먼트가 임의 접속 메모리 디바이스(20) 내로 다운로드된다. 그러한 프로그래밍은 컴퓨터 프로그램으로서 수행되고 컴퓨터 워크스테이션 상에서 실행될 수 있다.
논리 검증 시스템의 대체적인 실시예가 도 2에 도시되어 있다. 이 실시예는 모든 FPGA 디바이스(22)에 병렬로 접속된 다수의 신호선(30), 및 모든 FPGA 디바이스(22)에 직렬로 접속된 데이지 체인 라인(32)을 포함하는 글로벌-이벤트-통신 버스(global-event-communication bus)를 더 포함한다. 이 실시예는 또한 도 1에 도시된 것과 같은 시스템 버스 제어기(24), 시스템 제어기(26) 및 시스템 버스(28)를 포함한다는 것을 알아야 한다. 도면을 간략화하기 위해 이 컴포넌트는 도 2에서 생략된다. 프로그램가능한 상호접속부(12)가 한정되고 비싼 자원을 구성하기 때문에 글로벌-이벤트-통신 버스가 포함된다. 프로그램가능한 상호접속부(12)를 통해서 다수의 시뮬레이션 모듈(14) 간에 공유된 신호을 라우트하기 보다는, 그러한 신호은 글로벌-이벤트-통신 버스 상에서 한번에 한 신호씩 연속적으로 통신될 수 있다. 새로운 신호값의 송신기로서의 역할을 하는 시뮬레이션 모듈(14)은 그러한 신호의 일련 번호 및 그것의 새로운 값을 나타내기 위해 신호선(30)의 일부를 세트한다. 이러한 정보는 모든 다른 시뮬레이션 모듈(14)에 도달하고 필요에 따라 포획된다.
몇 개의 시뮬레이션 모듈(14)이 동시에 송신기로서의 역할을 할 때, 신호선(30)을 제어하게 되는 순서가 설정될 필요가 있다. 이러한 순서를 실현하기 위해, 데이지 체인 라인(32)이 토큰 링 원리에 따라 동작된다. 어떤 주어진 순간에, 데이지 체인 라인(32)의 입력부 상의 값에 의해 나타내어지는 토큰은 시뮬레이션 모듈중에서 하나와 함께 존재하여, 모듈(14)에게 신호선(30)을 제어할 수 있는 권리를 준다. 전송을 완료한 후에, 시뮬레이션 모듈(14)은 데이지 체인 라인(32) 등을 따라 다음 모듈로 토큰을 이양한다.
시뮬레이션 모듈(14) 간에 공유된 신호을 전송하는 것에 부가적으로, 글로벌-이벤트-통신 버스도 또한 신호을 전송하여서 시뮬레이션 모듈(14)의 동작을 동기화한다. 그러한 동기화 신호의 예은 시뮬레이션 시간 진행 신호, 및 시뮬레이션 모듈(14)이 아직 현재 시뮬레이션 사이클 내에 프로세스될 몇 개의 이벤트를 갖는다는 것을 나타내는 BUSY 신호을 포함한다.
행위 기술 프래그먼트를 실행하면서, 마이크로프로세서(16)는 시뮬레이트되는 논리 설계의 현재 상태를 설명하는 변수에 새로운 값을 세트할 필요가 있다. 오직 하나의 시뮬레이션 모듈(14)에 국부적으로 사용된 그러한 변수은 임의 접속 메모리 디바이스(20) 내의 적합한 위치에 의해 나타내어진다. 그러나, 행위 기술부분과 컴포넌트 상호접속부간에 공유되고, 다수의 시뮬레이션 모듈(14) 간에 공유된 그러한 변수은 시뮬레이션 모듈(14)의 외부로 전송되어야 한다. 도 3은 마이크로프로세서 버스(18)가 다수의 어드레스 라인(34), 버스 동작(판독 또는 기록) 라인(36), 전송되는 변수를 정확하게 식별하는 코드(또는 가변 ID)를 나타내는 다수의 데이터 라인(38), 및 그러한 변수의 새로운 값을 나타내는 데이터 라인(40)으로 스플릿되는 그러한 전송의 도면이다. i/o 인스트럭션의 실행 후에, 마이크로프로세서(16)는 적합한 신호값을 마이크로프로세서 버스(18)를 함께 구성하는 라인들(34-40) 상에 인스톨한다. 라인(34)(36) 상의 값의 특정의 독특한 결합은 동작 디코더(42)에 마이크로프로세서(16)가 어떤 변수의 새로운 값을 전송할 것이라는 것을 표시한다. 그 응답으로, 동작 디코더(42)는 가변 선택기(44)를 인에이블 시켜서 특정 변수의 표시로서 라인(38) 상의 값의 결합을 인식하게 한다. 그 응답으로, 가변 선택기(44)는 레지스터(46)를 인에이블하여 라인(40)으로부터의 새로운 변수값을 포획한다.
유사하게, 행위 기술 프래그먼트를 실행하는 동안에 마이크로프로세서(16)는 논리 설계의 현재 상태가 시뮬레이트된다는 것을 기술하는 새로운 변수값을 포획할 필요가 있다. 오직 하나의 시뮬레이션 모듈(14) 내에 국부적으로 사용되는 그러한 변수는 임의 접속 메모리 디바이스(20) 내의 적합한 위치에 의해 나타내어진다. 행위 기술부와 컴포넌트 상호접속부간에 공유되고, 다수의 시뮬레이션 모듈(14) 간에 공유된 그러한 변수은 시뮬레이션 모듈(14)의 외부로부터 포획되어야 한다. 도 4는 FPGA(22)가 멀티플렉서(48), 중간 레지스터(50), 및 버스 구동기(52)를 부가적으로 포함할 때에 그러한 포획을 도시한다.
포획 동작은 2 단계들로 진행하며 완료시키기 위해 2개의 마이크로프로세서 인스트럭션을 취한다. 제1 단계에서, 기록 동작이 수행된다. 동작 디코더(42)는 마이크로프로세서가 변수값을 포획하기 시작하려 한다는 표시로서 라인(34) 상의 어드레스와 라인(36) 상의 버스 동작의 결합을 인식한다. 그 응답으로, 동작 디코더(42)는 레지스터(50)를 인에이블시키고, 다음으로 라인(38) 상의 가변 ID에 기초하여 멀티플렉서(48)에 의해 선택된 변수값을 포획한다.
제2 단계에서 판독 동작이 수행된다. 동작 디코더(42)는 라인34) 상의 어드레스와 라인(36) 상의 버스 동작의 결합을 마이크로프로세서가 변수값의 포획을 완료하려 하다는 표시로서 인식한다. 다음으로, 동작 디코더(42)는 버스 드라이버(52)를 인에이블시켜서 변수값을 레지스터(50)의 출력으로부터 마이크로프로세서 버스(18)의 라인(40) 상으로 전송한다.
상술된 바와 같이, FPGA(10)(22) 내에서 수행된 하드웨어 논리는 마이크로프로세서(16)에 의한 실행에 대한 행위 코드 프래그먼트를 선택하고 순서를 정한다. 그러한 논리의 한 실시예가 도 5에 도시되어 있다. 이 실시예는 1개 이상의 이벤트 검출기(54)(예시의 목적상, 2개가 도시됨), 이벤트 인코더(56), 및 버스 드라이버(58)를 포함한다. 각 이벤트 검출기(54)는 마이크로프로세서(16)에 의한 행위 코드의 하나의 특정 프래그먼트의 실행을 트리거하는 신호를 개별적으로 생성한다. 그 신호는 이벤트 인코더(56) 내로 공급되어서 그 출력에서 세트된 입력 신호를 정확하게 식별하는 (이벤트 ID라고 공지된) 코드를 제공한다.
이벤트 디코더(56)로의 2개 이상의 입력이 동시에 세트되는 경우, 행위 코드 프래그먼트 실행 순서에 우선권을 갖는 이벤트의 ID를 발생시킨다. 예를 들어, 더욱 작은 이벤트 ID값을 갖는 이벤트일 수 있다.
마이크로프로세서(16)가 다음 행위 프래그먼트를 실행할 준비가 된 경우, 판독 동작을 수행한다. 동작 디코더(42)는 라인(34) 상의 어드레스와 라인(36) 상의 버스 동작의 결합을 마이크로프로세서가 실행될 다음 행위 코드 프래그먼트의 ID를 포획하려 한다는 표시로서 인식한다. 그 응답으로, 동작 디코더는 버스 드라이버(58)를 인에이블시켜 이벤트 ID를 이벤트 인코더(56)의 출력으로부터 마이크로프로세서 버스(18)의 라인(38) 상으로 전송한다. 어떤 이벤트 검출기(54)도 행위 코드 프래그먼트의 실행을 요구하는 신호를 발생시키지 않는 경우, 이벤트 인코더(56)는 마이크로프로세서(16)에 이때에 어떤 동작도 요구되지 않는다고 표시하는 출력 신호를 발생시킨다. 적어도 하나의 이벤트 검출기(54)의 출력에서의 출력 신호의 등장은 한 실시예에서, 마이크로프로세서(16)의 방해 동작을 유발할 수 있다.
이벤트 ID를 마이크로프로세서(16)로 전송한 후에, 이벤트 인코더(56)는 대응하는 이벤트 검출기(54)를 자동적으로 리셋한다. 이 리셋 회로는 도면에서는 도시 생략되었으나 당분야에 공지되어 있으며, 당분야의 업자에 의해 용이하게 재생될 수 있다.
이벤트 ID 계산 논리의 다른 실시예가 도 6에 도시되어 있다. 이 실시예에서, 이벤트 검출기(54)는 행위 모델의 스케쥴 요구에 따라 그룹화될 수 있다. 예를 들어, Verilog 하드웨어 기술 언어로 작성된 모델에 대해서 그러한 요구이 I.E.E.E. 드래프트 표준 1364의 5장에 정의되어 있다. 특히, Verilog 모델은 동일한 시뮬레이션 사이클 내에서 프로세스된 모든 이벤트가 4개의 그룹으로, 즉, 활성 이벤트들(active event), 비활성 이벤트들(inactive event), 비블록화 할당 업데이트 이벤트들(non-blocking assign update event), 및 모니터 이벤트들(monitor event)로 그룹화될 것을 요구한다. Verilog 모델은 또한 활성 이벤트, 비활성 이벤트, 비블록화 할당 업데이트 이벤트, 그리고 모니터 이벤트의 순서로 프로세스될 것을 요구한다.
이러한 요구에 부합하기 위해, 도 6에 도시된 실시예는 다수의 이벤트 검출기의 그룹을 포함한다. 각 그룹은 하나 이상의 이벤트 검출기(54)(예로서, 각 그룹에 하나씩 도시됨), 및 AND 게이트(60)를 갖는다(예외, 제1 그룹은 그런 AND 게이트(60)를 포함하지 않음). 제2 그룹에 속하는 AND 게이트(60)는 제1 그룹에 프로세스되지 않은 이벤트가 있다는 것을 표시하는 BUSY[1] 신호(62a)에 의해 제어된다. 유사하게, 제3 그룹의 AND 게이트(60)는 BUSY[1] 신호(62a), 및 여전히 제2 그룹 내에 프로세스되지 않은 이벤트가 있다는 것을 표시하는 BUSY[2] 신호(62b)에 의해 제어된다. 그 결과, 제1 그룹 내에 어떤 두드러진 이벤트가 없는 경우에 한하여 제2 그룹에 속하는 이벤트 검출기(54a)로부터의 신호가 이벤트 인코더(56)에 도달하게 될 것이다. 유사하게, 제1 또는 제2 그룹에 어떤 두드러진 이벤트가 없는 경우에 한하여 제3 그룹에 속하는 이벤트 검출기(54b)로부터의 신호가 이벤트 인코더(56)에 도달하게 된다. 이 패턴은 필요에 따라 더욱 많은 BUSY 신호(62)를 이용하여 제4 및 그 이상의 그룹에 대해서 지속한다.
BUSY 신호들(62)의 형성이 도 7에 도시되어 있다. 각 BUSY 신호(62)는 대응하는 그룹에 속하는 모든 이벤트 검출기(54)의 출력 신호의 논리 OR 함수(64)로서 형성된다. 구체적으로 BUSY[1] 신호(62a)가 제1 그룹의 이벤트 검출기를 이용하여 형성되고, BUSY[2] 신호(62b)가 제2 그룹의 이벤트 검출기를 이용하여 형성되는 등등이다. 모든 시뮬레이션 모듈들(14)로부터의 그룹 내의 모든 이벤트 검출기(54)로부터의 출력은 BUSY 신호(62)를 형성하기 위해 모두 OR되어야 한다. 본 발명의 한 실시예에서, BUSY 신호(62)를 형성하기 위해 포선 논리가 사용되어서, OR 함수(64)가 와이어로서 은연중에 수행되었다. 그러나, 다른 실시예에서, 글로벌-이벤트-통신 버스 라인들(30)의 일부가 모든 시뮬레이션 모듈(14) 중에 BUSY 신호(62)을 전파시키기 위해 사용되었다.
어떠한 BUSY 신호(62)도 가정되지 않는 경우, 현재 시뮬레이션 사이클이 완료된다. 그러한 완료를 검출하고 시뮬레이션을 다음 사이클로 진행시키는 회로가 도 8에 도시되어 있다. 회로는 사용된 BUSY 신호(62)의 개수에 상응하는 개수의 입력을 갖는 NOR 게이트(66), 및 카운터(68)로 구성되어 있다. 비록 4개의 BUSY 신호(62)가 NOR(66)로의 입력으로 도시되었으나, 몇 개의 BUSY 신호(62)라도 채택될 수 있다는 것이 알아야 한다. 어떤 BUSY 신호도 어써트되지 않는 경우, NOR 게이트(66)는 카운터(68)의 동작을 인에이블시킨다. 이 카운터는 논리 검증 시스템 내부를 비동기적으로 및 연속적으로 실행시키는 고속 주기적 클럭 신호(70)에 의해 클럭된다. 클럭의 주파수는 시스템 내의 신호 트랜지스터의 주파수보다 높아야 한다. BUSY 신호(62)의 가장 긴 전파 지연에 대한 보상을 위해 필요한 클럭 신호(70) 상의 클럭 사이클의 개수를 카운트한 후에, 카운터(68)는 모든 시뮬레이션 모듈(14)에 전파되는 시간 선행 신호(time advance signal)(72)를 발생시키면서 오버플로우한다. 본 발명의 한 실시예에서, 글로벌-이벤트-통신 버스 라인(30)은 모든 시뮬레이션 모듈(14) 중에서 시간 선행 신호를 전파하는데 사용된다.
도 9는 공유된 멀티플렉스된 버스(82) 상에서 한 FPGA(22)로부터 다른 FPGA로의 이벤트의 전송을 상세하게 보여준다. 이 데이터 전송 방법은 프로그램가능한 상호접속부(12)의 가치 있는 자원의 보전하기 위해 본 발명의 한 실시예에서 사용된다.
전송 FPGA(22)(도 9의 좌측)는 이벤트 인코더(56)와 그 기능성에 있어서 유사한 제2 이벤트 인코더(74)를 포함한다. 이 전송 FPGA(22)는 (버스 드라이버(58)와 유사한) 버스 드라이버(76) 및 전송 제어기(78)를 더 포함한다. 전송 제어기(78)가 버스 중재 입력 신호(80)를 검출할 때, 이벤트 인코더(74)가 다수의 이벤트 검출기들(54)로부터의 입력에 어떤 활성 신호을 갖는가를 체크한다. 그러한 신호이 존재할 때, 버스 드라이버(76)를 통해서 공유 멀티플렉스된 버스(82) 상에 제1 이벤트 ID의 전송을 인에이블시킨다. 버스(82)의 가장 긴 전파 지연에 대해서 보상하기 위해 필요한 고속 주기적 클럭 신호(70)(도시 생략)의 다수의 사이클후에, 전송 제어기(78)는 이미 전송된 이벤트에 상응하는 이벤트 검출기(54)를 리셋하고, 소정의 순서로 다음 이벤트를 등장시키기 위해 이벤트 인코더(74)에 신호를 전송한다. 모든 이벤트를 전송한 후에, 전송 제어기(78)는 버스 드라이버(76)를 디스에이블하고 버스 중재 출력 신호(84)를 표명하고, 이에 따라 버스(82)에 대한 제어를 포기한다. 한 시뮬레이션 모듈(14)의 버스 중재 출력 신호(84)는 데이지 체인을 형성하기 위해 다른 시뮬레이션 모듈(14)의 버스 중재 입력 신호(80)에 접속된다.
FPGA(22)(도 9의 우측)를 수용함에 있어서, 공유 멀티플렉스된 버스(82)는 이벤트 ID 라인(88), 변수값 라인(86), 및 이벤트 준비선(90)으로 스플릿된다. 이벤트 준비 신호(90)의 검출 중에, 가변 선택기(92)는 라인(88) 상의 값의 결합을 특정 변수의 표시로서 인식한다. 그 응답으로, 가변 선택기(92)는 레지스터(46)를 인에이블하여 라인(86)으로부터의 변수의 새로운 값을 포획한다.
본 발명의 한 실시예에서, 글로벌-이벤트-통신 버스 라인(30)이 공유 멀티플렉스된 버스(82)를 수행하는데 사용되고 데이지 체인(32)의 선택이 버스 중재 신호들(80)(84)을 수행하기 위해 사용된다.
도 10은 이벤트 검출기(54)의 양호한 실시예를 상세하게 설명한다. 이벤트 검출기는 하나 이상의 입력 및 하나의 출력을 갖는 결합 논리 블럭(98)을 포함한다. 블럭(98)의 하나 이상의 입력은 변수값을 나타내는 신호에 직접 접속될 수 있다. 블럭(98)의 다른 입력은 다른 결합 블럭들(94) 및 에지 검출기(96)를 통해서 변수값을 나타내는 신호에 접속될 수 있다. 에지 검출기(96)은 그 입력 신호의 포지티브 에지(positive edge), 네거티브 에지(negative edge), 또는 어떤 에지를 검출한다. 에지 검출기의 구성은 도시 생략되었으나 당분야의 업자에 의해 용이하게 재생될 수 있으며, 당분야에 공지되어 있다.
도 10에 도시된 바와 같이, 결합 블럭(98)의 출력은 플립/플롭(102)의 세트 입력에 직접 또는 지연 카운터(100)를 통해서 접속된다. 후자의 경우, 결합 논리 블럭(98)의 출력 신호는 시간 선행 신호(72)에 의해 클럭된 지연 카운터(100)를 인에이블시킨다. 소정의 개수의 시간 선행 신호(72)를 카운트한 후에, 카운터(100)는 오버플로우하고 이벤트 검출기(54)의 출력에서 신호를 발생시킨다. 이벤트 출력이 전송된 후에, 상술된 이벤트 인코더(56)에 의해 리셋 라인(101)을 이용하여 이벤트 검출기(54)가 리셋된다.
도 10에 도시된 일반적인 구조는 (결합 논리 블럭(98) 만을 이용하여) 임의 레벨 감응 이벤트 제어(arbitrary level sensitive event control)를, 또는 (결합 블럭들(94) 및 에지 검출기(96)를 사용하여) 에지 감응 이벤트 제어를, 또는 (지연 카운터(100)를 이용하여) 지연을, 또는 그것의 결합을 수행할 수 있다. 각 특정 이벤트 검출기(54)는 필요에 따라 그러한 기능모두 또는 일부를 가질 수 있다.
일반적으로 에뮬레이션 기술은 다양한 입력 및 출력 신호 이벤트사이의 정확한 시간 간격을 계산하는 의미에서 설계의 실제 타이밍의 검증을 위해 적합하지 않다. 따라서, 서로에 대한 데이터 의존성을 갖는 상이한 회로 컴포넌트의 교정 평가 순서를 보장하는 방법으로서만 교정 모델 타이밍은 중요하다. 이러한 타이밍 교정 문제의 가장 중요한 경우는 보류-시간 위반이 가능한 플립/플롭의 체인의 평가이다. 어떤 클럭된 디바이스에 대해서도 명기된 셋업 타임 및 보류-시간이 있다. 셋업 타임은 입력 데이터가 플립-플롭 디바이스의 데이터 입력 리드(data input lead)에서 클럭 전이 이전에 소정의 시간량에 대한 안정적인 형태로 나타나야할 것을 요구한다. 보류-시간은 데이터가 플립-플롭의 제어 리드에서 착신 중의 클럭 전이의 시점으로부터 적합한 동작에 대한 클럭의 착신 후에 특정의 시간 간격까지 안정하게 될 것을 요구한다. 사용자의 넷리스트로부터 논리 회로를 구현하는 핵심 프로세스는 데이터의 셋업 및 보류-시간을 상응하는 클럭의 착신과 동기화시키는 것이다. 구현된 논리 회로의 적합한 동작을 보장하기 위해 클럭 입력에서 상응하는 클럭의 착신에 대하여 시간의 특정 간격 동안에 플립-플롭의 D 입력에서 데이터가 나타나고 안정화하여야 한다. 사용자의 넷리스트로부터 회로를 구현함에 있어서, 클럭 신호의 적합한 타이밍이 클럭 스큐를 원인으로 하여 클럭 라인내의 과도한 지연으로 인해 방해받을 수 있다. 이것은 플립-플롭 또는 시프트 레지스터 같은 제1 논리 디바이스 내의 데이터가 제2 레지스터 상의 데이터보다 더 일찍 시프트되도록 유발한다. 제2 레지스터의 보류-시간 요구는 위반되고 이어서 데이터 비트는 시프트 레지스터가 적합하게 동기화되지 않는 한 유실될 수 있다.
보류-시간 위반은 위반이 에뮬레이션 회로의 의도적 생성물이 아니기 때문에 목표 시스템 또는 최종 제품에서는 발생하지 않는다. 이것은 재프로그램가능한 논리 디바이스내의 한정된 자원이 클럭 신호의 발생을 지원하도록 설계되었으므로 보류-시간 위반이 목적 시스템 내의 클럭 스큐와 종종 상이한 에뮬레이션 회로 내의 클럭 스큐로부터 유래하기 때문이다. 논리 검증 시스템 내의 행위 시뮬레이션은 시뮬레이트된 그리고 에뮬레이트된 회로 컴포넌트가 공존할 것을 요구하기 때문에, 양 기술에서의 타이밍 교정을 위해 양립 수단이 사용되는 것은 중요하다.
시뮬레이션 기술, 모델 타이밍이 지연 및 비블록화 할당 명령문 같은 적합한 언어 구성 요소에 의해 기술된다. 타이밍은 그러한 구성 요소의 어의가 시뮬레이터에 의해 정확하게 번역되는 한 정의에 의해 정확하다. 이것은 실제의 지연값이 미지라고 추정되는 경우 제로-지연 시뮬레이션의 경우에서도 참이다. 예를 들어, 2개의 플립/플롭각각은 평가의 정확한 순서를 보장할 Verilog 하드웨어 기술 언어 내의 다음의 행위 코드로써 정의될 수 있다.
always @ (postage clk)
q = #0 d;
또는
always @ (postage clk)
q = d;
명백한 지연, 제로 지연, 및 비블록화 할당의 인터프리테이션은 상이한 시뮬레이션 사이클들로의 또는 동일한 사이클 내의 상이한 그룹들로의 이벤트의 할당에 기초한다. 이러한 이벤트 할당은 행위 설계부에 대한 언어 어의에 의해 함축된 이벤트 순서을 강행하게 한다.
그러나, 에뮬레이션 기술에 있어서, 직렬 접속 플립/플롭의 쌍은 다음과 같이 기술된다.
always @ (postage clk1)
q1 = #t1 d1;
always @ (postage clk2)
q2 = #t2 d2;
assign #td d2 = q1;
assign #tc clk2 = clk1;
(모든 에뮬레이션 회로 지연(t1, t2, td, 및 tc)이 공지되어 있으나 상한 T를 갖는다.) 교정 평가 순서를 보장하기 위해, 에뮬레이션은 T만큼 td의 값을 증가시킨다. 에뮬레이터는 또한 (클럭 트리(clock tree)의 공통 부분의 특별 FPGA 디바이스 및 클럭 로직의 복제로의 분리 같은) 회로 변환을 구현하여서 T의 값이 가능한 한 작게 된다. 이 프로세스는 첸 등의 1995년 12월 12일 출원된 미국 특허 제5,475,830호 Structure and Method for Providing a Reconfigurable Emulation Circuit without Hold Time Violation(퀵턴 시스템사(Quickturn Systems, Inc.)에 양도)에 설명되어 있다.
타이밍 교정을 보장하는 각 방법은 그 자신의 영역 내에서 양립한다. 그러나, 에뮬레이션과 시뮬레이션 모델의 혼합은 문제를 발생시킬 수 있다. 예를 들어, 체인 내의 제2 플립/플롭, 또는 그 클럭 로직의 어떤 부분이 에뮬레이션 모델로서보다는 제로-지연 행위(즉, 시뮬레이션 모델)으로서 기술될 가능성을 고려하자. 이러한 경우에 지연값의 상한 T가 결정될 수 없으며 전형적인 에뮬레이터에 의해 사용된 타이밍 교정을 보장하는 방법이 작동하지 않은 것이다.
보류-시간 위반을 제거하는 방법은 각 에뮬레이션 플립/플롭의 데이터경로를 따라 부가적인 플립/플롭 업스트림을 배치하게 한다. 이러한 방법의 예가 프라이스 등의 1993. 11. 2.에 출원된 미국 특허 제5,259,006호 Method for Substantially Eliminating Hold Time Violation in Implementing High Speed Logic Circuits or the like에 보여진다. 그러나, 이 방법은 부가적인 플립/플롭이 삽입될 필요가 있는가를 결정하기 위해 각 행위 블록이 플립/플롭 또는 결합 회로로서 분류될 것을 요구하기 때문에 행위 검증 시스템에 적용하기에는 어렵거나 불가능하다. 또한 그러한 블럭의 각 입력이 데이터 입력 또는 클럭 입력으로서 식별할 필요가 있다. 그러한 식별은 하드웨어 기술 언어의 제약 조건으로 인해 어렵거나 불가능하다. 부가적인 플립/플롭이 결합 논리 블럭의 업스트림에 배치되는 경우 설계자가 의도한 행위를 변경할 수 있다.
본 발명에 의해 제공되는 한 방법은 상이한 종류의 지연-무관 보류-시간 위반 제거 방법(delay-independent hold-time violation elimination)이다. 도 11에 도시된 바와 같이, 보류-시간 위반을 갖는 어떤 다른 회로 컴포넌트(106)에 잠재적으로 도달할 수 있는 신호의 소스인 각 플립/플롭(104)에 대해서, 부가적인 플립/플롭(108)이 다운스트림으로 삽입된다. 시뮬레이션 클럭(110)은 모든 BUSY 신호들(62)이 디어써트될 때에 어써트된다. 그 결과, 플립/플롭(104)으로부터 유래한 데이터경로(112) 내의 효과적인 지연은 플립/플롭(104)이 에뮬레이트 또는 시뮬레이트된 여부에 상관없이 플립/플롭(104)의 클럭 신호(116)와 플립/플롭(106)의 클럭 신호(118)를 분리시키는 결합 클럭 경로(114) 내의 지연보다 항상 더 크다.
더 복잡한 상황이 도 12에 도시되어 있는데, 에뮬레이트된 플립/플롭(120)이 클럭 회로(122) 내에 존재한다. 회로(122)의 지연이 회로(112)의 지연보다 적다는 것이 설계 의도였다고 가정하면, 부가적인 플립/플롭이 클럭 회로(122) 내에 삽입되지 않아야 한다. 플립/플롭(120)에 의해 발생된 신호가 다른 플립/플롭(126)에 대한 데이터 소스로서도 사용되었을 경우, 이에 따라 도 12에 도시된 바와 같이 부가적인 플립/플롭(124) 및 회로(128)와 같은 회로(122)의 복제가 필요하다. 이전에 회로(122)를 플립/플롭(126)과 접속시키는 신호(130)는 제거되어야 한다. 이러한 변환이 정확하게 적용되도록 하기 위해, 클럭 회로 분석이 수행되어서 어떤 클럭 에지이 (에뮬레이트 또는 시뮬레이트된) 각 저장 엘리먼트의 클럭 입력상에 잠재적으로 활성화될 수 있는가를 결정할 필요가 있다. 행위 블럭에 대해서, 외부 플립/플롭이 보류-시간 위반의 위험에 처해있다고 잘못 식별할 때일지라도 변환이 검증 하의 회로에 의해 수행된 기능을 대체시키지 않을 것이기 때문에 그 저장기능은 적용될 수 있다고 신중하게 가정한다. 최악의 경우 회로의 에뮬레이트된 부분 내의 각 플립/플롭은 시뮬레이션 클럭 신호(110)에 의해 동기화된 플립/플롭으로 복제되어야 한다.
도 13은 논리 검증 시스템에 의해 사용될 구성 데이터를 준비하는 플로우 다이어그램이다. 일반적으로, 컴파일화는 예를 들어 Verilog 하드웨어 기술 언어(Verilog HDL) 내의 사용자의 설계 기술 파일로부터 시작한다. 그러나, 컴파일레이션은 다양한 다른 언어들로써 시작할 수 있다. 입력 단계(132)의 결과로서, 동작 데이터베이스 표현(134)이 생성된다. 이 표현은 다른 동작 표현(138)을 발생시키는 프리프로세싱 단계(136)에 의해 증대된다. 넷리스트 발생 단계(140) 및 코드 발생 단계(144)는 에뮬레이션 모델의 넷리스트 표현(142) 및 논리 모듈 프로세서 메모리(20)에 다운로드될 수 있는 실행의 세트(146)를 발생시킨다. 이 넷리스트 표현(142)은 분할(partitioning), 위치(placement), 및 라우팅 단계(148)를 거치게 되어 FPGA(10)(22) 및 프로그램가능한 상호접속(12)에 대한 구성 데이터(150)를 발생시킨다. 이 분할, 배치, 라우팅 단계는 샘플 등의 미국 특허 제5,329,470호 및 버츠 등의 제5,036,473호에 기술되어 있으며 당분야의 업자에게 공지되어 있다.
보다 구체적으로, 입력(132)은 사용자의 Verilog 소스 파일을 프로세스하고 행위 데이터베이스 라이브러리를 발생시킨다. 그것은 소스 파일명의 리스트, 인클루드(include) 경로 및 다른 정의되지 않은 모듈 참조가 해결된 탐색 라이브러리의 리스트를 수용한다. 임포터는 행위 기술은 동시에 실행가능한 코드 프래그먼트들로 분할한다.
전처리기(136)는 입력 단계(132)에 의해 생성된 행위 데이터베이스 라이브러리를 변환시킨다. 그것은 행위 코드를 사용가능한 모듈(14) 각각 상에서 실행을 지향하는 클러스터로 분할하고, 행위 코드 프래그먼트의 실행 순서 및 구획내의 변수의 국부성을 결정한다. 또한, 전처리기(136)는 상술된 보류-시간-위반-자유 모델(hold-time-violation-free model)을 생성하는데 필요한 변환을 수행한다.
코드 발생기(144)는 전처리기(136)에 의해 변환된 만큼의 행위 데이터베이스 라이브러리를 판독하고 전처리기(136)에 의해 식별되는 만큼의 시뮬레이션 모듈들(14) 각각에 대해서 다운로딩가능한 익스큐터블(executable)(146)을 발생시킨다.
넷리스트 발생기(140)는 전처리기(136)에 의해 변환된 만큼의 행위 데이터베이스 라이브러리를 판독하고 분할, 위치, 및 라우팅 단계(148)에 의한 또다른 프로세싱을 위해서 넷리스트 데이터베이스 라이브러리를 발생시킨다.
논리 검증 시스템의 동작은 당분야의 업자에게 공지된 이벤트-중심 시뮬레이션의 원리에 기초한다. 기본적 가정은 다음과 같다: (1) 어떤 주어진 행위 모델은 평가 절차의 세트로 분할될 수 있어서, 행위 기술에 기초하여 컴파일된다; (2) 시뮬레이션의 프로세스는 어떤 변수(입력)의 논리값을 판독하고 다른 변수(출력)의 새로운 값을 계산하는 상기 절차의 일련의 실행가능으로 구성된다; (3) 상기 절차은 시뮬레이션 모델의 현재 상태에 따라 각 절차를 실행할 것인가를 결정하는 할당된 트리거링 조건이다.
예를 들어, 도 14에 도시된 Verilog HDL 모델을 고려하자. 이 모델은 Q_ AN02로 시작하는 10개의 평가 절차들로 구성된다. 이 절차중의 9개는 라이브러리 프리머티브(Q_AN02 및 Q_FDP0)을 참조로 하여 사전 정의되고 하나는 행위 기술로써 표현된다. 평가 절차간의 이러한 관계는 도 15에 도시된 바와 같이 그래프로 설명될 수 있다.
에뮬레이션의 목적상, 인스턴스(U1 및 m0-m7)은 FPGA 내에서 직접 수행될 수 있다. 인스턴스 라인_선택(instance line_select)의 출력을 평가하는 행위 코드는 내장 마이크로프로세서에 대한 인스트럭션의 시퀀스로서 컴파일된다. 이 시퀀스가 적합한 시간에 호출되도록 하기 위해서는 유일한 ID가 하나의 마이크로프로세서 내에 로드된 그러한 시퀀스 각각에 할당되어야 한다. ID는 상응하는 트리거링 조건이 참이 되는 경우 FPGA 내에서 발생될 수 있다. (ID을 발생시키는 회로는 도 5에 상술되었다.) 동시에 몇 가지 트리거링 조건이 참이 되는 경우, 그의 ID중에서 가장 작은 것이 발생된다. 마이크로프로세서(16)는 ID을 지속적으로 모니터하고, 새로운 ID가 발생될 때마다, 상응하는 인스트럭션 시퀀스가 실행된다. 라인_선택 기능의 ID가 5라고 가정하면, 이벤트-발생 논리는 도 16에 도시된 바와 같이 수행될 수 있다. (고속 주기적 신호에 의해 동기화된) CLK의 네거티브 에지가 검출되는 경우, 이벤트 검출기(152) 내의 RS-트리거를 세트한다. 5 이하의 ID를 갖는 이벤트가 전혀 없는 경우, 이에 따라 이벤트 인코더(154)는 번호 5를 발생시키고 마이크로프로세서(16)는 FPGA 어드레스 공간에 속하는 어드레스중의 하나로부터 판독 인스트럭션이 실행되는 경우 번호 5를 검출한다. 이때 RS 트리거가 리셋된다. (동작 디코더, 버스 드라이버 및 데이터 레지스터는 도시 생략)
동작 방법은 다음과 같이 요약될 수 있다. 모델 컴파일 시에, 행위 코드들로써 나타내어지는 셀(예, 도 15의 라인_선택 셀)이 그의 상응하는 이벤트 발생 논리 블록들(도 16에 도시된 것과 유사)로 교체된다. 실행 시에, 마이크로프로세서(16)는 FPGA로부터의 다음 이벤트의 ID의 판독, 및 이러한 이벤트에 상응하는 기능의 실행으로 구성된 루프 내에서 지속적으로 실행한다. 이러한 동작을 수행하기 위해 마이크로프로세서(16)에 의해 사용될 수 있는 프로그램의 예가 도 17에 도시되어 있다.
시뮬레이션 알고리즘의 이러한 소프트웨어-하드웨어 수행은 레벨화된 그리고 이벤트-중심 시뮬레이션의 최상의 특성을 결합시킨다. 이벤트-중심 시뮬레이션에서와 같이, 오직 그러한 프리머티브만이 활성화 조건이 만족되는 각 사이클에서 평가된다. 레벨화되고 컴파일된 시뮬레이션에서와 같이, 이벤트 큐 조작의 오버헤드가 모델 실행 단계로부터 제거된다. 모든 필요한 이벤트 검출 및 조작이 재구성가능한 하드웨어(FPGAs) 내에서 수행된다. 이벤트 검출 하드웨어 넷리스트는 모델 분할 및 정렬의 결과 뿐아니라, 각 평가된 루틴에 대해서 트리거 조건에 기초하여 컴파일 시에 생성된다.
본 발명의 상기 실시예가 설명되었으나, 당분야의 업자라면 본 발명의 정신 또는 범위로부터 벗어나지 않고 수많은 변화이 이루어질 수 있다는 것이 명백할 것이다. 상기 설명 내에 포함되고 첨부 도면내에 도시된 모든 것은 설명을 위한 것이며 발명을 한정하는 것은 아닌 것으로 해석되어야 한다. 따라서, 본 발명은 하기 청구범위에 의해서만 한정될 것이다.
Claims (70)
- 에뮬레이션(emulation) 및 시뮬레이션(simulation)을 이용한 설계 검증(design verification)용 장치에 있어서,설계의 제1 부분을 에뮬레이트하기 위한 적어도 하나의 재구성가능한 소자;상기 설계의 상기 제1 부분과 상기 설계의 상기 제2 부분 간에 데이터를 전송하기 위한 시간을 최소화시키기 위해 상기 재구성가능한 소자에 접속되고, 상기 설계의 제2 부분을 시뮬레이트하기 위한 적어도 하나의 마이크로프로세서; 및설계 검증 동안 다수의 이벤트를 검출하고, 상기 적어도 하나의 마이크로프로세서가 이벤트 검출을 수행하지 않도록 하기 위한 상기 적어도 하나의 마이크로프로세서에 접속된 이벤트 검출기를 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 마이크로프로세서가 통상적으로 스케줄하는 동작을 스케쥴하기 위한 스케줄러를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,제2 마이크로프로세서를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제3항에 있어서,상기 마이크로프로세서 각각에 의한 병렬 실행을 위해 상기 설계의 상기 제2 부분의 독립적인 프래그먼트(fragment)를 선택하기 위한 선택기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 마이크로프로세서에 의한 실행을 위해 상기 설계의 상기 제2 부분의 독립적인 프래그먼트를 선택하기 위한 선택기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 재구성가능한 소자는 재구성가능한 상호접속 구성요소를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 재구성가능한 소자는 재구성가능한 논리 구성요소를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제6항에 있어서,상기 적어도 하나의 재구성가능한 소자는 다수의 재구성가능한 논리 구성요소를 구비하고, 상기 재구성가능한 상호접속 구성요소는 상기 다수의 재구성가능한 논리 구성요소를 상호접속시키는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 마이크로프로세서에 접속된 메모리를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 마이크로프로세서에 접속된 버스 제어기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 설계의 상기 제2 부분은 행위 언어(behavioral language)로 기술되어 있는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,제2 재구성가능한 소자를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제12항에 있어서,상기 제2 재구성가능한 소자는 상기 이벤트 검출기에 의한 이벤트의 검출시상기 적어도 하나의 마이크로프로세서에 의해 시뮬레이트될 상기 설계의 상기 제2 부분의 프래그먼트를 스케쥴하기 위한 스케줄러를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제12항에 있어서,상기 제2 재구성가능한 소자는 상기 적어도 하나의 마이크로프로세서에 의한 실행을 위해 상기 설계의 상기 제2 부분의 독립적인 프래그먼트를 선택하는 선택기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제12항에 있어서,상기 제2 재구성가능한 소자는 설계 검증 동안 상기 다수의 이벤트를 검출하고, 상기 적어도 하나의 마이크로프로세서가 상기 이벤트 검출을 수행하지 않도록 하기 위한 검출기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제12항에 있어서,상기 적어도 하나의 재구성가능한 소자와 상기 제2 재구성가능한 소자를 접속시키는 상호접속 구성요소를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 재구성가능한 소자와 상기 적어도 하나의 마이크로프로세서를 접속시키는 재구성가능한 상호접속 구성요소를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제10항에 있어서,시스템 버스를 통해 상기 버스 제어기에 접속된 시스템 제어기를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제1항에 있어서,상기 적어도 하나의 마이크로프로세서에 접속된 글로벌 버스를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제19항에 있어서,상기 글로벌 버스는 상기 적어도 하나의 마이크로프로세서에 병렬로 접속된 다수의 신호를 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제19항에 있어서,상기 글로벌 버스는 상기 적어도 하나의 마이크로프로세서를 직렬로 접속시키는 제2 라인을 더 구비하는 것을 특징으로 하는 설계 검증용 장치.
- 제19항에 있어서,상기 글로벌 버스는 상기 적어도 하나의 재구성가능한 소자와 상기 적어도 하나의 마이크로프로세서 간에 적어도 하나의 신호를 접속시키는 것을 특징으로 하는 설계 검증용 장치.
- 에뮬레이션 및 시뮬레이션(emulation and simulation)용 장치에 있어서,설계를 시뮬레이트하기 위한 마이크로프로세서를 각각 갖는 다수의 시뮬레이션 모듈; 및상기 시뮬레이션 모듈에 접속되고, 상기 설계를 에뮬레이트하기 위한 제1 재구성가능한 소자를 구비하되,상기 다수의 시뮬레이션 모듈은 제2 재구성가능한 소자를 더 구비하고,상기 제2 재구성가능한 소자는 상기 설계를 시뮬레이트하는데 있어 상기 마이크로프로세서를 보조하도록 이벤트를 검출하기 위한 이벤트 검출기를 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 시뮬레이션 모듈 중에 적어도 하나는 데이터값을 상기 제1 재구성가능한 소자에 전송하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 시뮬레이션 모듈 중에 적어도 하나는 상기 시뮬레이션 모듈의 외부에 데이터값을 전송하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 마이크로프로세서 중의 하나는 데이터값을 상기 제2 재구성가능한 소자에 전송하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 제2 재구성가능한 소자는 상기 마이크로프로세서중의 하나로 부터 수신된 신호를 디코드하는 디코더를 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제27항에 있어서,상기 제2 재구성가능한 소자는 상기 디코더가 상기 마이크로프로세서 중의 하나로 부터의 상기 신호를 인식할 때 인에이블되는 선택기를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제28항에 있어서,상기 제2 재구성가능한 소자는 상기 신호를 포획하기 위한 레지스터를 더 구비하되, 상기 레지스터는 상기 선택기에 의해 인에이블되는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 다수의 시뮬레이션 모듈 중에 적어도 하나는 상기 다수의 시뮬레이션 모듈 중에서 두번째로 부터 데이터 신호를 수신하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 다수의 시뮬레이션 모듈 중에 적어도 하나는 상기 제1 재구성가능한 소자로 부터 데이터 신호를 수신하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 마이크로프로세서 중의 하나는 상기 제2 재구성가능한 소자로 부터 데이터 신호를 수신하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 제2 재구성가능한 소자는 상기 마이크로프로세서 중의 하나가 상기 제2 재구성가능한 소자로 부터 데이터값을 포획할 준비가 되었다는 것을 표시하는 마이크로프로세서 신호를 인식하기 위한 디코더를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 제2 재구성가능한 소자는 상기 다수의 마이크로프로세서 중의 하나에 의한 포획을 위해 데이터 값을 선택하는 멀티플렉서를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 이벤트 검출기는 이벤트가 검출될 때 상기 다수의 마이크로프로세서 중의 하나에 인터럽트를 유발시키는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,다수의 이벤트를 처리하는 다수의 이벤트 검출기 그룹을 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기 그룹은 적어도 하나의 이벤트 검출기를 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기 그룹은 적어도 하나의 AND 게이트를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기 그룹은 제2 이벤트 이전에 제1 이벤트를 처리하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기는 제1 이벤트 및 제2 이벤트를 검출하고 상기 제2 이벤트 이전에 상기 제1 이벤트를 처리하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제40항에 있어서,상기 다수의 이벤트 검출기는 상기 제1 이벤트를 나타내는 제1 통화중 신호(busy signal)와 상기 제2 이벤트를 나타내는 제2 통화중 신호를 생성하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기 그룹은 제1 통화중 신호 및 제2 통화중 신호를 검출하고, 상기 제1 통화중 신호가 어써트(asserted)되지 않을 경우 상기 제2 통화중 신호를 처리하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제42항에 있어서,상기 제1 통화중 신호 및 상기 제2 통화중 신호 각각은 상기 다수의 이벤트 검출기 중에 적어도 하나에 접속된 OR 게이트에 의해 개별적으로 형성되는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제42항에 있어서,상기 제1 통화중 신호 및 상기 제2 통화중 신호 각각은 상기 다수의 이벤트 검출기 중에 적어도 하나에 접속된 와이어된(wired) OR에 의해 개별적으로 형성되는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,글로벌 버스가 상기 다수의 시뮬레이션 모듈을 접속시키는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제42항에 있어서,상기 제1 통화중 신호 및 상기 제2 통화중 신호를 상기 다수의 시뮬레이션 모듈에 전송하는 글로벌 버스를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제36항에 있어서,상기 다수의 이벤트 검출기는 다수의 이벤트 종류를 검출하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제47항에 있어서,상기 시뮬레이션 모듈은 상기 다수의 이벤트 종류가 상기 다수의 이벤트 검출기에 의해 검출되지 않을 때 시간 선행 신호(time advance signal)를 발생시키는 시뮬레이션 선행 회로를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제48항에 있어서,상기 시뮬레이션 선행 회로는 카운터 및 NOR 게이트를 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제47항에 있어서,상기 시간 선행 신호를 전송하는 글로벌 버스를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 다수의 시뮬레이션 모듈은 멀티플렉스된 버스에 의해 접속되는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제51항에 있어서,상기 멀티플렉스된 버스는 상기 이벤트를 상기 다수의 시뮬레이션 모듈 간에 전달하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제51항에 있어서,상기 다수의 시뮬레이션 모듈은 상기 멀티플렉스된 버스를 제어하는 전송 제어기를 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제50항에 있어서,상기 글로벌 버스는 상기 이벤트를 상기 다수의 시뮬레이션 모듈 간에 전달하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 제1 재구성가능한 소자는 제1 플립/플롭을 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제55항에 있어서,보류-시간 위반(hold-time violation)을 제거하기 위해 상기 제1 플립/플롭으로 부터의 다운스트림으로 배치된 제2 플립/플롭을 더 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제23항에 있어서,상기 제1 재구성가능한 소자는 클럭 회로를 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제57항에 있어서,상기 클럭 회로는 플립/플롭을 구비하는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 제58항에 있어서,상기 클럭 회로는 상기 제1 재구성가능한 소자 내에 복제되는 것을 특징으로 하는 에뮬레이션 및 시뮬레이션용 장치.
- 설계를 시뮬레이트 및 에뮬레이트(simulating and emulating a design)하기 위한 방법에 있어서,동작 데이터베이스(behavioral database)를 생성하기 위해, 상기 설계의 일부가 동작 설계인 상기 설계를 입력(importing)하는 단계;상기 동작 설계를 다수의 동작 프래그먼트로 분할하는 단계;상기 동작 데이터베이스를 전처리(preprocess)하여 전처리된 동작 데이터베이스를 형성하는 단계;내부에서 처리하기 위해 다수의 시뮬레이션 모듈에 대해 다수의 익스큐터블(executables)을 생성하는 단계;넷리스트(netlist)를 생성하는 단계; 및다수의 재구성가능한 소자에 대해 구성 데이터를 생성하기 위해 상기 넷리스트를 처리하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제60항에 있어서,상기 전처리 단계는 상기 동작 데이터베이스를 다수의 클러스터로 분할하는 단계; 및 보류-시간 위반을 제거하기 위해 상기 설계를 변환하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제60항에 있어서,상기 처리 단계는 분할된 넷리스트를 생성하는 상기 넷리스트를 분할하는 단계; 상기 분할된 넷리스트를 배치하는 단계; 및 상기 분할된 넷리스트를 라우팅하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 에뮬레이션 및 시뮬레이션(emulation and simulation)을 결합하는 방법에 있어서,에뮬레이터와 마이크로프로세서 간에 데이터를 전송하는 시간을 최소화하기 위해 상기 에뮬레이터와 다수의 마이크로프로세서를 접속시키는 단계;상기 에뮬레이터로써 설계의 제1 부분을 에뮬레이트하는 단계;상기 시뮬레이터로써 상기 설계의 제2 부분을 시뮬레이트하는 단계; 및상기 마이크로프로세서로써 통상적으로 검출되는 다수의 이벤트를 상기 에뮬레이터에 의해 검출하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 마이크로프로세서에 의해 통상적으로 스케쥴되는 다수의 동작을 상기 에뮬레이터로써 스케쥴하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 설계의 상기 제2 부분의 다수의 독립적인 프래그먼트를 선택하는 단계; 및상기 마이크로프로세서로써 상기 다수의 독립적인 프래그먼트를 병렬로 실행하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 시뮬레이트 단계는 행위 언어로 기술된 상기 설계의 상기 제1 부분을 시뮬레이트하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 마이크로프로세서에 의해 통상적으로 조작되는 상기 다수의 이벤트를 상기 에뮬레이터로써 조작하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,다수의 보류-시간 위반을 제거하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 설계의 상기 제1 부분은 상기 설계의 상기 제2 부분과 오버랩하는 것을 특징으로 하는 방법.
- 제63항에 있어서,상기 설계의 상기 제1 부분은 상기 설계의 상기 제2 부분과 동일한 것을 특징으로 하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/733,352 US5841967A (en) | 1996-10-17 | 1996-10-17 | Method and apparatus for design verification using emulation and simulation |
US08/733,352 | 1996-10-17 | ||
US8/733,352 | 1996-10-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980032933A true KR19980032933A (ko) | 1998-07-25 |
KR100483636B1 KR100483636B1 (ko) | 2005-06-16 |
Family
ID=24947260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970053374A KR100483636B1 (ko) | 1996-10-17 | 1997-10-17 | 에뮬레이션및시뮬레이션을이용한설계검증방법및장치 |
Country Status (8)
Country | Link |
---|---|
US (2) | US5841967A (ko) |
EP (1) | EP0838772A3 (ko) |
JP (2) | JP3131177B2 (ko) |
KR (1) | KR100483636B1 (ko) |
CA (1) | CA2218458C (ko) |
IL (1) | IL121955A (ko) |
SG (1) | SG54583A1 (ko) |
TW (1) | TW464828B (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100594593B1 (ko) * | 2004-12-31 | 2006-06-30 | 한국전자통신연구원 | 반도체 소자의 설계 검증을 위한 고속 병렬 시뮬레이션 방법 |
KR100710972B1 (ko) * | 1999-06-26 | 2007-04-24 | 양세양 | 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법 |
KR100767957B1 (ko) * | 2001-09-14 | 2007-10-17 | 양세양 | 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 방법 |
KR100812938B1 (ko) * | 2000-04-11 | 2008-03-11 | 양세양 | 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법 |
KR100824503B1 (ko) * | 2000-06-20 | 2008-04-22 | 양세양 | 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법 |
US8725486B2 (en) | 2010-03-31 | 2014-05-13 | Samsung Electronics Co., Ltd. | Apparatus and method for simulating a reconfigurable processor |
Families Citing this family (145)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5905883A (en) * | 1996-04-15 | 1999-05-18 | Sun Microsystems, Inc. | Verification system for circuit simulator |
EP0814404B1 (en) * | 1996-06-19 | 2001-01-31 | Matsushita Electric Industrial Co., Ltd. | Debugging apparatus for debugging a program |
US5841967A (en) | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
US6421251B1 (en) | 1997-05-02 | 2002-07-16 | Axis Systems Inc | Array board interconnect system and method |
US6134516A (en) | 1997-05-02 | 2000-10-17 | Axis Systems, Inc. | Simulation server system and method |
US6389379B1 (en) * | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
US6009256A (en) | 1997-05-02 | 1999-12-28 | Axis Systems, Inc. | Simulation/emulation system and method |
US6321366B1 (en) | 1997-05-02 | 2001-11-20 | Axis Systems, Inc. | Timing-insensitive glitch-free logic system and method |
US6099577A (en) * | 1997-05-13 | 2000-08-08 | Kabushiki Kaisha Toshiba | Logic circuit conversion method and logic circuit design support device |
US5943490A (en) * | 1997-05-30 | 1999-08-24 | Quickturn Design Systems, Inc. | Distributed logic analyzer for use in a hardware logic emulation system |
US5960191A (en) * | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US6081864A (en) * | 1997-07-31 | 2000-06-27 | Advanced Micro Devices, Inc. | Dynamic configuration of a device under test |
JPH1185810A (ja) * | 1997-09-09 | 1999-03-30 | Mitsubishi Electric Corp | 半導体集積回路の論理回路検証装置および論理回路検証装置における論理回路検証方法 |
US5999734A (en) * | 1997-10-21 | 1999-12-07 | Ftl Systems, Inc. | Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models |
US6728667B1 (en) * | 1998-10-20 | 2004-04-27 | Quickturn Design Systems, Inc. | Multiple instantiation system |
US6338158B1 (en) * | 1997-10-31 | 2002-01-08 | Vlsi Technology, Inc. | Custom IC hardware modeling using standard ICs for use in IC design validation |
US6216258B1 (en) * | 1998-03-27 | 2001-04-10 | Xilinx, Inc. | FPGA modules parameterized by expressions |
US6317706B1 (en) * | 1998-03-31 | 2001-11-13 | Sony Corporation | Simulation development tool for an embedded system |
US6571204B1 (en) * | 1998-08-04 | 2003-05-27 | Micron Technology, Inc. | Bus modeling language generator |
US6381565B1 (en) * | 1998-08-21 | 2002-04-30 | Nec Corporation | Functional logic circuit verification device |
US6356862B2 (en) * | 1998-09-24 | 2002-03-12 | Brian Bailey | Hardware and software co-verification employing deferred synchronization |
US6195629B1 (en) * | 1998-11-09 | 2001-02-27 | International Business Machines Corporation | Method and system for selectively disabling simulation model instrumentation |
US6202042B1 (en) * | 1998-11-09 | 2001-03-13 | International Business Machines Corporation | Hardware simulator instrumentation |
US6212491B1 (en) * | 1998-11-09 | 2001-04-03 | International Business Machines Corporation | Automatic adjustment for counting instrumentation |
GB2359162B (en) * | 1998-11-10 | 2003-09-10 | Fujitsu Ltd | Parallel processor system |
KR100337006B1 (ko) | 1998-11-17 | 2002-05-17 | 김 만 복 | 전자회로 설계검증장치 및 방법 |
US6898189B1 (en) * | 2000-08-23 | 2005-05-24 | Cisco Technology, Inc. | Restartable spanning tree for high availability network systems |
KR100306596B1 (ko) * | 1999-03-19 | 2001-09-29 | 윤덕용 | 프로세서와 재설정가능 칩을 사용한 집적회로 에뮬레이터 |
US6493841B1 (en) * | 1999-03-31 | 2002-12-10 | Synopsys, Inc. | Method and apparatus for determining expected values during circuit design verification |
US6553531B1 (en) | 1999-04-22 | 2003-04-22 | Synopsys, Inc. | Method and apparatus for random stimulus generation |
US6499127B1 (en) | 1999-04-22 | 2002-12-24 | Synopsys, Inc. | Method and apparatus for random stimulus generation |
US6513144B1 (en) | 1999-04-22 | 2003-01-28 | Synopsys, Inc. | Method and apparatus for random stimulus generation |
US6449745B1 (en) | 1999-04-22 | 2002-09-10 | Synopsys, Inc. | Method and apparatus for random stimulus generation |
US6427223B1 (en) | 1999-04-30 | 2002-07-30 | Synopsys, Inc. | Method and apparatus for adaptive verification of circuit designs |
WO2001001245A1 (en) * | 1999-06-26 | 2001-01-04 | Yang Sei Yang | Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it |
US6470478B1 (en) | 1999-06-29 | 2002-10-22 | International Business Machines Corporation | Method and system for counting events within a simulation model |
US6611924B1 (en) * | 1999-07-16 | 2003-08-26 | Lucent Technologies Inc. | Reducing code size of debug output statements |
US6272451B1 (en) * | 1999-07-16 | 2001-08-07 | Atmel Corporation | Software tool to allow field programmable system level devices |
US6601025B1 (en) | 1999-08-10 | 2003-07-29 | International Business Machines Corporation | Method to partition the physical design of an integrated circuit for electrical simulation |
US6346427B1 (en) | 1999-08-18 | 2002-02-12 | Utmc Microelectronic Systems Inc. | Parameter adjustment in a MOS integrated circuit |
US7062425B1 (en) * | 1999-09-30 | 2006-06-13 | Cypress Semiconductor Corp. | Method and apparatus for automated enumeration, simulation, identification and/or irradiation of device attributes |
US7185293B1 (en) | 1999-11-29 | 2007-02-27 | Cellot, Inc. | Universal hardware device and method and tools for use therewith |
US6873946B1 (en) | 1999-12-01 | 2005-03-29 | The United States Of America As Represented By The Secretary Of The Navy | Zeus code tool a method for implementing same and storage medium storing computer readable instructions for instantiating the zeus code tool |
US6816829B1 (en) | 2000-01-04 | 2004-11-09 | International Business Machines Corporation | System and method to independently verify the execution rate of individual tasks by a device via simulation |
US6539522B1 (en) * | 2000-01-31 | 2003-03-25 | International Business Machines Corporation | Method of developing re-usable software for efficient verification of system-on-chip integrated circuit designs |
US6701514B1 (en) | 2000-03-27 | 2004-03-02 | Accenture Llp | System, method, and article of manufacture for test maintenance in an automated scripting framework |
US6907546B1 (en) | 2000-03-27 | 2005-06-14 | Accenture Llp | Language-driven interface for an automated testing framework |
US6519757B1 (en) * | 2000-04-11 | 2003-02-11 | International Business Machines Corporation | Hardware design language generation for input/output logic level |
US6611936B2 (en) * | 2000-04-28 | 2003-08-26 | Hewlett-Packard Development Company, L.P. | Programmable delay elements for source synchronous link function design verification through simulation |
US7379859B2 (en) * | 2001-04-24 | 2008-05-27 | Mentor Graphics Corporation | Emulator with switching network connections |
US6546531B1 (en) * | 2000-10-06 | 2003-04-08 | Sun Microsystems, Inc. | Automatic delay element insertion system for addressing holdtime problems |
US7054802B2 (en) * | 2000-10-20 | 2006-05-30 | Quickturn Design Systems, Inc. | Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading |
US6978231B2 (en) | 2000-12-05 | 2005-12-20 | Derek Edward Williams | Embedded hardware description language instrumentation |
US7039574B1 (en) * | 2000-12-29 | 2006-05-02 | International Business Machines Corporation | Naming and managing simulation model events |
US7092864B2 (en) * | 2000-12-29 | 2006-08-15 | International Business Machines Corporation | Signal override for simulation models |
US6920418B2 (en) | 2000-12-30 | 2005-07-19 | International Business Machines Corporation | Detecting events within simulation models |
US6941257B2 (en) * | 2000-12-30 | 2005-09-06 | International Business Machines Corporation | Hierarchical processing of simulation model events |
US20020128809A1 (en) * | 2000-12-30 | 2002-09-12 | International Business Machines Corporation | Randomized simulation model instrumentation |
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 |
US6493850B2 (en) * | 2001-02-16 | 2002-12-10 | Texas Instruments Incorporated | Integrated circuit design error detector for electrostatic discharge and latch-up applications |
US20020173942A1 (en) * | 2001-03-14 | 2002-11-21 | Rochit Rajsuman | Method and apparatus for design validation of complex IC without using logic simulation |
US7080365B2 (en) * | 2001-08-17 | 2006-07-18 | Sun Microsystems, Inc. | Method and apparatus for simulation system compiler |
US20030149962A1 (en) * | 2001-11-21 | 2003-08-07 | Willis John Christopher | Simulation of designs using programmable processors and electronically re-configurable logic arrays |
ES2188418B1 (es) * | 2001-11-29 | 2004-11-16 | Universidad De Sevilla | Metodo para analisis y test funcional de circuito digitales de gran dimension mediante emuladores hardware. |
US20030105617A1 (en) * | 2001-12-05 | 2003-06-05 | Nec Usa, Inc. | Hardware acceleration system for logic simulation |
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 |
US20030163788A1 (en) * | 2002-02-22 | 2003-08-28 | Jim Dougherty | Structured design documentation importer |
US20030188278A1 (en) * | 2002-03-26 | 2003-10-02 | Carrie Susan Elizabeth | Method and apparatus for accelerating digital logic simulations |
US20030188302A1 (en) * | 2002-03-29 | 2003-10-02 | Chen Liang T. | Method and apparatus for detecting and decomposing component loops in a logic design |
US7672452B2 (en) * | 2002-05-03 | 2010-03-02 | General Instrument Corporation | Secure scan |
US7024654B2 (en) * | 2002-06-11 | 2006-04-04 | Anadigm, Inc. | System and method for configuring analog elements in a configurable hardware device |
US7577553B2 (en) * | 2002-07-10 | 2009-08-18 | Numerate, Inc. | Method and apparatus for molecular mechanics analysis of molecular systems |
US20040010401A1 (en) * | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Unified simulation system and method for selectively including one or more cores in an integrated circuit simulation model |
JP2004086546A (ja) * | 2002-08-27 | 2004-03-18 | Matsushita Electric Ind Co Ltd | 回路シミュレーション方法 |
US20040044508A1 (en) * | 2002-08-29 | 2004-03-04 | Hoffman Robert R. | Method for generating commands for testing hardware device models |
FR2845497B1 (fr) | 2002-10-08 | 2004-12-24 | Renault Sa | Dispositif de simulation d'un systeme embarque dans un vehicule automobile |
US7146581B2 (en) * | 2002-11-15 | 2006-12-05 | Russell Alan Klein | Automated repartitioning of hardware and software components in an embedded system |
US6856951B2 (en) | 2002-11-15 | 2005-02-15 | Rajat Moona | Repartitioning performance estimation in a hardware-software system |
US20040115995A1 (en) * | 2002-11-25 | 2004-06-17 | Sanders Samuel Sidney | Circuit array module |
US7552445B2 (en) * | 2002-12-13 | 2009-06-23 | Savvis Communications Corporation | Systems and methods for monitoring events from multiple brokers |
US7181652B2 (en) * | 2003-01-07 | 2007-02-20 | Hewlett-Packard Development Company, L.P. | System and method for detecting and isolating certain code in a simulated environment |
US7460988B2 (en) * | 2003-03-31 | 2008-12-02 | Advantest Corporation | Test emulator, test module emulator, and record medium storing program therein |
US7437261B2 (en) * | 2003-02-14 | 2008-10-14 | Advantest Corporation | Method and apparatus for testing integrated circuits |
US20040242261A1 (en) * | 2003-05-29 | 2004-12-02 | General Dynamics Decision Systems, Inc. | Software-defined radio |
US7120571B2 (en) * | 2003-06-16 | 2006-10-10 | Fortelink, Inc. | Resource board for emulation system |
US7509548B2 (en) * | 2003-06-30 | 2009-03-24 | Mates John W | Method and apparatus for integrated circuit self-description |
WO2005038676A2 (en) * | 2003-10-17 | 2005-04-28 | University Of Delaware | Method and apparatus for emulation of logic circuits |
US7779212B2 (en) | 2003-10-17 | 2010-08-17 | Micron Technology, Inc. | Method and apparatus for sending data from multiple sources over a communications bus |
JP4656929B2 (ja) * | 2003-11-18 | 2011-03-23 | クイックターン・デザイン・システムズ・インコーポレイテッド | エミュレーションシステムとシミュレータとの間でのシミュレーション及び可視化データ転送のための最適化インターフェース |
US7664846B2 (en) * | 2003-11-26 | 2010-02-16 | Siemens Communications, Inc. | System and method for distributed modeling of real time systems |
KR100536293B1 (ko) * | 2004-02-17 | 2005-12-12 | 박현주 | 칩 설계 검증 장치 및 방법 |
JP4371856B2 (ja) * | 2004-03-04 | 2009-11-25 | 株式会社東芝 | 安全保護計装システムおよびその取扱方法 |
FR2867290A1 (fr) * | 2004-03-08 | 2005-09-09 | Jean Paul Petrolli | Reseau logique programmable a traitement ordonnance par echeancier |
CN1938949A (zh) * | 2004-03-30 | 2007-03-28 | 日本电气株式会社 | 电路验证装置、电路验证方法以及用于其的信号分发方法 |
US7379861B2 (en) * | 2004-05-28 | 2008-05-27 | Quickturn Design Systems, Inc. | Dynamic programming of trigger conditions in hardware emulation systems |
US7739093B2 (en) * | 2004-06-01 | 2010-06-15 | Quickturn Design System, Inc. | Method of visualization in processor based emulation system |
US7640155B2 (en) * | 2004-06-01 | 2009-12-29 | Quickturn Design Systems, Inc. | Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications |
US7721036B2 (en) * | 2004-06-01 | 2010-05-18 | Quickturn Design Systems Inc. | System and method for providing flexible signal routing and timing |
US7440866B2 (en) * | 2004-06-01 | 2008-10-21 | Quickturn Design Systems Inc. | System and method for validating an input/output voltage of a target system |
US7738399B2 (en) * | 2004-06-01 | 2010-06-15 | Quickturn Design Systems Inc. | System and method for identifying target systems |
US7606697B2 (en) * | 2004-06-01 | 2009-10-20 | Quickturn Design Systems, Inc. | System and method for resolving artifacts in differential signals |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
KR100921314B1 (ko) * | 2004-07-12 | 2009-10-13 | 양세양 | 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법 |
US8612772B1 (en) * | 2004-09-10 | 2013-12-17 | Altera Corporation | Security core using soft key |
US8566616B1 (en) | 2004-09-10 | 2013-10-22 | Altera Corporation | Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like |
US7778812B2 (en) * | 2005-01-07 | 2010-08-17 | Micron Technology, Inc. | Selecting data to verify in hardware device model simulation test generation |
US7353162B2 (en) * | 2005-02-11 | 2008-04-01 | S2C, Inc. | Scalable reconfigurable prototyping system and method |
US8036873B2 (en) * | 2005-02-28 | 2011-10-11 | Synopsys, Inc. | Efficient clock models and their use in simulation |
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 |
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 |
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 |
US20070150702A1 (en) * | 2005-12-23 | 2007-06-28 | Verheyen Henry T | Processor |
US8359186B2 (en) * | 2006-01-26 | 2013-01-22 | Subbu Ganesan | Method for delay immune and accelerated evaluation of digital circuits by compiling asynchronous completion handshaking means |
US8612201B2 (en) * | 2006-04-11 | 2013-12-17 | Cadence Design Systems, Inc. | Hardware emulation system having a heterogeneous cluster of processors |
US8706467B2 (en) * | 2008-04-02 | 2014-04-22 | Synopsys, Inc. | Compact circuit-simulation output |
FR2932040A1 (fr) * | 2008-05-30 | 2009-12-04 | Jean Paul Petrolli | Dispositif electronique d'aiguillage automatique de donnees pour le circuit simulateur. |
US8776019B2 (en) * | 2008-12-05 | 2014-07-08 | Invensys Systems, Inc. | Configurator with embedded firmware for offline instrument user settings implementation |
WO2010095635A1 (ja) * | 2009-02-18 | 2010-08-26 | 日本電気株式会社 | 回路設計支援装置、回路設計支援方法、ならびに、コンピュータ読み取り可能な記録媒体 |
US10423740B2 (en) * | 2009-04-29 | 2019-09-24 | Synopsys, Inc. | Logic simulation and/or emulation which follows hardware semantics |
US8589133B1 (en) * | 2009-07-17 | 2013-11-19 | The United States Of America As Represented By The Secretary Of The Navy | Dynamic simulation of a system of interdependent systems |
US8739088B1 (en) * | 2009-10-16 | 2014-05-27 | Xilinx, Inc. | Using constraints wtihin a high-level modeling system for circuit design |
US10474784B2 (en) * | 2009-12-17 | 2019-11-12 | Texas Instruments Incorporated | Method and system for defining generic topologies for use in topology matching engines |
US8522176B2 (en) | 2010-05-11 | 2013-08-27 | Synopsys, Inc. | Method of recording and replaying call frames for the testbench |
TWI450118B (zh) * | 2010-11-02 | 2014-08-21 | Global Unichip Corp | 混合的電子設計系統及其可重組連接矩陣 |
US8959010B1 (en) | 2011-12-08 | 2015-02-17 | Cadence Design Systems, Inc. | Emulation system with improved reliability of interconnect and a method for programming such interconnect |
US8743735B1 (en) | 2012-01-18 | 2014-06-03 | Cadence Design Systems, Inc. | Emulation system for verifying a network device |
JP5927012B2 (ja) * | 2012-04-11 | 2016-05-25 | 太陽誘電株式会社 | 再構成可能な半導体装置 |
US8595683B1 (en) | 2012-04-12 | 2013-11-26 | Cadence Design Systems, Inc. | Generating user clocks for a prototyping environment |
US8601415B2 (en) | 2012-04-13 | 2013-12-03 | International Business Machines Corporation | Planning for hardware-accelerated functional verification |
TWI448968B (zh) * | 2012-07-30 | 2014-08-11 | Faraday Tech Corp | 系統級模擬與仿真之裝置及方法 |
US8726205B1 (en) | 2013-04-15 | 2014-05-13 | Nvidia Corporation | Optimized simulation technique for design verification of an electronic circuit |
US9122823B2 (en) * | 2013-12-20 | 2015-09-01 | International Business Machines Corporation | Stacked multiple-input delay gates |
US9026966B1 (en) | 2014-03-13 | 2015-05-05 | Cadence Design Systems, Inc. | Co-simulation methodology to address performance and runtime challenges of gate level simulations with, SDF timing using emulators |
US9405877B1 (en) | 2014-12-22 | 2016-08-02 | Cadence Design Systems, Inc. | System and method of fast phase aligned local generation of clocks on multiple FPGA system |
US9495492B1 (en) | 2015-01-05 | 2016-11-15 | Cadence Design Systems, Inc. | Implementing synchronous triggers for waveform capture in an FPGA prototyping system |
US9294094B1 (en) | 2015-01-08 | 2016-03-22 | Cadence Design Systems, Inc. | Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system |
US10437949B1 (en) * | 2017-08-14 | 2019-10-08 | Xilinx, Inc. | Scheduling events in hardware design language simulation |
US10962595B1 (en) | 2017-12-04 | 2021-03-30 | Synopsys, Inc. | Efficient realization of coverage collection in emulation |
US11138089B2 (en) * | 2018-12-19 | 2021-10-05 | International Business Machines Corporation | Performance benchmark generation |
US11080446B2 (en) * | 2019-03-18 | 2021-08-03 | Synopsys, Inc. | Method to regulate clock frequencies of hybrid electronic systems |
CN110268404B (zh) * | 2019-05-09 | 2020-09-25 | 长江存储科技有限责任公司 | 用于功能对等检测中的仿真方法 |
KR20200139525A (ko) | 2019-06-04 | 2020-12-14 | 삼성전자주식회사 | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 |
CN111274750B (zh) * | 2020-03-05 | 2023-05-30 | 中国工程物理研究院计算机应用研究所 | 一种基于可视化建模的fpga仿真验证系统和方法 |
Family Cites Families (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL238555A (ko) * | 1958-04-25 | |||
US3287703A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer |
US3287702A (en) * | 1962-12-04 | 1966-11-22 | Westinghouse Electric Corp | Computer control |
US3473160A (en) * | 1966-10-10 | 1969-10-14 | Stanford Research Inst | Electronically controlled microelectronic cellular logic array |
US4315315A (en) * | 1971-03-09 | 1982-02-09 | The Johns Hopkins University | Graphical automatic programming |
GB1444084A (en) | 1972-06-21 | 1976-07-28 | Honeywell Inf Systems | Generalized logic device |
NL7408823A (ko) * | 1974-07-01 | 1974-09-25 | ||
US4020469A (en) * | 1975-04-09 | 1977-04-26 | Frank Manning | Programmable arrays |
CH584488A5 (ko) * | 1975-05-05 | 1977-01-31 | Ibm | |
US4306286A (en) * | 1979-06-29 | 1981-12-15 | International Business Machines Corporation | Logic simulation machine |
US4357678A (en) * | 1979-12-26 | 1982-11-02 | International Business Machines Corporation | Programmable sequential logic array mechanism |
US4386403A (en) * | 1979-12-31 | 1983-05-31 | International Business Machines Corp. | System and method for LSI circuit analysis |
JPS57105898A (en) * | 1980-12-23 | 1982-07-01 | Fujitsu Ltd | Field programmable element |
US4404635A (en) * | 1981-03-27 | 1983-09-13 | International Business Machines Corporation | Programmable integrated circuit and method of testing the circuit before it is programmed |
FR2508669A1 (fr) * | 1981-06-24 | 1982-12-31 | Fordahl | Dispositif logique programmable de prise, traitement et transmission de donnees |
US4488354A (en) * | 1981-11-16 | 1984-12-18 | Ncr Corporation | Method for simulating and testing an integrated circuit chip |
US4503386A (en) * | 1982-04-20 | 1985-03-05 | International Business Machines Corporation | Chip partitioning aid (CPA)-A structure for test pattern generation for large logic networks |
US4656580A (en) * | 1982-06-11 | 1987-04-07 | International Business Machines Corporation | Logic simulation machine |
US4525789A (en) * | 1982-07-16 | 1985-06-25 | At&T Bell Laboratories | Programmable network tester with data formatter |
JPS5916050A (ja) * | 1982-07-16 | 1984-01-27 | Nec Corp | ダイナミツクゲ−トアレイ |
US4539564A (en) * | 1982-08-04 | 1985-09-03 | Smithson G Ronald | Electronically controlled interconnection system |
US4613940A (en) * | 1982-11-09 | 1986-09-23 | International Microelectronic Products | Method and structure for use in designing and building electronic systems in integrated circuits |
US4527115A (en) * | 1982-12-22 | 1985-07-02 | Raytheon Company | Configurable logic gate array |
US4578761A (en) * | 1983-03-25 | 1986-03-25 | At&T Bell Laboratories | Separating an equivalent circuit into components to detect terminating networks |
US4791602A (en) * | 1983-04-14 | 1988-12-13 | Control Data Corporation | Soft programmable logic array |
US4612618A (en) * | 1983-06-10 | 1986-09-16 | Rca Corporation | Hierarchical, computerized design of integrated circuits |
US4621339A (en) * | 1983-06-13 | 1986-11-04 | Duke University | SIMD machine using cube connected cycles network architecture for vector processing |
US4593363A (en) * | 1983-08-12 | 1986-06-03 | International Business Machines Corporation | Simultaneous placement and wiring for VLSI chips |
US4524240A (en) * | 1983-08-17 | 1985-06-18 | Lucasfilm Ltd. | Universal circuit prototyping board |
US4577276A (en) * | 1983-09-12 | 1986-03-18 | At&T Bell Laboratories | Placement of components on circuit substrates |
US4600846A (en) * | 1983-10-06 | 1986-07-15 | Sanders Associates, Inc. | Universal logic circuit modules |
EP0138535A3 (en) * | 1983-10-13 | 1987-01-28 | British Telecommunications Plc | Visual display logic simulation system |
NL8303536A (nl) * | 1983-10-14 | 1985-05-01 | Philips Nv | Geintegreerde schakeling op grote schaal welke verdeeld is in isochrone gebieden, werkwijze voor het machinaal ontwerpen van zo een geintegreerde schakeling, en werkwijze voor het machinaal testen van zo een geintegreerde schakeling. |
WO1985002033A1 (en) * | 1983-11-03 | 1985-05-09 | Prime Computer, Inc. | Digital system simulation method and apparatus |
US4870302A (en) * | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4695999A (en) * | 1984-06-27 | 1987-09-22 | International Business Machines Corporation | Cross-point switch of multiple autonomous planes |
JPS6124250A (ja) * | 1984-07-13 | 1986-02-01 | Nippon Gakki Seizo Kk | 半導体集積回路装置 |
JPS6142040A (ja) * | 1984-08-03 | 1986-02-28 | Nec Corp | 論理シミユレ−タ |
US4695950A (en) * | 1984-09-17 | 1987-09-22 | International Business Machines Corporation | Fast two-level dynamic address translation method and means |
US4713557A (en) * | 1984-09-26 | 1987-12-15 | Xilinx, Inc. | Bidirectional buffer amplifier |
US4695740A (en) * | 1984-09-26 | 1987-09-22 | Xilinx, Inc. | Bidirectional buffer amplifier |
US4642487A (en) * | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
US5023775A (en) * | 1985-02-14 | 1991-06-11 | Intel Corporation | Software programmable logic array utilizing "and" and "or" gates |
US4706216A (en) * | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
JPS61199166A (ja) * | 1985-03-01 | 1986-09-03 | Nec Corp | 配線経路探索装置 |
US4937827A (en) * | 1985-03-01 | 1990-06-26 | Mentor Graphics Corporation | Circuit verification accessory |
US4697241A (en) * | 1985-03-01 | 1987-09-29 | Simulog, Inc. | Hardware logic simulator |
US4766569A (en) * | 1985-03-04 | 1988-08-23 | Lattice Semiconductor Corporation | Programmable logic array |
US4761768A (en) * | 1985-03-04 | 1988-08-02 | Lattice Semiconductor Corporation | Programmable logic device |
US4814646A (en) * | 1985-03-22 | 1989-03-21 | Monolithic Memories, Inc. | Programmable logic array using emitter-coupled logic |
JPS61226844A (ja) * | 1985-03-30 | 1986-10-08 | Nec Corp | 論理回路のシミユレ−シヨン制御方法 |
US4674089A (en) * | 1985-04-16 | 1987-06-16 | Intel Corporation | In-circuit emulator |
JPH0668756B2 (ja) * | 1985-04-19 | 1994-08-31 | 株式会社日立製作所 | 回路自動変換方法 |
DE3520003A1 (de) * | 1985-06-04 | 1986-12-04 | Texas Instruments Deutschland Gmbh, 8050 Freising | Elektrisch programmierbare verknuepfungsmatrix |
FR2587158B1 (fr) * | 1985-09-11 | 1989-09-08 | Pilkington Micro Electronics | Circuits et systemes integres a semi-conducteurs |
US4725835A (en) * | 1985-09-13 | 1988-02-16 | T-Bar Incorporated | Time multiplexed bus matrix switching system |
JPH0756656B2 (ja) * | 1985-09-26 | 1995-06-14 | 株式会社日立製作所 | ゲ−ト論理自動更新方法 |
JPS6274158A (ja) * | 1985-09-27 | 1987-04-04 | Hitachi Ltd | 回路変換方式 |
US4722084A (en) * | 1985-10-02 | 1988-01-26 | Itt Corporation | Array reconfiguration apparatus and methods particularly adapted for use with very large scale integrated circuits |
ATE77184T1 (de) * | 1985-10-23 | 1992-06-15 | Pilkington Micro Electronics | Integrierte geschaltete uebertragungsschaltung. |
US4845633A (en) * | 1985-12-02 | 1989-07-04 | Apple Computer Inc. | System for programming graphically a programmable, asynchronous logic cell and array |
US4700187A (en) * | 1985-12-02 | 1987-10-13 | Concurrent Logic, Inc. | Programmable, asynchronous logic cell and array |
JPS62182939A (ja) * | 1986-02-07 | 1987-08-11 | Hitachi Ltd | 情報処理装置の論理シミユレ−シヨン方法 |
JPS63137A (ja) * | 1986-02-17 | 1988-01-05 | Mitsubishi Electric Corp | 配線領域決定処理装置 |
US4744084A (en) * | 1986-02-27 | 1988-05-10 | Mentor Graphics Corporation | Hardware modeling system and method for simulating portions of electrical circuits |
JPH0770598B2 (ja) * | 1986-03-20 | 1995-07-31 | 株式会社東芝 | 半導体集積回路装置の配線方法 |
US4862347A (en) * | 1986-04-22 | 1989-08-29 | International Business Machine Corporation | System for simulating memory arrays in a logic simulation machine |
US4777606A (en) * | 1986-06-05 | 1988-10-11 | Northern Telecom Limited | Method for deriving an interconnection route between elements in an interconnection medium |
US5126966A (en) | 1986-06-25 | 1992-06-30 | Ikos Systems, Inc. | High speed logic simulation system with stimulus engine using independent event channels selectively driven by independent stimulus programs |
US4787061A (en) * | 1986-06-25 | 1988-11-22 | Ikos Systems, Inc. | Dual delay mode pipelined logic simulator |
US4787062A (en) * | 1986-06-26 | 1988-11-22 | Ikos Systems, Inc. | Glitch detection by forcing the output of a simulated logic device to an undefined state |
GB8621357D0 (en) * | 1986-09-04 | 1986-10-15 | Mcallister R I | Hinged barrier semiconductor integrated circuits |
US5083083A (en) | 1986-09-19 | 1992-01-21 | Actel Corporation | Testability architecture and techniques for programmable interconnect architecture |
US4758745B1 (en) * | 1986-09-19 | 1994-11-15 | Actel Corp | User programmable integrated circuit interconnect architecture and test method |
US4736338A (en) * | 1986-10-07 | 1988-04-05 | Silicon Solutions Corporation | Programmable look up system |
US4945503A (en) * | 1986-10-21 | 1990-07-31 | Nec Corporation | Hardware simulator capable of reducing an amount of information |
US4768196A (en) * | 1986-10-28 | 1988-08-30 | Silc Technologies, Inc. | Programmable logic array |
US4918440A (en) * | 1986-11-07 | 1990-04-17 | Furtek Frederick C | Programmable logic cell and array |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US4786904A (en) * | 1986-12-15 | 1988-11-22 | Zoran Corporation | Electronically programmable gate array having programmable interconnect lines |
US4849928A (en) * | 1987-01-28 | 1989-07-18 | Hauck Lane T | Logic array programmer |
JPS63204441A (ja) * | 1987-02-20 | 1988-08-24 | Fujitsu Ltd | 論理シミユレ−シヨン専用プロセツサの処理方式 |
JP2699377B2 (ja) * | 1987-02-25 | 1998-01-19 | 日本電気株式会社 | ハードウエア論理シミユレータ |
US4827427A (en) * | 1987-03-05 | 1989-05-02 | Hyduke Stanley M | Instantaneous incremental compiler for producing logic circuit designs |
US4965739A (en) * | 1987-03-26 | 1990-10-23 | Vlsi Technology, Inc. | Machine process for routing interconnections from one module to another module and for positioning said two modules after said modules are interconnected |
US4908772A (en) * | 1987-03-30 | 1990-03-13 | Bell Telephone Laboratories | Integrated circuits with component placement by rectilinear partitioning |
US5329471A (en) | 1987-06-02 | 1994-07-12 | Texas Instruments Incorporated | Emulation devices, systems and methods utilizing state machines |
US4849904A (en) * | 1987-06-19 | 1989-07-18 | International Business Machines Corporation | Macro structural arrangement and method for generating macros for VLSI semiconductor circuit devices |
US4815003A (en) * | 1987-06-19 | 1989-03-21 | General Electric Company | Structured design method for high density standard cell and macrocell layout of VLSI chips |
US5093920A (en) | 1987-06-25 | 1992-03-03 | At&T Bell Laboratories | Programmable processing elements interconnected by a communication network including field operation unit for performing field operations |
JPS6425399A (en) * | 1987-07-21 | 1989-01-27 | Fujitsu Ltd | Programmable device and its test method |
DE3853860D1 (de) * | 1987-09-22 | 1995-06-29 | Siemens Ag | Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen. |
US4855669A (en) * | 1987-10-07 | 1989-08-08 | Xilinx, Inc. | System for scan testing of logic circuit networks |
US4901260A (en) * | 1987-10-28 | 1990-02-13 | American Telephone And Telegraph Company At&T Bell Laboratories | Bounded lag distributed discrete event simulation method and apparatus |
JP2541248B2 (ja) * | 1987-11-20 | 1996-10-09 | 三菱電機株式会社 | プログラマブル・ロジック・アレイ |
FR2623653B1 (fr) * | 1987-11-24 | 1992-10-23 | Sgs Thomson Microelectronics | Procede de test de cellules de memoire electriquement programmable et circuit integre correspondant |
JP2564344B2 (ja) * | 1987-12-23 | 1996-12-18 | 株式会社日立製作所 | 半導体集積回路の設計方式 |
US4922432A (en) * | 1988-01-13 | 1990-05-01 | International Chip Corporation | Knowledge based method and apparatus for designing integrated circuits using functional specifications |
US4931946A (en) * | 1988-03-10 | 1990-06-05 | Cirrus Logic, Inc. | Programmable tiles |
JP2563451B2 (ja) | 1988-03-10 | 1996-12-11 | 松下電器産業株式会社 | 論理シミュレーション方法と論理シミュレーション装置 |
US5253363A (en) | 1988-03-15 | 1993-10-12 | Edward Hyman | Method and apparatus for compiling and implementing state-machine states and outputs for a universal cellular sequential local array |
US4914612A (en) * | 1988-03-31 | 1990-04-03 | International Business Machines Corporation | Massively distributed simulation engine |
US4854039A (en) * | 1988-05-04 | 1989-08-08 | The Technology Congress, Ltd. | Prototype circuit board and method of testing |
US5003487A (en) * | 1988-06-28 | 1991-03-26 | International Business Machines Corporation | Method and apparatus for performing timing correction transformations on a technology-independent logic model during logic synthesis |
US4901259A (en) * | 1988-08-15 | 1990-02-13 | Lsi Logic Corporation | Asic emulator |
JPH0650514B2 (ja) * | 1988-09-30 | 1994-06-29 | 日本電気株式会社 | 論理回路の自動合成方式 |
US5452231A (en) | 1988-10-05 | 1995-09-19 | Quickturn Design Systems, Inc. | Hierarchically connected reconfigurable logic assembly |
DE68929518T2 (de) * | 1988-10-05 | 2005-06-09 | Quickturn Design Systems, Inc., Mountain View | Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät |
US5329470A (en) | 1988-12-02 | 1994-07-12 | Quickturn Systems, Inc. | Reconfigurable hardware emulation system |
US5109353A (en) * | 1988-12-02 | 1992-04-28 | Quickturn Systems, Incorporated | Apparatus for emulation of electronic hardware system |
US5140526A (en) | 1989-01-06 | 1992-08-18 | Minc Incorporated | Partitioning of Boolean logic equations into physical logic devices |
GB8902982D0 (en) | 1989-02-10 | 1989-03-30 | Plessey Co Plc | Machine for circuit design |
US5051938A (en) | 1989-06-23 | 1991-09-24 | Hyduke Stanley M | Simulation of selected logic circuit designs |
US5172011A (en) | 1989-06-30 | 1992-12-15 | Digital Equipment Corporation | Latch circuit and method with complementary clocking and level sensitive scan capability |
US5233539A (en) | 1989-08-15 | 1993-08-03 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure, input/output structure and configurable logic block |
US5231588A (en) | 1989-08-15 | 1993-07-27 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having symmetrical input/output structures |
US5377124A (en) | 1989-09-20 | 1994-12-27 | Aptix Corporation | Field programmable printed circuit board |
US5081602A (en) | 1989-11-07 | 1992-01-14 | Amp Incorporated | Computer simulator for electrical connectors |
JPH03180976A (ja) | 1989-12-11 | 1991-08-06 | Hitachi Ltd | 入出力端子割付方法 |
US5128871A (en) | 1990-03-07 | 1992-07-07 | Advanced Micro Devices, Inc. | Apparatus and method for allocation of resoures in programmable logic devices |
US5084824A (en) | 1990-03-29 | 1992-01-28 | National Semiconductor Corporation | Simulation model generation from a physical data base of a combinatorial circuit |
US5259006A (en) | 1990-04-18 | 1993-11-02 | Quickturn Systems, Incorporated | Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like |
US5224056A (en) | 1991-10-30 | 1993-06-29 | Xilinx, Inc. | Logic placement using positionally asymmetrical partitioning algorithm |
US5280826A (en) | 1991-09-20 | 1994-01-25 | Sugano Farm Machinery Mfg. Co., Ltd. | Coulter adjusting device for reversible plow |
JP2941135B2 (ja) | 1992-01-24 | 1999-08-25 | 富士通株式会社 | 疑似lsi装置及びそれを用いたデバッグ装置 |
US5475830A (en) | 1992-01-31 | 1995-12-12 | Quickturn Design Systems, Inc. | Structure and method for providing a reconfigurable emulation circuit without hold time violations |
JP3620860B2 (ja) | 1992-06-05 | 2005-02-16 | 株式会社メガチップス | シミュレーション装置 |
US5352123A (en) | 1992-06-08 | 1994-10-04 | Quickturn Systems, Incorporated | Switching midplane and interconnection system for interconnecting large numbers of signals |
US5339262A (en) | 1992-07-10 | 1994-08-16 | Lsi Logic Corporation | Method and apparatus for interim, in-situ testing of an electronic system with an inchoate ASIC |
US5572710A (en) | 1992-09-11 | 1996-11-05 | Kabushiki Kaisha Toshiba | High speed logic simulation system using time division emulation suitable for large scale logic circuits |
US5425036A (en) | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
US5452239A (en) | 1993-01-29 | 1995-09-19 | Quickturn Design Systems, Inc. | Method of removing gated clocks from the clock nets of a netlist for timing sensitive implementation of the netlist in a hardware emulation system |
US5596742A (en) | 1993-04-02 | 1997-01-21 | Massachusetts Institute Of Technology | Virtual interconnections for reconfigurable logic systems |
US5535223A (en) | 1993-05-28 | 1996-07-09 | Sun Microsystems, Inc. | Method and apparatus for the verification and testing of electrical circuits |
US5581738A (en) | 1993-06-07 | 1996-12-03 | Xilinx, Inc. | Method and apparatus for back-annotating timing constraints into simulation models of field programmable gate arrays |
US5479355A (en) * | 1993-09-14 | 1995-12-26 | Hyduke; Stanley M. | System and method for a closed loop operation of schematic designs with electrical hardware |
US5448522A (en) | 1994-03-24 | 1995-09-05 | Quickturn Design Systems, Inc. | Multi-port memory emulation using tag registers |
US5604888A (en) | 1994-04-07 | 1997-02-18 | Zycad Corporation | Emulation system employing motherboard and flexible daughterboards |
US5633813A (en) | 1994-05-04 | 1997-05-27 | Srinivasan; Seshan R. | Apparatus and method for automatic test generation and fault simulation of electronic circuits, based on programmable logic circuits |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
JP3168839B2 (ja) | 1994-09-09 | 2001-05-21 | 株式会社日立製作所 | 論理エミュレーションシステム及び等価回路生成方法 |
US5659716A (en) | 1994-11-23 | 1997-08-19 | Virtual Machine Works, Inc. | Pipe-lined static router and scheduler for configurable logic system performing simultaneous communications and computation |
US5546562A (en) * | 1995-02-28 | 1996-08-13 | Patel; Chandresh | Method and apparatus to emulate VLSI circuits within a logic simulator |
US5857091A (en) * | 1995-03-14 | 1999-01-05 | Siemens Business Communication Systems, Inc. | Machine and method for simulating a processor-based digital system |
US5649176A (en) | 1995-08-10 | 1997-07-15 | Virtual Machine Works, Inc. | Transition analysis and circuit resynthesis method and device for digital circuit modeling |
US5872953A (en) | 1995-08-30 | 1999-02-16 | Mentor Graphics Corporation | Simulating circuit design on a circuit emulation system |
US5574388A (en) | 1995-10-13 | 1996-11-12 | Mentor Graphics Corporation | Emulation system having a scalable multi-level multi-stage programmable interconnect network |
US5838948A (en) * | 1995-12-01 | 1998-11-17 | Eagle Design Automation, Inc. | System and method for simulation of computer systems combining hardware and software interaction |
US5748875A (en) | 1996-06-12 | 1998-05-05 | Simpod, Inc. | Digital logic simulation/emulation system |
US5841967A (en) | 1996-10-17 | 1998-11-24 | Quickturn Design Systems, Inc. | Method and apparatus for design verification using emulation and simulation |
-
1996
- 1996-10-17 US US08/733,352 patent/US5841967A/en not_active Expired - Lifetime
-
1997
- 1997-10-13 IL IL12195597A patent/IL121955A/xx not_active IP Right Cessation
- 1997-10-14 EP EP97117782A patent/EP0838772A3/en not_active Withdrawn
- 1997-10-15 TW TW086115169A patent/TW464828B/zh not_active IP Right Cessation
- 1997-10-16 CA CA002218458A patent/CA2218458C/en not_active Expired - Fee Related
- 1997-10-16 SG SG1997003763A patent/SG54583A1/en unknown
- 1997-10-17 JP JP09321879A patent/JP3131177B2/ja not_active Expired - Fee Related
- 1997-10-17 KR KR1019970053374A patent/KR100483636B1/ko not_active IP Right Cessation
-
1998
- 1998-11-12 US US09/191,228 patent/US6058492A/en not_active Expired - Lifetime
-
2000
- 2000-07-17 JP JP2000216060A patent/JP2001060219A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100710972B1 (ko) * | 1999-06-26 | 2007-04-24 | 양세양 | 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법 |
KR100812938B1 (ko) * | 2000-04-11 | 2008-03-11 | 양세양 | 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법 |
KR100824503B1 (ko) * | 2000-06-20 | 2008-04-22 | 양세양 | 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법 |
KR100767957B1 (ko) * | 2001-09-14 | 2007-10-17 | 양세양 | 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 방법 |
KR100794916B1 (ko) * | 2001-09-14 | 2008-01-14 | 양세양 | 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법 |
KR100594593B1 (ko) * | 2004-12-31 | 2006-06-30 | 한국전자통신연구원 | 반도체 소자의 설계 검증을 위한 고속 병렬 시뮬레이션 방법 |
US8725486B2 (en) | 2010-03-31 | 2014-05-13 | Samsung Electronics Co., Ltd. | Apparatus and method for simulating a reconfigurable processor |
Also Published As
Publication number | Publication date |
---|---|
US6058492A (en) | 2000-05-02 |
JPH10171847A (ja) | 1998-06-26 |
KR100483636B1 (ko) | 2005-06-16 |
CA2218458A1 (en) | 1998-04-17 |
US5841967A (en) | 1998-11-24 |
JP3131177B2 (ja) | 2001-01-31 |
IL121955A (en) | 2000-12-06 |
JP2001060219A (ja) | 2001-03-06 |
EP0838772A2 (en) | 1998-04-29 |
IL121955A0 (en) | 1998-03-10 |
TW464828B (en) | 2001-11-21 |
EP0838772A3 (en) | 1998-05-13 |
CA2218458C (en) | 2005-12-06 |
SG54583A1 (en) | 1998-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100483636B1 (ko) | 에뮬레이션및시뮬레이션을이용한설계검증방법및장치 | |
JP4125675B2 (ja) | タイミングに鈍感なグリッチのない論理システムおよび方法 | |
US7512728B2 (en) | Inter-chip communication system | |
US6389379B1 (en) | Converification system and method | |
US6810442B1 (en) | Memory mapping system and method | |
US8136065B2 (en) | Integrated prototyping system for validating an electronic system design | |
US6009256A (en) | Simulation/emulation system and method | |
US6321366B1 (en) | Timing-insensitive glitch-free logic system and method | |
US7036114B2 (en) | Method and apparatus for cycle-based computation | |
US6993469B1 (en) | Method and apparatus for unified simulation | |
US7117143B2 (en) | Clock distribution in a circuit emulator | |
US20030144828A1 (en) | Hub array system and method | |
US8359186B2 (en) | Method for delay immune and accelerated evaluation of digital circuits by compiling asynchronous completion handshaking means | |
JP2002505024A (ja) | 並行ハードウェア―ソフトウェア・コシミュレーション | |
US7050958B1 (en) | Method and apparatus for accelerating hardware simulation | |
KR100928134B1 (ko) | 주문형 vcd 시스템 및 방법 | |
US20040230934A1 (en) | System and method for emulating systems with multiple field programmable gate arrays | |
Gong et al. | Modeling dynamically reconfigurable systems for simulation-based functional verification | |
Chevalier et al. | SPACE: A hardware/software SystemC modeling platform including an RTOS | |
JP2000215226A (ja) | 論理検証装置 | |
JP2004310568A (ja) | シミュレータ装置、シミュレーション方法および性能解析方法 |
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: 20120327 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20130325 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |