KR100824503B1 - 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법 - Google Patents

신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법 Download PDF

Info

Publication number
KR100824503B1
KR100824503B1 KR1020010034864A KR20010034864A KR100824503B1 KR 100824503 B1 KR100824503 B1 KR 100824503B1 KR 1020010034864 A KR1020010034864 A KR 1020010034864A KR 20010034864 A KR20010034864 A KR 20010034864A KR 100824503 B1 KR100824503 B1 KR 100824503B1
Authority
KR
South Korea
Prior art keywords
probe
input
circuit
design verification
emulation
Prior art date
Application number
KR1020010034864A
Other languages
English (en)
Other versions
KR20010114158A (ko
Inventor
양세양
Original Assignee
양세양
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020000034628A external-priority patent/KR20010015053A/ko
Application filed by 양세양 filed Critical 양세양
Publication of KR20010114158A publication Critical patent/KR20010114158A/ko
Application granted granted Critical
Publication of KR100824503B1 publication Critical patent/KR100824503B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31712Input or output aspects
    • G01R31/31715Testing of input or output circuits; test of circuitry between the I/C pins and the functional core, e.g. testing of input or output driver, receiver, buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

본 발명은 설계된 디지탈 회로의 설계검증 및 검사를 위한 효과적인 디버깅 방법을 가능하게 하는 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법, 그리고 이를 기반으로 하는 네트워크 상에서의 에뮬레이션/시뮬레이션 분산 설계검증 및 검사 방법에 관한 것이다.
본 발명에서는 임의의 서버용 컴퓨터에서 수행되어지는 본 발명의 입출력탐침 시스템소프트웨어로 하여금 설계검증 및 검사 대상 회로에 입출력탐침을 가능하게 하는 탐침용 부가회로를 부가하여 입출력탐침이 가능한 확장된 회로를 자동화된 방식으로 생성하게 한다. 아울러 본 발명의 입출력탐침 인터페이스 모듈은 상기 입출력탐침이 가능한 확장된 회로가 하드웨어 칩으로 구현되어져서 있는 하드웨어 보드와 상기 서버용 컴퓨터를 연결시키고 상기 하드웨어 보드의 수행을 제어하면서 특정 시점이나 특정 조건에서 상기 하드웨어 보드 상의 상기 하드웨어 칩에 대한 입출력탐침을 수행하여 상기 서버용 컴퓨터와 상기 하드웨어 칩간에 상기 설계검증 및 검사 대상 회로에 대한 수행결과 정보를 교환할 수 있도록 한다. 아울러 상기 서버용 컴퓨터와 네트워크로 연결되어진 상기 설계검증 및 검사 대상 회로를 시뮬레이션하는 임의의 시뮬레이션 서버용 컴퓨터와 같이 분산된 환경 하에서 에뮬레이션과 시뮬레이션을 1차례이상 자동적인 방법으로 번갈아 가면서 수행하게 한다.

Description

신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법{ Rapid Input/Output Probing Apparatus and Input/Output Probing Method Using the Same, and Mixed Emulation/Simulation Method Based on It }
도1 은 본 발명의 입출력탐침 장치를 개략적으로 도시하는 도면.
도2(a) 는 메모리탐침용 부가회로의 구현을 메모리탐침용 유한상태기로써 구현한 예를 개략적으로 도시하는 도면.
도2(b) 는 메모리탐침용 부가회로의 구현을 메모리탐침용 유한상태기로써 구현한 또 다른 예를 개략적으로 도시하는 도면.
도3 는 비동기 회로 예를 도시하는 도면으로서, 4-비트 비동기 이진카운터의 도면.
도4 (a) 및 (b) 는 1개의 데이터입력(D)을 갖는 단일입력 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면.
도4 (c) 및 (d) 는 1개의 데이터입력(D)과 비동기 셋/리셋(AR/AS) 입력을 갖는 단일입력 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면.
도4 (e) 및 (f) 는 2개의 데이터입력(D1, D2)을 갖는 이중입력 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면.
도4 (g) 및 (h) 는 2개의 데이터입력(D1, D2)과 유효화(EN)입력을 갖는 이중입력 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면.
도4 (i) 및 (j) 는 데이터입력 D와 비동기식 셋(AS)과 비동기식 리셋(AR)과 동기식 유효화(EN)입력을 갖는 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면.
도5 는 본 발명에 관한 IOP-탐침용 부가회로를 나타내는 병렬적 로드와 시리얼 로드가 입출력 모드에 따라 가능한 쉬프트레지스터 어레이 구조의 일 예를 개략적으로 도시하는 도면.
도6 은 도5 의 병렬적 로드와 시리얼 로드가 입출력 모드에 따라 가능한 쉬프트레지스터 어레이 구조의 또 다른 예를 개략적으로 도시하는 도면.
도7 은 도4 (a) 의 이중입력 D형 플립플롭의 구현 예를 개략적으로 도시하는 도면,
도8 (a) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 상황을 개략적으로 도시하는 도면.
도8 (b) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 상황에서 사용된 제어회로를 개략적으로 도시하고 진리표로 정의한 도면.
도8 (c) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황을 개략적으로 도시하는 도면.
도8 (d) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황에서 사용된 제어회로를 개략적으로 도시하고 진리표로 정의한 도면.
도8 (e) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황을 개략적으로 도시하는 도면.
도8 (f) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황에서 사용된 제어회로를 개략적으로 도시하고 진리표로 정의한 도면.
도8 (g) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황을 개략적으로 도시하는 도면.
도8 (h) 는 도3 의 설계검증 대상회로에 IOP-탐침용 부가회로를 부가한 또다른 상황에서 사용된 제어회로를 개략적으로 도시하고 진리표로 정의한 도면.
도9 (a) 는 설계검증 대상회로의 임의의 플립플롭이 비동기적 셋과 비동기적 리셋을 가지고 있는 상황을 나타내는 개략적인 도면.
도9 (b) 는 도9 (a)의 플립플롭이 확장된 설계검증 대상회로에서 변환된 상황을 나타내는 개략적인 도면.
도9 (c) 는 도9 (b)에서 사용된 제어회로의 진리표를 정의한 도면.
도9 (d) 는 설계검증 대상회로의 임의의 플립플롭이 비동기적 셋과 비동기적 리셋을 가지고 있는 상황을 나타내는 개략적인 도면.
도9 (e) 는 도9 (d) 의 플립플롭이 확장된 설계검증 대상회로에서 변환된 또다른 상황을 나타내는 개략적인 도면.
도9 (f) 는 도9 (e)에서 사용된 제어 회로의 진리표를 정의한 도면.
도10 은 플립플롭과 멀티플렉서로 래치와 함수적으로 등가인 회로를 구성하는 것을 나타내는 도면.
도11 은 도1 을 이용한 입출력탐침의 일 실시 예를 설명하는 흐름도.
도12 는 에뮬레이션과 시뮬레이션 복합 검증 환경을 개략적으로 도시하는 도면.
도13 은 에뮬레이션과 시뮬레이션 복합 검증 환경을 근·원거리 네트워크를 이용하여 구성한 것을 개략적으로 도시하는 도면.
도14 는 에뮬레이션과 시뮬레이션 복합 검증 환경을 인터네트워크를 이용하여 구성한 것을 개략적으로 도시하는 도면.
도15 은 도12 또는 도13 또는 도14 를 이용한 에뮬레이션과 시뮬레이션의 혼합 검증의 일 실시 예에 따른 설계검증 방법을 설명하는 흐름도.
도16 은 도12 또는 도13 또는 도14 를 이용한 에뮬레이션과 시뮬레이션의 혼합 검증의 또다른 일 실시 예에 따른 설계검증 방법을 설명하는 흐름도.
도17 은 조합적 신호선에 대한 입력탐침을 수행하기 위한 입력탐침 부가회로를 부가한 예를 도시하는 도면.
도18 은 RFPD의 온칩 메모리를 이용한 RFPD 입력신호들에 대한 RFPD 내부에서의 실시간 탐침 상황을 나타내는 개략적인 도면.
<도면의 주요부분에 대한 부호의 설명>
12 : RFPD 20 : 서버용 컴퓨터
26 : 입출력탐침 인터페이스 모듈 27 : 인터페이스 모듈
28 : 인터페이스 케이블 30 : 클라이언트 컴퓨터
32 : 입출력탐침 시스템소프트웨어 34 : 임의의 시뮬레이터
35 : 시뮬레이션 서버 컴퓨터 36 : 근·원거리 네트워크
37 : 인터네트워크 38 : 게이트웨이
44 : 임의의 프로토타이핑 보드 74 : 멀티플렉서
73 : 비동기 셋/리셋과 동기식 인에이블이 있는 단일입력 플립플롭
75 : 이중입력 D형 플립플롭 76 : 단일입력 D형 플립플롭
77 : 비동기 셋과 비동기 리셋이 있는 이중입력 플립플롭
78 : 비동기 셋과 비동기 리셋이 있는 단일입력 플립플롭
79 : 트라이스테이트 버퍼(Tri-state buffer)
80 : 래치
81 : 메모리에 대한 읽기/쓰기 제어 신호
82 : 어드레스 신호
83 : 메모리입력단 멀티플렉서1 84 : 선택입력 신호
85 : 메모리 클럭신호 86 : 메모리 출력단
87 : 메모리 출력단의 플립플롭들
88 : 데이터입력단의 쉬프트레지스터
89 : 메모리입력단 멀티플렉서2 90 : 메모리탐침용 유한상태기
100 : 탐침데이터저장 메모리 출력
102 : 탐침대상 메모리 104 : 탐침데이터저장 메모리
812 : RFPD 온-칩 메모리
880 : 설계검증 대상회로 또는 대상HDL코드
882 : RFPD
884 : IOP-탐침용 부가회로의 나머지 부분
886 : IOP-탐침용 부가회로의 입력저장용 RFPD 온-칩 메모리 제어회로
887 : IOP-탐침용 부가회로의 상태정보저장용 쉬프트레지스터
본 발명은 설계된 디지탈 회로를 설계검증 및 검사하는 기술에 관한 것으로, 설계된 디지탈 회로를 프로그램 가능한 칩 혹은 주문형반도체 칩으로 실제 하드웨어적으로 구현하고 에뮬레이션 기반으로 설계검증 및 검사하는 과정을 신속하게 가능하도록 하는 입출력탐침 장치 및 이를 이용한 입출력탐침 방법에 관한 것이다. 뿐만 아니라, 설계된 디지탈 회로를 프로그램 가능한 칩 혹은 주문형반도체 칩으로 실제 하드웨어적으로 구현하고 에뮬레이션 기반으로 검증하는 과정 도중에서 자동적으로 전환하여 연이어지는 검증을 컴퓨터 상에서 실행되는 시뮬레이터로써 시뮬레이션 기반으로 검증하거나, 또는 거꾸로 컴퓨터 상에서 실행되는 시뮬레이터로써 시뮬레이션 기반으로 검증하는 도중에 자동적으로 전환하여 연이어지는 검증을 에뮬레이션 기반으로 검증하며, 이와 같은 에뮬레이션과 시뮬레이션을 1번 이상 번갈아 반복하여 검증할 수 있는 에뮬레이션과 시뮬레이션 혼합 검증 방법과 이를 위한 혼합 검증 장치에 관한 것이다.
최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지탈 회로 설계의 규모가 커짐은 물론 그 구성이 복잡해지고 있는 추세이다. 이와 더불어, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 한다. 따라서 빠른 시간 내에 설계된 회로를 효율적으로 검증 및 검사하기 위한 효과적인 방법의 필요성이 더욱 커지고 있다.
지금까지는 설계된 디지탈 회로를 설계검증하기 위하여는 소프트웨어적 접근법인 시뮬레이터가 주로 사용되었다. 시뮬레이터를 이용하는 시뮬레이션 기반의 검증 방법은 회로에 대한 다양한 지연시간(delay) 모델을 이용할 수 있음으로 함수적 검증(functional verification) 뿐만 아니라 타이밍 검증(timing verification)까지도 가능하고 디버깅 과정에서 회로 내에 존재하는 모든 신호선들에 대하여 완벽한 가시도(visibility)를 제공하는 등의 장점이 있으나, 시뮬레이터는 설계검증 회로를 소프트웨어적으로 모델링한 순차적인 인스트럭션 시퀀스로 구성된 소프트웨어 코드를 컴퓨터 상에서 순차적으로 수행하여야 함으로 검증 시간이 매우 오래 걸리게 되고 다른 주변 하드웨어 환경과 통합되어 시스템 전체를 검증(이를 ICE, In-Circuit Emulation이라 함)할 수 없는 한계가 있다. 더욱이 시뮬레이션을 통한 검증이 시뮬레이션 소프트웨어와 단일 프로세서에 의존하는 컴퓨터의 성능이 급속토록 증가하는 수천만 게이트급 디지탈 회로의 복잡도를 따라가지 못함으로 인하여 최근에는 보통의 설계검증을 위하여 시뮬레이션만으로는 상상을 초월하는 긴 검증시간을 필요로 하고 있다. 이에 비하여 설계된 회로를 실제 칩으로 구현하여 이를 이용한 하드웨어적인 에뮬레이션(여기서 에뮬레이션이라함은 시뮬레이션가속 방식의 에뮬레이션과 인서킷 방식의 에뮬레이션 모두를 포함하며, 이와 같은 에뮬레이션을 수행하는 상용 시스템을 로직에뮬레이터 또는 시스템에뮬레이터 또는 프로토타이밍 시스템이라고 통칭하는데, 현재 상용화된 제품으로는 Cadence사의 Palladium 시리즈, Mentor사의 Vstation 시리즈, EVE사의 ZeBu 시리즈, Tharas사의 Hammer 시리즈, Fortelink사의 Gemini 시리즈, ProDesign사의 CHIPit 시리즈, Aldec사의 HES 시리즈, HARDI사의 HAPS 시리즈 등이 있음) 기반의 설계 검증 방법은 설계된 디지탈 회로가 구현된 칩 상에서 실제 병렬적으로 동작되고 있는 상황에서 디지털 회로를 검증하는 것이기 때문에 시뮬레이션에 비하여 최대 일백만배 고속의 설계 검증이 가능하고 다른 주변 하드웨어 환경과도 ICE 환경을 구성하여 통합적으로 검증할 수 있다. 그러나 에뮬레이션은 시뮬레이션에 비하여 디버깅을 수행하는 것이 매우 불편한 것이 단점인데, 이의 주된 원인은 프로그램 가능한 칩 또는 주문형반도체 칩들로 구현된 회로에 존재하는 수많은 신호선들의 논리값을 알 수 있는 가시도(visibility)가 시뮬레이션에 비하여 턱없이 떨어지기 때문이다.
에뮬레이션 기반의 설계 검증을 위한 핵심 소자로는 프로그램 가능한 칩들인 재사용 가능 프로그래밍 소자(Reusable Field Programmable Devices; 이하 "RFPD"라 함)가 사용되고 있는데, 이러한 RFPD는 현장프로그래밍가능게이트어레이(FPGA: Field Programmable Gate Array)와 복합프로그래밍가능논리소자(CPLD: Complex Programmable Logic Device)들이 있으며, 최근 들어 반도체 기술의 발달로 RFPD의 집적도가 매우 높아져 상당히 복잡한 디지탈 회로들로 하나의 RFPD나 매우 적은 수의 RFPD만을 사용하여 프로토타이핑하여 보는 것이 가능해졌다. 이와 같은 RFPD를 이용한 회로 구현은 주문형반도체 칩을 이용한 회로 구현과 달리, 현장에서 적은 비용으로 할 수 있다는 것과 발견된 버그를 수정하는데에도 시간과 비용을 크게 절감할 수 있다는 장점이 있다. 본 특허의 내용은 설계검증 회로의 구현으로 RFPD칩 뿐만 아니라 표준셀(standard cell) 혹은 게이트어레이(gate array) 등의 기술을 이용한 주문형반도체 칩을 사용하는 경우에도 똑 같이 적용되어질 수 있는 방법이나 설명의 편의상 지금부터는 설계구현은 RFPD을 사용하는 것으로 가정하고 설명하기로 한다.
고집적반도체 기술로 인하여 이상과 같은 프로토타이핑을 경제적으로 할 수 있게는 되었으나, 프로토타이핑을 하였을 때에 설계 검증의 대상이 되는 디지탈 회로 상에 존재하는 수많은 신호선들의 대부분이 RFPD 내부에 존재하게 됨으로서 신호선들의 탐침을 더욱 어렵게 만들어버려 디버깅을 위한 가시도가 더욱 떨어지는 매우 심각한 문제점을 초래하게 되었다. 이는 집적도가 더욱 커진 RFPD가 사용되는 미래에도 더욱 큰 문제점으로 대두하게 될 것이다. 이와 같은 문제점을 해소하기 위해서는 RFPD에 구현된 설계검증 대상이 되는 회로에 대하여 효율적이며 신속한 디버깅이 가능하도록 회로 상에 존재하는 신호선들이 칩 내부에 존재하는 경우에라도 효율적이며 신속하게 탐침할 수 있는 방법이 필요하다.
뿐만 아니라 디지털 회로의 설계검증을 위하여서는 설계검증 과정에서 에뮬레이션 방법과 시뮬레이션 방법을 적절히 번갈아 가면서 사용하는 것이 검증의 효율성을 극대화하는 방법이다. 즉, 설계검증을 에뮬레이션 기반으로 하여서 매우 세밀한 검증을 요하는 특정 시점이나 특정 상황까지는 고속의 함수적 검증을 수행하고 이 시점에서 검증방법을 에뮬레이션 기반에서 시뮬레이션 기반으로 자동적으로 전환시켜 검증 대상 회로에 대한 100% 완벽한 가시도를 갖고 함수적 검증이나 타이밍 검증을 수행하고, 필요시 이와 같은 에뮬레이션과 시뮬레이션 간의 전환을 1번 이상 반복하여 수행함으로서 검증하는 것이 검증의 효율성을 극대화하는 방법이다.
그러나 현재까지 설계자가 설계한 디지털 회로를 설계자가 프로그램 가능한 칩인 RFPD나 일반 주문형반도체 칩을 장착하여 임의적으로 구현한 하드웨어 보드를 에뮬레이션 기반의 환경에서 설계검증하고자 하는 경우에, 특정 하드웨어 보드에만 국한되지 않고 어떠한 임의의 하드웨어 보드에 대해서도 디버깅을 신속하며 효율적으로 수행할 수 있는 개방적 구조(open architecture)의 입출력탐침 장치와 이를 이용한 입출력탐침 방법이 존재하지 않고 있다. 또한 디지털 회로 설계에서는 여러 가지 이유(예로 전력소비를 최소화시키기 위하여)로 인하여 설계자들은 회로를 완전 동기식으로 설계하기보다는 게이트되어진 클럭(gated clock)이나 국지적으로 생성된(locally generated) 클럭 등을 사용하여 설계하는 것이 매우 일반적인데 이와 같은 비동기적 요소들은 회로에 대한 입출력탐침, 특히 입력탐침을 극히 어렵게 하는 요인이 되고 있으며 이와 같은 설계 방식에 전혀 제약이 없는 상황에서의 입출력탐침 방법도 존재하지 않고 있다.
아울러 에뮬레이션 기반의 검증 방법이 가지는 단점들을 시뮬레이션 기반의 검증 방법을 혼용함으로써 해소시키는 상기에서 설명된 에뮬레이션과 시뮬레이션을 같이 사용하여 혼합적으로 검증을 할 수 있는 방법 및 이를 위한 혼합 검증 장치는 존재하지 않았다. 특히, 시뮬레이션을 수행하고 이어서 에뮬레이션이 수행되어야 하는 경우에는 시뮬레이션에서 수행되어 얻어진 설계검증 대상회로의 메모리소자(플립플롭 혹은 래치)들과 메모리(RAM 혹은 ROM)들의 현재 시점에서의 논리값들을 에뮬레이션을 수행하는 RFPD에 구현된 회로에 존재하는 메모리소자들과 메모리들이 에뮬레이션 시작에 앞서서 가지도록 하는 것이 반드시 필요하다. 그러나 설계검증 대상회로에 존재하는 메모리소자들이 가지고 있는 클럭입력에 게이트되어진 클럭이나 국지적으로 생성된 클럭신호가 인가되는 비동기(asynchronous) 상황에서 RFPD에 구현된 회로에 존재하는 메모리소자들의 논리값을 시뮬레이션 결과로 얻어지는 특정 논리값들로 자유롭게 바꿀 수 있는 방법도 존재하지 않았다. 특히 ICE 환경에서는 일반적으로 사용자 회로와 타겟 환경에 가해지는 1 이상의 사용자 클럭을 의도대로 제어하는 것(예로 1 이상의 사용자 클럭을 일시적으로 멈추거나 진행시키는 것)이 불가능한데, 이와 같은 상황에서의 입출력 탐침방법은 더욱 어려운데, 이에 대한 방법도 존재하지 않고 있다.
또한 최근에 인터넷 기술의 발전으로 인하여 디지털 회로의 설계를 수행하는 설계자, 설계용 소프트웨어, 시뮬레이터, 에뮬레이션을 위한 하드웨어 보드, 서버용 컴퓨터 등이 지리적으로 한 장소에 모여있기 보다는 분산되어져 네트워크로 연결되어 있는 것이 일반적이다. 이와 같이 시뮬레이터와 하드웨어 보드가 지리적으로 멀리 떨어져 존재하는 분산 환경하에서 근·원거리 네트워크 또는 인터네트워크를 통하여 하나의 설계검증 대상회로에 대하여 에뮬레이션과 시뮬레이션을 빠른 속도로 번갈아 가면서 시분할적 방법으로 수행하는 방법도 존재하지 않았다. 시분할적 방법은 다수의 사용자들에게 임의의 하드웨어 기반의 검증장치를 네트워크상에서 효과적으로 공유할 수 있는 방법을 제공할 수 있는데, 임의의 프로토타이핑 보드나 임의의 PCB에 대하여 이와 같은 기능을 제공하는 방법도 존재하지 않았다.
또한, 이와 같은 기술을 적용할 수 있는 분야는 회로의 설계검증 단계에 뿐만 아니라 회로를 제조한 후 검사(test)하는 단계에서도 적용할 수 있다. 이와 같은 회로 검사를 위하여 널리 사용되어지고 있는 방법에 스캔(scan) 기법이 있다. 그러나 스캔은 상기에서 언급된 게이트되어진 클럭이나 국지적으로 생성된 클럭을 사용하는 메모리소자들에 대해서는 제어가능한(controllable) 어떠한 방법도 제시하지 못하는 치명적인 문제점을 가지고 있다. 본 특허에서 제시한 입출력탐침 방법은 기본적으로 회로에 존재하는 어떠한 메모리소자에 대해서도 완벽한 제어능력(controllability)과 관측능력(observability)를 제공함으로서 회로 검사에 있어서도 스캔 방법보다 우수한 방법이라 할 수 있다.
Texas Instrument(TI)사가 출원한 특허(US Pat. 5937179)에서 제안된 에뮬레이션과 시뮬레이션을 번갈아 수행할 수 있는 방법은 회로 검사에서 보편화된 기술인 상기 언급된 스캔 체인을 이용한 것으로 상기에서 언급된 게이트되어진 클럭이나 국지적으로 생성된 클럭을 사용하는 메모리소자들을 하나라도 가지고 있는 회로에 대해서는 이들 메모리소자들에 대한 입력탐침 제어가 불가능(uncontrollable)함으로 이와 같은 메모리소자들에 대한 완벽한 입력탐침 제어가 가능한 본 특허에서 제안되는 방법과 달리 비동기적 요소가 있는 회로들에 대해서는 에뮬레이션/시뮬레이션 혼합 검증을 적용할 수 없고 회로 내에 존재하는 모든 메모리소자들에 같은 클럭이 인가되는 완전 동기식 회로에 대해서만 적용이 가능하며, 개방적 구조로 되어 있지 못함으로 임의의 하드웨어 보드에 적용하기도 불가능하다는 매우 심각한 문제점을 가지고 있다. 뿐만 아니라, 상기 TI 특허에서 제안된 방법은 사용자 회로에 RAM이나 ROM 등이 존재하고 이와 같은 메모리들이 RFPD내부에 존재하는 칩상 메모리(on-chip memory)(구체적인 예를 들면, Xilinx FPGA의 Distributed RAM 또는 BlockRAM, Altera FPGA의 Embedded Array Block 등)를 이용하여 구현된 경우에는 출력탐침 과정에서 사용자 클럭을 일시 정지시키거나 최소 수십배 이상 느리게 하지 않고는 이와 같은 칩상 메모리(On-chip Memory)의 내용을 실시간으로 탐침할 수 없음으로 ICE 환경에는 적용할 수 없는 치명적인 문제점도 가지고 있다.
따라서, 본 발명의 목적은 디지탈 회로의 효과적인 설계검증 및 검사를 위하여 입출력탐침 시스템소프트웨어로 하여금 회로에 입출력 탐침용 부가회로를 부가하여 입출력탐침이 가능한 확장된 회로를 자동적으로 생성하게 하여 구현되게 하고, 입출력탐침 인터페이스 모듈을 이용하여 어떠한 임의의 프로토타이핑 보드나 임의의 PCB에 대해서도 입출력탐침이 수행되도록 함으로서 신속하여 효과적인 디버깅이 가능하게 하도록 하며, 이와 같은 입출력탐침 장치 및 입출력탐침 방법을 이용하여 회로가 구현된 반도체 칩들이 장착되어져 제작된 임의의 프로토타이핑 보드나 임의의 PCB(Printed Circuit Board)를 이용한 에뮬레이션과 임의의 시뮬레이터를 이용한 시뮬레이션을 혼합하여 수행 할 수 있는 방법을 RFPD 내부의 온칩 메모리를 사용하는 경우에서 실시간 동작이 요구되는 ICE 환경인 극도의 어려운 상황에서도 완벽하게 제공함에 있다.
상기 목적을 달성하기 위하여, 본 발명에 따른 입출력탐침 장치는 입출력탐침 시스템소프트웨어와 입출력탐침 인터페이스 모듈(26)을 제공한다. 입출력탐침 인터페이스 모듈(26)은 인터페이스 모듈(interface module)(27)과 인터페이스 케이블(interface cable)(28)로 구성될 수 있다. 입출력탐침 시스템소프트웨어는 서버용 컴퓨터에서 실행되며 서버용 컴퓨터는 임의의 시뮬레이터(예로 HDL 시뮬레이터나 로직 시뮬레이터, 또는 사이클기반 시뮬레이터)를 가지고 있거나 임의의 시뮬레이터를 가지고 있는 다른 컴퓨터와 원·근거리 네트워크 혹은 인터네트워크를 통하여 연결되어져 있을 수 있다. 입출력탐침 인터페이스 모듈은 입출력탐침 시스템소프트웨어가 있는 서버용 컴퓨터와 설계된 디지털 회로가 구현되는 1이상의 반도체 칩(예로 FPGA, 또는 CPLD)들을 장착하고 있는 임의의 하드웨어 보드(이를 앞으로는 임의의 프로토타이핑 보드나 임의의 PCB라 칭함)를 연결하게 되고, 입출력탐침 인터페이스 모듈의 또 다른 중요 기능으로는 상기 입출력탐침을 위해서 필요한 1이상의 시스템 클럭들과 탐침 클럭, 그리고 동작모드 제어신호, 탐침모드 제어신호, 탐침용 메모리읽기쓰기 신호 등을 입출력탐침 시스템소프트웨어의 제어 하에서 생성하여 필요시에 임의의 프로토타이핑 보드나 임의의 PCB에 공급함으로서 임의의 프로토타이핑 보드나 임의의 PCB 동작의 수행과 정지를 제어한다. 이를 위하여 입출력탐침 인터페이스 모듈은 자체적으로 FPGA나 CPLD, 혹은 마이크로프로세서나 마이크로콘트롤러, 또는 전용 ASIC(Application Specific Integrated Circuit) 칩을 내장하고 있다. 도1 은 서버용 컴퓨터에서 운영되는 입출력탐침 시스템소프트웨어와 입출력탐침 인터페이스 모듈로 구성된 본 발명에 관한 입출력탐침 장치를 개략적으로 도시한 도면이다. 구체적으로는 입출력탐침 인터페이스 모듈(26)은 서버용 컴퓨터의 PCI(Peripheral Computer Interface) 버스에 연결되어지도록 PCI 슬롯에 장착되어지거나 혹은 이와 같은 기능의 다른 이차 시스템버스(secondary system bus)(예로 SUN 워크스테이션의 S-bus등)에 연결되는 것이 일반적이나, 고속이 요구되는 경우에는 서버용 컴퓨터의 일차 시스템버스(primary system bus)인 메인버스(main bus)에 연결되어질 수도 있고, 저속으로도 가능하다면 USB(Universal Serial Bus)나 병렬포트 또는 시리얼포드 등으로 연결되어질 수 있으며 이를 통하여 임의의 서버용 컴퓨터와 임의의 프로토타이핑 보드나 임의의 PCB가 연결되어 진다.
입출력탐침 시스템소프트웨어는 입출력탐침 인터페이스 모듈을 통하여 설계 검증 과정 도중에 사용자가 원하는 임의의 시점이나 상황에서 임의의 프로토타이핑 보드나 임의의 PCB에 구현된 설계검증 대상회로의 완전 상태정보(complete state information)나 혹은 부분 상태정보(partial state information)를 상기 임의의 시점이나 상황에서 프로토타이핑 보드로부터 읽어내거나 반대로 특정 상태정보 값으로 쓸 수 있어야 한다. 여기서 상태정보(state information)란 디지털 회로와 메모리소자(플립플롭이나 래치)들의 값과 메모리(RAM이나 ROM)의 내용을 나타내는 용어로 완전 상태정보 란 설계검증 대상회로의 모든 메모리소자들의 값과 모든 메모리의 내용을 의미하며, 부분 상태정보란 설계검증 대상회로의 일부분의 메모리소자들의 값과(또는) 일부분의 메모리의 내용을 의미한다. 또한 메모리소자와 메모리는 다른 것으로 메모리소자는 플립플롭(flipflop)이나 래치(latch)를 의미하며, 메모리는 RAM(Random Access Memory)이나 ROM(Read Only Memory)을 의미하는 것으로 정의한다.
우선 설계검증 대상회로에 메모리가 존재하지 않는 경우로 가정하여 본 발명에서의 입출력탐침 방법을 설명하기로 하고, 메모리가 존재하는 경우에 대해서는 추후에 설명하기로 한다. 입출력탐침 시스템소프트웨어는 설계검증 대상회로를 입출력탐침 가능하게끔 자동화된 방식으로 변환시키는 입출력탐침 회로합성기를 포함하고 있는데, 이와 같은 입출력탐침 회로합성기는 IOP-탐침용 부가회로(밑에서 설명됨)를 설계검증 대상회로에 부가함으로서 완성되는 회로(이를 확장된 설계검증 대상회로라 칭함)를 자동화된 방식으로 생성하게 된다. 확장된 설계검증 대상회로에 포함되는 IOP-탐침용 부가회로의 역할은 출력탐침모드에서는 부가회로를 부가함으로서 형성되는 회로부분이 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터가 가지는 논리값들이 출력탐침 대상이 되는 회로내의 모든 혹은 일부분의 메모리소자의 논리값들을 가지고서 하며, 입력탐침모드에서는 부가회로를 부가함으로서 형성되는 회로부분은 쉬프트레지스터 구조로 되어 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 회로내의 모든 혹은 일부분의 메모리소자들에 대한 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 입력탐침 대상이 되는 메모리소자들의 논리값을 입력탐침값으로 되게하며, 정상모드에서는 부가회로가 부가되더라도 설계검증 대상회로의 함수적 논리 성질(functional logical behavior)이 변형되지 않지 않는 회로를 만들어 내는 것이다. 또는 설계검증 대상이 하드웨어구술언어(이 후 HDL로 칭함) 코드로 구술된 경우(이를 설계검증 대상HDL코드라 함)에는 IOP-탐침용 부가회로의 행위(behavior)를 표현하는 HDL 부가코드가 설계 검증 대상 HDL 코드에 부가됨으로서 완성되는 HDL 코드가 출력탐침모드에서는 부가 HDL 코드를 부가함으로서 형성되는 HDL 부분이 쉬프트레지스터 행위를 표현하고 있어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터의 행위를 표현하는 HDL 코드에서 레지스터 HDL 코드의 신호선이 가지는 신호값들이 출력탐침 대상이 되는 메모리소자의 모든 혹은 일부분의 출력 신호값들을 가지고서 하며, 입력탐침모드에서는 부가 HDL 코드를 부가함으로서 형성되는 HDL 코드 부분은 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 HDL 코드의 메모리소자들 행위를 표현하는 HDL 코드의 시그널들에 대한 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 입력탐침 대상이 되는 시그널들의 논리값을 입력탐침값으로 되게 하며, 정상모드에서는 IOP-탐침용 부가회로가 부가되더라도 설계검증 대상HDL코드의 행위를 변형하지 않는 HDL 코드도 IOP-탐침용 부가회로라 한다.
이와 같은 IOP-탐침용 부가회로의 기능을 구현하는 구체적인 한가지 방법의 예를 회로 구현에 사용하는 칩을 RFPD로 가정하여 설명하면 다음과 같다. 이와 같은 IOP-탐침용 부가회로가 설계검증 대상회로가 구현된 1이상의 RFPD 칩 내에서 탐침대상 메모리소자의 신호선들과 이중입력 플립플롭들에 의하여 병렬적 로드(parallel-load)와 시리얼 로드(serial-load)가 모드 변환에 따라 모두 가능한 1 이상의 쉬프트레지스터 어레이 구조가 되게 하여서, 출력탐침모드에서는 상기 이중입력 플립플롭들 각각의 한 입력을 출력탐침대상 메모리소자의 출력 신호선들에 연결하여 출력탐침대상 신호선들 상의 논리값 각각을 상기 이중입력 플립플롭 각각으로 병렬적 로딩이 가능하게 한 다음에 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 출력이 해당 RFPD의 1 이상의 출력탐침선의 역할을 하는 입출력핀(I/O pin) 하나에 각각 논리적으로 연결되게 하고 쉬프트레지스터의 탐침클럭과 동기화된 쉬프팅 동작에 따라서 쉬프트레지스터의 모든 플립플롭들의 논리값들이 상기 출력탐침선의 역할을 하는 입출력핀 상에 순차적으로 나타나게 한다. 이와 같은 출력탐침에서는 탐침대상 신호선이 메모리소자의 출력선이 될 수도 있지만 조합적 게이트의 출력선일 수 있으나, 입력탐침에서는 메모리소자에 입력탐침값을 저장할 수 있도록 메모리소자의 출력선에 대해서만 입력탐침을 수행한다. 입력탐침모드에서는 시리얼 로드가 가능한 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 입력이 해당 RFPD의 1 이상의 입력탐침선의 역할을 하는 입출력핀 하나에 각각 논리적으로 연결되게 하여 탐침클럭과 동기화된 쉬프팅 동작에 의하여 상기 입력탐침선의 역할을 하는 입출력핀 상을 통하여 외부로부터 순차적으로 공급되는 입력탐침값을 쉬프트레지스터에 시리얼 방식으로 로딩 가능하게 하며 상기 시리얼 로드가 가능한 1 이상의 쉬프트레지스터 어레이를 구성하는 플립플롭들 각각의 출력이 입력탐침 대상이 되는 해당 메모리소자의 클럭입력에 시스템 클럭(시스템 클럭이란 설계검증 대상회로에 전역적으로 사용되는 클럭을 말함)이 직접 연결되어 있는 경우에는 해당 입력탐침 대상 신호선들 각각을 구동(drive)하는 각각의 해당 메모리소자를 대체한 각각의 이중입력 플립플롭의 한 데이터 입력에 연결되게 하거나, 또는 탐침대상이 되는 메모리소자의 클럭입력에 시스템 클럭이 직접 연결되어 있지 않는 경우(게이트되어진 클럭이나 국지적으로 생성된 클럭을 사용하는 경우 등)에는 입력탐침 대상 신호선들 각각을 구동하는 각각의 메모리소자를 비동기 셋(asynchronous set)과 비동기 리셋(asynchronous reset)이 있는 이중입력 플립플롭으로 대체하고 이 플립플롭의 비동기 셋 입력과 비동기 리셋 입력을 상기 쉬프트레지스터 어레이의 플립플롭들중에서 탐침대상이 되는 메모리소자를 위한 입력탐침값을 가지는 플립플롭의 출력선과 동작모드제어선과 메모리소자 탐침용 유한상태기(Finite State Machine)의 출력선으로써 제어되게 함으로서 입력탐침 대상이 되는 메모리소자가 특정시점에 비동기적 리셋 또는 셋이 가능하게 하고 아울러 상기 메모리소자를 위한 입력탐침값을 가지는 플립플롭의 출력선을 입력탐침 대상이 되는 사용자 회로의 메모리소자를 대체한 상기 이중입력 플립플롭의 한 데이터 입력에 연결하여 상기 비동기적 셋 또는 리셋에 이은 동기적 셋 또는 리셋을 통하여 상기 입력탐침 대상이 되는 메모리소자의 출력을 상기 메모리소자를 위한 입력탐침값을 가지는 플립플롭이 가지고 있는 논리값인 0 또는 1로 설정할 수 있게 함으로 구현할 수 있다. 혹은 탐침대상이 되는 메모리소자의 클럭입력에 시스템 클럭이 직접 연결되어 있지 않는 경우에 상기와 다른 방법으로서 입력탐침 대상 신호선들 각각을 구동하는 각각의 메모리소자를 비동기 셋(asynchronous set)과 비동기 리셋(asynchronous reset)과 동기식 인에이블(synchronous enable)이 있는 플립플롭으로 대체하고 이 플립플롭의 비동기 셋 입력과 비동기 리셋 입력을 쉬프트 레지스터 어레이의 플립플롭들중에서 이 탐침대상이 되는 메모리소자를 위한 입력탐침값을 가지는 플립플롭의 출력선과 동작모드제어선과 메모리소자 탐침용 유한상태기(Finite State Machine)의 출력선으로써 제어되게 함으로서 입력탐침 대상이 되는 메모리소자가 특정시점에 비동기적 리셋 또는 셋이 가능하게 하고 아울러 탐침용 유한상태기의 또 다른 출력선을 상기 입력탐침 대상이 되는 사용자 회로의 메모리소자를 대체한 플립플롭의 동기식 인에이블에 연결하여 상기 입력탐침 대상이 되는 메모리소자의 출력을 상기 메모리소자를 위한 입력탐침값을 가지는 플립플롭이 가지고 있는 논리값인 0 또는 1로 설정할 수 있게 함으로 구현할 수 있다.
이를 위해서는 상기 언급된 메모리소자 탐침용 유한상태기(Finite State Machine)(90)가 추가적으로 필요한데, 여기서 사용되는 유한상태기의 역할은 입력탐침 대상이 되는 메모리소자의 비동기 셋과 비동기 리셋이 필요한 시점에만 쉬프트 레지스터 어레이로부터 공급되는 신호값에 의하여 입력탐침대상 메모리소자에 비동기적 셋 또는 비동기적 리셋이 일어나도록 셋/리셋 활성화(set/reset enable) 신호를 생성하여 공급하는 것과 아울러 상기 비동기적 셋 또는 비동기적 리셋에 이은 동기적 셋 또는 동기적 리셋을 상기 메모리소자를 위한 입력탐침값을 가지는 플립플롭의 논리값으로 일어나게 하는 이중입력 플립플롭의 입력데이터 선택신호를 상기 이중입력 플립플롭에 공급하는 것이거나, 혹은 입력탐침 대상이 되는 메모리소자의 비동기 셋과 비동기 리셋이 필요한 시점에만 쉬프트레지스터 어레이로부터 공급되는 신호값에 의하여 입력탐침대상 메모리소자에 비동기적 셋 또는 비동기적 리셋이 일어나도록 셋/리셋 활성화(set/reset enable) 신호를 생성하여 공급하는 것과 아울러 동기식 인에이블 신호도 생성하여 공급하는 것과 아울러 메모리에 대한 출력탐침을 수행하는데 있어서 필요한 제어신호 및 데이터 신호들을 공급하는 것이다. 이를 위해서는 쉬프트레지스터 어레이의 플립플롭들에서 이 탐침대상이 되는 메모리소자를 위한 입력탐침값을 가지는 플립플롭의 출력선, 메모리소자 탐침용 유한상태기로부터의 셋/리셋 활성화 신호선, 그리고 동작모드제어(
Figure 112007089584016-pat00044
) 신호선들을 이용하여 입력탐침 대상이 되는 메모리소자의 비동기 셋과 비동기 리셋을 의도대로 제어할 수 있어야 하는데, 이는 간단한 조합적 함수를 이용하여 정의하고 구현할 수 있다. 이 메모리소자 탐침용 유한상태기의 함수적 행위(functional behavior) 및 역할은 추후 예제를 가지고서 구체적으로 설명하기로 한다. 또한 설계검증 대상회로에서 사용한 메모리소자들의 일부 혹은 전부가 비동기적 셋과 비동기적 리셋을 이미 가지고 있으며 이들 메모리소자들의 클럭 입력에 시스템 클럭이 직접 연결되어 있지 않는 경우에는 입력탐침 대상이 되는 해당 메모리소자들을 비동기 셋/리셋이 있는 이중입력 플립플롭이나 비동기 셋/리셋과 동기식 인에이블이 있는 단일입력 플립플롭으로 바꾸어서 비동기 셋과 비동기 리셋 입력들을 구동(drive)하는 제어회로부를 포함하여 추가되는 IOP-탐침용 부가회로로써 상기 이미 언급한대로 회로 변환을 시도하면서 원래의 설계검증 대상회로의 함수적 논리성질을 정상모드에서 변형하지 않도록만 될 수 있도록 고려하면 되는데 이는 어려운 일이 아니며, 이 또한 추후 예제를 가지고서 구체적으로 설명하기로 한다.
이와 같은 IOP-탐침용 부가회로의 기능을 구현하는 또 다른 방법의 예로는 설계검증 대상회로를 입출력탐침 시스템소프트웨어가 조사하여 게이트되어진 클럭입력을 사용하는 메모리소자나 국지적으로 생성된 신호를 클럭입력으로 사용하는 메모리소자가 있는 경우에는 원래의 설계검증 대상회로와 함수적으로는 등가(functionally equivalent)이면서 시스템 클럭에 완전 동기화된 회로(fully synchronous circuit)를 입출력탐침 시스템소프트웨어가 자동화된 방식으로 합성하여 원 설계검증 대상회로 대신에 상기 시스템 클럭에 완전 동기화된 회로를 새로운 설계검증 대상회로로 하여서, IOP-탐침용 부가회로가 설계검증 대상회로가 구현된 1 이상의 RFPD 내에서 탐침대상 메모리소자의 신호선들과 이중입력 플립플롭들에 의하여 병렬적 로드와 시리얼 로드가 모드 변환에 따라 모두 가능한 1 이상의 쉬프트 레지스터 어레이 구조가 되게 하여서, 출력탐침모드에서는 상기 이중입력 플립플롭들 각각의 한 입력을 출력탐침대상 메모리소자의 출력 신호선들에 연결하여 출력탐침대상 신호선들 상의 논리값 각각을 상기 이중입력 플립플롭 각각으로 병렬적 로딩이 가능하게 한 다음에 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 출력이 해당 RFPD의 1 이상의 출력탐침선의 역할을 하는 입출력핀 하나에 각각 논리적으로 연결되게 하고 쉬프트레지스터의 탐침클럭과 동기화 된 쉬프팅 동작에 따라서 쉬프트레지스터의 모든 플립플롭들의 논리값들이 상기 출력탐침선의 역할을 하는 입출력핀 상에 순차적으로 나타나게 하며, 입력탐침모드에서는 상기 병렬적 로드와 시리얼 로드가 모드 변환에 따라 모두 가능한 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 입력이 해당 RFPD의 1 이상의 입력탐침선의 역할을 하는 입출력핀 하나에 각각 논리적으로 연결되게 하여 탐침클럭과 동기화된 쉬프팅 동작에 의하여 상기 입력탐침선의 역할을 하는 입출력핀 상을 통하여 외부로부터 순차적으로 공급되는 입력탐침값을 쉬프트 레지스터에 시리얼 방식으로 로딩 가능하게 하며 상기 병렬적 로드가 가능한 1 이상의 쉬프트레지스터 어레이를 구성하는 플립플롭들 각각의 출력이 입력탐침 대상이 되는 모든 메모리소자의 클럭입력에 시스템 클럭이 직접 연결되어 있음으로 해당 입력탐침 대상 신호선들 각각을 구동하는 각각의 해당 메모리소자를 대체한 각각의 이중입력 플립플롭의 한 입력에 연결되게 함으로 구현할 수 있다. 단, 설계검증 대상회로에 사용된 메모리 소자가 래치인 경우는 추후 설명하기로 한다.
부가적으로 설계검증 대상회로에 RAM이나 ROM 등의 메모리가 포함되어 있으며 이와 같은 메모리들도 RFPD에 내장되어 제공되는 칩상메모리(on-chip memory)(구체적인 예를 들면, Xilinx FPGA의 Distributed RAM 또는 BlockRAM, Altera FPGA의 Embedded Array Block 등)를 이용하여 구현하는 경우에는 상기 IOP-탐침용 부가회로에는 메모리 읽기/쓰기 부가회로가 추가적으로 포함되어 진다. 메모리 읽기/쓰기 부가회로는 입출력탐침 시스템소프트웨어의 제어를 받아서 출력탐침모드에서는 RFPD 내부에 구현된 설계검증 대상회로에 존재하는 메모리의 모든 영역이나 특정 영역의 내용들을 정해진 순서에 따라 모두 읽어내어 출력탐침선을 통하여 인터페이스 모듈과 인터페이스 케이블을 거쳐서 입출력탐침 시스템소프트웨어로 자동화된 방식으로 읽혀질 수 있게 하고, 입력탐침모드에서는 입출력탐침 시스템소프트웨어가 가지고 있는 데이터를 인터페이스 케이블과 인터페이스 모듈을 거쳐서 RFPD의 입력탐침선을 통하여 RFPD 내부에 구현된 설계검증 대상회로에 존재하는 쓰기가능(writable) 메모리의 모든 영역이나 특정 영역에 정해진 순서에 따라 자동화된 방식으로 쓰기를 수행하게 된다.
이와 같은 메모리 읽기/쓰기 부가회로의 구체적인 구현 예로서는 우선 메모리에 대한 읽기/쓰기 제어(read/write control) 신호와 읽기/쓰기 대상이 되는 모든 메모리 영역에 대한 어드레스 시퀀스를 생성하고, 필요에 따라서 클럭된 메모리(clocked memeory)의 경우에는 클럭신호까지 생성하는 메모리탐침용 유한상태기(Finite State Machine)와 멀티플렉서, 그리고 플립플롭을 이용하여 구성할 수 있는데 도2(a) 는 이와 같은 구성 예를 개략적으로 도시한 것이다. 이와 같은 메모리 읽기/쓰기 부가회로의 동작 상황을 구체적으로 설명하면 다음과 같다.
출력탐침모드에서는 메모리탐침용 유한상태기(90)가 동작모드제어(
Figure 112007089584016-pat00045
) 신호선과 탐침모드제어(
Figure 112007089584016-pat00046
) 신호선과 탐침용메모리 읽기쓰기(
Figure 112007089584016-pat00047
) 신호선, 그리고 탐침 클럭을 입력으로 하여 메모리에 대한 읽기/쓰기 제어 신호(81), 특정 번지의 어드레스 신호(82)와 메모리입력단 멀티플렉서1(83)의 선택입력 신호(84), 그리고 필요시 메모리 클럭신호(85)까지를 발생하여 상기 메모리에 대한 읽기/쓰기 제어 신호(81)와 특정 번지의 어드레스 신호(82), 그리고 필요시 메모리 클럭신호(85)까지를 메모리입력단 멀티플렉서1(83)의 출력부에 나타나게 하여 특정 번지에 있는 현재내용이 메모리 출력단(86)에 나타나게 한 후에, 메모리 출력단의 플립플롭들(87)에 대한 활성화(enable) 신호를 생성하여 메모리 출력단(86) 값을 메모리출력단의 플립플롭들(87)에 저장시키고서 메모리 출력단의 플립플롭들(87)에 대한 입력선택 신호를 생성하여 메모리 출력단의 플립플롭들(87)이 탐침 클럭에 동기화된 쉬프트레지스터 구조가 되어서 쉬프팅 동작을 통하여 상기 특정 번지에 있는 현재내용이 출력탐침선에 순차적으로 나타나게 함으로서 메모리의 특정 번지에 있는 현재내용을 읽어낼 수 있는데, 메모리탐침용 유한상태기(90)는 이와 같은 메모리의 특정 번지에 대한 읽기 수행을 읽기 대상이 되는 모든 메모리 번지들에 대하여 순서적으로 자동화된 방식으로 수행한다.
입력탐침모드에서는 메모리탐침용 유한상태기(90)가 동작모드제어(
Figure 112007089584016-pat00048
) 신호선과 탐침모드제어(
Figure 112007089584016-pat00049
) 신호선과 탐침용메모리 읽기쓰기(
Figure 112007089584016-pat00050
) 신호선, 그리고 탐침 클럭을 입력으로 하여 메모리에 대한 읽기/쓰기 제어 신호(81), 특정 번지의 어드레스 신호(82)와 메모리입력단 멀티플렉서1(83)의 선택입력 신호(84)를 메모리입력단 멀티플렉서1(83)의 출력부에 나타나게 하여 메모리쓰기 대상이 되는 특정 번지를 쓰기(write)로서 억세스하고, 탐침클럭을 입력으로 하여 메모리의 데이터입력단의 쉬프트레지스터(88)가 탐침클럭에 동기화된 쉬프팅 동작에 의하여 상기 메모리쓰기 대상이 되는 특정 번지에 쓰여질 데이터 내용을 입력탐침선을 통하여 순차적으로 입력되는 논리값으로써 쉬프팅 동작이 완료되는 시점에 상기 데이터입력단의 쉬프트레지스터(88)에 저장하게 하고, 메모리의 데이터입력단의 멀티플렉서2(89)의 선택입력의 신호선에 대한 선택 신호를 발생시키고, 필요시 메모리 클럭신호(85)까지를 발생하여 상기 메모리쓰기 대상이 되는 특정 번지에 상기 데이터입력단의 쉬프트레지스터(88)에 저장되어 있는 상기 데이터 내용이 쓰여지도록 하는데, 메모리탐침용 유한상태기(90)는 이와 같은 메모리의 특정 번지에 대한 쓰기 수행을 쓰기 대상이 되는 모든 메모리 번지들에 대하여 순서적으로 자동화된 방식으로 수행한다.
메모리 읽기/쓰기를 위하여 메모리탐침용 유한상태기(90) 내부에는 읽기/쓰기 대상이 되는 메모리 번지 영역에 대한 어드레스 발생기를 내장할 수 있으며, 상기와 같은 메모리 읽기/쓰기 부가회로는 메모리가 이중포트 메모리(two-port memory)인 경우에도 유사하게 적용할 수 있다.
그러나 이상과 같은 칩상 메모리에 대한 읽기/쓰기는 사용자 회로와 타겟 환경에 인가되는 1 이상의 클럭들을 임의적으로 제어(정지하거나 진행을 자유자재로)할 수 없는 ICE 환경에서는 상기 클럭들이 최소 수십배 느려지지 않고는 적용할 수가 없다. 이중에서도 칩상 메모리에 대한 읽기 과정이 상기 클럭들을 느리게 하지 않고 수행될 수 있는 것이 매우 강력한 디버깅 기능을 제공하는 iPOD(후에 설명함) 기반의 검증에서 반드시 필요하다. 따라서 다음에는 칩상 메모리에 대한 읽기 과정이 상기 클럭들을 느리게 하지 않고 수행될 수 있는 방법을 도2(b)를 이용하여 설명하기로 한다.
이를 위해서는 사용자 회로에 존재하는 메모리를 구현하기 위하여 사용된 칩상 메모리 OM1(102)과 같은 용량을 갖고 추가적으로 별도의 태그(tag) 비트를 구현하는 칩상 메모리 OM2(104)가 필요하다. 사용자 회로에 존재하는 메모리를 구현한 칩상 메모리 OM1(102)에 대한 출력탐침을 수행하는 과정에서의 어려운 점은 사용자 회로에 존재하는 플립플롭들에 대한 출력탐침은 별도의 상기 플립플롭들의 내용을 별도의 출력탐침용 플립플롭들을 사용하여 병렬적으로 로딩을 수행하고 나면 사용자 회로의 동작 수행과 함께 별도의 출력탐칭용 플립플롭들의 내용을 순차적 쉬프팅을 통하여 읽어내는 동작을 동시에 진행할 수 있는데 반하여, 사용자 회로에 존재하는 메모리를 구현한 칩상 메모리 OM1(102)의 모든 어드레스에 있는 모든 내용을 한번에 읽어내는 것이 불가능하다는 것이다. 이에 대한 해결책은 사용자 회로에 존재하는 메모리를 구현한 칩상 메모리 OM1(102)의 내용을 메모리탐침용 유한상태기(90)의 제어 하에 순차적으로 읽어내는 출력탐침 과정을 사용자 회로의 동작과 함께 병렬적으로 수행하는 과정 도중에서 사용자 회로의 동작이 현재까지 읽어내지 못한 해당 칩상 메모리 OM1(102)의 특정번지 A에 대한 쓰기를 시도하는 경우에 해당 특정번지 A의 탐침데이터저장메모리 OM2(104)의 해당 태그출력이 0임을 메모리탐침용 유한상태기(90)가 감지하고 제어신호들을 생성하여 해당 특정번지 A에 있는 내용을 우선 읽어내어 같은 번지의 상기 칩상 메모리 OM2(104)로 먼저 저장한 후에 해당 태그를 1로 바꾸고 나서, 상기 칩상 메모리 OM1(102)의 특정번지 A에 대한 사용자 회로에 의한 쓰기를 진행시키는 것이다. 이 이외의 경우들인, 첫째로 사용자 회로에 존재하는 메모리를 구현한 칩상 메모리 OM1(102)의 내용을 순차적으로 읽어내는 출력탐침 과정을 사용자 회로의 동작과 함께 병렬적으로 수행하는 과정에서 사용자 회로의 동작이 앞서서 이미 읽어내어 OM2(104)의 해당 번지에 저장된 칩상 메모리 OM1(102)의 특정번지에 대한 쓰기를 반복하여 시도하는 경우나(OM2로부터의 태그출력을 보고 태그출력이 1이면 특정 시점에서 메모리탐침을 시작한 이후의 최초의 쓰기가 아님을 알 수 있음), 둘째로 해당 칩상 메모리 OM1(102)의 특정번지에 대한 읽기를 시도하는 경우에는 사용자 회로에서 발생되는 정상 어드레스와는 별도로 OM1(102)에 대하여는 메모리탐침용 유한상태기(90)에 내장되어있는 어드레스 발생기에서 미리 정해진 어드레스 순서로 생성되는 어드레스를 가지고 읽기를 수행하여 읽어진 내용을 OM2(104)로 저장하고 해당 태그를 1로 하고 나서, 사용자 회로가 의도하는 탐침대상 메모리 OM1(102)에 대한 쓰기 혹은 읽기 메모리 동작을 수행한다. 이를 위해서 사용자 클럭보다 두배 빠른 시스템 클럭을 사용하여 특정 시점에서 메모리탐침이 일어나게 되면 시스템 클럭의 첫째 주기에서는 OM1(102)의 특정 번지 데이터를 OM2(104)의 같은 번지에 저장시키고 동시에 해당 태그를 1로 설정하며 시스템 클럭의 둘째 주기에서는 OM1(102)에 대한 사용자 회로의 메모리 오퍼레이션을 수행한다. 이를 위하여 OM2(104)의 모든 태그를 맨 처음에 모든 어드레스에 대하여 0으로 초기화시키고, 특정 시점에서의 메모리 출력탐침에서 특정 번지의 내용이 OM1(102)으로부터 읽혀져서 OM2(104)로 최초로 저장되면 해당 번지의 태그를 1로 설정한다. 이와 같은 태그를 1로 설정하는 횟수가 탐침대상 메모리의 모든 번지수 만큼 수행되고나면 탐침대상 메모리 OM1(102)의 모든 내용이 탐침데이터 저장 메모리 OM2(104)에 모두 복사가 사용자 회로의 수행을 멈추지 않고서도 된 것이다. 이와 같은 복사가 일어난 후에 탐침데이터 저장 메모리 OM2(104)의 내용을 읽어내서 메모리에 대한 출력탐침을 완료하고(결과적으로, 해당 온칩 메모리 OM1(102)에 대한 출력탐침이 완료된 후에는) 미래에 있을 추가적인 출력탐침을 위하여 태그를 0으로 초기화한다. 이와 같은 과정들도 사용자 회로의 수행을 멈추지 않고 병렬적으로 진행하는 것이 가능하다. 결론적으로 이와 같은 방법을 통하여 사용자 회로에 존재하는 메모리를 RFPD 내부의 온칩 메모리를 사용하여 구현한 경우에도 사용자 클럭을 느리게 하지 않고서도 실시간 출력탐침을 수행하는 것이 가능하며, 이는 ICE 환경에서 매우 요긴하게 사용된다.
또한 온칩 메모리 OM2(104)는 사용자회로와 함께 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD에 구현될 수 있는데, 이와 같이 하면 인터페이스 모듈(26)로의 탐침데이터 전송 대역폭(bandwidth)을 최소화시키는 것(사용자 회로를 멈추게하지 않고서도 최소 1 비트만으로 탐침데이터 전송 가능)이 가능하지만 상기 RFPD의 자원(resource)을 사용하게 된다. 이를 위해서는 탐침데이터 저장 메모리 OM2(104)의 출력(100)들에 도2(a)의 탐침대상메모리(101)의 데이터출력부에 부가된 것과 같은 출력탐침 플립플롭들(87)을 부가하고 메모리탐침용 유한상태기(90)로부터 해당 제어신호를 생성하여 공급하면 된다. 다른 방법으로는 온칩 메모리 OM2(104)를 인터페이스 모듈(26)에서 구현할 수가 있는데, 이와 같이 되기 위해서는 사용자회로가 구현되는 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD와 인터페이스 모듈(26) 간에 상기 사용자 회로에서 사용된 메모리의 데이터 버스 만큼의 전송 대역폭이 확보되어 있어야 한다.
다시 한번 강조하면, 상기와 같이 설계검증 대상회로에 메모리가 포함되어 있는 경우에는 입출력탐침을 수행할 수 있도록 하기 위하여 입출력탐침 시스템소프트웨어는 설계검증 대상회로에 IOP-탐침용 부가회로를 부가하여서 확장된 설계검증 대상회로를 생성하여 1이상의 RFPD에 구현하게 되는데, 상기 IOP-탐침용 부가회로는 설계검증 대상회로의 메모리소자에 대한 입출력탐침 뿐만 아니라 메모리에 대한 읽기/쓰기까지도 수행할 수 있도록 추가회로가 부가되어진 회로이다.
본 발명에서 출력탐침선과 입력탐침선은, 별개의 독립된 단방향 탐침선으로 존재할 수도 있고, 출력탐침선과 입력탐침선이 합쳐진 양방향 탐침선으로 존재할 수도 있다. 또한 본 발명에서 사용되는 탐침클럭은 설계검증 대상회로에 사용되는 시스템 클럭들과는 별도의 클럭을 사용할 수도 있고, 시스템 클럭들 중의 하나를 사용할 수도 있다.
상기 입출력탐침 시스템소프트웨어는 설계검증 대상회로에 존재하는 탐침대상 신호선들 및 메모리, 또는 설계검증 대상HDL코드에 존재하는 탐침대상 시그널들 및 메모리 블럭을 입력받는 단계를 포함하며, 임의의 프로토타이핑 보드나 임의의 PCB상에 장착된 1이상의 RFPD에 설계검증 대상회로를 구현하기 위하여 출력탐침대상 신호선들 또는 읽기대상 메모리 영역에서의 특정 시간대 혹은 특정 상황이 발생한 시점에서의 논리값들이 출력탐침선에 일정 시간 동안에만 순차적으로 나타나도록 하며, 입력탐침대상 신호선들 또는 쓰기대상 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값들을 가질 수 있도록 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 할당된 설계검증 대상회로에 IOP-탐침용 부가회로를 부가하여 확장된 설계검증 대상회로를 생성하는 단계를 더 포함한다. 또한, 출력탐침대상 신호선들과 읽기대상 메모리 영역에 대해서는 출력탐침대상 신호선들 상에서의 특정 시간대에서의 논리값들과 메모리 내용을 IOP-탐침용 부가회로를 이용하여 해당 RFPD의 출력탐침선에 나타나게 하고 출력탐침선에 나타난 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하며, 입력탐침대상 신호선들과 쓰기대상 메모리 영역에 대해서는 서버용 컴퓨터에서 얻어진 상태정보로부터 입력탐침용 데이터를 성성한 후, 이를 입출력탐침 인터페이스 모듈을 통하여 해당 RFPD의 입력탐침대상 신호선들에 탐침클럭과만 동기화하면서 인가하거나, 혹은 탐침클럭과 동기화하는 것과 더불어 탐침모드제어신호선을 통하여 탐침모드를 입력탐침모드와 출력탐침모드간으로 적절히 변화시켜가면서 인가하여 입력탐침대상 신호선들의 논리값과 쓰기대상 메모리 영역의 내용이 입력탐침선을 통하여 전송되어진 논리값들을 가지게 함으로서 RFPD에 구현된 설계검증 대상회로의 상태정보가 상기 서버용 컴퓨터에서 얻어진 상태정보와 같게끔 설정하는 단계를 포함한다.
이상과 같은 입출력탐침 장치 및 입출력탐침 방법을 이용하면 설계검증 대상회로에 IOP-탐침용 부가회로가 부가되어진 확장된 설계검증 대상회로가 구현된 1이상의 반도체 칩이 장착된 임의의 프로토타이핑 보드나 임의의 PCB와 임의의 시뮬레이터를 이용하여 에뮬레이션과 시뮬레이션을 혼합한 설계검증을 수행할 수 있다. 즉, 이와 같은 에뮬레이션과 시뮬레이션 혼합 검증은 상기 입출력탐침 시스템소프트웨어는 설계검증 대상회로에 존재하는 탐침대상 신호선들 및 메모리, 또는 설계검증 대상HDL코드에 존재하는 탐침대상 시그널들 및 메모리 블럭을 입력받는 단계를 포함하며, 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 설계검증 대상회로를 구현하기 위하여 출력탐침대상 신호선들 또는 읽기대상 메모리 영역에서의 특정 시간대 혹은 특정 상황이 발생한 시점에서의 논리값들이 출력탐침선에 일정 시간 동안에만 순차적으로 나타나도록 하며, 입력탐침대상 신호선들 또는 쓰기대상 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값들을 가질 수 있도록 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 할당된 설계검증 대상회로에 IOP-탐침용 부가회로를 부가하여 확장된 설계검증 대상회로를 생성하는 단계를 더 포함한다. 또한, 출력탐침대상 신호선들과 읽기대상 메모리 영역에 대해서는 출력탐침대상 신호선들 상에서의 특정 시간대에서의 논리값들과 메모리 내용을 IOP-탐침용 부가회로를 이용하여 해당 RFPD의 출력탐침선에 나타나게 하고 출력탐침선에 나타난 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 설계검증 대상회로의 현재 상태정보를 시뮬레이터가 시뮬레이션을 위한 초기 상태값으로 가질 수 있도록 하며, 입력탐침대상 신호선들과 쓰기대상 메모리 영역에 대해서는 서버용 컴퓨터에서 시뮬레이션을 통하여 얻어진 상태정보로부터 입력탐침용 데이터를 생성한 후, 이를 인터페이스 모듈과 인터페이스 케이블을 통하여 해당 RFPD의 입력탐침대상 신호선들에 탐침클럭과만 동기화하면서 인가하거나, 혹은 탐침클럭과 동기화하는 것과 더불어 탐침모드제어신호선을 통하여 탐침모드를 입력탐침모드와 출력탐침모드간으로 적절히 변화시켜가면서 인가하여 입력탐침대상 신호선들의 논리값과 쓰기대상 메모리 영역의 내용이 입력탐침선을 통하여 전송되어진 논리값들을 가지게 함으로서 RFPD에 구현된 설계검증 대상회로의 상태정보가 시뮬레이터에서 일정기간 동안 시뮬레이션을 통하여 생성된 상태정보와 같게끔 설정하는 단계를 포함한다.
이상과 같이 본 발명의 입출력탐침 장치 및 입출력탐침 방법을 이용하여 에뮬레이션과 시뮬레이션 간의 자동화된 방식으로 혼합 검증을 하기 위해서는 에뮬레이션과 시뮬레이션 간의 수행 전환이 자동으로 이루어져야 하는데 이와 같은 것을 수행모드 스위칭(execution mode switching)이라고 칭하며 이와 같은 수행모드 스위칭은 특정 조건이 만족되어질 때 (예를 든다면 회로내의 특정 레지스터에 특정 값이 두 번 쓰여지는 시점) 이루어질 수 있으며 이와 같은 조건을 수행모드 스위칭 조건이라 칭한다. 이와 같은 수행모드 스위칭 조건은 전체 검증 과정에서 시간적으로 전후 관계가 있는 2이상 될 수 있는데 이와 같은 경우에는 시간적으로 맨 처음에 설정된 조건에서부터 나중에 설정된 조건 순으로 나열된 상태에서 조건이 만족하는 시점에서 에뮬레이션에서 시뮬레이션으로 혹은 시뮬레이션에서 로직에뮬레이션으로의 수행모드 스위칭이 일어나게 된다. 이를 위해서는 수행모드 스위칭 조건들을 큐(queue)에 저장시켜 놓을 필요가 있는데 이를 수행모드 스위칭 조건 큐라고 칭하며 입출력탐침 시스템소프트웨어 내부에서 이를 자료구조(data structure) 형태로 유지하게 된다.
본 발명의 입출력탐침 장치 및 입출력탐침 방법에 따른 에뮬레이션과 시뮬레이션 혼합 검증 방법은, 서버용 컴퓨터로 설계검증 대상회로와 ASIC 벤더 라이브러리 명칭을 입력하는 단계와, 혼합 검증을 위하여 필요한 설계검증 대상회로 상의 탐침대상 신호선들과 필요시 추가적으로 메모리 영역을 지정하는 단계와, 출력탐침대상 신호선들과 메모리 영역의 특정 시간대에서의 논리값이 출력탐침선에 일정 시간 동안에만 나타나도록 하며 입력탐침대상 신호선들과 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값들을 가지도록 1이상의 RFPD에 구현되는 설계검증 대상회로에 IOP-탐침용 부가회로를 추가적으로 첨가하여 확장된 설계검증 대상회로를 생성하는 단계와, 이 확장된 설계검증 대상회로를 1이상의 RFPD에 구현시키고 구현된 설계검증 대상회로를 동작시키는 도중에 사용자가 설정한 임의의 시점이나 임의의 상황이 발생하는 시점에서 입출력탐침 시스템소프트웨어의 제어 하에서 상기 1이상의 RFPD에 대한 출력탐침을 수행하여 출력탐침대상 메모리소자들의 특정 시간대에서의 논리값들과 메모리 영역의 내용을 IOP-탐침용 부가회로를 이용하여 상기 1이상의 RFPD의 출력탐침선에 나타나게 하는 단계와, 이렇게 나타난 출력탐침선의 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 시뮬레이터로 시뮬레이션을 수행하기 위한 시뮬레이션 초기 상태값으로 자동 설정하는 단계와 더불어, 시뮬레이터를 통한 시뮬레이션 도중에 사용자가 설정한 임의의 시점이나 임의의 상황에서 시뮬레이션을 통하여 얻어진 설계검증 대상회로의 상태정보를 IOP-탐침용 부가회로를 이용한 입력탐침 방법을 사용하여 서버용 컴퓨터로부터 입출력탐침 인터페이스 모듈을 거쳐서 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD의 입력탐침선을 통하여서 입력탐침대상이 되는 메모리소자와 메모리 영역이 가지게 함으로서 시뮬레이션에 이은 에뮬레이션을 자동적으로 수행할 수 있게 하는 단계를 포함한듈다.
본 발명의 입출력탐침 장치 및 입출력탐침 방법에 따른 에뮬레이션과 시뮬레이션 혼합 검증 방법은, 서버용 컴퓨터로 설계검증 대상HDL코드와 ASIC 벤더 라이브러리 명칭을 입력하는 단계와, 혼합 검증을 위하여 필요한 설계검증 대상 HDL코드 상의 탐침대상 시그널들과 필요시에 추가적으로 메모리 영역을 지정하는 단계와, 출력탐침대상 시그널들과 메모리 영역의 특정 시간대에서의 논리값이 출력탐침선에 일정 시간 동안에만 나타나도록 하며 입력탐침대상 시그널들과 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값을 가지도록 1이상의 RFPD에 구현되는 설계검증 대상HDL코드에 IOP-탐침용 부가 HDL코드를 추가적으로 첨가하여 확장된 설계검증 대상HDL코드를 생성하는 단계와, 이 확장된 설계검증 대상HDL코드를 1이상의 RFPD에 구현시키고 구현된 설계검증 대상HDL코드와 함수적으로 등가인 회로를 동작시키는 도중에 사용자가 설정한 임의의 시점이나 임의의 상황이 발생하는 시점에서 상기 1이상의 RFPD에 출력탐침을 수행하여 출력탐침대상 메모리소자들의 특정 시간대에서의 논리값들과 메모리 영역의 내용을 IOP-탐침용 부가회로를 이용하여 상기 1이상의 RFPD의 출력탐침선에 나타나게 하는 단계와, 이렇게 나타난 출력탐침선의 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 시뮬레이터로 시뮬레이션을 수행하기 위한 시뮬레이션 초기 상태값으로 자동 설정하는 단계와 더불어, 시뮬레이터를 통한 시뮬레이션 도중에 사용자가 설정한 임의의 시점이나 임의의 상황에서 시뮬레이션을 통하여 얻어진 설계검증 대상HDL코드의 상태정보를 IOP-탐침용 부가회로를 이용한 입력탐침 방법을 사용하여 서버용 컴퓨터로부터 입출력탐침 인터페이스 모듈을 거쳐서 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD의 입력탐침선을 통하여서 입력탐침 대상이 되는 메모리소자와 메모리 영역이 가지게 함으로서 시뮬레이션에 이은 에뮬레이션을 자동적으로 수행할 수 있게 하는 단계를 포함한다.
이와 같은 입출력탐침을 통하여 임의의 프로토타이핑 보드나 임의의 PCB를 이용한 에뮬레이션과 서버용 컴퓨터에서 수행하는 시뮬레이션을 1회 이상 번갈아 가면서 수행할 수 있게 된다. 특히 설계검증 대상회로에 조합적 폐회로(combinational feedback loop)가 존재하지 않는 경우에는, 출력탐침 대상 신호선들이 설계검증 대상회로에 존재하는 모든 메모리소자(플립플롭이나 래치)들의 출력선들이거나(이때의 출력탐침된 모든 메모리소자의 값들을 완전상태정보라 칭함), 출력탐침 대상 신호선들이 설계검증 대상회로에 존재하는 부분 메모리소자들의 출력선들인 경우에도 이 부분 메모리소자들의 출력선 값들로부터 1이상의 클럭사이클을 진행하여 나머지 메모리소자들의 모든 값들을 결정해 낼 수 있다면(이때의 출력탐침된 부분 메모리소자의 값들을 완전가능부분상태정보라 칭함) 출력탐침된 신호선들의 논리값들을 서버용 컴퓨터에 있는 시뮬레이터로 전달하여 에뮬레이션에 이은 시뮬레이션을 연속되게 진행할 수 있다. 만일 설계검증 대상회로에 조합적 폐회로가 1이상 포함되어 있는 경우에는 각 조합적 폐회로들 마다 이 폐회로를 끊을(cut) 수 있는 조합적 폐회로에 존재하는 조합적 신호선들 각각들도 출력탐침 대상 신호선들에 포함되어야만 한다. 이상과 같은 에뮬레이션과 시뮬레이션을 1회 이상 번갈아 가면서 수행할 수 있게 되면 임의의 프로토타이핑 보드나 임의의 PCB를 사용하여 설계검증을 수행하는 단계에서 아래와 같은 수많은 이점들이 있다.
우선, 시뮬레이션을 통하여 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD에 구현된 설계검증 대상회로에서 출력탐침을 통하여 탐침될 수 있는 신호선들 뿐만 아니라, 이외의 나머지 신호선들 모두에 대하여 RFPD의 재 컴파일(re-compile) 과정이 없이도 100% 탐침이 가능하게 된다. 이와 같은 재 컴파일 과정을 최대한으로 생략시키는 것이 디버깅 과정에서 극히 중요한 이유는 최근의 수백만 게이트급의 RFPD를 컴파일하는 시간이 짧게는 수십분에서 길게는 수시간까지 필요하기 때문이다. 따라서 RFPD에 구현된 회로에 대한 디버깅 과정에서 제일 중요한 것 중의 하나는 상기 RFPD에 대한 재 컴파일을 최대한도로 억제함으로서 신속한 디버깅이 가능하게 하는 것이다. 상기 시뮬레이션과 에뮬레이션을 같이 이용하여 설계검증을 수행하면 이와 같은 RFPD에 대한 재 컴파일 과정 없이도 디버깅 과정에서 반드시 필요한 설계검증 대상회로에 존재하는 모든 신호선들에 대한 100% 가시성(visibility)이 에뮬레이션 도중에서도 완벽하게 마련되어 진다. 이와 같은 100% 가시성뿐만 아니라 디버깅 과정에서 불필요한 추측을 통한 탐침을 할 필요 없이 상기 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD에 구현된 설계검증 대상회로를 우선 상기 임의의 프로토타이핑 보드나 임의의 PCB 상에서 수행시키면서 규칙적 간격(예로 10,000 클럭사이클마다 한번씩)이나 불규칙적 간격으로 사용자 요구와는 무관한 1 이상의 출력탐침을 수행하여 상기 사용자 요구와는 무관한 각 출력탐침 시점들(이들 각각의 시점을 되돌아갈수있는시점(Roll-back Point)들이라 칭함)에서 출력탐침된 신호선값들을 가지고 시뮬레이션을 에뮬레이션에 연이어서 수행할 수 있도록 한다. 이와 같은 과정을 이용하면 디버깅을 위하여 사용자가 원하는 출력탐침을 사용자가 원하는 일정시점동안(이의 시작을 ts 라 하고 이의 끝을 te 라 함)에 희망하는 신호선들에 대하여 미리 예측할 필요 없이도 탐침을 원하는 순간에 즉각적인 탐침(이를 Instant Probing On Demand, iPOD라함)이 가능하게 되는데, 이와 같은 iPOD는 에뮬레이션이 처음 시작된 시점에서부터 마지막 시점까지에서 설계검증 대상회로에 존재하는 모든 신호선들에 대하여 가능하다. 이는 사용자가 설계검증 대상회로가 구현된 상기 1 이상의 RFPD에 대하여 상기에서 언급된 입력탐침을 통하여 원하는 출력탐침 시점에 제일 가까우며 시간적으로 앞선 특정 되돌아갈수있는시점으로 상기 1 이상의 RFPD에 구현된 설계검증 대상회로의 상태를 되돌려 놓고 이 시점부터 ts 까지 에뮬레이션을 수행한 후에 ts 에서 출력탐침을 수행하여 출력탐침된 데이터를 서버용 컴퓨터에서 수행되는 시뮬레이터로 전달하여 ts 부터 te 까지 시뮬레이션을 수행하여 사용자가 이 기간 동안에 탐침을 희망하는 모든 신호선들에 대한 출력탐침이 가능하게 한다. 이와 같은 에뮬레이션 재현(emulation reply)를 위해서는 입력패턴에 대한 저장도 필요한데 입력 패턴이 서버용 컴퓨터에 미리 저장되어 있는 경우에는 이미 저장되어 있음으로 문제가 되지 않지만, 인서킷 상황인 경우에는 주변 하드웨어에서 입력패턴이 실시간으로 생성되어 인가됨으로 이 입력패턴에 대한 저장이 실시간으로 이루어져야 한다. 따라서 메모리를 이용한 이를 위한 저장 방법이 마련되어 있어야 한다. 한편 이와 같은 과정을 거쳐서 설계검증 대상회로나 설계검증 대상HDL코드에 존재하는 버그를 발견하게 되면, 이에 대한 수정이 필요하게 되고 이와 같은 수정이 올바르게 이루어졌는지를 확인하는 과정이 있어야만 한다. 그런데 이와 같은 확인 과정은 에뮬레이션을 통하여 빠르게 수행하고자 하면 설계검증 대상회로가 구현된 상기 1 이상의 RFPD에 대하여 해당 설계수정을 반영할 수 있도록 재 컴파일 과정이 필요하다. 그러나 적지 않는 시간을 소비하는 재 컴파일 과정에 앞서서 이와 같은 수정이 바른 것인지를 신속하게 확인할 수 있는 방법을 제공하는 것이 매우 바람직하다. 이를 위한 새로운 방법으로서 에뮬레이션과 시뮬레이션을 시간적(temporally)뿐만 아니라 공간적(spatially)으로 함께 이용할 수 있다. 즉, 설계 수정이 가해지지 않는 부분은 상기 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD에 구현된 것을 이용하고 설계 수정이 가해진 부분은 서버용 컴퓨터 상에서 시뮬레이터 상에서 모델링된 소프트웨어 모델을 이용하는 것이다. 이와 같은 방법을 이용하면 일반적으로 설계 수정이 가해진 부분은 전체 설계검증 대상에 비하여 국지적이며 매우 적은 부분이어서(예를 든다면, VHDL의 한 entity) 이 적은 부분은 시뮬레이션을 통하여 수행되어도 그리 많은 시간이 소요되지 않고 신속히 처리할 수 있음으로 전체의 검증 속도를 매우 높일 수 있는 장점이 있다. 이와 같은 시공간상의 혼합검증이 가능하기 위해서는 설계 수정이 되어져서 시뮬레이션이 수행될 부분의 모든 입력선들에 대해서는 출력탐침과 모든 출력선들에 대해서는 입력탐침이 필요하다. 예로 설계 수정이 되어져서 시뮬레이션이 수행될 부분이 1-비트 전가산기(full adder)인 경우에는 이들의 입력선들인 a, b, carry_in에 대해서는 출력탐침이 필요하며 이들의 출력선들인 sum, carry_out에 대해서는 입력탐침이 필요하다. 이 경우 출력탐침과 메모리소자의 출력에 대한 입력탐침은 이미 언급된 방법을 이용하면 되지만, 조합적 논리게이트의 출력에 대한 입력탐침은 각 입력탐침 대상이 되는 신호선마다 플립플롭과 멀티플렉서를 사용하여 도 17과 같이 수행된다. 이들 입출력탐침 방법들과 계층적 설계(hierarchical design) 방법을 이용하여 설계에서 각 서브모듈들의 입출력 신호선들에 대하여 입출력 탐침이 가능하게 탐침용 부가회로를 부가하면, 설계 수정이 필요한 회로 부분을 가지고 있는 설계검증 대상회로에 대하여 설계 수정이 이루어지지 않은 전체 설계검증 대상회로를 상기 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에서 에뮬레이션으로 고속으로 수행한 후에, 이 에뮬레이션 결과를 이용한 설계 수정이 이루어진 특정 서브모듈들의 입력들에 대한 출력탐침으로써 설계 수정이 이루어진 설계검증 대상회로의 일부분은 서버용 컴퓨터에서 시뮬레이션으로 수행시키고, 이 시뮬레이션 결과를 이용한 설계 수정이 이루어진 특정 서브모듈들의 출력들에 대한 입력탐침을 통하여 에뮬레이션으로 수행한 설계 수정이 안된 상기 회로 부분의 결과를 수정함으로서 설계검증 대상회로의 전체에서 올바른 에뮬레이션을 재 컴파일 없이도 수행할 수 있다. 뿐만 아니라, 이와 같은 입출력 탐침을 통하여 1 이상의 RFPD로 구성되는 한 임의의 프로토타이핑 시스템을 여러 사용자들이 시분할적으로 공유하여 사용하는 것도 가능하다. 즉 각 사용자들은 각자가 각각의 서버용 컴퓨터에 시뮬레이터를 내장하고 필요시에만 입력탐침을 통하여 시뮬레이션에서 상기 한 프로토타이핑 시스템을 이용하는 에뮬레이션으로 검증 방식을 전환하는 것이 가능할 뿐만 아니라 언제라도 에뮬레이션에서 시뮬레이션으로의 전환도 가능함으로 이와 같은 임의의 프로토타이핑 시스템의 공유가 매우 효율적으로 가능해진다.
한편 이와 같은 시뮬레이션은 별도의 평가과정(evaluation process)으로 대체되어 서버용 컴퓨터에서 수행 될 수도 있으며, 시뮬레이션 또는 평가과정의 실행 속도를 높이기 위하여 필요 시에는 설계검증 대상회로 전체를 모두 모델링하여 실행시키는 대신에 일부분만을 모델링하여 프로토타이핑 시스템소프트웨어에 포함하여 실행시키는 것도 가능하다.
1 이상의 RFPD가 장착된 임의의 프로토타이핑 보드를 ICE 환경에서 사용하여 상기 1 이상의 RFPD에 구현된 디지털 회로에 대한 설계검증을 수행하거나, 또는 1 이상의 RFPD가 장착된 임의의 PCB를 동작시키면서 상기 1 이상의 RFPD에 구현된 디지털 회로에 대한 설계검증을 수행하는 경우에는 다음과 같은 어려운 점들이 존재한다. 첫째로는 상기 임의의 프로토타이핑 보드나 상기 임의의 PCB를 ICE 환경이나 실제 동작 환경에서 동작시키는 경우에 매우 고속(예로 수십 MHz 이상)으로 동작시키는 것이 일반적이다. 이와 같은 상황에서 상기 iPOD 기능을 이용할 수 있도록 하기 위해서는 상기 1 이상의 RFPD에 인가되는 모든 입력들에 대하여 매 클럭마다 모든 입력값들을 샘플링하여 저장시켜야 한다. 이를 위한 한 가지 방법으로는 상기 1 이상의 RFPD에 인가되는 모든 입력들에 대하여 RFPD 외부에서 물리적 접촉을 통하여 모든 입력값들을 저장할 수 있다. 이를 위해서는 별도의 논리분석기나 이와 유사한 기능을 수행하는 신호선채집기(signal sampler)를 사용할 수 있다. 그러나, 이와 같은 방법의 문제점으로는 상기 임의의 프로토타이핑 보드나 임의의 PCB가 상기 논리분석기나 신호선채집기가 RFPD에 연결된 입력 트레이스선들에 대한 물리적 접촉을 가능할 수 있도록 고려되어져 있어야 한다는 것이다. 임의의 프로토타이핑 보드나 임의의 PCB가 이와 같은 상황이 미리 고려되어져서 만들어진다는 것은 현실성이 없을 뿐만 아니라, 설혹 이를 고려하여 만들려고 하더라도 최근의 반도체 칩의 펙케지 기술(예로 BGA, uBGA, Flip chip 등)은 이와 같은 많은 수의 핀 접촉을 극히 어렵게 한다. 따라서 이와 같은 상황들을 고려한 더욱 효율적인 두번째 방법은 다음과 같다. 즉, 상기 1 이상의 RFPD에 인가되는 모든 입력들에 대하여 RFPD 외부에서 물리적 접촉을 통하여 모든 입력값들을 얻는 대신에 RFPD 내부에서 모든 입력들을 출력탐침하여 저장할 수 있다. 따라서 이를 위해서 별도의 논리 분석기나 이와 유사한 기능을 수행하는 신호선채집기가 필요 없다. 이와 같은 과정을 통하여 출력탐침된 입력값들은 인터페이스 모듈을 통하여 서버용컴퓨터로 전송할 수 있다. 그러나 이와 같은 두 번째 방법의 장점을 극대화시키기 위해서는 되도록 적은 수의 RFPD 핀들(예로 6개 이하)을 사용하여 RFPD 내부에서 출력탐침된 상기 모든 입력들(예로 240개)의 입력값들을 서버용컴퓨터로 전송하여야 한다. 이와 같은 상황에서는 원 사용자 클럭의 매 클럭마다 입력들을 샘플하여 같은 속도의 출력탐침 클럭을 사용하여 서버용컴퓨터로 전송하는 것은 불가능하며 출력탐침 클럭에 비하여 사용자 클럭을 비례적으로 낮추어야만 한다. 예를 든다면, RFPD에 인가되는 입력들 수가 240개이며 출력탐침 데이터선이 1비트이면 사용자클럭은 출력탐침 클럭에 비하여 1/240으로 낮추어져야 한다. 이와 같은 낮은 사용자클럭의 사용은 주변 회로에 DRAM(Dynamic Random Access Memory)이나 SDRAM(Synchronous DRAM)과 같은 리프레쉬(refresh)가 필요한 동적로직(dynamic logic)이 있는 경우 정해진 시간내에 리프레쉬가 되지 않음으로 데이터 손실과 같은 심각한 문제를 초래하게 된다. 이를 위해서는 다음과 같은 방법을 사용하면 효과적으로 해결할 수 있다. 즉, 많은 RFPD들은 칩 내부에 온칩 메모리를 사용하는 것이 그것인데, 이의 실례를 들면 Xilinx FPGA의 BlockRAM이나 Altera FPGA의 EAB(Embedded Array Block)등이 그것이다. 이와 같은 온칩 메모리를 이용하면 온칩 메모리의 용량만큼은 사용자클럭과 탐침클럭 모두를 동일한 높은 클럭을 사용하여 RFPD에 인가되는 모든 입력들을 칩 내부에서 출력탐침하여 온칩 메모리에 실시간으로 저장시키는 것이 가능하다. 그 다음으로는 상기 과정을 통하여 온칩 메모리에 저장된 입력값들을 읽에서 상기 적은 수의 출력탐침 데이터선을 통하여 순차적으로 인터페이스 모듈을 거쳐서 서버용컴퓨터로 전송하게 된다. 이와 같은 전송 과정 도중에는 사용자클럭이 멈추게되며 탐침클럭만이 고속으로 동작하게 된다. 이와 같은 사용자 클럭과 탐침클럭의 생성은 인터페이스 모듈에서 생성하여 공급하게 된다. 사용자 클럭이 멈추게 되는 이 기간 동안에는 상기 DRAM 또는 SDRAM은 셀프 리프레쉬(Self Refresh)모드에 들어가 독자적으로 리프레쉬를 수행하게 함으로서 데이터 손실을 방지하게 한다. 이를 위해서는 DRAM 또는 SDRAM에 인가되는 특정한 입력들을 이 기간 동안에 일정한 단일 값(예로 CLE(Clock Enable)은 0이고
Figure 112007089584016-pat00051
(Write Enable)은 1)이나 변이 값으로 유지(예로
Figure 112007089584016-pat00052
(Chip Select)와
Figure 112007089584016-pat00053
(Row Address Strobe)와
Figure 112007089584016-pat00054
(Column Address Strobe)는 셀프 리프레쉬 시작 첫 번째 한 클럭주기 동안만 0이고 나머지에서는 1)시키는 것이 필요하며 이를 위해서는 IOP-탐침용 부가회로가 이를 입력들에 대하여 이와 같은 제어를 수행할 수 있어야 하는데, 이는 각 입력들마다 멀티플렉서를 사용하여 간단히 구현할 수 있다. 이와 같은 두 번째 방법을 사용하면 1이상의 RFPD가 장착된 "어떠한" 임의의 보드에 대하여 "어떠한" 환경(예로 SDRAM, 프로세서 등이 같이 동작하는 ICE 환경)에서도 극히 최소의 요구조건을 만족하면 매우 강력한 디버깅 기능을 제공할 수 있다는 매우 중요한 장점이 있다. 이와 같은 과정을 통하여 채집된 RFPD에 인가되는 입력들은 후에 시뮬레이션 시에 테스트벤치(testbench)로 활용하는 것도 가능한데, 도 18은 이와 같은 RFPD의 온칩 메모리를 이용하여 RFPD 내부에서 입력신호들에 대한 실시간 탐침 방법을 개략적으로 나타낸 도면이다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 본 발명의 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도1 은, 서버용 컴퓨터에서 운영되는 입출력탐침 시스템소프트웨어와 입출력 탐침 인터페이스 모듈로 구성된 본 발명에 관한 입출력탐침 장치를 개략적으로 도시한 도면이다.
도2 는 메모리 읽기/쓰기 부가회로의 구체적인 구현 예로서는 우선 메모리에 대한 읽기/쓰기 제어(read/write control) 신호와 읽기/쓰기 대상이 되는 모든 메모리 영역에 대한 어드레스 시퀀스를 생성하고, 필요에 따라서 클럭된 메모리(clocked memory)의 경우에는 클럭신호까지 생성하는 메모리탐침용 유한상태기(Finite State Machine)와 멀티플렉서, 그리고 플립플롭을 이용하여 구성하는 예를 개략적으로 도시한 것이다.
본 발명에 따른 입출력탐침 방법은, 설계검증 대상회로의 메모리소자의 논리값과 메모리 영역에 대한 입출력 탐침을 위하여 IOP-탐침용 부가회로를 입출력탐침 시스템소프트웨어가 자동화된 방식으로 생성하여 설계검증 대상회로에 부가시켜서 확장된 설계검증 대상회로를 만드는 단계를 포함한다. 우선, 설계검증 대상회로가 메모리를 가지고 있지 않고 메모리소자로는 플립플롭을 사용한 경우에 이 플립플롭이 모두 D형 플립플롭이라 가정하고, 이외의 경우는 곧 이어 설명하기로 한다.
이 단계에서는 IOP-탐침용 부가회로를 설계검증 대상회로에 부가하여 만들어지는 회로인 확장된 설계검증 대상회로가 출력탐침모드에서는 부가회로를 부가함으로서 형성되는 회로부분이 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터가 가지는 논리값이 출력탐침대상이 되는 신호선들의 논리값을 가지고서 하며, 입력탐침모드에서는 부가회로를 부가함으로서 형성되는 회로부분은 쉬프트레지스터 구조로 되어 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 플립플롭들에 대한 동기적 셋(set) 또는 동기적 리셋(reset) 동작, 혹은 비동기적 셋 또는 비동기적 리셋 동작에 이은 동기적 셋 또는 동기적 리셋 또는 비동기적 셋 또는 비동기적 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 입력탐침 대상이 되는 플립플롭들의 논리값을 입력탐침값으로 되게하며, 정상모드에서는 IOP-탐침용 부가회로가 부가되더라도 설계검증 대상회로의 함수적 논리 성질(functional logical behavior)이 변형되지 않는 행위를 가지도록 하는 것이다. 이를 구체적으로 설명하기 위하여 사용되는 비동기 회로에 대한 예가 도3 에 설명되어 있다. 도3 의 회로에 있는 모든 플립플롭의 클럭입력으로 회로의 시스템 클럭이 물리적으로 연결(physically connected의 의미로 논리적으로 연결된 것과 대비됨)되어 있지 않는데, 이와 같은 것을 게이트되어진 클럭(gated clock)이라 한다. 도3 의 회로는 4-비트 비동기 이진카운터(asynchronous binary counter)인데, 최하위 비트의 플립플롭을 제외한 나머지 세 플립플롭들의 클럭입력으로 회로의 시스템 클럭이 물리적으로 연결되어 있지 않다.
도4 는 다양한 D형 플립플롭의 심벌과 함수적 기능을 개략적으로 도시하는 도면이며, 도5 는 본 발명에 관한 IOP-탐침용 부가회로를 나타내는 병렬적 로드도 가능한 쉬프트레지스터 어레이 구조의 일 예를 개략적으로 도시하는 도면이며, 도6 은 도5 의 병렬적 로드도 가능한 쉬프트레지스터 어레이 구조의 또 다른 예를 개략적으로 도시하는 도면이며, 도7 은 도4 의 이중입력 D형 플립플롭의 구현 예를 개략적으로 도시하는 도면이다. 도3 과 같은 4-비트 비동기식 이진카운터의 4-비트 출력선들 모두에 대한 입출력 탐침이 가능하도록 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로가 도8 (a) 에 있다.
도8 (a) 의 회로는 출력탐침모드에서는 설계검증 대상회로와 함께 탐침대상 신호선들과 이중입력 플립플롭들(도8 (a) 에서 PFF0, PFF1, PFF2, PFF3)에 의하여 병렬적 로드가 가능한 쉬프트레지스터 어레이 구조가 되게 구성되어 있으며 동시에 상기 이중입력 플립플롭들 각각의 한 입력을 탐침대상 신호선들 각각에 연결하여 탐침대상 신호선들의 논리값을 상기 이중입력 플립플롭에 병렬적으로 로딩이 가능하게 하며 출력탐침 시에 쉬프트레지스터 어레이 구조에 존재하는 하나의 플립플롭의 출력(여기서는 제일 오른쪽의 것 PFF3)이 입출력탐침선에 논리적으로 연결될 수 있고, 입력탐침모드에서는 병렬적 로드가 가능한 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 한 입력(여기서는 제일 왼쪽의 것 PFF0)이 입력탐침선에 논리적으로 연결되어 지고 상기 병렬적 로드가 가능한 쉬프트레지스터 어레이를 구성하는 플립플롭들 각각의 출력(도8 (a) 의 p0, p1, P2, p3)이 입력탐침 대상 신호선(여기서는 y0, y1, y2, y3)들 각각을 구동하는 각각의 플립플롭(도3 의 FF0, FF1, FF2, FF3) 중에서 대체한 이중입력 플립플롭(도8 (a) 의 FF0)의 한 입력에 연결되게 하거나(해당 플립플롭의 클럭입력에 시스템 클럭이 연결되어 있는 경우에 해당되며, 따라서 여기서는 FF0만 대상) 또는 각각의 플립플롭을 비동기 셋과 비동기 리셋이 동시에 있는 이중입력 플립플롭으로 대체하여 이 플립플롭의 비동기 셋 입력과 비동기 리셋 입력을 제어하여 플립플롭의 값들을 원하는 입력탐침값으로 되게 한 후에 상기 쉬프트레지스터 어레이를 구성하는 플립플롭들 중에 해당 플립플롭의 출력에 연결된 상기 이중입력 플립플롭의 하나의 데이터 입력을 통한(여기에서는 D2) 최종적인 동기적 셋 또는 동기적 리셋으로 이 플립플롭의 출력을 0 또는 1로 설정할 수 있게 함으로(해당 플립플롭의 클럭입력에 시스템 클럭이 연결되어 있지 않는 경우에 해당되며, 따라서 여기서는 FF1, FF2, FF3가 대상) 구현할 수 있는데 이를 위해서는 메모리소자 탐침용 유한상태기(Finite State Machine)가 추가적으로 필요하다. 여기서 사용되는 메모리소자 탐침용 유한상태기의 역할은 입력탐침 대상이 되는 플립플롭의 비동기 셋과 비동기 리셋이 필요한 시점에만 쉬프트레지스터 어레이로부터 공급되는 신호값에 의하여 비동기적 셋 또는 비동기적 리셋이 일어나도록 제어하는 것과 아울러 상기 쉬프트레지스터 어레이를 구성하는 플립플롭들 중에의 해당 플립플롭의 논리값으로 상기 이중입력 플립플롭의 최종적인 동기적 셋 또는 동기적 리셋이 일어나도록 제어하는 것이다. 이를 위해서는 쉬프트레지스터 어레이로부터의 신호선, 메모리소자 탐침용 유한상태기로부터의 신호선, 그리고 동작모드제어(
Figure 112007089584016-pat00055
) 신호선들을 이용하여 입력탐침 대상이 되는 플립플롭의 비동기 셋과 비동기 리셋을 제어할 수 있도록 도8 (b) 와 같은 조합회로 기능이 필요하다. 도8 (b)에서의 조합회로의 입력들과 출력들에 대한 의미를 다르게 코딩하는 경우에는(예로 FSMOut의 0과 1의 의미를 바꾸어서 해석 등) 물론 도8 (b)의 진리표(truth table)가 달라지게 된다.
도3 과 같은 4-비트 비동기식 이진카운터의 4-비트 출력선들 모두에 대한 입출력 탐침이 가능하도록 IOP-탐침용 부가회로가 부가된 또 다른 확장된 설계검증 대상회로가 도8 (c) 에 있다. 도 8 (c)가 도 8 (a)와 다른 점은 국지적으로 생성된 클럭을 사용하는 플립플롭들(FF1, FF2, FF3)에 대하여 비동기직 셋/리셋이 있는 이중입력 플릅플롭을 사용하여 도 8 (a)에서와 같이 비동기적 셋 또는 비동기적 리셋에 이은 동기적 셋 또는 동기적 리셋으로 입력탐침을 수행하는 대신에 비동기적 셋/리셋과 동기적 인에이블이 있는 단일입력 플립플롭을 사용하여 비동기적 셋 또는 비동기적 리셋에 이은 동기적 디스에이블을 통한 입력탐침을 수행한다는 점이다.
도 8 (a)와 도 8 (c)와 같은 구현은 병렬적 로드와 시리얼 로드가 모드 변환에 따라 모두 가능한 쉬프트레지스터 어레이에 사용되는 플립플롭들 모두를 설계검증 대상회로에 존재하는 플립플롭들과는 완전 별도로 새롭게 구성하여 사용하였는데, 이와 같이 하는 경우의 장점은 입출력탐침 수행 도중에 설계검증 대상회로의 동작과 병렬적으로 출력탐침을 수행할 수 있는 등과 같이 설계검증 대상회로에 대한 간섭을 최소화시킬 수 있다는 것이나 오버헤드가 크다는 단점이 있을 수 있다.
도 8 (e)와 도 8 (g)와 같은 구현은 상기 쉬프트레지스터 어레이에 사용되는 플립플롭들 중에 부분적으로는 설계검증 대상회로에 존재하는 플립플롭들 중에서 선택(여기서는 FF0)하여 이들을 변형하여 사용함으로서 입출력탐침을 위한 오버헤드를 최소화할 수 있다.
상기 4-비트 비동기 이진카운터의 경우에는 매우 작은 회로로 시스템 클럭이 플립플롭의 클럭에 직접 연결된 플립플롭이 1개이지만, 회로의 크기가 큰 일반적인 회로의 경우에는 시스템 클럭이 플립플롭에 직접 연결된 플립플롭들의 수가 매우 많은 경우가 대부분임으로 쉬프트레지스터 어레이에 사용되는 플립플롭들 중에 부분적으로 설계검증 대상회로에 존재하는 상기와 같은 플립플롭들을 사용하는 방법은 입출력탐침을 위한 오버헤드를 크게 낮출 수 있는 매우 바람직한 방법이지만, 출력탐침 도중에는 사용자 회로의 수행이 진행될 수 없음으로 ICE 환경에서는 사용할 수 없다는 단점이 있다.
도9 (a)는 설계검증 대상회로에 있는 임의의 1 이상의 플립플롭이 이미 비동기 셋과 비동기 리셋을 가지고 있으며 이들의 클럭 입력에 시스템 클럭이 직접 연결되어 있지 않고 국부적으로 생성된 국지적 클럭(local clock)이나 게이트되어진 클럭이 연결되어진 상황을 도시한 것이다. 이와 같은 경우에는 첫 번째 방법은 이미 설명한 대로 입력탐침 대상이 되는 해당 플립플롭들을 이중입력 플립플롭으로 대체하여 비동기 셋과 비동기 리셋 입력들을 구동하는 조합적 제어회로를 포함하여 추가되는 IOP-탐침용 부가회로로써 이미 설명한대로 회로 변환을 하면서 원래의 설계검증 대상회로의 함수적 논리성질을 정상모드에서 변형하지 않도록 하면 되는데 도9 (b)가 이와 같은 상황을 도시한 것이며 이때 사용되는 조합적 제어회로의 진리표는 도9 (c)에 나타나 있다. 탐침클럭에 동기화되어서 구동되는 메모리소자 탐침용 유한상태기의 역할은 입력탐침모드에서는 입력탐침 대상이 되는 플립플롭을 대체한 이중입력 플립플롭의 비동기 셋 입력과 비동기 리셋 입력을 탐침클럭의 특정 번째의 사이클에서 IOP-탐침용 부가회로를 구성하는 쉬프트레지스터 어레이의 특정 플립플롭에 저장되어 있는 입력탐침값으로 제어하여 입력탐침이 바로 상기 탐침클럭의 특정 번째의 사이클에서만 일어나도록 하는 비동기 셋/리셋 활성화 신호를 생성하고(이 경우에는 활성화가 됨), 입력탐침모드에서 상기 이중입력 탐침클럭의 상기 특정 번째 사이클 이외의 사이클들에서는 입력탐침 대상이 되는 특정 플립플롭을 대체한 상기 이중입력 플립플롭의 비동기 셋과 비동기 리셋을 무효화(disable)시키는 비동기 셋/리셋 활성화 신호를 생성하고(이 경우에는 불활성화가 됨), 정상동작모드에서는 확장된 설계검증 대상회로가 함수적으로 원래의 설계검증 대상회로와 등가일 수 있도록 하는 비동기 셋/리셋 활성화 신호를 생성하여(이 경우에는 불활성화가 됨) 입력탐침대상 플립플롭을 대체한 상기 이중입력 플립플롭의 비동기 셋 입력과 비동기 리셋 입력에 연결된 제어회로부를 구동함과 아울러, 상기 쉬프트레지스터 어레이를 구성하는 플립플롭들 중에의 해당 플립플롭의 논리값으로 상기 이중입력 플립플롭의 최종적인 동기적 셋 또는 동기적 리셋이 일어나도록 제어하는 것이다.
이와 같은 경우에는 두 번째 방법은 이미 설명한 대로 입력탐침 대상이 되는 해당 플립플롭들을 동기식 인에이블이 있는 단일입력 플립플롭으로 대체하여 비동기 셋과 비동기 리셋 입력들을 구동하는 조합적 제어회로를 포함하여 추가되는 IOP-탐침용 부가회로로써 이미 설명한대로 회로 변환을 하면서 원래의 설계검증 대상회로의 함수적 논리성질을 정상모드에서 변형하지 않도록 하면 되는데 도9 (e)가 이와 같은 상황을 도시한 것이며 이때 사용되는 조합적 제어회로의 진리표는 도9 (f)에 나타나 있다. 탐침클럭에 동기화되어서 구동되는 메모리소자 탐침용 유한상태기의 역할은 입력탐침모드에서는 입력탐침 대상이 되는 플립플롭을 대체한 동기식 인에이블이 있는 단일입력 플립플롭의 비동기 셋 입력과 비동기 리셋 입력을 탐침클럭의 특정 번째의 사이클에서 IOP-탐침용 부가회로를 구성하는 쉬프트레지스터 어레이의 특정 플립플롭에 저장되어 있는 입력탐침값으로 제어하여 입력탐침이 바로 상기 탐침클럭의 특정 번째의 사이클에서만 일어나도록 하는 비동기 셋/리셋 활성화 신호를 생성하고(이 경우에는 활성화가 됨), 입력탐침모드에서 상기 이중입력 탐침클럭의 상기 특정 번째 사이클 이외의 사이클들에서는 입력탐침 대상이 되는 특정 플립플롭을 대체한 상기 단일입력 플립플롭의 비동기 셋과 비동기 리셋을 무효화(disable)시키는 비동기 셋/리셋 활성화 신호를 생성하고(이 경우에는 불활성화가 됨), 정상동작모드에서는 확장된 설계검증 대상회로가 함수적으로 원래의 설계검증 대상회로와 등가일 수 있도록 하는 비동기 셋/리셋 활성화 신호를 생성하여(이 경우에는 불활성화가 됨) 입력탐침대상 플립플롭을 대체한 상기 단일입력 플립플롭의 비동기 셋 입력과 비동기 리셋 입력에 연결된 제어회로부를 구동함과 아울러, 비동기적 셋 혹은 비동기적 리셋으로 입력탐침이 수행되고 난 후에는 유한상태기에서 생성되는 동기식 인에이블 신호를 이용하여 특정 시점에 해당 플립플롭의 현재 값을 유지하도록 제어하는 것이다.
이와 같이 설계검증 대상회로에 IOP-탐침용 부가회로가 부가되어져서 생성된 확장된 설계검증 대상회로는 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현되고, 프로토타이핑 보드를 실행시켜 에뮬레이션 기반의 검증을 수행하는 과정에서 특정 시점이나 특정 상황이 발생한 시점에서 시뮬레이션으로의 전환이 필요한 경우에 입출력탐침 시스템소프트웨어가 이를 감지하여 에뮬레이션의 수행을 중지하고 입출력탐침 시스템소프트웨어의 제어 하에 해당 1이상의 RFPD가 정상 모드에서 출력탐침 모드로 전환되어진 후 탐침클럭이 RFPD에 가해지면 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 출력에 연결된 1 이상의 출력탐침선을 통하여 탐침대상이 되는 신호선들에서의 논리값들이 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송된다. 그런데, 입출력탐침 시점은 에뮬레이션 수행 전에 정적으로(statically) 결정될 수 있고, 에뮬레이션 수행 도중에 특정 상황이 발생한 시점과 같이 동적으로(dynamically) 결정될 수 있는데 특정 상황이 발생한 시점과 같은 에뮬레이션의 상황에 종속작인 입출력탐침 시점을 결정하기 위해서는 로직분석기(logic analyzer)와 같은 외부장비를 사용하여 이를 관측하고 입출력탐침 시점을 결정할 수 있으며, 또는 RFPD 내부에 동작 상황을 검출하는 입출력탐침시점 검출기(detector) 회로를 추가적으로 부가함으로써 입출력탐침 상황을 출력시키고 이를 입출력탐침 시스템소프트웨어가 감지하여 입출력탐침을 시작할 수도 있다. RFPD 내부에 상기 입출력탐침시점 검출기 회로를 IOP-탐침용 부가회로와 더불어 추가적으로 설계검증 대상회로에 부가하는 경우에는 이의 자동적인 생성과 부가도 또한 입출력탐침 시스템소프트웨어가 담당하게 된다.
입력탐침의 경우에는 입출력탐침 시스템소프트웨어가 프로토타이핑 보드 상의 해당 1이상의 RFPD에 대한 입력탐침용 데이터를 생성한 다음, 입출력탐침 시스템소프트웨어의 제어 하에 동작모드를 입력탐침 모드로 전환하고 난 후, 탐침클럭이 RFPD에 가해지면서 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 입력에 논리적으로 연결된 1 이상의 입력탐침선을 통하여 서버용 컴퓨터로부터 입출력탐침 인터페이스 모듈을 통하여 전송된 입력탐침용 데이터가 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 플립플롭들에 저장되고 이렇게 저장된 입력탐침용 데이터로써 최종적으로 입력탐침대상 플립플롭들을 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 입력탐침이 이루어 질 수 있게 한다.
회로 설계시에 사용된 플립플롭이 D형이 아닌 RS형, JK형, T형 등을 사용한 경우에는, D형 플립플롭과 간단한 조합적 회로를 써서 이들과 함수적으로 등가인 회로를 구성한 후 이 등가회로를 구현하게 된다. 따라서 본 발명에서의 상기 탐침방법에서 탐침용 부가회로를 생성하는 방법은 회로에 어떠한 종류의 플립플롭을 사용한 경우에도 적용되어질 수 있는 방법이다.
또한 설계검증 대상회로에 사용된 메모리 소자가 래치인 경우에는 상기 방법들을 사용하기 전에 우선 각각의 래치를 플립플롭과 조합회로를 사용하여 도10 과 같이 변환하여 원래의 래치와 함수적으로 등가인 회로를 얻은 후에 상기 방법들을 적용하게 된다.
도11 은 본 발명의 일 실시예에 따른 입출력탐침 방법을 설명하는 흐름도로서 도1 에 도시된 서버용 컴퓨터 (20)에 의하여 수행된다.
제 50 단계에서는 ASIC 벤더 라이브러리 명칭 및 설계검증 대상회로 입력 또는 설계검증 대상HDL코드를 입력하고 제 52 단계로 진행한다 (S50). 제 52 단계에서는 입출력탐침대상 신호선을 입력하고 제 54 단계로 진행한다 (S52). 제 54 단계에서는 프로토타이핑 보드 상의 해당 반도체 칩 별로 IOP-탐침용 부가회로 생성 후 설계검증 대상회로에 부가하여 확장된 설계검증 대상회로를 생성하거나 IOP-탐침용 부가HDL코드 생성 후 설계검증 대상HDL코드에 부가하여 확장된 설계검증 대상HDL코드를 생성하고 제 56 단계로 진행한다 (S54). 제 56 단계에서는 확장된 설계검증 대상회로 또는 확장된 설계검증 대상HDL코드를 프로토타이핑 보드 상의 해당 반도체 칩에 구현하고 제 70 단계로 진행한다 (S56). 제 70 단계에서는 정상 모드에서 회로 검증 과정을 수행하고 제 72 단계로 진행한다 (S70). 제 72 단계에서는 탐침 수행 필요성을 조사하여 필요하면 제 74 단계로 진행하고 필요지 않으면 제 82 단계로 진행한다 (S72). 제 74 단계에서는 출력탐침인지를 조사하여 출력탐침이면 제 80 단계로 진행하고, 입력탐침이면 제 76 단계로 진행한다 (S74). 제 76 단계에서는 서버용 컴퓨터에서 입력탐침용 데이터를 생성하고 제 78 단계로 진행한다 (S78). 제 78 단계에서는 입력탐침 모드로 전환 후에 서버용 컴퓨터에서 입출력탐침 인터페이스 모듈을 통해 입력탐침용 데이터를 입력탐침선에 인가하여 입력탐침을 수행하고 제 82 단계로 진행한다 (S78). 제 80 단계에서는 출력탐침 모드로 전환 후 출력탐침을 수행하여 출력탐침선에 나타나는 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 출력탐침 완료하고 제 82 단계로 진행한다 (S80). 제 82 단계에서는 설계 검증이 완료되었는가를 조사하여 완료되었으면 전체 과정을 종료하고, 그렇치 않으면 제 70 단계로 진행한다 (S82).
상기와 같은 본 발명의 입출력탐침 장치 및 입출력탐침 방법을 이용함으로서 설계검증 대상회로에 대한 설계검증을 에뮬레이션과 시뮬레이션으로 변환 횟수에 제한 없이 자유자재로 번갈아 가면서 수행 할 수 있다.
도12 는 에뮬레이션과 시뮬레이션을 이용한 복합 검증 환경을 독자(stand-alone) 모드로 구성한 예를 개략적으로 도시한 것이다.
그러나 이와 같은 에뮬레이션을 수행하는 프로토타이핑 보드와 시뮬레이션을 수행하는 시뮬레이터가 네트워크를 통하여 분산된 환경에서 수행하는 것이 바람직하다. 도13 은 그와 같은 상황으로서 에뮬레이션과 시뮬레이션을 이용한 복합 검증 환경을 근·원거리 네트워크를 통하여 구성한 예를 개략적으로 도시한 것이다.
도14 는 이를 더욱 확대하여 인터네트워크(예로 인터넷) 상의 분산된 환경(distributed environment)에서 에뮬레이션과 시뮬레이션을 수행할 수 있는 환경을 개략적으로 도시한 것이다.
도15 는 본 발명의 일 실시예에 따른 에뮬레이션 및 시뮬레이션 혼합 검증 방법을 단계별로 설명하는 흐름도로서, 도12 또는 도13 또는 도14 에 도시된 서버용 컴퓨터 (20) 에 의해 수행된다.
제 100 단계에서 서버용 컴퓨터를 이용하여 설계검증 대상회로와 설계시 사용된 ASIC 벤더 라이브러리명을 입력한 후, 이를 이용하여 본 발명의 입출력 탐침이 가능한 임의의 프로토타이핑 보드나 임의의 PCB의 1이상의 RFPD에 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로를 입출력탐침 시스템소프트웨어를 이용하여 자동화된 방식으로 생성하여 이를 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현되게 하고, 서버용 컴퓨터에서 임의의 시뮬레이터를 이용한 설계검증 대상회로의 시뮬레이션의 수행을 준비한다 (S100). 제 102 단계에서 서버용 컴퓨터 (20)를 이용하여 에뮬레이션과 시뮬레이션 혼합 검증 대상이 되는 설계검증 대상회로에 대한 시초 상태정보(state information: 회로내의 모든 메모리소자(플립플롭 또는 래치)들에 대한 값)를 입력하여 임의의 시뮬레이터를 위한 시뮬레이션용 회로와 임의의 프로토타이핑 보드나 임의의 PCB를 위한 에뮬레이션용 회로의 현재 상태정보를 시초 상태정보와 같게 하고 검증방법 전환시점이나 전환조건 시퀀스를 결정하고 이를 수행모드 스위칭 조건 큐에 저장한 후에 큐의 맨 앞 것을 현재의 검증방법 전환시점과 전환조건으로 한다 (S102). 제 104 단계에서는 현재 상태정보를 가지고 시뮬레이션 검증을 수행할 것인지, 에뮬레이션 검증을 수행 할 것인지를 결정한다 (S104). 에뮬레이션 검증이 수행되는 경우에는 제 106 단계로 진행하여 상기 임의의 프로토타이핑 보드나 임의의 PCB를 이용하여 현재의 검증 멈춤시점이나 멈춤조건이 만족할때까지 에뮬레이션 검증을 진행한다 (S106). 제 108단계에서는 추가적인 검증 과정이 필요한지를 조사하여 필요하지 않으면 전체 과정을 종료하고, 필요하다면 제 109 단계로 진행한다 (S108). 제 109 단계에서는 수행모드 스위칭 조건 큐가 비워있는지를 조사하여 비워있지 않으면 제 115 단계로 진행하고, 비워져있다면 제 111 단계로 진행한다 (S109). 제 111 단계에서는 새로운 검증방법 전환시점이나 전환조건 시퀀스를 수행모드 스위칭 조건 큐에 저장할 필요가 있는지를 조사하여, 필요치 않으면 제 108 단계로 진행하고 필요하다면 제 113 단계로 진행한다 (S111). 제 113 단계에서는 새로운 검증방법 전환시점이나 전환조건 시퀀스를 수행모드 스위칭 조건 큐에 저장하고 제 115 단계로 진행한다 (S113). 제 115 단계에서는 수행모드 스위칭 조건 큐로써 현재의 검증방법 전환시점과 전환조건을 새롭게 설정하고 제 117 단계로 진행한다 (S115), 제 117 단계에서는 현재검증방법이 에뮬레이션인지 시뮬레이션인지를 조사하여, 에뮬레이션이면 제 134 단계로 진행하고, 시뮬레이션이면 제 132 단계로 진행한다 (S117). 제 132 단계에서는 서버 컴퓨터 상에서 시뮬레이션을 통하여 얻어진 현 검증 멈춤시점에서의 설계검증 대상 회로의 현재 상태정보를 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현된 확장된 설계검증 대상회로가 똑 같이 가질 수 있도록 RFPD들에 본 발명의 입력탐침을 수행하고 제 106 단계로 진행한다 (S132). 제 134 단계에서는 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현된 확장된 설계검증 대상회로에 대한 본 발명의 출력탐침을 통하여 얻어진 현 검증 멈춤시점에서의 설계검증 대상회로의 현재 상태정보를 서버 컴퓨터 상의 임의의 시뮬레이터에 의해 수행되고 있는 설계검증 대상회로가 똑 같이 가질 수 있도록 임의의 프로토타이핑 보드 상의 1이상의 RFPD들에 본 발명의 출력탐침을 수행하고 제 120 단계로 진행한다 (S134). 제 120 단계에서는 서버 컴퓨터 상의 임의의 시뮬레이터를 이용하여 현재의 검증방법 전환시점이나 전환조건이 만족할때까지 시뮬레이션 검증을 진행하고 제 108 단계로 진행한다 (S120).
도16 은 본 발명의 또다른 일 실시예에 따른 시뮬레이션 및 에뮬레이션 혼합 검증 방법을 단계별로 설명하는 흐름도로서, 도12 또는 도13 도는 도14 에 도시된 서버용 컴퓨터 (20) 에 의해 수행된다.
제 300 단계에서 서버용 컴퓨터를 이용하여 설계검증 대상HDL코드와 설계시 사용된 ASIC 벤더 라이브러리명을 입력한 후, 이를 이용하여 본 발명의 입출력 탐침이 가능한 임의의 프로토타이핑 보드나 임의의 PCB의 1이상의 RFPD에 IOP-탐침용 부가HDL코드가 부가된 확장된 설계검증 대상HDL코드를 입출력탐침 시스템 소프트웨어를 이용하여 자동화된 방식으로 생성하여 이를 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현되게 하고, 서버용 컴퓨터에서 임의의 시뮬레이터를 이용한 설계검증 대상HDL코드의 시뮬레이션의 수행을 준비한다 (S300). 제 302 단계에서 서버용 컴퓨터 (20)를 이용하여 에뮬레이션과 시뮬레이션 혼합 검증 대상이 되는 설계검증 대상HDL코드에 대한 시초 상태정보(state information: 회로내의 모든 메모리소자(플립플롭 또는 래치)들에 대한 값)를 입력하여 임의의 시뮬레이터를 위한 시뮬레이션용 HDL코드와 임의의 프로토타이핑 보드나 임의의 PCB를 위한 에뮬레이션용 HDL코드의 현재 상태정보를 시초 상태정보와 같게 하고 검증방법 전환시점이나 전환조건 시퀀스를 결정하고 이를 수행모드 스위칭 조건 큐에 저장한 후에 큐의 맨 앞 것을 현재의 검증방법 전환시점과 전환조건으로 한다 (S302). 제 304 단계에서는 현재 상태정보를 가지고 시뮬레이션 검증을 수행할 것인지, 에뮬레이션 검증을 수행 할 것인지를 결정한다 (S304). 에뮬레이션 검증이 수행되는 경우에는 제 306 단계로 진행하여 상기 임의의 프로토타이핑 보드나 임의의 PCB를 이용하여 현재의 검증 멈춤시점이나 멈춤조건이 만족할때까지 에뮬레이션 검증을 진행한다 (S306). 제 308 단계에서는 추가적인 검증 과정이 필요한지를 조사하여 필요하지 않으면 전체 과정을 종료하고, 필요하다면 제 309 단계로 진행한다 (S308). 제 309 단계에서는 수행모드 스위칭 조건 큐가 비워있는지를 조사하여 비워있지 않으면 제 315 단계로 진행하고, 비워져있다면 제 311 단계로 진행한다 (S309). 제 311 단계에서는 새로운 검증방법 전환시점이나 전환조건 시퀀스를 수행모드 스위칭 조건 큐에 저장할 필요가 있는지를 조사하여, 필요치 않으면 제 308 단계로 진행하고 필요하다면 제 313 단계로 진행한다 (S311). 제 313 단계에서는 새로운 검증방법 전환시점이나 전환조건 시퀀스를 수행모드 스위칭 조건 큐에 저장하고 제 315 단계로 진행한다 (S313). 제 315 단계에서는 수행모드 스위칭 조건 큐로써 현재의 검증방법 전환시점과 전환조건을 새롭게 설정하고 제 317 단계로 진행한다 (S315). 제 317 단계에서는 현재검증 방법이 에뮬레이션인지 시뮬레이션인지를 조사하여, 에뮬레이션이면 제 334 단계로 진행하고, 시뮬레이션이면 제 332 단계로 진행한다 (S317). 제 332 단계에서는 서버 컴퓨터 상에서 시뮬레이션을 통하여 얻어진 현 검증 멈춤시점에서의 설계검증 대상HDL코드의 현재 상태정보를 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현된 확장된 설계검증 대상HDL코드가 똑 같이 가질 수 있도록 RFPD들에 본 발명의 입력탐침을 수행하고 제 306 단계로 진행한다 (S332). 제 334 단계에서는 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현된 확장된 설계검증 대상HDL코드에 대한 본 발명의 출력탐침을 통하여 얻어진 현 검증 멈춤시점에서의 설계검증 대상HDL코드의 현재 상태정보를 서버 컴퓨터 상의 임의의 시뮬레이터에 의해 수행되고 있는 설계검증 대상HDL코드가 똑 같이 가질 수 있도록 임의의 프로토타이핑 보드 상의 1이상의 RFPD들에 본 발명의 출력탐침을 수행하고 제 320 단계로 진행한다 (S334). 제 320 단계에서는 서버 컴퓨터 상의 임의의 시뮬레이터를 이용하여 현재의 검증방법 전환시점이나 전환조건이 만족할때까지 시뮬레이션 검증을 진행하고 제 308 단계로 진행한다 (S320).
상술한 바와 같이, 본 발명에 따른 입출력탐침 장치 및 이를 이용한 입출력 탐침 방법은 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 반도체 칩들에 구현되어 에뮬레이션되는 설계검증 대상회로에 대하여 100% 신호가시도를 갖고 신속하며 효과적인 디버깅을 가능하게 함과 더불어 임의의 시뮬레이터에서 시뮬레이션되는 설계검증 대상회로와의 상태정보 교환을 완전 자동화된 방식으로 가능하게 함으로서 고속의 함수적 검증 및 정확한 타이밍 검증을 함께 번갈아 가면서 가능하게 하여 매우 효과적인 검증을 수행 할 수 있는 이점이 있다. 이와 같은 이점은 ICE 환경에서도 완벽하게 지원되고, RFPD 내부의 칩상 메모리를 사용하는 경우에도 완벽하게 지원되는 이점이 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (34)

  1. 컴퓨터와 입출력탐침 인터페이스 모듈을 포함하여 구성되는 입출력탐침 장치에 있어서,
    상기 컴퓨터는 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 FPGA 반도체 칩 또는 CPLD 반도체 칩 또는 ASIC 반도체 칩에 구현되는 설계검증 대상회로 또는 대상HDL코드를 위한 IOP-탐침용 부가회로 또는 IOP-탐침용 부가회로의 행위를 표현하는 HDL 코드를 생성하고, 설계검증 대상회로 또는 대상HDL코드에 IOP-탐침용 부가회로 또는 IOP-탐침용 부가회로의 행위를 표현하는 HDL 코드를 부가하여서 상기 1이상의 반도체 칩에 입출력 탐침이 가능한 설계검증 대상회로 또는 대상HDL코드가 구현되도록 하는 일을 수행하는 시스템소프트웨어를 포함하며, 상기 입출력탐침 인터페이스 모듈은 상기 컴퓨터에 장착되어 상기 1이상의 반도체 칩이 장착된 임의의 프로토타이핑 보드나 임의의 PCB를 연결하여서 입출력 탐침을 수행하는 것을 특징으로 하는 입출력탐침 장치.
  2. 제 1 항에 있어서,
    상기 설계검증 대상HDL코드에 IOP-탐침용 부가회로의 행위를 표현하는 HDL 부가코드가 설계검증 대상HDL코드에 부가됨으로서,
    출력탐침모드에서는 부가HDL코드를 부가함으로서 형성되는 HDL 부분이 출력탐침대상 메모리소자에 대해서는 병렬적 로드가 가능한 쉬프트레지스터 행위를 표현하고 있어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터의 행위를 표현하는 HDL 코드에서 레지스터 HDL 코드의 신호선이 가지는 신호값들이 병렬적 로드에 의하여 출력탐침 대상이 되는 신호값들을 가지고서 하며, 출력탐침대상 메모리의 특정 영역에 대해서는 읽기 동작에 의하여 읽어낼 수 있으며,
    입력탐침모드에서는 부가 HDL 코드를 부가함으로서 형성되는 HDL 코드 부분이 입력탐침대상 메모리소자에 대해서는 시리얼 방식으로 로드가 가능한 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 HDL 코드의 메모리소자들 행위를 표현하는 HDL 코드의 시그널들에 대한 동기적 셋 또는 동기적 리셋 동작, 혹은 비동기적 셋 또는 비동기적 리셋 동작에 이은 동기적 셋 또는 동기적 리셋 또는 비동기적 셋 또는 비동기적 리셋 동작에 이은 동기적 디스에이블 동작으로 입력탐침 대상이 되는 시그널들의 논리값을 입력탐침값으로 되게하며, 입력탐침대상 메모리에 대해서는 해당 영역의 쓰기를 쓰기 동작으로 쓸 수 있으며,
    정상모드에서는 IOP-탐침용 부가회로가 부가되더라도 설계검증 대상HDL코드의 행위를 변형하지 않는 것을 특징으로 하는 입출력탐침 장치.
  3. 제 1 항에 있어서,
    상기 IOP-탐침용 부가회로를 자동 생성할 수 있는 상기 입출력탐침 시스템소프트웨어에 의하여 생성된 상기 IOP-탐침용 부가회로와 상기 입출력탐침 인터페이스 모듈를 통한 상태정보와 입력 시퀀스에 대한 탐침 단계를 통하여, 상기 임의의 프로토타이핑 보드나 임의의 PCB를 이용하는 에뮬레이션과 임의의 시뮬레이터에 의한 시뮬레이션을 자동화된 방식으로 최소 1회 번갈아 수행할 수 있게 하는 입출력탐침 장치.
  4. 설계검증 대상회로에 IOP-탐침용 부가회로가 부가되는 확장된 설계검증 대상회로를 구현한 1이상의 FPGA 반도체 칩 또는 CPLD 반도체 칩을 이용하여 검증하는 에뮬레이션 방법과 설계검증 대상회로를 시뮬레이터를 이용하여 검증하는 시뮬레이션 방법을 혼용한 에뮬레이션과 시뮬레이션 혼합 검증 방법으로서,
    상기 1이상의 FPGA 반도체 칩 또는 CPLD 반도체 칩에 대한 탐침을 수행하는 단계와,
    임의의 프로토타이핑 보드 또는 임의의 PCB와 임의의 시뮬레이터 간의 상태정보와 입력 시퀀스의 교환을 수행하는 단계를 통하여,
    최소 1회 에뮬레이션과 시뮬레이션을 번갈아 수행하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  5. 임의의 1 이상의 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1 이상의 RFPD에 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로를 구현하여 출력탐침 또는 입력탐침이 가능하도록 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법에 있어서,
    출력탐침 단계를 통해서는 상기 1 이상의 RFPD에서 수행되는 확장된 설계검증 대상회로로부터 완전상태정보 혹은 완전가능부분상태정보를 추출하여 인터페이스 모듈을 통하여 서버용 컴퓨터로 전달하여 에뮬레이션에 이은 시뮬레이션이 가능하게 하고, 입력탐침 단계를 통해서는 설계검증 대상회로의 소프트웨어 모델이 수행되는 시뮬레이터로부터 완전상태정보 혹은 완전가능부분상태정보를 추출하여 인터페이스 모듈을 통하여 상기 1 이상의 RFPD로 전달하여 설계검증대상회로에 대한 에뮬레이션이 시뮬레이션에 연이어서 가능하도록 하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  6. 임의의 1 이상의 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1 이상의 RFPD에 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로를 구현하여 출력탐침이 가능하게 하는 단계와,
    출력탐침 시에 상기 1 이상의 RFPD에서 수행되는 확장된 설계검증 대상회로로부터 완전상태정보 혹은 완전가능부분상태정보와 입력 시퀀스를 추출하는 단계와,
    인터페이스 모듈을 통하여 서버용 컴퓨터로 전달하여 단계를 통하여 에뮬레이션에 이은 임의의 시뮬레이터를 이용한 시뮬레이션이 가능하도록 하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  7. 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1 이상의 RFPD에 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로를 구현하여 탐침이 가능하게 하고, 에뮬레이션 시행 중에 주기적 혹은 비주기적으로 1회 이상의 탐침 시마다 상기 1 이상의 RFPD 상에서 수행되는 확장된 설계검증 대상회로로부터 확장된 설계검증 대상회로에 포함된 설계검증 대상회로를 멈추는 순간이 없이 에뮬레이션 전체 과정을 통하여 동작시키면서 완전상태정보 혹은 완전가능부분상태정보를 실시간으로 추출하여 이를 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송시켜서 1 이상의 되돌아갈수있는시점을 마련하는 동시에, 에뮬레이션 시행 중에 입력 시퀀스에 대해서 실시간으로 메모리에 저장하는 단계와,
    에뮬레이션이 완료된 후에 사용자가 원하는 일정 기간 동안에 설계검증 대상회로에 존재하는 탐침대상 신호선들에 대한 탐침을 상기 1 이상의 RFPD에 대한 입력탐침을 통하여 상기 1 이상의 RFPD에 구현된 설계검증 대상회로의 상태를 상기 1 이상의 되돌아갈수있는시점의 상태정보와 같게 한 후에 상기 메모리에 저장된 입력 시퀀스를 이용한 에뮬레이션과 시뮬레이션을 수행하는 것을 특징으로 하는 임의의 프로토타이핑 보드나 임의의 PCB와 임의의 시뮬레이터를 이용한 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  8. 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1 이상의 RFPD에 IOP-탐침용 부가회로가 부가된 확장된 설계검증 대상회로를 구현하여 탐침이 가능하게 하고, 에뮬레이션 시행 중에 주기적 혹은 비주기적으로 1회 이상의 탐침 시마다 상기 1 이상의 RFPD 상에서 수행되는 확장된 설계검증 대상회로로부터 확장된 설계검증 대상회로에 포함된 설계검증 대상회로를 일시적으로 멈추면서, 에뮬레이션 전체 과정을 통하여 동작시키면서 완전상태정보 혹은 완전가능부분상태정보를 상기 멈추어진 순간에 추출하여 이를 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송시켜서 1 이상의 되돌아갈수있는시점을 마련하는 동시에, 에뮬레이션 시행 중에 입력 시퀀스에 대해서 메모리에 저장하는 단계와,
    에뮬레이션이 완료된 후에 사용자가 원하는 일정 기간 동안에 설계검증 대상회로에 존재하는 탐침대상 신호선들에 대한 탐침을 상기 1 이상의 RFPD에 대한 입력탐침을 통하여 상기 1 이상의 RFPD에 구현된 설계검증 대상회로의 상태를 상기 1 이상의 되돌아갈수있는시점의 상태정보와 같게 한 후에 상기 메모리에 저장된 입력 시퀀스를 이용한 에뮬레이션과 시뮬레이션을 수행하는 것을 특징으로 하는 임의의 프로토타이핑 보드나 임의의 PCB와 임의의 시뮬레이터를 이용한 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  9. 제 5 항 또는 제 6 항에 있어서,
    상기 확장된 설계검증 대상회로가 설계 수정이 필요한 회로 부분을 포함하고 있으며,
    상기 IOP-탐침용 부가회로를 부가한 상기 확장된 설계검증 대상회로로서 구현한 임의의 신속 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에서 에뮬레이션을 고속으로 수행한 후에, 이 에뮬레이션 결과를 이용한 출력탐침으로써 설계 수정이 이루어진 설계검증 대상회로의 일부분은 서버용 컴퓨터에서 시뮬레이션으로 수행시키는 단계와,
    이 시뮬레이션 결과를 이용한 입력탐침을 통하여 에뮬레이션으로 수행한 설계 수정이 안된 상기 회로 부분의 결과를 수정하는 단계를 통하여 설계검증 대상회로의 전체에서 올바른 에뮬레이션을 수행할 수 있도록 하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  10. 제 5 항 또는 제 6 항에 있어서,
    상기 확장된 설계검증 대상회로에 포함되어 있는 설계검증 대상회로가 메모리를 가지고 있으며,
    상기 설계검증 대상회로에 존재하는 메모리를 RFPD내의 온칩 메모리를 사용하여 구현하는 경우에 있어서, 상기 메모리에 대한 출력탐침을 위하여 별도의 탐침데이터 저장 메모리를 사용하여 상기 온칩 메모리의 내용을 사용자 클럭을 일시적으로 멈추거나 원래보다 느리게 하지 않고서 실시간으로 상기 별도의 탐침데이터 저장 메모리로 복사하고 난 후, 탐침데이터 저장메모리에 저장된 내용을 읽어내는 과정을 통하여 상기 설계검증 대상회로에 존재하는 메모리에 대한 탐침을 수행하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  11. 제 5 항 또는 제 6 항에 있어서,
    상기 확장된 설계검증 대상회로에 포함되어 있는 설계검증 대상회로가 메모리를 가지고 있으며,
    상기 설계검증 대상회로에 존재하는 메모리에 대한 출력탐침을 위하여 별도의 탐침데이터 저장 메모리 내부에 태그를 유지하고 사용자 클럭보다 두배 빠른 시스템 클럭을 사용하여 사용자 회로의 메모리의 특정번지에 대한 읽기/쓰기를 시스템 클럭 첫 번째 주기에서 사용자 회로의 메모리에 대한 상기 특정번지나 미리 정해진 순서에 의한 번지로 데이터 읽기를 수행하여 읽어낸 데이터를 탐침데이터 저장 메모리의 같은 번지에 저장하고 상기 해당 태그를 수정한 다음에, 시스템 클럭의 두 번째 주기에서 사용자 회로의 메모리의 특정번지에 대한 원래의 읽기/쓰기를 수행하는 것을 실시간 메모리에 대한 탐침을 수행하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  12. 제 4 항 또는 제 6 항 또는 제 7 항 또는 제 8 항 중 어느 한 항에 있어서,
    상기 입력 시퀀스는 상기 에뮬레이션 실행 과정에서 얻어지는 설계검증 대상회로에 인가되는 입력들을 특정 에뮬레이션 실행 구간 동안에 저장한 것이며, 이것을 상기 시뮬레이션에서 사용되는 테스트벤치에 활용하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  13. 제 6 항 또는 제 7 항 또는 제 8 항 중 어느 한 항에 있어서,
    상기 입력 시퀀스는 상기 에뮬레이션 실행 과정에서 얻어지는 설계검증 대상회로에 인가되는 입력들을 특정 에뮬레이션 실행 구간 동안에 상기 RFPD 내의 온-칩 메모리에 저장한 것이며, 이것을 상기 시뮬레이션에서 사용되는 테스트벤치에 활용하는 것을 특징으로 하는 에뮬레이션과 시뮬레이션 혼합 검증 방법.
  14. ASIC 벤더 라이브러리 명칭 및 설계검증 대상회로 입력 또는 설계검증 대상HDL코드를 입력하는 단계와,
    입출력탐침대상 신호선을 입력하는 단계와,
    프로토타이핑 보드 상의 해당 반도체 칩 별로 IOP-탐침용 부가회로 생성 후 설계검증 대상회로에 부가하여 확장된 설계검증 대상회로를 생성하거나 IOP-탐침용 부가HDL코드 생성 후 설계검증 대상HDL코드에 부가하여 확장된 설계검증 대상HDL코드를 생성하는 단계와,
    확장된 설계검증 대상회로 또는 확장된 설계검증 대상HDL코드를 프로토타이핑 보드 상의 해당 반도체 칩에 구현하는 단계와,
    정상 모드에서 회로 검증 과정을 수행하는 단계와,
    탐침 수행 필요성을 조사하는 단계와 출력탐침인지를 조사하는 단계와,
    서버용 컴퓨터에서 입력탐침용 데이터를 생성하여, 입력탐침 모드로 전환 후에 서버용 컴퓨터에서 입출력탐침 인터페이스 모듈을 통해 입력탐침용 데이터를 입력탐침선에 인가하여 입력탐침을 수행하는 단계와,
    출력탐침 모드로 전환 후 출력탐침을 수행하여 출력탐침선에 나타나는 값을 입출력탐침 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 출력탐침 완료하는 단계를 포함하는 입출력탐침 방법.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
KR1020010034864A 2000-06-20 2001-06-14 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법 KR100824503B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020000034628 2000-06-20
KR1020000034628A KR20010015053A (ko) 1999-06-26 2000-06-20 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법
KR1020010011587 2001-02-26
KR20010011587 2001-02-27

Publications (2)

Publication Number Publication Date
KR20010114158A KR20010114158A (ko) 2001-12-29
KR100824503B1 true KR100824503B1 (ko) 2008-04-22

Family

ID=41345814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010034864A KR100824503B1 (ko) 2000-06-20 2001-06-14 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법

Country Status (1)

Country Link
KR (1) KR100824503B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011140233A3 (en) * 2010-05-05 2011-12-29 Teradyne, Inc. System for concurrent test of semiconductor devices

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101205325B1 (ko) 2006-05-12 2012-11-29 삼성전자주식회사 시뮬레이션 시스템 및 그 방법
KR100825811B1 (ko) * 2007-02-27 2008-04-29 삼성전자주식회사 고속 검사가 가능한 반도체 소자 자동검사장치
KR100856079B1 (ko) * 2007-02-28 2008-09-02 (주)디지털프론티어 반도체 검사장치
CN102830346B (zh) * 2012-08-22 2015-05-06 华为技术有限公司 一种检测方法和装置
KR102558036B1 (ko) * 2022-11-25 2023-07-20 인하대학교 산학협력단 Python을 활용한 RTL 설계 검증 자동화 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980032933A (ko) * 1996-10-17 1998-07-25 레이몬드 케이. 오스트비 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980032933A (ko) * 1996-10-17 1998-07-25 레이몬드 케이. 오스트비 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011140233A3 (en) * 2010-05-05 2011-12-29 Teradyne, Inc. System for concurrent test of semiconductor devices
US8762095B2 (en) 2010-05-05 2014-06-24 Teradyne, Inc. System for concurrent test of semiconductor devices

Also Published As

Publication number Publication date
KR20010114158A (ko) 2001-12-29

Similar Documents

Publication Publication Date Title
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
Coelho The VHDL handbook
US5937179A (en) Integrated circuit design system with shared hardware accelerator and processes of designing integrated circuits
JPH06208602A (ja) 可検査性設計規則の検証方法
KR100483876B1 (ko) 반도체 집적 회로 설계 및 검증 시스템
JP2005011344A (ja) ネットワークベースの階層エミュレーションシステム
CN113255267B (zh) 使用现场可编程门阵列fpga重新编程检测仿真中的时序违规
KR100794916B1 (ko) 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
WO2022251267A1 (en) Testable time-to-digital converter
KR100812938B1 (ko) 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법
KR100824503B1 (ko) 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법
KR100710972B1 (ko) 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법
JP2003067438A (ja) シミュレーションモデルの生成方法及びシミュレーション方法及びその記録媒体
WO2002001354A1 (en) Rapid input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
KR20010015053A (ko) 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법
US11816409B1 (en) Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
US20220382942A1 (en) Non-functional loopback-paths removal from io-pads using logic replication
Dahmoune et al. An embedded reachability analyzer and invariant checker (eraic)
US20210240897A1 (en) System and method for capturing hardware emulation data
US20210303336A1 (en) Advanced Register Merging
Tombesi Design and Integration of a Debug Unit for Heterogeneous System-on-Chip Architectures
WO2022251227A1 (en) Non-functional loopback-paths removal from io-pads using logic replication
Shih et al. Automatic verification stimulus generation for interface protocols modeled with non-deterministic extended FSM
Zeidler Enabling functional tests of asynchronous circuits using a test processor solution

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
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee