KR100434240B1 - 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 - Google Patents
고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 Download PDFInfo
- Publication number
- KR100434240B1 KR100434240B1 KR10-2001-0009918A KR20010009918A KR100434240B1 KR 100434240 B1 KR100434240 B1 KR 100434240B1 KR 20010009918 A KR20010009918 A KR 20010009918A KR 100434240 B1 KR100434240 B1 KR 100434240B1
- Authority
- KR
- South Korea
- Prior art keywords
- interface
- design
- psg
- block
- target system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- 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
-
- 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)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
본 발명은 회로내 에뮬레이션(in-circuit emulation) 방법 및 장치에 관한 것으로서, 에뮬레이터와 호스트 컴퓨터 그리고 목표시스템으로 구성된 환경에서 사용된다. 호스트 컴퓨터는 목표 칩(target chip)의 소프트웨어 모델을 컴파일해서 컴파일 코드를 생성하고 이것을 에뮬레이터로 다운로드한다. 에뮬레이터는 컴파일 코드를 실행해서 목표 시스템과 상호 작용한다. 특히, 목표 칩의 소프트웨어 모델은 고수준 프로그래밍 언어로 기술한다. 에뮬레이터는 두 가지 기능 모듈, 즉 프로세싱 엔진(processing engine: PE) 및 핀 신호 발생기(pin signal generator: PSG)로 구성되며, 프로세싱 엔진은 컴파일 코드를 실행하고 PSG는 다수의 기능 블록들로 프로그램되어 목표 시스템과 상호 작용한다. 특히, 목표 시스템과 상호 작용하기 위해 하나 또는 그 이상의 기능 블록을 외부 인터페이스 모델에 따라 구성한다. 또한, 소프트웨어 변환 방법을 제공하며, 이 방법은 입/출력 변수들을 식별하는 단계 및 이들을 대응하는 입/출력 함수들로 변환하는 단계를 포함한다.
Description
본 발명은 전반적으로 에뮬레이션(emulation)을 통한 논리 함수(logic functions)의 검증에 관한 것으로서, 구체적으로는 칩 설계에서 논리 함수를 고수준 프로그래밍 언어(high-level programming language)로 기술하여 에뮬레이팅하는 것에 관한 것이다.
집적 회로를 포함하는 반도체 칩(이하, "칩"이라 함) 및 이러한 칩을 집적하는 시스템들의 복잡도(complexity)가 현저히 증가할수록, 칩을 성공적으로 설계하기 위해서는 훨씬 많은 노력과 시간이 필요하다. 이러한 칩들을 제작하기 전의 설계 과정에서 설계 오류를 제거하는 것이 바람직하므로, 칩 설계에서 논리 설계 검증이 광범위하게 채택되고 있다. 다양한 검증 방법 중 하나로서 에뮬레이션 방법이 제안되었으며, 이는 목표 시스템(target system)에서 사용하기 위해 설계한 칩의 논리 함수의 논리적 정확성을 검증하는 방법이다.
종래에는, 소프트웨어나 하드웨어 모델링(modeling)을 통해 또는 이들을 조합하여 논리 함수를 검증하였다. 소프트웨어 모델링은 C/C++ 같은 고수준 언어 또는 VHDL, Velilog 같은 하드웨어 기술 언어(hardware description language: HDL)를 이용하여 소프트웨어를 통한 논리 작용을 기술하는 것이다. 미국 특허 제6,009,256호는 HDL로 회로의 구조와 기능을 특정하여 회로의 소프트웨어 모델 또는 하드웨어 모델을 생성하는 "SEmulation system"을 개시하고 있다. 미국 특허 제6,058,592호는 HDL에 기초한 유사한 로직 에뮬레이터를 개시하고 있다.
그러나, 특히 단일칩시스템(system-on-a-chip)이 증대함에 따라 논리 설계가더욱 복잡해지면, 설계 및 시스템 내 논리 검증에 요구되는 시간을 감소시키는 것이 중요해 진다. 코딩과 디버깅이 쉽고 HDL에 비해 속도도 빠른 C나 C++ 같은 소프트웨어 프로그래밍 언어를 사용하여 논리 설계의 초기 단계에서 논리를 에뮬레이팅하는 것이 바람직하다.
주변 하드웨어 시스템 또는 목표 시스템에 연결하여 논리의 기능적 작용을 검증한 후, 수동 또는 소정의 자동화 수단을 이용하여 하드웨어 및 소프트웨어로 구분하여 구현할 수 있다. 이러한 접근 방법은 종래의 HDL기반 에뮬레이션 방법과 비교하여 설계 및 검증 시간을 현저히 감소시킬 것이다.
미국 특허 제4,901,259호는 HDL 모델뿐만 아니라 소프트웨어 프로그래밍 언어 모델도 인터페이스를 통해 목표 시스템에 연결한 범용 컴퓨터(general-purpose computer)에서 동작시킬 수 있는 "ASIC 에뮬레이터"를 개시하고 있다. 이것은 기본적으로, 소프트웨어 모델링이 모든 외부 회로와의 인터페이스를 수행할 때 제공한 모든 핀 신호들을 수신하는 일반화된 핀 입/출력 동기화 장치(pin I/O synchronizer)이다. ASIC 에뮬레이터 시스템은 모델링이 포함하는 핀 신호 값들을 계산하고 이들을 전기적 신호로 변환시켜 목표 시스템의 소켓(socket)으로 송신한다. 호스트 컴퓨터(host computer)와 ASIC 에뮬레이터 사이의 통신은 모든 핀에 요구되는 다수의 핀 신호 값들로 구성된다.
그러나, 빠른 에뮬레이션이 요구되는 경우, 미국 특허 제4,901,259호의 "ASIC 에뮬레이터"는 몇 가지 문제점을 내포한다. 첫째, 호스트 컴퓨터가 사용하는 소프트웨어는 외부 인터페이스 부분을 위해 사용하는 핀 신호들을 생성하는 전체 과정을 실행시키기에 느리고, 둘째, 호스트 컴퓨터의 입/출력 포트를 통한 통신 속도는 일반적으로 프로세서 속도에 비해 아주 느려서 통신에 소요되는 시간이 전체 에뮬레이션 속도를 떨어뜨리며, 셋째, 호스트 컴퓨터는 범용 운영 체계를 사용하므로 알고리듬의 실행 속도를 높이는데 최적화되어 있지 않는다는 점이다.
C 언어로 기술한 칩 설계를 레지스터 변환 레벨(register-transfer level: RTL) 기술로 자동적으로 변환시키도록 개발된 툴(tool)들이 있다. 그러나, 이러한 툴들은 주문형 반도체(application-specific integrated circuit: ASIC)와 같은 복잡한 칩들을 시험하기 위해 개별적으로 사용되어 왔다. 다시 말해, 목표 시스템과 함께 칩을 검증하는 것은 목표 시스템에 따라 다양한 외부 장치들과의 인터페이스를 요구하므로, C 언어로 기술한 칩의 시뮬레이션 만으로 목표시스템의 인터페이스 검증은 불가능하였다.
따라서, 목표 하드웨어 시스템 환경, 즉 회로내(in-circuit) 환경에서, C나 C++ 같은 고수준 프로그래밍 언어로 기술된 칩 설계를 빠르고 효과적으로 에뮬레이팅할 수 있는 에뮬레이터가 필요하다.
도 1은 본 발명의 회로내 에뮬레이터(in-circuit emulator)를 포함하는 회로 에뮬레이션 시스템의 전체 블록도.
도 2는 내부 논리 함수를 실행하는 프로세싱 엔진의 블록도.
도 3은 외부 인터페이스를 위해 핀 신호들을 생성하는 핀 신호 발생기(PSG)의 블록도.
도 4는 PSG를 구성하는 디코더 블록의 블록도.
도 5는 PSG를 구성하는 인터럽트 처리기(interrupt handler)의 블록도.
도 6은 PSG를 구성하는 디버깅 블록의 블록도.
도 7은 PSG를 구성하는 인터페이스 라이브러리 블록의 블록도.
도 8은 컴파일 코드(compiled code) 및 넷-리스트(net-list)를 생성하는 과정을 포함하는 변환(translation), 컴파일(compilation) 및 논리 합성(logic synthesizing) 과정의 흐름도.
본 발명은 소정의 목표 시스템과 관련된 칩 설계에 있어서, 칩 설계의 초기 단계에 논리 함수를 고속으로 검증하기 위한 장치 및 방법을 제공한다. 이러한 목적을 달성하기 위해, 논리 함수의 알고리듬 동작(algorithmic behavior)을 C나 C++ 같은 고수준 프로그래밍 언어로 기술한다. 그 후, 논리 함수 알고리듬을 호스트컴퓨터에서 컴파일하고, 본 발명의 에뮬레이터로 다운로드한다.
본 발명의 에뮬레이터는 적어도 하나의 프로세서를 포함하는 프로세싱 엔진 모듈(processing engine module)과, 필드-프로그램 가능 게이트 배열(field-programmable gate array) 또는 프로그램 가능 논리 소자(programmable logic device)를 적어도 하나 포함하는 핀 신호 발생기 모듈(pin signal generator module)을 포함한다. 프로세싱 엔진 모듈은 고수준 프로그래밍 언어로 기술한 알고리듬을 컴파일한 코드를 실행하며, 핀 신호 발생기 모듈은 목표 논리의 외부 인터페이스와 호환되는 핀 신호들을 생성한다. 본 장치는 디버깅(debugging) 또는 모니터링(monitoring)시, 핀 신호들의 파형을 용이하게 관찰할 수 있도록 하기 위해 모니터링 또는 디버깅 블록(block)도 포함한다.
본 발명의 방법은 입/출력 변수들을 입/출력 함수들로 변환하는 설계흐름(chip design flow)을 포함한다. 입/출력 변수들은 칩의 기능을 모델링한 알고리즘에서 외부의 목표시스템과 상호작용하는 소프트웨어 변수들을 의미한다. 입/출력변수들은 대응하는 입/출력 함수들로 변환되어, 알고리듬이 핀 신호 발생기에서 외부 인터페이스를 사용할 수 있게 한다.
도 1은 본 발명의 에뮬레이션 환경에 대한 개요를 도시한다. 본 발명의 에뮬레이션 환경은 프로세싱 엔진(PE)(101) 및 핀 신호 발생기(PSG)(102)를 포함하는 에뮬레이터(emulator)(10)를 포함한다. 에뮬레이터는 호스트 컴퓨터(11)와 통신하고, 호스트 컴퓨터(11)는 C나 C++ 같은 프로그래밍 언어로 작성한 알고리듬을 컴파일한다. 그 후, 컴파일 코드를 통신 포트(14)를 통해 에뮬레이터(10)의 메모리 (도 1에 도시되지 않음)로 전송한다. 컴파일 코드를 에뮬레이터(10)로 전송하는데는 직렬통신 또는 병렬통신 등 일반적인 통신 프로토콜을 사용한다.
본 발명의 에뮬레이션 환경은 설계한 칩을 궁극적으로 장착할 목표 시스템도 포함한다. 목표 시스템(12)은 일반적으로 에뮬레이터(10)와 통신하기 위한 소켓(121)과, 또 다른 에뮬레이터(13), IC들(124) 및 이산 논리(123)와 각각 통신하기 위한 다른 소켓들(122)을 포함한다. 에뮬레이터(13)는 본 발명에서와 같은 종류의 에뮬레이터뿐 아니라 그밖의 어떠한 종류의 에뮬레이터도 될 수 있는 추가 에뮬레이터이다.
프로세싱 엔진(101)은 목표 칩의 응용에 따라, 신호 처리(signal processing), 변조/복조(modulation/demodulation) 또는 암호화/복호화(encryption /decryption) 같은 목표 논리의 내부 논리 함수를 수행한다. 핀 신호 발생기(PSG)(102)는 필드 프로그램 가능 게이트 배열(field-programmable gate arrays: FPGAs) 또는 프로그램 가능 논리 소자(programmable logic devices: PLDs)와 같은 소자들을 하나 이상 포함하는데, 이러한 소자들은 목표 시스템(12)에서 다른 IC(124) 및 논리회로(123)와 인터페이스하도록 구성될 수 있다. 일단 이러한 소자들이 구성되면, 그 소자들은 목표 시스템으로 읽기/쓰기/제어(read/write/control) 신호를 생성한다. 프로세싱 엔진(101)과 PSG(102)는 PCI 버스 또는 AGP(accelerated graphics port) 같은 전용의 또는 통상적인 통신 메카니즘에 기초하여 채널(15)을 통해 서로 통신한다.
PSG(102)가 생성한 핀 신호들은 목표 시스템(12)의 소켓(121)에 인가된다.소켓(121)의 핀 구성은 목표 시스템에 따라 다르므로, (도 1에 도시되지 않은) 소켓 어댑터(16)를 사용하여 PSG(102)의 핀을 소켓(121)의 대응하는 핀으로 연결할 수 있다.
도 2는 본 발명의 프로세싱 엔진(PE)(101)의 바람직한 실시예에 대한 상세 블록도이다. PE(101)는 컴파일 코드를 실행하는 하나 이상의 프로세서(201, 202) 및 컴파일 코드를 실행하는 동안 다운로드한 컴파일 코드 및 일시적인 데이터를 저장하는 하나 이상의 메모리(203, 204)를 포함한다. 또한, PE(101)는 프로세서들과 메모리들을 연결하는 호스트 버스(205)도 포함한다. 컴파일 코드는 통신 포트(14)를 통해 호스트 컴퓨터(11)에서 메모리(203, 204)로 다운로드한다.
또한, PE(101)는 PSG 초기화 장치(PSG initializer)(214)를 포함하며, 이것은 PSG(102)의 FPGA 또는 PLD들이 목표 시스템(12)에 대해 외부 인터페이스로 작동하도록 구성한다. 또한, PE(101)는 인터럽트 제어기(213)를 포함하며, 이것은 PSG(102)를 포함하는 프로세싱 엔진의 다른 블록들로부터 인터럽트 요청을 수신하여 처리한다. PCI 버스는 PSG 및 기타 PCI 블록들(209, 213, 214)을 상호 연결한다. 또한, PE(101)는 클럭 발생기, 전원 조절기 등을 포함하는 기타 논리(212)도 포함한다.
호스트 브리지(208)는 호스트 버스(205)와 PCI 버스(206)를 연결한다. X-버스 브리지(209)는 PCI 버스(206)를 X-버스(207)에 연결하는데, 이 때 X-버스는 ISA 버스와 같은 산업 표준 버스로 구성될 수 있다. 시스템 ROM(211)은 PE(101)의 모든 하드웨어 구성 요소를 위한 초기화 또는 부팅 코드를 저장한다. 통신 포트(14)를 제공하는 통신 장치(210)에 의해, PE(101)는 호스트 컴퓨터(11)와 통신할 수 있다. 통신 장치는 종래의 어떠한 장치이어도 무방하며, 예컨대 범용 비동기화 송수신기(universal asynchronous receiver and transmitter: UART), 범용 직렬 버스(universal serial bus: USB) 또는 병렬 통신 장치(parallel communication device)가 될 수 있다.
도 3은 핀 신호 발생기(PSG)(102)를 구현한 것을 도시하며, 프로세싱 엔진(101)과 PSG(102) 사이의 채널(15)은 PCI 버스이다. PSG 초기화 장치(214)는 초기화 과정을 통해 PSG(102)를 PCI 제어기 블록(300), 디코더 블록(301), 인터럽트 처리기 블록(302), 디버그 블록(303) 및 하나 이상의 인터페이스 라이브러리 블록(304, 305)으로 구성한다. PCI 제어기 블록(300)은 PSG(102) 내부의 주소/데이터 버스(306) 및 제어 버스(307)에 연결되는 다른 PSG 블록들(301, 302, 303, 304, 305)과 PSG(102) 외부의 프로세싱 엔진(101) 사이에서 데이터를 교환하는 PCI 버스(206)를 제어한다.
프로세싱 엔진(101)은 PSG(102)로부터 데이터를 읽거나 PSG(102)로 데이터를 쓸 필요가 있을 때, 표준 PCI 프로토콜을 사용하여 PSG 블록들(301, 302, 303, 304, 305)의 주소 지정(addressing)을 한다. PCI 제어기 블록(300)은 PCI 버스(206)상의 주소가 PSG 블록들 중 하나에 대한 것인지를 모니터링한다. 만일 그렇다면, 디코더 블록(301)은 미리 정해진 주소 맵에 기초하여 어느 블록을 주소 지정하였는가를 결정한다. 일단 주소에 의해 블록을 선택하면, 프로세싱 엔진(101)의 데이터를 PCI 버스(206)를 통해 선택한 블록으로 송신한다.
디버그 블록(303)은 C/C++ 언어로 작성한 칩의 소프트웨어 모델과 목표 시스템의 하드웨어를 디버깅하기 위해 인터페이스 라이브러리 블록들(304, 305)의 입/출력 신호들을 저장한다. 인터럽트 처리기 블록(302)을 사용하여 PSG(102)내 복수의 경합하는 블록들(303, 304, 305)이 프로세싱 엔진(101)과 효과적으로 통신하게 한다. 인터페이스 라이브러리 블록들(304, 305)은 적어도 하나의 외부 인터페이스 모델에 따라 구성되며, 목표 시스템(12)과 인터페이스하기 위해 요구되는 실제 핀 신호들을 생성한다.
도 4는 주소 디코더(40) 및 제어 논리(41)를 포함하는 디코더 블록(301)을 구현한 것을 도시한다. 주소 디코더(40)는 주소/데이터 버스(306)를 통해 주소 입력 신호들을 수신하고 PSG(102) 내의 대응하는 블록들에게 제어 신호들(42)을 생성한다. 제어 논리(41)는 [주소 스트로브(address strobe)(43), 데이터 요청(data request)(44)으로 도시된] 제어 신호들을 제어 버스(307)를 통해 수신하고, 주소 디코더(40)를 제어하며, 데이터 승인(data acknowledge) 신호(45)를 생성한다.
도 5는 디버그 블록(303) 및 인터페이스 라이브러리 블록들(304)로부터 상태 정보(status information)(57)를 수신하는 인터럽트 처리기 블록(302)을 구현한 것을 도시한다. 인터럽트 처리기는 인터럽트 요청(53) 및 인터럽트 벡터들(52)을 생성하여 인터럽트 벡터들 중 하나를 선택한 후, (도 3에 도시된) PCI 제어기 블록(300)을 통해 프로세싱 엔진(101)에 위치한 인터럽트 제어기(213)(도 2에 도시됨)로 전송한다.
상술한 예는 다수의 요청들(57)로부터 최상위의 우선 순위 인터럽트 벡터(52)를 선택하는 우선 순위 인코더(priority encoder)(50)를 사용한 간단한 실시예를 도시한다. 상술한 예에서는 고정된 우선 순위 메카니즘을 도시하고 있으나, 당업자는 순환 순서(round-robin) 방식 또는 공정 기초 우선 순위(fairness-based priority) 방식과 같은 임의의 우선 순위 선택 메카니즘도 적용될 수 있다. 제어 논리(51)는 우선 순위 인코더(50)를 제어하며 인터럽트 요청(53)을 생성하고 인터럽트 승인(54)을 수신한다.
도 6은 인터페이스 라이브러리 블록들(304, 305)의 입/출력 신호들을 샘플링하고 그것들을 샘플 데이터 저장 장치에 저장하는 디버그 블록(303)의 예인데, 여기서 저장 장치는 메모리, 순환 큐 타입(circular queue type) 저장 장치 또는 그밖의 임의의 저장 장치로도 구현될 수 있다. 핀 신호 수집 제어기(pin signal acquisition controller)(60)는 트리거 이벤트 제어기(trigger event controller)(61) 및 샘플 데이터 저장 장치(62)를 각각 연결부(66, 67)를 통해 제어한다. 핀 신호 수집 제어기(60)는 프로세서(201, 202)에 의한 제어를 위해, 미리 정해진 신호 패턴이나 이러한 신호들의 조합이 발생할 경우 트리거 이벤트 신호를 생성하도록 트리거 이벤트 제어기(61)를 구성한다. 트리거 이벤트 신호가 발생되면, 핀 신호 수집 제어기(60)는 샘플 데이터 저장 장치(62)가 샘플 데이터를 저장하는 것을 중지시키고 그 상태를 상태 신호(63)를 통해 인터럽트 처리기 블록(302)으로 보고한다. 궁극적으로, 입/출력 신호 및 소프트웨어 변수들을 모니터링하는 핀 신호 분석기(pin signal analyzer)는 샘플 데이터 저장 장치(62)에 저장된 샘플 데이터를 사용한다.
도 7은 인터페이스 라이브러리 블록들(304, 305)을 구현한 것을 도시하는데,도면에서 각각의 블록은 목표 시스템(12)의 핀들과의 인터페이스이다. PE(101)로부터 각각 PCI 버스(15)와 PCI 제어기 블록(300)을 통해 전송된 인터페이스 제어 명령 및 출력 데이터는 CmdQueue(71) 및 OutQueue(72)에 저장된다. 제어 논리(70)는 제어 신호들의 순서(sequence)에 따라 핀 신호들(78)을 생성한다. 목표 시스템(12)으로부터 전송된 입력 신호들은 InQueue(73)에 저장되고 최종적으로 프로세싱 엔진(101)으로 전달된다. InQueue 상태(74) 및 OutQueue 상태(75)는 대응하는 버퍼들의 상태를 나타내며 제어 버스(307)를 통해 인터럽트 처리기 블록(302)에 연결된다.
도 8은 본 발명의 바람직한 실시예에 따라 컴파일된 에뮬레이션 모델(compiled emulation model)을 완성시키는 각 단계를 도시하는 흐름도이다.
설계하고 있는 칩의 논리 함수를 기술하는 프로그램이 목표 시스템 내의 실제 하드웨어와 상호 작용을 하기 위해서는 적절한 인터페이스 함수들이 필요하다. 이러한 인터페이스 함수들은, 목표 시스템내의 하드웨어로 핀 신호들을 생성하는 방식 및 하드웨어로부터 핀 신호들을 수신하는 방식을 사전에 설정하는 규격 (specification)에 따라 하드웨어와 상호 작용을 하고 프로그램과 통신한다. 프로그램 상에서 하드웨어로의 관문(gateway)을 나타내는 이러한 변수들을 입/출력 변수들이라고 한다. 인터페이스 함수와 통신하는 하드웨어의 구현을 인터페이스 라이브러리라고 한다.
칩이 수행하는 알고리듬의 모델링은 고수준 프로그래밍 언어로 기술하는데, 알고리듬 그 자체는 그것이 다루는 데이터의 출처나 목적지와 관련이 없기 때문에, 처리할 데이터가 외부 장치들로부터 입력되는 것인지 외부 장치들로 출력되는 것인지 구별하지 못한다. 더욱이, 인터페이스의 사양, 즉 외부 장치/회로들과의 상호 작용 방식은 실제로 칩의 내부 작용들을 나타내는 알고리듬과 무관하다. 따라서, 본 발명은 사용자가 외부 장치들과 통신하는 부분을 고수준 프로그래밍 언어 프로그램 상에서 입/출력 변수들을 통해 지시할 수 있게 한다. 이 단계를 응용 프로그래밍 인터페이스(application programming interface: API) 삽입이라고 한다.
입/출력 변수 상의 인터페이스 정보는 하나 이상의 입/출력 프로토콜, 읽기 버스 주기, 쓰기 버스 주기 및 프로토콜이 주소 버스를 요구할 때 메모리 위치를 지시하는 기준 주소(base address)를 포함한다. 이 정보에 따라, 입/출력 변수들은 각각 입/출력 함수들로 변환되어 결국 인터페이스 라이브러리로 연결된다. 칩의 각각의 인터페이스마다 입/출력 함수가 생성된다.
예를 들어, 입/출력 변수 "a"를 읽을 필요가 있는 경우, 입/출력 변수 "a"에 지정한 프로토콜을 사용하여 다음과 같이 목표 시스템으로부터 데이터를 읽는다. 즉, "data=a+b"는 "data=io_read(PORT_A)+b"로 변환하며 "a=data"는 "io_write(PORT_A, data)"로 변환한다. 여기서 "a"는 입/출력 변수이며 "io_read()"와 "io_write()"는 모두 입/출력 함수이다. 이런 변환 방식으로 변수에 대한 접근이 곧 대응하는 함수의 실행이 된다.
API 프로그램이 입/출력 변수들을 입/출력 함수들로 변환하는 동안, 드라이버 구성기(driver builder)는 입/출력 함수들의 코드를 생성하고, 입/출력 함수들의 병렬 특성(concurrency features)을 지원하는 멀티-스레딩(multi-threading)과같은 추가 함수들을 준비한다.
입/출력 변수들 각각은, PSG(102)에게 후속 프로토콜을 알리기 위해, PSG(102)에 대해 유일한 포트(예를 들어, 앞에서 언급한 "PORT_A")(인터페이스 라이브러리라고도 함)를 할당받는다. 다시 말해, 입/출력 변수들을 접근하면 에뮬레이션한 칩의 하나 이상의 핀이 활성화된다. 입/출력 변수의 접근 패턴은 입/출력의 방향을 결정한다. 즉, 읽기 접근은 인터페이스 프로토콜이 데이터를 전달하는 것이고, 쓰기 접근은 데이터를 목표 시스템의 구성요소로 출력하는 것이다.
인터페이스 모델은 HDL 기반 하드웨어 모델로 변환된 후, PSG(102) 구조와 관련하여 전술했듯이, PSG(102)의 PLD로 합성되거나 맵핑된다. 이상의 과정을 도8을 통해 상세히 설명한다.
첫째, 목표 칩에서 구현할 논리 함수의 알고리듬(801)을 종래의 텍스트 에디터(800)를 사용하여 C/C++ 또는 이와 동등한 고수준 프로그래밍 언어로써 기술하여 작성한다. 여기서 고수준 프로그래밍 언어는 SystemC 또는 SpecC 같은 C의 변형 언어일 수도 있다. 외부 인터페이스가 표준 외부 장치에 대한 것이면, 인터페이스 라이브러리를 하드웨어 기술 언어(hardware description language: HDL) 코드(813)로 기술한다. 사용자 정의 표준(user-defined standard)에 대한 것이면, 종래의 텍스트 편집기(812) 또는 FSM(finite state machine) 편집기(414)를 사용하는 유한 상태 기계(finite state machine: FSM) 모델(815)을 사용하여 인터페이스의 작용을 기술한다. 목표 칩은 목표 시스템(12)의 다른 부분들과 데이터 또는 신호들을 여러 가지 방식으로 교환하기 때문에, 일단 그것을 목표 시스템(120)에 설치하면 상호-승인 프로토콜(mutually-agreed protocol)로 데이터를 교환할 수 있도록 많은 인터페이스 라이브러리들이 필요하다. 이러한 인터페이스 라이브러리들을 완성하면, 인터페이스 라이브러리 관리자(manager)(816)는 이들을 인터페이스 라이브러리 데이터베이스(817)에 등록한다.
둘째, 입/출력 변수들과 이들의 대응하는 인터페이스 라이브러리들을 단계(802)에서 결정하여 지정한다.
셋째, 번역기(translator)(803)는 단계(802)에서 지정된 인터페이스 함수들을 포함하도록 C 코드(801)로 작성한 알고리듬을 수정된 C 코드(804)로 변환한다.
넷째, 호스트 컴퓨터(11)의 C 컴파일러(805)는 수정된 C 코드(804)를 에뮬레이터(10)의 프로세싱 엔진(102)이 실행할 코드(806)로 컴파일한다.
이러한 단계들과 병행하여, PSG 구성기(builder)(807)는 특정한 단계(802)에서 선택한 인터페이스 라이브러리들의 HDL 코드(808)를 생성한다. 논리 합성기(logic synthesizer)(809)는 HDL 코드(808)를 넷-리스트(net-list)(810)로 합성하여 PSG(102)의 PLD나 FPGA에 맵핑한다.
전술한 바와 같이, 본 발명은 외부 인터페이스들이 요구하는 적절한 핀 신호들을 생성함으로써 빠르고 효과적인 칩 설계 에뮬레이션을 할 수 있다. 본 발명은 설계의 초기 단계 동안 칩 설계 에뮬레이션을 수행할 수 있으므로 칩 설계 및 시스템 개발 시간을 상당히 감소시킨다. 본 발명은 MPEG2 비디오 디코더, MP3 디코더 및 무선 모뎀과 같은 다양한 응용에서 칩 설계를 검증하는데 성공적으로 적용하였다.
본 발명을 바람직한 실시예들과 관련하여 기술하였으나, 이러한 실시예에 국한할 것을 의도하지 않는다. 당업자는 본 발명의 사상 및 범주를 벗어나지 않고 기술한 실시예의 구조에 다양한 수정을 가할 수 있다고 쉽게 이해할 것이다.
Claims (28)
- 외부 회로들을 구비한 타겟(target) 시스템과 통신하기 위한 외부 인터페이스 설계 및 내부 논리 설계로 나뉘어지는 칩 설계를 검증하기 위한 회로내(in-circuit) 에뮬레이션 장치에 있어서,상기 내부 논리 설계의 기능을 정의하는 컴파일된 코드들(complied codes) ―상기 컴파일된 코드들은 적어도 하나의 인터페이스 프로토콜에 따라 상기 회로내 에뮬레이션 장치 내에서 통신됨 ―을 실행시키기 위한 프로세싱 엔진(PE)과,통신 메커니즘(mechanism)을 통해 상기 PE와 통신하며, 상기 외부 인터페이스 설계에 따라 핀 신호들을 발생하고 상기 핀 신호들과 적어도 하나의 응답 신호 ―상기 적어도 하나의 응답 신호는 상기 PE가 상기 컴파일된 코드들을 실행하는 동안 상기 핀 신호들에 응답하여 상기 외부 회로들에 의해 발생됨 ―를 실시간으로 저장하기 위한 핀 신호 발생기(PSG)를 포함하되,상기 PE 및 상기 PSG는 인터페이스 제어 패킷들로 통신하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PE는 적어도 하나의 마이크로프로세서를 더 포함하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PE는 상기 회로내 에뮬레이션 장치에 연결된 호스트 컴퓨터(host computer)와 통신하기 위한 수단을 더 포함하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PE는 상기 PSG를 구성하기 위한 PSG 초기화기(initializer)를 더 포함하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PSG는 필드 프로그램 가능 게이트 배열들(field programmable gate arrays)을 사용하여 구현되는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PSG는 프로그램 가능 논리 소자들(programmable logic devices)을 사용하여 구현되는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 적어도 하나의 인터페이스 프로토콜은 표준(standard) 인터페이스 프로토콜을 더 포함하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 적어도 하나의 인터페이스 프로토콜은 사용자 정의 프로토콜(user-defined protocol)을 더 포함하는 회로내 에뮬레이션 장치.
- 제 8 항에 있어서,상기 PSG는 상기 사용자 정의 프로토콜을 등록하기 위한 유한 상태 머신(finite state machine)을 더 포함하는 회로내 에뮬레이션 장치.
- 삭제
- 제 1 항에 있어서,상기 통신 메커니즘은 상기 PE 및 상기 PSG 사이에 상기 인터페이스 제어 패킷들을 교환하기 위한 버스(bus)를 더 포함하는 회로내 에뮬레이션 장치.
- 제 1 항에 있어서,상기 PSG는,상기 핀 신호들과 상기 적어도 하나의 응답 신호를 사용하여, 상기 타겟 시스템 내의 상기 외부 회로들과 통신하는 데 사용하기 위한 인터페이스 프로토콜을 정의하기 위한 인터페이스 라이브러리(library) 블록과,상기 컴파일된 코드들의 실행 중에, 상기 핀 신호들과 상기 적어도 하나의 응답 신호를 저장하기 위한 디버깅(debugging) 블록과,상기 인터페이스 라이브러리 블록과 상기 디버깅 블록으로부터의 다수의 인터럽트 요청들 중 하나를 선택하기 위한 인터럽트 처리기 블록과,상기 인터페이스 라이브러리 블록, 상기 디버깅 블록, 상기 인터럽트 처리기 블록 중 상기 PE가 액세스를 시도하는 블록을 어드레싱(addressing)하기 위한 어드레스 디코더 블록과,상기 인터페이스 라이브러리 블록, 상기 디버깅 블록, 상기 인터럽트 처리기 블록, 상기 어드레스 디코더 블록 중 하나와 상기 PE간의 통신을 제어하기 위한 제어기 블록을 포함하는 회로내 에뮬레이션 장치.
- 회로내 에뮬레이터를 통해, 타겟 시스템과 통신하기 위한 외부 인터페이스 설계 및 내부 논리 설계로 나뉘어지는 칩 설계를 검증하기 위한 방법에 있어서,상기 내부 논리 설계의 기능을 정의하는 컴파일된 코드를 호스트 컴퓨터로부터 상기 회로내 에뮬레이터로 다운로딩하는 단계와,상기 외부 인터페이스 설계에 따라, 하드웨어 기술 언어(HDL)를 사용하여 상기 타겟 시스템 내의 외부 회로들과 통신하기 위한 인터페이스 프로토콜을 정의하는 단계와,상기 정의된 인터페이스 프로토콜에 따라 프로그램 가능 논리 소자들을 프로그래밍하여 적절한 핀 신호들 ―상기 핀 신호들은 상기 컴파일된 코드의 실행에 응답하여 상기 외부 회로들로 전송됨 ―을 발생하는 단계와,상기 핀 신호들 및 적어도 하나의 응답 신호 ―상기 적어도 하나의 응답 신호는 상기 핀 신호들에 응답하여 상기 외부 회로들에 의해 발생됨 ―를 실시간으로 저장하는 단계를 포함하는 칩 설계 검증 방법.
- 제 13 항에 있어서,상기 HDL은 VHDL인 칩 설계 검증 방법.
- 제 13 항에 있어서,상기 HDL은 Verilog인 칩 설계 검증 방법.
- 제 13 항에 있어서,상기 컴파일된 코드는 고수준 프로그래밍 언어로 기술되며, 상기 고수준 프로그래밍 언어는 C인 칩 설계 검증 방법.
- 제 16 항에 있어서,상기 고수준 프로그래밍 언어는 C++인 칩 설계 검증 방법.
- 제 16 항에 있어서,상기 고수준 프로그래밍 언어는 SystemC인 칩 설계 검증 방법.
- 제 16 항에 있어서,상기 고수준 프로그래밍 언어는 SpecC인 칩 설계 검증 방법.
- 타겟 시스템 내의 외부 회로들과 통신하기 위한 외부 인터페이스 설계 및 내부 논리 설계로 나뉘어지는 칩 설계를 검증하기 위한 방법에 있어서,고수준 프로그래밍 언어를 사용하여 상기 내부 논리 설계의 논리 기능을 모델링하는 단계와,하드웨어 기술 언어(HDL)를 사용하여 상기 외부 인터페이스 설계를 모델링하는 단계와,상기 모델링된 외부 인터페이스 설계에 근거하여 상기 외부 회로들과 통신하기 위한 인터페이스 프로토콜 및 인터페이스 라이브러리들을 정의하는 단계와,상기 정의된 인터페이스 프로토콜에 따라 프로그램 가능 논리 소자들을 프로그래밍함으로써 입력 및 출력 신호들을 정의하는 단계와,상기 모델링된 논리 기능의 실행에 응답하여 발생된 상기 입력 및 출력 신호들을 사용하여 상기 외부 회로들과 통신하는 단계 ―상기 인터페이스 프로토콜의 상기 인터페이스 라이브러리들은 상기 모델링된 논리 기능의 실행 동안에 관리됨 ―와,상기 모델링된 논리 기능을 실행하는 동안에 상기 입력 및 출력 신호들을 실시간으로 저장하는 단계를 포함하는 칩 설계 검증 방법.
- 타겟 시스템 내의 외부 회로들과 통신하기 위한 외부 인터페이스 설계 및 내부 논리 설계로 나뉘어지는 칩 설계를 검증하는 프로그램을 저장하기 위한 컴퓨터 판독가능 저장 매체에 있어서,상기 칩 설계 검증 프로그램은,상기 내부 논리 설계의 논리 기능을 모델링하기 위한 코드 세그멘트(code segment)와,상기 외부 인터페이스 설계를 모델링하기 위한 코드 세그멘트와,상기 모델링된 외부 인터페이스 설계에 근거하여, 상기 외부 회로들과 통신하기 위한 인터페이스 프로토콜 및 인터페이스 라이브러리들을 정의하기 위한 코드 세그멘트와,사용자 정의 인터페이스 프로토콜을 상기 정의된 인터페이스 프로토콜에 부가하기 위한 코드 세그멘트와,상기 정의된 인터페이스 프로토콜에 따라 프로그램 가능 논리 소자들을 프로그래밍함으로써 입력 및 출력 신호들을 정의하기 위한 코드 세그멘트와,상기 모델링된 논리 기능의 실행에 응답하여 상기 외부 회로들과의 통신을 제어하기 위한 코드 세그멘트 ―상기 인터페이스 프로토콜의 상기 인터페이스 라이브러리들은 상기 모델링된 논리 회로의 실행 동안에 관리됨 ―와,상기 모델링된 논리 기능의 실행 동안에 상기 입력 및 출력 신호들을 실시간으로 저장하기 위한 코드 세그멘트를 포함하는 컴퓨터 판독가능 저장 매체.
- 삭제
- 제 21 항에 있어서,상기 저장 매체는 컴팩트디스크(CD)인 컴퓨터 판독가능 저장 매체.
- 제 21 항에 있어서,상기 저장 매체는 하드디스크인 컴퓨터 판독가능 저장 매체.
- 타겟 시스템에 사용될 칩의 설계를 검증하기 위한 회로내 에뮬레이션 시스템에 있어서,상기 칩의 설계의 소프트웨어 모델을 컴파일링하여 컴파일된 코드를 발생하기 위한 호스트 컴퓨터와,상기 호스트 컴퓨터로부터 다운로드된 상기 컴파일된 코드를 실행시키고, 상기 컴파일된 코드의 실행 동안에 상기 타겟 시스템과 통신할 때 발생된 신호들을 실시간으로 저장하기 위한 에뮬레이션 장치를 포함하되,상기 소프트웨어 모델은 고수준 언어로 기술되는 회로내 에뮬레이션 시스템.
- 제 25 항에 있어서,상기 에뮬레이션 장치는,마이크로프로세서들 및 메모리들로 이루어져 상기 컴파일된 코드를 실행시키기 위한 프로세싱 유닛과,다수의 프로그램 가능 논리 소자들로 이루어져 상기 타겟 시스템과 통신하는 데 필요한 상기 신호들을 발생하기 위한 핀 신호 발생 유닛을 더 포함하되,상기 다수의 프로그램 가능 논리 소자들은 상기 컴파일된 코드에 의해 정의된 논리 기능을 구현하는 회로내 에뮬레이션 시스템.
- 삭제
- 제 26 항에 있어서,상기 에뮬레이션 장치는 상기 컴파일된 코드의 실행 중에 발생된 상기 신호들 및 소프트웨어 변수들을 모니터링하고 디버깅하기 위한 핀 신호 분석 유닛을 더 포함하는 회로내 에뮬레이션 시스템.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0009918A KR100434240B1 (ko) | 2001-02-27 | 2001-02-27 | 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 |
EP01250334A EP1235152A2 (en) | 2001-02-27 | 2001-09-21 | Apparatus and method for in-circuit emulation using a high-level programming language |
CNB011409185A CN1229721C (zh) | 2001-02-27 | 2001-09-26 | 利用高级编程语言的电路内仿真的设备和方法 |
JP2001295226A JP2002259157A (ja) | 2001-02-27 | 2001-09-27 | 回路内エミュレーション装置及びそのチップ設計方法、及び回路内エミュレーションシステム |
TW090124545A TW594513B (en) | 2001-02-27 | 2001-10-04 | Apparatus and method for in-circuit emulation using high-level programming language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0009918A KR100434240B1 (ko) | 2001-02-27 | 2001-02-27 | 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020069631A KR20020069631A (ko) | 2002-09-05 |
KR100434240B1 true KR100434240B1 (ko) | 2004-06-04 |
Family
ID=19706298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0009918A KR100434240B1 (ko) | 2001-02-27 | 2001-02-27 | 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1235152A2 (ko) |
JP (1) | JP2002259157A (ko) |
KR (1) | KR100434240B1 (ko) |
CN (1) | CN1229721C (ko) |
TW (1) | TW594513B (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1575687A2 (en) * | 2002-12-19 | 2005-09-21 | Koninklijke Philips Electronics N.V. | System and method for controlling a robot |
CN100450041C (zh) * | 2004-02-21 | 2009-01-07 | 华为技术有限公司 | 一种信息传输的方法和装置 |
CN100367228C (zh) * | 2004-07-31 | 2008-02-06 | 华为技术有限公司 | 一种集成电路的仿真方法 |
CN100412874C (zh) * | 2004-11-26 | 2008-08-20 | 鸿富锦精密工业(深圳)有限公司 | 延时器仿真模型设计装置及方法 |
JP5119902B2 (ja) | 2007-12-19 | 2013-01-16 | 富士通セミコンダクター株式会社 | 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム |
US8001505B2 (en) | 2008-09-15 | 2011-08-16 | Synopsys, Inc. | Method and apparatus for merging EDA coverage logs of coverage data |
DE102009048746B4 (de) * | 2009-10-08 | 2013-10-24 | Netstal-Maschinen Ag | Verfahren zur Steuerung und Bedienung einer Produktionszelle sowie eine Steuereinrichtung |
CN102377655A (zh) * | 2010-08-19 | 2012-03-14 | 盛科网络(苏州)有限公司 | 软件仿真asic转发的系统和方法 |
KR101678480B1 (ko) * | 2015-07-08 | 2016-11-22 | 주식회사 유비콤테크놀로지 | R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법 |
CN105070127A (zh) * | 2015-08-11 | 2015-11-18 | 武汉美 | 一种交互式实训教学系统以及方法 |
US10552190B2 (en) | 2017-01-16 | 2020-02-04 | International Business Machines Corporation | Precise error injection for driver testing |
TWI670617B (zh) * | 2018-10-31 | 2019-09-01 | 財團法人工業技術研究院 | 模擬系統與方法 |
WO2020172089A1 (en) * | 2019-02-18 | 2020-08-27 | Siemens Aktiengesellschaft | Automation code generator for interoperability across industrial ecosystems |
KR20200139525A (ko) * | 2019-06-04 | 2020-12-14 | 삼성전자주식회사 | Fpga를 포함하는 전자 시스템 및 이의 동작 방법 |
CN110851516B (zh) * | 2019-11-07 | 2022-04-19 | 中国银行股份有限公司 | 主机运控系统及方法 |
CN112329369B (zh) * | 2020-11-09 | 2024-04-12 | 安徽芯纪元科技有限公司 | 一种在芯片仿真模型上进行软件调试的方法 |
CN113219853A (zh) * | 2021-04-09 | 2021-08-06 | 北京国电思达科技有限公司 | Plc控制器的半物理仿真平台搭建方法及装置 |
CN112949234A (zh) * | 2021-04-14 | 2021-06-11 | 山东高云半导体科技有限公司 | Fpga物理模型的软件建模方法及装置 |
CN113742280B (zh) * | 2021-07-14 | 2023-07-28 | 江西昌河航空工业有限公司 | 能够自定义通信协议的双arm系统 |
CN114861581B (zh) * | 2022-04-26 | 2024-03-08 | 河南科技大学 | 基于图像识别的可编程逻辑器件的辅助编程设计方法 |
CN116090403B (zh) * | 2023-02-13 | 2023-12-26 | 上海合见工业软件集团有限公司 | 支持多仿真器的命令处理系统 |
CN116562203B (zh) * | 2023-04-10 | 2023-10-20 | 合芯科技有限公司 | 一种调试系统中数据的处理方法、装置、设备及存储介质 |
CN116384305B (zh) * | 2023-06-05 | 2023-08-01 | 英诺达(成都)电子科技有限公司 | 数据通信方法、装置、系统、设备及计算机存储介质 |
CN117194276B (zh) * | 2023-11-06 | 2024-01-23 | 沐曦集成电路(上海)有限公司 | 芯片软硬件联合仿真调试系统 |
CN117521583B (zh) * | 2023-11-17 | 2024-07-19 | 中科苏州智能计算技术研究院 | 一种时钟驱动的软硬件联合仿真方法、系统及存储介质 |
CN117852486B (zh) * | 2024-03-04 | 2024-06-21 | 上海楷领科技有限公司 | 一种芯片二维模型线上交互方法、装置和存储介质 |
CN118211547A (zh) * | 2024-05-20 | 2024-06-18 | 山东云海国创云计算装备产业创新中心有限公司 | 一种芯片建模仿真方法、产品、设备及介质 |
-
2001
- 2001-02-27 KR KR10-2001-0009918A patent/KR100434240B1/ko not_active IP Right Cessation
- 2001-09-21 EP EP01250334A patent/EP1235152A2/en not_active Withdrawn
- 2001-09-26 CN CNB011409185A patent/CN1229721C/zh not_active Expired - Fee Related
- 2001-09-27 JP JP2001295226A patent/JP2002259157A/ja active Pending
- 2001-10-04 TW TW090124545A patent/TW594513B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2002259157A (ja) | 2002-09-13 |
EP1235152A8 (en) | 2003-01-22 |
TW594513B (en) | 2004-06-21 |
CN1372193A (zh) | 2002-10-02 |
EP1235152A2 (en) | 2002-08-28 |
CN1229721C (zh) | 2005-11-30 |
KR20020069631A (ko) | 2002-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100434240B1 (ko) | 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 | |
US7340693B2 (en) | System for designing re-programmable digital hardware platforms | |
EP1489511B1 (en) | Hierarchical, Network-Based emulation System | |
US7353162B2 (en) | Scalable reconfigurable prototyping system and method | |
US6691251B2 (en) | On-chip debugging system emulator | |
US7584456B1 (en) | Method and apparatus for debugging embedded systems having read only memory | |
KR20020032936A (ko) | 반도체 칩의 논리 기능 검증용 에뮬레이터 장치 및 방법 | |
WO1996002039A1 (en) | Hardware design verification system and method | |
JP2005174349A (ja) | 電子機器の動作をエミュレートする装置 | |
US20020108094A1 (en) | System and method for designing integrated circuits | |
US6810373B1 (en) | Method and apparatus for modeling using a hardware-software co-verification environment | |
US20050144436A1 (en) | Multitasking system level platform for HW/SW co-verification | |
EP1678646A1 (en) | Method and system for test creation | |
US6584525B1 (en) | Adaptation of standard microprocessor architectures via an interface to a configurable subsystem | |
US7096440B2 (en) | Methods and systems for automatic verification of specification document to hardware design | |
US20030237062A1 (en) | Application of co-verification tools to the testing of IC designs | |
US6868545B1 (en) | Method for re-using system-on-chip verification software in an operating system | |
KR20040076708A (ko) | Arm 코어를 가지는 soc의 fpga를 사용하는 확장가능형 검증 보드 | |
CN116090372B (zh) | 一种基于fpga的芯片仿真加速方法和系统 | |
Dalay | Accelerating system performance using SOPC builder | |
US20230289500A1 (en) | Method and system for building hardware images from heterogeneous designs for eletronic systems | |
Pasternak et al. | In-circuit-emulation in ASIC architectural core designs | |
Loy et al. | System level prototyping for embedded networking applications | |
Andrews | ARM SoC Verification Matrix Improves HW/SW Co-Verification | |
Nair et al. | Evaluation of VXI controller technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
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: 20130524 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20140526 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20150724 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |