KR100794916B1 - 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법 - Google Patents

에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법 Download PDF

Info

Publication number
KR100794916B1
KR100794916B1 KR1020020038088A KR20020038088A KR100794916B1 KR 100794916 B1 KR100794916 B1 KR 100794916B1 KR 1020020038088 A KR1020020038088 A KR 1020020038088A KR 20020038088 A KR20020038088 A KR 20020038088A KR 100794916 B1 KR100794916 B1 KR 100794916B1
Authority
KR
South Korea
Prior art keywords
design verification
input
probe
circuit
design
Prior art date
Application number
KR1020020038088A
Other languages
English (en)
Other versions
KR20030023465A (ko
Inventor
양세양
Original Assignee
양세양
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양세양 filed Critical 양세양
Publication of KR20030023465A publication Critical patent/KR20030023465A/ko
Application granted granted Critical
Publication of KR100794916B1 publication Critical patent/KR100794916B1/ko

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02FDREDGING; SOIL-SHIFTING
    • E02F3/00Dredgers; Soil-shifting machines
    • E02F3/04Dredgers; Soil-shifting machines mechanically-driven
    • E02F3/28Dredgers; Soil-shifting machines mechanically-driven with digging tools mounted on a dipper- or bucket-arm, i.e. there is either one arm or a pair of arms, e.g. dippers, buckets
    • E02F3/36Component parts
    • E02F3/3604Devices to connect tools to arms, booms or the like
    • E02F3/3686Devices to connect tools to arms, booms or the like using adapters, i.e. additional element to mount between the coupler and the tool

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Mining & Mineral Resources (AREA)
  • Civil Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명은 설계된 수백만 게이트급 이상의 디지탈 회로의 설계 검증을 위한 설계 검증 장치 및 이를 이용한 설계 검증 방법에 관한 것이다.
본 발명에서는 임의의 서버용 컴퓨터에서 수행되어지는 본 발명의 설계검증 시스템소프트웨어로 하여금 설계검증 대상 회로에 입력/출력/입출력 탐침을 가능하게 하는 탐침용 부가회로를 부가하여 입력/출력/입출력탐침이 가능한 확장된 회로를 자동화된 방식으로 생성하게 한다. 아울러 본 발명의 설계검증 인터페이스 모듈은 상기 입력/출력/입출력탐침이 가능한 확장된 회로가 1이상의 프로그래밍가능 소자로 구현되어 여타 다른 하드웨어 컴포넌트들과 함께 장착되어 있는 하드웨어 보드와 상기 서버용 컴퓨터를 연결시키고 상기 하드웨어 보드의 수행을 제어하면서 특정 시점이나 특정 조건에서 상기 하드웨어 보드 상의 상기 1이상의 프로그래밍가능 소자에 대한 입력/출력/입출력탐침을 수행하여 상기 서버용 컴퓨터와 상기 1이상의 프로그래밍가능 소자에 상기 설계검증 대상 전체 회로나 부분적인 회로에 대한 수행결과 정보를 빠르게 교환할 수 있도록 한다. 아울러 상기 서버용 컴퓨터와 상기 설계검증 대상 전체 회로 혹은 부분 회로만을 시뮬레이션하는 임의의 시뮬레이션 서버용 컴퓨터를 이용하여 에뮬레이션과 시뮬레이션을 1차례이상 자동적인 방법으로 빠르게 번갈아 가면서 수행하여 점진적 설계 검증을 통하여 설계 검증 대상회로에 존재하는 1이상의 설계 오류를 신속하게 제거하는 것을 가능하게 한다.

Description

에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을 위한 설계검증 장치 및 이를 이용한 설계 검증 방법{ Design Verification Apparatus For Incremental Design Verification Using Mixed Emulation and Simulation, and Design Verification Method Using the Same }
도1 은 본 발명의 설계 검증 장치를 개략적으로 도시하는 도면.
도2 는 출력탐침 부가회로를 설계 검증 대상 회로에 부가한 예를 개략적으로 도시하는 도면.
도3 은 입력탐침 부가회로를 설계 검증 대상 회로에 부가한 예를 개략적으로 도시하는 도면.
도4(a) 는 설계 검증 대상 회로 전체가 시뮬레이션으로 수행되는 상황을 개략적으로 도시한 도면.
도4(b) 는 설계 검증 대상 회로 일부분이 시뮬레이션으로 수행되는 동시에 다른 나머지 부분은 에뮬레이션으로 수행되는 상황을 개략적으로 도시한 도면.
〈도면의 주요부분에 대한 부호의 설명〉
12 : RFPD 20 : 서버용 컴퓨터
26 : 설계검증 인터페이스 모듈 27 : 인터페이스 모듈
28 : 인터페이스 케이블
30 : 임의의 프로토타이핑 보드 상의 설계검증 대상회로가 구현된 1이상의 RFPD 이외의 다른 컴퍼넌트
32 : 설계검증 시스템소프트웨어 34 : 임의의 시뮬레이터
44 : 임의의 프로토타이핑 보드 74 : 멀티플렉서
73 : 비동기 셋/리셋과 동기식 인에이블이 있는 단일입력 플립플롭
75 : 이중입력 D형 플립플롭 76 : 단일입력 D형 플립플롭
77 : 비동기 셋과 비동기 리셋이 있는 이중입력 플립플롭
78 : 비동기 셋과 비동기 리셋이 있는 단일입력 플립플롭
79 : 트라이스테이트 버퍼(Tri-state buffer)
86 : 출력탐침 대상 신호선
87 : 출력탐침용 부가회로의 쉬프트레지스터를 형성하는 플립플롭들
88 : 입력탐침용 부가회로의 쉬프트레지스터를 형성하는 플립플롭들
90 : 시뮬레이션되는 설계검증 대상회로의 전체
92 : 설계검증 대상회로 전체에서 시뮬레이션되는 설계검증 대상회로의 부분
94 : 설계검증 대상회로 전체에서 에뮬레이션되는 설계검증 대상회로의 나머지 부분
본 발명은 설계된 수백만 게이트급 이상의 디지탈 회로를 설계 검증하는 기술에 관한 것으로, 설계된 수백만 게이트급 이상의 디지탈 회로를 프로그램 가능한 칩 혹은 주문형반도체 칩으로 실제 하드웨어적으로 구현하고 에뮬레이션 기법과 시뮬레이션 기법을 함께 사용하여 상기 수백만 게이트급 이상의 디지털 회로에 존재하는 1이상의 설계 오류를 신속하게 제거하는 설계 검증 방법 및 이를 위한 설계 검증 장치에 관한 것이다.
최근에 집적회로의 설계 및 반도체 공정기술이 급격하게 발달함에 따라 디지탈 회로 설계의 규모가 최소 수백만 게이트급에서 수천만 게이트급까지 커짐은 물론 그 구성이 극히 복잡해지고 있는 추세이고, 이와 같은 추세는 계속적으로 확대되고 있는 추세로 가까운 미래에 일억 게이트급 이상의 설계도 예상되고 있다. 그러나, 시장에서의 경쟁은 더욱 더 치열해지므로 빠른 시간 내에 우수한 제품을 개발하여야만 함으로 빠른 시간 내에 자동화된 방법으로 설계된 회로를 효율적으로 설계 검증하기 위한 효과적인 방법의 필요성이 더욱 커지고 있다.
지금까지는 설계된 디지탈 회로를 설계 검증하기 위하여서는 소프트웨어적 접근법인 시뮬레이터가 주로 사용되었으나, 시뮬레이터는 설계 검증대상회로를 소프트웨어적으로 모델링한 순차적인 인스트럭션 시퀀스로 구성된 소프트웨어 코드를 컴퓨터 상에서 순차적으로 수행하여야 함으로 상기 수백만 게이트급 이상의 설계를 위한 설계 검증 시간이 상상을 초월할 정도로 극히 오래 걸리게 되고 다른 주변 하드웨어 환경과 통합되어 시스템 전체를 검증(이를 ICE, In-Circuit Emulation이라 함)할 수 없는 한계가 있다. 뿐만 아니라 시뮬레이션을 이용하여 설계 검증을 수행하기 위해서는 설계 검증 대상회로에 설계 검증을 가능하게 하는 입력패턴 시퀀스를 생성하여야 한다. 그러나 설계 검증 대상회로의 규모가 커지게 되면 이에 지수함수적으로 비례하여 입력패턴 시퀀스의 크기가 커지게 될 뿐만 아니라 이를 대부분의 경우에 수작업으로 생성하여야만 함으로 이를 위하여 많은 시간과 비용이 투입되어야만 한다.
이에 비하여 설계된 회로를 실제 칩으로 구현하여 이를 이용한 하드웨어적인 에뮬레이션 기반의 설계 검증 방법은 설계된 디지탈 회로의 모든 구성요소들이 구현된 칩 상에서 실제 병렬적으로 동작되고 있는 상황에서 디지털 회로를 검증하는 것이기 때문에 시뮬레이션에 비하여 최대 일백만배 고속의 설계 검증이 가능하고 다른 주변 하드웨어 환경과도 ICE 환경을 구성하여 통합적으로 검증할 수 있다. 뿐만 아니라, 다른 주변 하드웨어 환경과 통합하여 ICE 방식으로 설계 검증을 수행하는 경우에는 설계 검증 대상회로에 주변 하드웨어 환경에서 실제의 입력패턴 시퀀스가 공급됨으로 이를 수작업으로 생성시키는 과정을 완전히 생략할 수 있다. 그러나 에뮬레이션은 시뮬레이션에 비하여 디버깅을 수행하는 것이 매우 불편한 것이 단점인데, 이의 주된 원인은 프로그램 가능한 칩 또는 주문형반도체 칩들에 구현된 설계 검증 대상회로에 존재하는 수많은 신호선들의 논리값을 알 수 있는 가시도(visibility)가 시뮬레이션에 비하여 턱없이 떨어지기 때문이다. 뿐만 아니라 프로그램 가능한 칩 또는 주문형반도체 칩들을 이용한 에뮬레이션을 이용하게 되면 수행 자체는 극히 고속으로 수행시키는 것이 가능하지만, 설계 검증 대상회로에 1이상의 설계 오류가 존재하는 경우에 이들 설계 오류를 수정하게 되면 이를 반영하여 프로그램 가능한 칩을 재프로그래밍하거나 주문형반도체 칩을 다시 제조하여야만 하는데 이 과정에서 매우 긴 시간이 필요하고 경우에 따라서는 큰 비용의 지출도 수반하게 된다는 것인데 일반적으로 설계 초기 단계에서는 설계가 전혀 검증되지 않았음으로 수 많은 설계 오류들이 존재하게 되며 이들 설계 오류들이 수 차례에서 수십 차례에 걸쳐서 수정되는 것이 일반적임으로 이와 같은 상황에서 에뮬레이션을 이용한 설계 검증은 매우 바람직스럽지 못하다.
기 특허출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(특허출원번호: 10-2000-0034628)에서는 프로그램 가능한 칩들인 재사용 가능 프로그래밍 소자(Reusable Field Programmable Devices ; 이하 "RFPD"라 함)나 ASIC(Application Specific Inregrated Circuit)이나 ASSP(Application Specific Standard Product)와 같은 주문형반도체 소자를 이용한 에뮬레이션과 시뮬레이션을 함께 사용하여 디지털 시스템에 대한 설계 검증을 효과적으로 수행하는 방법을 제시하고 있다.
그러나 상기 기 출원된 특허뿐만 아니라 다른 어떠한 특허들에서도 상기에서 언급된 최소 수백만급 규모 이상의 설계에 대한 에뮬레이션과 시뮬레이션을 함께 이용한 효과적인 방법은 제시하지 못하였다. 즉 설계검증 대상이 되는 설계가 수백만급 이상일 때는 에뮬레이션과 시뮬레이션 혼합검증과정에서 신호 가시도를 확보하기 위하여 필요한 시뮬레이션 수행이 필요한 기간이 비록 짧을지라도 회로의 크기 때문에 시뮬레이션의 수행 시간이 극히 커지거나, 회로의 크기가 극히 큰 경우에는 시뮬레이션 자체가 아예 불가능 할 수도 있다. 뿐만 아니라 이와 같은 최소 수백만 게이트급 이상의 설계검증을 인-서킷(In-Circuit) 환경에서 에뮬레이션과 시뮬레이션을 혼용하여 수행하기 위해서는 시뮬레이션 과정에서는 인-서킷에서의 다른 주변 하드웨어환경이 소프트웨어적으로 모델링(이를 테스트 벤치라고 함)되어 있어서 이를 이용하여 올바른 입력 패턴 시퀀스가 시물레이션을 통하여 생성되어 소프트웨어적으로 모델링된 DUT(Design Under Test)에 인가되는 것이 필요하다. 그러나 이와 같은 인-서킷에서의 복잡한 다른 주변 하드웨어 환경을 소프트웨어적으로 올바르게 모델링하는 것은 극히 어려운 일로, 이와 같은 모델링 필요성이 시뮬레이션을 이용한 설계 검증 방법뿐만 아니라, 인-서킷 환경에서의 에뮬레이션과 시뮬레이션을 혼용한 설계 검증 방법의 적용도 매우 어렵게 하고 있다. 또한 상기 에뮬레이션과 시뮬레이션을 혼용한 설계 검증 방법에서의 또 다른 문제점으로는 설계 검증 도중에 발견된 설계 오류들을 수정하게 되면 이를 반영하여 시간이 극히 오래 소요되는 재사용 가능 프로그래밍 소자를 다시 프로그래밍하거나, 시간이 극히 오래 소요되며 비용도 매우 많이 드는 주문형반도체 소자를 다시 제조하여야만 한다는 문제를 계속 가지고 있다는 것이다.
또한 에물레이션과 시뮬레이션을 같이 이용하는 기존의 점진적 프로 토타이핑(incremental prototyping) 기법이나 동시 모델링(co-modeling) 기법은 설계 검증 대상 회로들 에뮬레이션이 되는 부분(이를 에뮬레이션 블록이라 칭함)과 시뮬레이션이 되는 부분(이를 시뮬레이션 블록이라 칭함)의 두 부분으로 나누어지는 과정에서 에뮬레이션이 되는 회로 부분에 위치하는 입력, 출력, 입출력 포트들(이들은 에뮬레이션이 되는 설계 검증 대상 회로의 부분 회로의 기준에서 입력, 출력, 입출력을 말하며, 설계 검증 대상 회로 전체의 기준에서는 내부 신호선들이 될 수 있음)을 반드시 구현 매체인 프로그래밍 가능소자나 주문형반도체 칩의 핀들과 물리적으로 연결시켜야만 하며, 이의 결과로서 에뮬레이션 블록이나 시뮬레이션 블록을 변경시키는 것이 극히 제한적이게 되어서(예로 설계 검증 대상 회로의 내부에 깊숙히 있는 블록들을 에뮬레이션하기 위해서는 이 블록들의 입력, 출력 및 입출력 포트들을 모두 구현 매체인 프로그래밍 가능소자나 주문형반도체 칩의 핀들에 물리적으로 연결하여야 하며, 이로 인하여 이들 에뮬레이션 대상이 되는 블록들이 바뀌어지거나 새롭게 추가되는 경우에 이를 위한 시간이 크게 늘어남) 에뮬레이션과 시뮬레이션의 공간적 혼용을 이용한 설계 검증의 장점을 크게 떨어 뜨리게 된다.
따라서, 본 발명의 목적은 초대규모급 설계 검증을 위한 1이상의 RFPD를 이용하여 하드웨어적으로 구현된 대규모 디지털 시스템의 에뮬레이션과 시뮬레이션을 혼용하는 설계 검증에서 입출력 탐침 방법을 채용한 점진적 설계 검증을 통하여 설계 검증 대상회로에 존재하는 수많은 설계오류들의 제거를 최소한의 시간과 비용을 투입하여 수행할 수 있도록 하는 설계 검증 장치를 이를 이용한 설계 검증 방법을 제공함에 있다.
상기 목적을 달성하기 위하여, 본 발명에 따른 설계 검증 장치는 설계검증시스템소프트웨어와 설계검증 인터페이스 모듈(26)을 제공한다. 설계검증 인터페이스 모듈(26)은 인터페이스 모듈(interface module)(27)과 인터페이스 케이블(interface cable)(28)로 구성될 수 있다. 설계검증 시스템소프트웨어는 서버용 컴퓨터에서 실행되며 서버용 컴퓨터는 임의의 시뮬레이터(예로 HDL 시뮬레이터나 로직 시뮬레이터, 또는 사이클기반 시뮬레이터)를 가지고 있거나 시뮬레이터의 역할을 대신할 수 있는 소프트웨어를 가지고 있다. 설계검증 인터페이스 모듈은 설계검증 시스템소프트웨어가 있는 서버용 컴퓨터와 설계된 수백만 게이트급 이상의 디지털 회로가 구현된 1이상의 RFPD들을 장착하고 있는 1이상의 임의의 하드웨어 보드 또는 프로토타이핑 하드웨어 플랫폼 또는 에뮬레이션 하드웨어 플랫폼(이를 앞으로는 임의의 프로토타이핑 보드나 임의의 PCB라 칭함)을 연결하게 되고, 설계검증 인터페이스 모듈의 또 다른 중요 기능으로는 설계검증 대상회로에 대한 입출력탐침을 위해서 필요한 시스템 클럭과 이 시스템 클럭으로부터 생성되는 1이상의 사용자클럭과 탐침클럭, 그리고 동작모드 제어신호, 탐침모드 제어신호, 탐침용메모리읽기쓰기 신호 등을 설계검증 시스템소프트웨어의 제어 하에서 생성하여 필요 시에 임의의 프로토타이핑 보드나 임의의 PCB에 공급함으로서 임의의 프로토타이핑 보드나 임의의 PCB동작을 제어한다. 이를 위하여 설계검증 인터페이스 모듈은 자체적으로 FPGA나 CPLD, 혹은 마이크로프로세서나 마이크로콘트롤러, 또는 전용 ASIC/ASSP 칩을 내장하고 있을 수 있다. 또는 상기 설계검증 인터페이스 모듈은 설계검증 대상회로 또는 대상HDL코드가 구현되는 FPGA나 CPLD에 함께 구현되어질 수도 있다. 도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)를 의미하며, 메모리는 SRAM, DRAM, SDRAM, Rambus DRAM 등과 같은 모든 종류의 RAM(Random Access Memory)이나 PROM, EPROM, EEPROM, Flash Memory와 같은 모든 종류의 ROM(Read Only Memory)을 의미하는 것으로 정의한다. 반면에 논리값정보(logic information)는 디지털 회로의 존재하는 임의의 1이상의 신호선들에 나타나는 이진논리값 시퀀스를 의미하며, 논리값정보가 상태정보와 다른 것은 논리값정보는 메모리소자들의 값과 메모리의 내용만을 국한하지 않고 조합논리 게이트의 출력값이나 입력 값들도 함께 포함할 수 있다는 것이다.
설계검증 시스템소프트웨어는 설계검증 대상회로에 존재하는 특정 신호선들에 대한 입력탐침 또는 출력탐침 또는 입출력탐침을 가능하게끔 자동화된 방식으로 변환시키는 탐침 회로합성기를 포함하고 있는데, 이와 같은 탐침 회로합성기는 탐침용 부가회로를 설계검증 대상회로에 부가함으로서 완성되는 회로(이를 확장된 설계검증 대상회로라 칭함)를 자동화된 방식으로 생성하게 된다. 확장된 설계검증대상회로에 포함되는 탐침용 부가회로의 역할은 출력탐침의 경우에는 부가회로를 부가함으로서 형성되는 회로부분이 쉬프트레지스터 구조로 되어 탐침클럭에 동기화 된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터가 가지는 논리값들이 출력탐침 대상이 되는 회로내의 신호선들의 논리값들을 가지고서 하게 하며, 입력탐침의 경우에는 부가회로를 부가함으로서 형성되는 회로부분은 쉬프트레지스터 구조로 되어 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 회로내의 신호선들에 쉬프팅 동작이 완료된 후에 원하는 특정 논리값들이 나타날 수 있도록 하며, 입출력탐침의 경우에는 상기 입력탐침과 출력탐침 각각이 원하는 시점에 수행될 수 있도록 하고, 정상동작이 필요한 때는 부가회로가 부가되더라도 설계검증 대상회로의 함수적 논리 성질(functional logical behavior)이 변형되지 않지 않는 회로로 동작할 수 있도록 하는 것이다. 또는 설계검증 대상이 하드웨어구술언어(이 후 HDL로 칭함) 코드로 구술된 경우에는 탐침용 부가회로의 행위(behavior)를 표현하는 HDL 부가코드가 설계검증 대상 HDL 코드에 부가됨으로서 완성되는 HDL 코드가 출력탐침의 경우에는 부가 HDL 코드를 부가함으로서 형성되는 HDL 부분이 쉬프트레지스터 행위를 표현하고 있어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터의 행위를 표현하는 HDL 코드에서 레지스터 HDL 코드의 신호선이 가지는 신호값들이 출력탐침 대상이 되는 HDL코드의 신호선들의 논리값들을 가지고서 하게 하며, 입력탐침의 경우에는 부가 HDL코드를 부가함으로서 형성되는 HDL 코드 부분은 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침대상이 되는 HDL 코드의 출력탐침 대상이 되는 HDL 코드내의 신호선들에 쉬프팅 동작이 완료된 후에 원하는 특정 논리값들이 나타날 수 있도록 하며, 입출력탐침의 경우에는 상기 입력탐침과 출력탐침 각각이 원하는 시점에 수행될 수 있도록 하고, 정상동작이 필요한 때는 부가회로가 부가되더라도 설계검증 HDL 코드의 함수적 논리 성질(functional logical behavior)이 변형되지 않지 않도록 하는 것이다.
또한 탐침 대상이 되는 신호선들이 메모리소자의 출력인 경우에는 확장된 설계검증 대상회로에 포함되는 탐침용 부가회로의 역할은 출력탐침의 경우에는 부가회로를 부가함으로서 형성되는 회로부분이 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트레지스터가 가지는 논리값들이 출력탐침 대상이 되는 회로내의 모든 혹은 일부분의 메모리소자의 논리값들을 가지고서 하며, 입력탐침의 경우에는 부가회로를 부가함으로서 형성되는 회로부분은 쉬프트레지스터 구조로 되어 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 회로내의 모든 혹은 일부분의 메모리소자들에 대한 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 입력탐침 대상이 되는 메모리소자들의 논리값을 입력탐침값으로 되게하며, 입출력탐침의 경우에는 상기 입력탐침과 출력탐침 각각이 원하는 시점에 수행될 수 있도록 하고, 정상동작이 필요한 때는 부가회로가 부가되더라도 설계검증 대상회로의 함수적 논리 성질(functional logical behavior)이 변형되지 않지 않는 회로로 동작할 수 있도록 하는 것이다. 또는 설계검증 대상이 HDL 코드로 구술된 경우에는 탐침용 부가회로의 행위를 표현하는 HDL 부가코드가 설계검증 대상 HDL 코드에 부가됨으로서 완성되는 HDL 코드가 출력탐침의 경우에는 부가 HDL 코드를 부가함으로서 형성되는 HDL 부분이 쉬프트레지스터 행위를 표현하고 있어 탐침클럭에 동기화된 쉬프팅 동작을 이 쉬프팅 동작 직전에 쉬프트 레지스터의 행위를 표현하는 HDL 코드에서 레지스터 HDL 코드의 신호선이 가지는 신호값들이 출력탐침 대상이 되는 메모리소자의 모든 혹은 일부분의 출력 신호값들과 시뮬레이션 대상이 되는 설계검증 대상회로의 특정 부분 HDL 코드의 모든 단방향 입력과 모든 양방향 입출력 시그널들을 가지고서 하며, 입력탐침의 경우에는 부가 HDL 코드를 부가함으로서 형성되는 HDL 코드 부분은 쉬프트레지스터 구조로 되어 탐침클럭에 동기화된 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 대상이 되는 HDL 코드의 메모리소자들 행위를 표현하는 HDL 코드의 시그널들에 대한 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 입력탐침 대상이 되는 시그널들의 논리값을 입력탐침값으로 되게하며, 입출력탐침의 경우에는 상기 입력탐침과 출력탐침 각각이 원하는 시점에 수행될 수 있도록 하고, 정상동작이 필요한 때는 탐침용 부가회로가 부가되더라도 설계검증 HDL 코드의 행위를 변형하지 않도록 한다.
이상과 같은 탐침을 위한 탐침용 부가회로에 대한 구체적 구현방법은 기 출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(PCT출원번호: PCT/KR01/01092)에 상당 부분이 이미 자세하게 언급되어 있음으로 본 특허에서는 추가적인 것들에 대한 몇몇 경우에 대해서만 언급하기로 한다.
도2 는 설계 검증 대상 회로에 존재하는 임의의 신호선들에 대한 출력탐침을 수행하는 탐침용 부가회로의 일 구현 일 예를 개략적으로 도시한 도면이다.
도3 은 설계 검증 대상 회로에 존재하는 입력이나 조합회로의 출력이 되는 임의의 신호선들에 대한 입력탐침을 수행하는 탐침용 부가회로의 일 구현 일 예를 개략적으로 도시한 도면으로, 이 경우에는 메모리소자의 출력이 아닌 신호선들에 대하여 입력 탐침을 수행하여야 함으로 부가회로를 부가함으로서 형성되는 회로부분은 쉬프트레지스터 구조로 되어 쉬프팅 동작을 하며 이와 같은 쉬프팅 동작을 이용하여 입력탐침 데이터를 상기 쉬프트레지스터 구조를 이루는 플립플롭들에 저장시키고 난 후에 멀리플렉서(74)의 선택입력을 제어하여 상기 입력방침 데이터가 해당 신호선들 각각에 나타나게 한다.
부가적으로 설계검증 대상회로에 RAM이나 ROM 등의 메모리가 포함되어 있으며 이와 같은 메모리들도 RFPD에 내장되어 제공되는 칩상 메모리(on-chip memory)(구체적인 예를 들면, Xilinx FPGA의 Distributed RAM 또는 BlockRAM, Altera FPGA의 Embedded Array Block 등)를 이용하여 구현하는 경우에는 상기 IOP-탐침용 부가회로에는 메모리 읽기/쓰기 부가회로가 추가적으로 포함되어 진다. 메모리 읽기/쓰기 부가회로는 설계검증 시스템소프트웨어의 제어를 받아서 출력탐침모드에서는 RFPD 내부에 구현된 설계검증 대상회로에 존재하는 메모리의 모든 영역이나 특정 영역의 내용들을 정해진 순서에 따라 모두 읽어내어 출력탐침선을 통하여 인터페이스 모듈과 인터페이스 케이블을 거쳐서 설계검증 시스템소프트웨어로 자동화된 방식으로 읽혀질 수 있게 하고, 입력탐침모드에서는 설계검증 시스템소프트웨어가 가지고 있는 데이터를 인터페이스 케이블과 인터페이스 모듈을 거쳐서 RFPD의 입력탐침선을 통하여 RFPD 내부에 구현된 설계검증 대상회로에 존재하는 쓰기가능(writable) 메모리의 모든 영역이나 특정 영역에 정해진 순서에 따라 자동화된 방식으로 쓰기를 수행하게 된다. 이와 같은 메모리 읽기/쓰기 부가회로의 구체적인 구현 예도 기 출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(PCT출원번호: PCT/KR01/01092)에 이미 자세하게 언급되어 있음으로 본 특허에서는 생략하기로 한다.
본 발명에서 출력탐침선과 입력탐침선은, 별개의 독립된 단방향 탐침선으로 존재할 수도 있고, 출력탐침선과 입력탐침선이 합쳐진 양방향 탐침선으로 존재할 수도 있다. 또한 본 발명에서 사용되는 탐침클럭은 설계검증 대상회로에 사용되는 사용자 클럭들과는 별도의 클럭을 시스템 클럭으로부터 생성하여 사용할 수도 있고, 사용자 클럭들 중의 하나(예로 제일 빠른 클럭)를 사용할 수도 있다.
상기 설계검증 시스템소프트웨어는 설계검증 대상회로에 존재하는 탐침대상 신호선들 및 메모리, 또는 설계검증 HDL 코드에 존재하는 탐침대상 시그널들 및 메모리 블럭을 설계자로부터 수동으로 입력받는 혹은 자동으로 결정하는 단계를 포함하며, 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 설계 검증 대상회로를 구현하기 위하여 출력탐침대상 신호선들 또는 읽기대상 메모리 영역에서의 특정 시간대 혹은 특정 상황이 발생한 시점에서의 논리값들이 출력탐침선에 일정 시간 동안에만 순차적으로 나타나도록 하며, 입력탐침대상 신호선들 또는 쓰기대상 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값들을 가질 수 있도록 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 할당된 설계검증 대상회로에 탐침용 부가회로를 부가하여 확장된 설계검증 대상회로를 생성하는 단계를 더 포함한다. 또한, 출력탐침대상 신호선들과 읽기대상 메모리영역에 대해서는 출력탐침대상 신호선들 상에서의 특정 시간대에서의 논리값들과 메모리 내용을 탐침용 부가회로를 이용하여 해당 RFPD의 출력탐침선에 나타나게 하고 출력탐침선에 나타난 값을 설계검증 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하며, 입력탐침대상 신호선들과 쓰기대상 메모리 영역에 대해서는 서버용 컴퓨터에서 얻어진 상태정보로부터 입력탐침용 데이터를 생성한 후, 이를 설계검증 인터페이스 모듈을 통하여 해당 RFPD의 입력탐침대상 신호선들에 탐침클럭과만 동기화하면서 인가하거나, 혹은 탐침클럭과 동기화하는 것과 더불어 탐침모드제어신호선을 통하여 탐침모드를 입력탐침모드와 출력탐침모드간으로 적절히 변화시켜가면서 인가하여 입력탐침대상 신호선들의 논리값과 쓰기대상 메모리 영역의 내용이 입력탐침선을 통하여 전송되어진 논리값들을 가지게 함으로서 RFPD에 구현된 설계검증대상회로의 상태정보가 상기 서버용 컴퓨터에서 얻어진 상태정보와 같게끔 설정하는 단계를 포함한다.
이상과 같은 설계검증 장치 및 설계검증 방법을 이용하면 설계검증 대상회로에 탐침용 부가회로가 부가되어진 확장된 설계검증 대상회로가 구현된 1이상의 반도체 칩이 장착된 임의의 프로토타이핑 보드나 임의의 PCB와 임의의 시뮬레이터를 함께 이용하여 에뮬레이션과 시뮬레이션을 시간적이나(temporally) 혹은 공간적으로(spatially) 혼합한 설계검증을 수행할 수 있다. 즉, 이와 같은 에뮬레이션과 시뮬레이션 혼합 검증은 상기 설계검증 시스템소프트웨어는 설계검증 대상회로에 존재하는 탐침대상 신호선들 및 메모리, 또는 설계검증 HDL 코드에 존재하는 탐침대상 시그널들 및 메모리 블럭을 설계자로부터 수동으로 입력받거나 자동으로 결정하는 단계를 포함하며, 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 구현된 설계검증 대상회로 전체나 혹은 설계검증 대상회로 부분에 존재하는 출력탐침대상 신호선들 또는 읽기대상 메모리 영역에서의 특정 시간대 혹은 특정 상황이 발생한 시점에서의 논리값들이 출력탐침선에 일정 시간 동안에만 순차적으로 나타나도록 하며, 입력탐침대상 신호선들 또는 쓰기대상 메모리 영역이 입력탐침선에 특정 시간대에 가해지는 논리값들을 가질 수 있도록 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 할당된 설계검증 대상회로 전체나 혹은 설계검증 대상회로 부분에 탐침용 부가회로를 부가하여 확장된 설계검증 대상회로 전체나 혹은 확장된 설계검증 대상회로 부분을 생성하는 단계를 더 포함한다. 또한, 출력탐침대상 신호선들과 읽기대상 메모리 영역에 대해서는 출력탐침대상 신호선들 상에서의 특정 시간대에서의 논리값들과 메모리 내용을 탐침용 부가회로를 이용하여 해당 RFPD의 출력탐침선에 나타나게 하고 출력탐침선에 나타난 값을 설계검증 인터페이스 모듈을 통하여 서버용 컴퓨터로 전송하여 설계검증 대상회로 전체나 혹은 설계검증 대상회로 부분의 현재 상태정보나 현재 탐침신호선들의 논리정보를 시뮬레이터가 시뮬레이션을 위한 초기 상태값이나 초기 값으로 가질 수 있도록 하며, 입력탐침대상 신호선들과 쓰기대상 메모리 영역에 대해서는 서버용 컴퓨터에서 시뮬레이션을 통하여 얻어진 상태정보나 논리값정보로부터 입력탐침용 데이터를 생성한 후, 이를 인터페이스 모듈과 인터페이스 케이블을 통하여 해당 RFPD의 입력탐침대상 신호선들에 탐침클럭과만 동기화하면서 인가하거나, 혹은 탐침클럭과 동기화하는 것과 더불어 탐침모드제어신호선을 통하여 탐침모드를 입력탐침모드와 출력탐침모드간으로 적절히 변화시켜가면서 인가하여 입력탐침대상 신호선들의 논리값과 쓰기대상 메모리 영역의 내용이 입력탐침선을 통하여 전송되어진 논리값들을 가지게 함으로서 RFPD에 구현된 설계검증 대상회로 전체 또는 설계검증 대상회로 부분의 상태정보 혹은 논리값정보가 시뮬레이터에서 일정기간 동안 시뮬레이션을 통하여 생성된 상태정보 혹은 논리값정보와 같게끔 설정하는 단계를 포함한다. 이와 같은 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD와 임의의 시뮬레이터 간의 상태정보 혹은 논리값정보의 교환은 시뮬레이터에 마련되어진 FLI(Foreign Language Interface)나 PLI(Programming Language Interface)를 이용한다면 API(Application Program Interface) 수준에서 이루어질 수 있음으로 오버헤드를 최소화하면서 가능하다.
이상과 같이 본 발명의 설계검증 장치 및 설계검증 방법을 이용하여 에뮬레이션과 시뮬레이션 간의 자동화된 방식으로 혼합 검증을 하기 위해서는 에뮬레이션과 시뮬레이션 간의 수행 전환이 자동으로 이루어져야 하는데 이와 같은 것을 수행모드 스위칭(execution mode switching)이라고 칭하며 이와 같은 수행모드 스위칭은 매클럭마다 이루어지거나, 혹은 특정 조건이 만족되어질 때 (예를 든다면 회로내의 특정 레지스터에 특정 값이 두 번 쓰여지는 시점) 이루어질 수 있는데 이와 같은 조건을 수행모드 스위칭 조건이라 칭한다. 이와 같은 수행모드 스위칭 조건은 전체 검증 과정에서 시간적으로 전후 관계가 있는 2이상 될 수 있는데 이와 같은 경우에는 시간적으로 맨 처음에 설정된 조건에서부터 나중에 설정된 조건 순으로 나열된 상태에서 조건이 만족하는 시점에서 에뮬레이션에서 시뮬레이션으로 혹은 시뮬레이션에서 로직에뮬레이션으로의 수행모드 스위칭이 일어나게 된다. 이를 위해서는 수행모드 스위칭 조건들을 큐(queue)에 저장시켜 놓을 필요가 있는데 이를 수행모드 스위칭 조건 큐라고 칭하며 설계검증 시스템소프트웨어 내부에서 이를 자료구조(data structure) 형태로 유지하게 된다.
이와 같은 입출력탐침을 통하여 임의의 프로토타이핑 보드나 임의의 PCB를 이용한 에뮬레이션과 서버용 컴퓨터에서 수행하는 시뮬레이션을 1회 이상 번갈아가면서 수행할 수 있게 된다. 특히 설계검증 대상회로에 조합적 폐회로(combinational feedback loop)가 존재하지 않는 경우에는, 출력탐침 대상 신호선들이 설계검증 대상회로에 존재하는 모든 메모리소자(플립플롭이나 래치)들의 출력선들이거나(이때의 출력탐침된 모든 메모리소자의 값들을 완전상태정보라 칭함), 출력탐침 대상 신호선들이 설계검증 대상회로에 존재하는 부분 메모리소자들의 출력선들인 경우에도 이 부분 메모리소자들의 출력선 값들로부터 1이상의 클럭사이클을 진행하여 나머지 메모리소자들의 모든 값들을 결정해 낼 수 있다면(이때의 출력탐침된 부분 메모리소자의 값들을 완전가능부분상태정보라 칭함) 출력탐침된 신호선들의 논리값들을 서버용 컴퓨터에 있는 시뮬레이터로 전달하여 에뮬레이션에 이은 시뮬레이션을 연속되게 진행할 수 있다. 만일 설계검증 대상회로에 조합적 폐회로가 1이상 포함되어 있는 경우에는 각 조합적 폐회로들 마다 이 폐회로를 끊을(cut) 수 있는 조합적 폐회로에 존재하는 조합적 신호선들 각각들도 출력탐침 대상 신호선들에 포함되어야만 한다. 이상과 같은 에뮬레이션과 시뮬레이션을 1회 이상 번갈아 가면서 수행할 수 있게 되면 임의의 프로토타이핑 보드나 임의의 PCB를 사용하여 설계검증을 수행하는 단계에서 아래와 같은 수많은 이점들이 있다.
우선, 현재의 SoC(System On a Chip) 환경에서의 설계 검증에서는 시뮬레이션을 위한 테스트 벤치의 생성에 많은 시간과 비용이 투입되어야만 한다. 통상 설계 프로젝트가 완료될 때까지 테스트 벤치를 구현하는 코드의 크기가 전체 설계 코드 크기의 80%까지를 차지할 정도로 테스트 벤치를 설계자가 직접 생성하는 것은 매우 어려운 일이다. 뿐만 아니라, SoC 설계에서 실제 설계된 칩이 실제 환경에서 실제적으로 동작되어지는 수 많은 모든 경우를 다 고려하여 테스트 벤치를 설계자가 직접 생성하는 것도 매우 어려운 일이다. 이에 비하여 ICE 기반의 설계 검증 방법은 설계 검증 대상 회로를 프로토타이핑하여 실제 환경과 같이 연동시켜보는 것이 가능하여, 테스트 벤치를 작성할 필요가 없을 뿐만 아니라 실제 환경에서 실제적 동작에 의한 실제 상황들이 연출되는 것임으로 테스트 벤치를 이용한 것보다 훨씬 신뢰성이 높은 검증을 수행하는 것이 가능한데, 이와 같은 프로토타이핑에 의한 설계 검증을 위해서는 설계 검증 대상 회로가 1이상의 프로그래밍가능 소자로 구현되어 있어야만 한다. 그러나 일반적으로 수많은 설계 오류들이 존재하게 되어 이와 같은 설계 오류들을 적게는 수 차례에서 많게는 수십 차례까지도 수정하여야만 하는 설계 검증 초기 단계에서는 프로토타이핑에 의한 설계 검증을 위해서는 설계 오류가 수정되도록 설계 검증 대상 회로가 구현된 상기 칩 또한 수정이 되어야만 하는데, 이를 위한 시간과 비용이 매우 커서 현실적으로 설계 초기 단계에서는 사용할 수가 없다. 즉, 이 시간과 비용이 그 중 제일 낮은 프로그래밍가능 소자(예로 FPGA)를 사용하는 경우에도 설계 오류가 수정된 설계 검증 대상 회로를 다시 구현하기 위해서는 짧게는 수 시간에서 길게는 수십 시간까지의 재-컴파일 과정이 반드시 필요하여 설계 검증 전체 시간을 크게 증가시키게 된다.
그러나, 본 특허에서 제시되는 설계 검증 방법을 사용하게 되면 이와 같은 문제들을 효과적으로 해결하여 빠른 시간 내에 최소의 노력을 들여서 설계 검증을 수행하는 것이 가능하다. 즉, 이미 언급된 대로 설계 검증 대상 회로나 설계 검증대상 HDL 코드에 탐침용 부가회로나 탐침용 부가 HDL 코드를 부가한 확장된 설계검증 대상 회로나 확장된 설계 검증 대상 HDL 코드를 이용하여 에뮬레이션과 시뮬레이션을 시간적으로 그리고 공간적으로 체계적이며 자동화된 방식 하에서 빠르게 온라인과 오프라인 방식을 혼용하여 설계 검증을 수행하는 경우에는 설계 초기 단계에서부터 테스트 벤치를 설계자가 수작업으로 생성할 필요 없이 실제 환경인 ICE 환경에서 실제적으로 연출된 것들을 그대로 이용하는 것이 가능해져서 훨씬 적은 시간과 비용을 들이고도 훨씬 신뢰성이 높은 설계 검증이 가능해진다. 이 뿐만 아니라, 설계 검증이 진행되어감에 따라서 설계 검증 대상 회로의 부분들을 수행 시간이 오래 걸리는 시뮬레이션을 이용하는 대신에 이들 설계 검증 대상 회로의 부분들을 상기 칩들에 점진적으로(incrementally) 구현시켜 시뮬레이터와 함께 수행시킴으로서 에뮬레이션과 시뮬레이션의 공간적 혼용에 의한 수행 속도의 향상을 얻는 것도 가능하게 되고, 궁극적으로는 설계 검증 대상 회로를 전부 칩들에 구현함으로서 에뮬레이션에 의한 초고속의 수행 속도를 얻을 수 있다. 뿐만 아니라 다른 방법들과는 달리 본 특허에서 제시되는 에뮬레이션 방법은 탐침용 부가회로가 부가된 확장된 설계 검증 대상 회로를 이용함으로서 에뮬레이션 도중에서도 설계 검증 대상 회로에 존재하는 모든 신호선들에 대한 완벽한 가시도(visibility)를 가지고 있다는 것도 중요한 장점이다.
또한 상기에서 제시된 방법은 설계 검증 초기 단계에서는 설계 검증 대상 회로 전체에 대한 완전 시뮬레이션으로 시작하여, 설계 검증이 진행되어감에 따라서 설계 검증 대상 회로의 일부분을 위해서는 시뮬레이션과 나머지 부분에 대해서는 에뮬레이션을 혼용하게 되고, 궁극적으로는 설계 검증 대상 회로 전체에 대한 완전에뮬레이션으로 설계 검증을 하는 방법인데 반하여, 이를 역순으로 진행시키는 것도 가능하다. 즉, 설계 검증 초기 단계에서부터 초고속의 수행 속도를 얻는 것이 필요하면 설계 검증 대상 회로 전체를 프로토타이핑에 의한 설계 검증을 하기 위하여 1이상의 프로그래밍가능 소자로 구현하여 에뮬레이션을 수행하고 설계 오류들이 발견되는 경우에는 상기 칩들에 설계 오류를 제거한 새로운 설계 검증 대상 회로 전체를 다시 구현하는 것 대신에 설계 오류들을 가진 HDL 코드 블록들만을 수정시켜 이들 수정된 HDL 코드 블록들은 시뮬레이션으로 수행시키고 나머지 부분들을 계속 에뮬레이션으로 수행시키는 것도 가능하다.
이제부터는 이상과 같은 에뮬레이션과 시뮬레이션을 공간적으로 혼용하여 수행시키는 방법을 좀 더 자세하게 설명하기로 하며, 이를 위하여 도4 를 이용하기로 한다. 도4 는 설계 검증 대상 회로 전체가 시뮬레이션으로 수행되는 상황의 일 예를 개략적으로 도시한 도면으로, 이미 언급한 대로 이와 같은 방식의 장점은 설계 검증 대상 회로의 시뮬레이션을 위하여 설계자가 별도의 테스트 벤치를 생성하지 않고 ICE 방식으로 실제 환경에서 일어나는 상황을 테스트 벤치로 이용할 수 있음으로 신뢰성 있는 검증을 효과적으로 할 수 있다는 것이다. 이를 위하여 시뮬레이션으로 수행되는 설계 검증 대상 회로뿐만 아니라 ICE 환경을 형성하는 실제의 주변환경까지도 설계검증 시스템소프트웨어가 완전히 제어하며 수행할 수 있어야만 한다 (즉, 본 특허에서의 설계검증 방법에서는 시뮬레이터뿐만 아니라 ICE 환경까지도 설계검증 시스템소프트웨어가 완벽하게 제어하게 된다. 이와 같은 의미에서 본 특허에서의 에뮬레이션은 시뮬레이션가속과 차이가 없음).
도5 는 도4 에서 시뮬레이션으로 수행되었던 설계 검증 대상 회로의 일부분이 시뮬레이션으로 수행되는 동시에 다른 나머지 부분은 에뮬레이션으로 수행되는 상황의 일 예를 개략적으로 도시한 도면으로, 이미 언급한 대로 이와 같은 방식의 장점은 설계 검증 초기에서는 설계 검증 대상회로의 대부분이 시뮬레이션으로 수행하다가 설계 검증이 진행되어감에 따라서 점차적으로 설계 검증 대상 회로의 많은 부분이 에뮬레이션으로 수행되어지게 함으로서 검증 수행 속도를 크게 높일 수 있거나, 혹은 반대로 설계 검증 초기에서는 설계검증 대상 회로의 대부분을 에뮬레이션으로 수행하다가 설계 오류가 발견된 회로부분들만을 체계적이며 자동화된 방식을 채용하여 순간적으로 시뮬레이션으로 수행하게 함으로서 빠른 검증 수행 속도와 실행 및 디버깅을 위한 준비과정을 크게 단축시킬 수 있다는 것이다. 이를 위하여서도 시뮬레이션으로 수행되는 설계 검증 대상 부분 회로뿐만 아니라 ICE 환경을 형성하는 실제의 주변환경과 에뮬레이션으로 수행되는 설계 검증 대상 나머지 부분 회로까지도 설계검증 시스템소프트웨어가 완전히 제어하며 수행할 수 있어야만 한다. 이를 위하여 본 발명에서는 시스템 클럭을 설계검증 인터페이스 모듈에서 생성하여 ICE 환경에 공급할 뿐만 아니라 시뮬레이션에 공급되는 시뮬레이션 클럭도 상기 시스템 클럭의 제어 하에서 해당 시뮬레이터로 공급되어진다.
특히 이와 같은 입출력 탐침 방법을 이용한 점진적 프로토타이핑 기법을 채용하는 경우에 최근 들어 Xilinx나 Altera와 같은 FPGA 벤더들이나 Synopsys나 Synplicity, Mentor Graphics와 같은 EDA 툴 벤더들이 제공하는 점진적 설계(incremental design) 기법(혹은 modular design 방식이라고도 함)을 채용한 설계 툴들을 같이 사용하게 되면 해당 FPGA 칩에 한번에 설계 검증 대상 회로 전체를 구현하는 대신에 특정 시점에서 원하는 설계 검증 대상 회로 부분만을 선택적으로 빠르게 구현하는 것이 가능하고, 이로 인하여 설계 검증 대상 회로를 모듈별로 나누어서 모듈을 하나 이상씩 선택하여 점진적으로 FPGA 칩에 구현시킴으로 다른 모듈들과의 상관 관계를 최소화하면서 해당 모듈들의 수행 방식을 시뮬레이션에서 에뮬레이션으로 빠른 시간 내에 전환시키는 것도 가능하다.
또한 본 설계 검증 방법은 기 출원된 "신속한 입출력탐침 장치 및 이를 이용한 입출력탐침 방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션 방법"(PCT 출원번호: PCT/KR01/01092)과 마찬가지로 에뮬레이션 시에도 시뮬레이션을 통하여 임의의 프로토타이핑 보드나 임의의 PCB 상의 1 이상의 RFPD에 구현된 설계검증 대상회로에서 출력탐침을 통하여 탐침될 수 있는 신호선들 뿐만 아니라, 이외의 나머지 신호선들 모두에 대하여 RFPD의 재 컴파일(re-compile) 과정이 없이도 100% 탐침이 가능하게 된다. 이와 같은 재 컴파일 과정을 최대한으로 생략시키는 것이 디버깅 과정에서 극히 중요한 이유는 최근의 수백만 게이트급의 RFPD를 컴파일하는 시간이 짧게는 수십분에서 길게는 수시간까지 필요하기 때문이다. 따라서 RFPD에 구현된 회로에 대한 디버깅 과정에서 제일 중요한 것 중의 하나는 상기 RFPD에 대한 재 컴파일을 최대한도로 억제함으로서 신속한 디버깅이 가능하게 하는 것이다. 상기 시뮬레이션과 에뮬레이션을 같이 이용하여 설계검증을 수행하면 이와 같은 RFPD에 대한 재 컴파일 과정 없이도 디버깅 과정에서 반드시 필요한 설계검증 대상회로에 존재하는 모든 신호선들에 대한 100% 가시성(visibility)이 에뮬레이션 도중에서도 완벽하게 마련되어 진다는 것이 본 점진적 설계 검증 방법의 또다른 장점이다.
상기 목적 외에 본 발명의 다른 목적 및 이점들은 첨부한 도면을 참조한 실시예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 본 발명의 실시예를 첨부한 도면을 참조하여 설명하기로 한다.
도1 은, 서버용 컴퓨터에서 운영되는 설계검증 시스템소프트웨어와 시뮬레이터와, 설계검증 인터페이스 모듈로 구성된 본 발명에 관한 설계 검증 장치를 개략적으로 도시한 도면이다.
도2 는 출력탐침 부가회로를 설계 검증 대상 회로에 부가한 일 예를 개략적으로 도시하는 도면이며, 도3 은 입력탐침 부가회로를 설계 검증 대상회로에 부가한 일 예를 개략적으로 도시하는 도면이다.
이와 같이 설계검증 대상회로에 탐침용 부가회로가 부가되어져서 생성된 확장된 설계검증 대상회로는 임의의 프로토타이핑 보드나 임의의 PCB 상의 1이상의 RFPD에 구현되고, 프로토타이핑 보드를 실행시켜 에뮬레이션 기반의 검증을 수행하는 과정에서 특정 시점이나 특정 상황이 발생한 시점에서 시뮬레이션으로의 전환이 필요한 경우에 설계검증 시스템소프트웨어가 이를 감지하여 에뮬레이션의 수행을 중지하고 설계검증 시스템소프트웨어의 제어 하에 해당 1이상의 RFPD가 정상모드에서 출력탐침 모드로 전환되어진 후 탐침클럭이 RFPD에 가해지면 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 출력에 연결된 1이상의 출력탐침선을 통하여 탐침대상이 되는 신호선들에서의 논리값들이 설계검증인터페이스 모듈을 통하여 서버용 컴퓨터로 전송된다. 그런데, 입출력탐침 시점은 에뮬레이션 수행 전에 정적으로(statically) 결정될 수 있고, 에뮬레이션 수행 도중에 특정 상황이 발생한 시점과 같이 동적으로(dynamically) 결정될 수 있는데 특정 상황이 발생한 시점과 같은 에뮬레이션의 상황에 종속작인 입출력탐침 시점을 결정하기 위해서는 로직분석기(logic analyzer)와 같은 외부장비를 사용하여 이를 관측하고 입출력탐침 시점을 결정할 수 있으며, 또는 RFPD 내부에 동작 상황을 검출하는 입출력탐침시점 검출기(detector) 회로를 추가적으로 부가함으로써 입출력탐침 상황을 출력시키고 이를 설계검증 시스템소프트웨어가 감지하여 입출력탐침을 시작할 수도있다. RFPD 내부에 상기 입출력탐침시점 검출기 회로를 탐침용 부가회로와 더불어 추가적으로 설계검증 대상회로에 부가하는 경우에는 이의 자동적인 생성과 부가도 또한 설계검증 시스템소프트웨어가 담당하게 된다.
입력탐침의 경우에는 설계검증 시스템소프트웨어가 프로토타이핑 보드 상의 해당 1이상의 RFPD에 대한 입력탐침용 데이터를 생성한 다음, 설계검증 시스템소프트웨어의 제어 하에 동작모드를 입력탐침 모드로 전환하고 난 후, 탐침클럭이 RFPD에 가해지면서 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 하나의 플립플롭의 입력에 논리적으로 연결된 1 이상의 입력탐침선을 통하여 서버용 컴퓨터로부터 설계검증 인터페이스 모듈을 통하여 전송된 입력탐침용 데이터가 1 이상의 쉬프트레지스터 어레이 구조 각각에 존재하는 플립플롭들에 저장되고 이렇게 저장된 입력탐침용 데이터로써 최종적으로 입력탐침 대상이 메모리소자의 출력인 경우(레치의 경우에는 이를 플립플롭과 멀티플렉서를 이용하여 등가회로로 변환시킨 후에 적용하며, 이에 대한 자세한 설명은 PCT출원번호: PCT/KR01/01092를 참조함)에는 입력탐침대상 플립플롭들을 동기적(synchronous) 셋(set) 또는 리셋(reset) 동작, 혹은 비동기적(asynchronous) 셋 또는 리셋 동작에 이은 동기적 셋 또는 리셋 또는 비동기적 셋 또는 리셋 동작에 이은 동기적 디스에이블(disable) 동작으로 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 입력탐침이 이루어 질 수 있게 하고, 입력탐침 대상 신호선들이 조합회로의 출력이나 입력인 경우에는 입력탐침용 데이터들이 저장된 상기 쉬프트레지스터 어레이 구조 각각에 존재하는 플립플롭들의 출력 각각이 해당 입력탐침 대상 신호선들에 연결되도록 상기 쉬프트레지스터 어레이 구조 각각에 존재하는 플립플롭들의 출력에 있는 멀티플렉서의 선택입력을 제어하는 동작으로 임의의 프로토타이핑 보드나 임의의 PCB 상에 장착된 1이상의 RFPD에 입력탐침이 이루어 질 수 있게 한다.
도4 는 설계 검증 대상 회로 전체가 시뮬레이션으로 수행되는 상황의 일 예를 개략적으로 도시한 도면이며, 도5 는 설계 검증 대상 회로 일부분이 시뮬레이션으로 수행되는 동시에 다른 나머지 부분은 에뮬레이션으로 수행되는 상황의 일 예를 개략적으로 도시한 도면이다. 설계검증 대상회로 전체에서 시뮬레이션되는 설계검증 대상회로의 부분(92)은 설계오류의 원인 파악을 위해서 100% 가시도가 필요한 설계검증 대상회로의 부분이거나, 혹은 설계오류 등으로 인하여서 설계수정이 이루어진 설계검증 대상회로(이와 같이 설계수정이 이루어진 설계검증 대상회로를 시뮬레이션으로 수행하면 매우 짧은 컴파일시간 후에 시뮬레이션 수행이 가능함)의 부분일 수 있다.
상술한 바와 같이, 본 발명에 따른 설계 검증 장치 및 이를 이용한 설계 검증 방법의 목적은 초대규모급 설계 검증을 위한 하드웨어 적으로 구현된 대규모 디지털 시스템의 에뮬레이션과 시뮬레이션을 혼용하는 설계검증을 수행하여 설계검증 대상회로의 규모가 시뮬레이션의 한계를 넘어가는 경우에도 상기 에뮬레이션과 시뮬레이션을 혼용한 설계검증 방법을 적용하여 신속하게 설계검증을 가능하도록 한다. 구체적으로는, 설계 오류들을 신속하게 발견하도록 하는 것을 가능하게 할뿐만 아니라, 이들 발견된 설계 오류들을 신속하게 수정하도록 하는 것도 가능하다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (9)

  1. 임의의 프로토타이핑 보드 또는 임의의 PCB 상에 장착된 1이상의 프로그래밍가능 소자에 구현되는 설계검증 대상HDL코드를 위한 탐침용 부가회로를 설계검증 대상HDL코드에 부가하여서, 상기 설계검증 대상HDL코드에 존재하는 1 이상의 특정 신호선들에 대하여 입출력탐침이 가능하게 하는 단계와,
    상기 1이상의 프로그래밍가능 소자에 상기 설계검증 대상HDL코드의 1 이상의 특정 신호선들에 대한 입출력탐침이 가능한 회로가 구현되고, 설계검증 대상HDL코드가 에뮬레이션으로 수행되는 단계와,
    상기 설계검증 대상HDL코드의 일부분을 시뮬레이터에서 시뮬레이션으로도 수행이 되도록 하는 단계와,
    상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드가 에뮬레이션으로 수행되는 과정 중의 1 이상의 임의의 시점에서 상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드에 존재하는 상기 1 이상의 특정 신호선들에 대한 입출력탐침을 수행함으로 인하여, 상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드가 에뮬레이션으로 수행되는 것과 상기 설계검증 대상HDL코드의 일부분이 시뮬레이션으로 수행되는 것이 상기 입출력탐침을 통하여 동시 수행되도록 하는 단계를 통하여,
    수행 과정에서 설계검증 대상HDL코드의 상기 일부분에 대한 가시도를 얻을 수 있도록 하는 설계검증 방법.
  2. 임의의 프로토타이핑 보드 또는 임의의 PCB 상에 장착된 1이상의 프로그래밍가능 소자에 구현되는 설계검증 대상HDL코드를 위한 탐침용 부가회로를 설계검증 대상HDL코드에 부가하여서 설계검증 대상HDL코드에 존재하는 1 이상의 특정 신호선들에 대하여 입출력탐침이 가능하게 하는 단계와,
    상기 1이상의 프로그래밍가능 소자에 상기 설계검증 대상HDL코드의 1 이상의 특정 신호선들에 대한 입출력탐침이 가능한 회로가 구현되고, 설계검증 대상HDL코드가 에뮬레이션으로 수행되는 단계와,
    에뮬레이션으로 수행된 상기 설계검증 대상HDL코드의 일부분에 대한 수정을 진행하는 단계와,
    상기 수정된 설계검증 대상HDL코드의 상기 일부분을 시뮬레이터에서 시뮬레이션으로 수행이 되도록 하는 단계와,
    상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드에 존재하는 상기 1 이상의 특정 신호선들에 대한 입출력탐침이 가능한 회로가 에뮬레이션으로 수행되는 과정 중의 1 이상의 임의의 시점에서 상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드의 상기 일부분에 대한 입출력탐침을 수행함으로 인하여, 상기 1이상의 프로그래밍가능 소자에 구현된 설계검증 대상HDL코드가 에뮬레이션으로 수행되는 것과 상기 수정된 설계검증 대상HDL코드의 상기 일부분이 시뮬레이션으로 수행되는 것이 상기 입출력탐침을 통하여 동시 수행되도록 하는 단계를 통하여서,
    상기 수정된 설계검증 대상HDL코드의 상기 일부분을 상기 1이상의 프로그래밍가능 소자에 재구현하지 않고서 에뮬레이션과 시뮬레이션 동시 실행을 가능하도록 하는 설계검증 방법.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
KR1020020038088A 2001-09-14 2002-06-26 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법 KR100794916B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20010057742 2001-09-14
KR1020010057742 2001-09-14

Publications (2)

Publication Number Publication Date
KR20030023465A KR20030023465A (ko) 2003-03-19
KR100794916B1 true KR100794916B1 (ko) 2008-01-14

Family

ID=27724590

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020020038088A KR100794916B1 (ko) 2001-09-14 2002-06-26 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
KR1020020052369A KR100767957B1 (ko) 2001-09-14 2002-08-28 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 방법
KR1020040017476A KR20040063845A (ko) 2001-09-14 2004-03-09 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR1020040019066A KR20040063846A (ko) 2001-09-14 2004-03-16 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020020052369A KR100767957B1 (ko) 2001-09-14 2002-08-28 에뮬레이션과 시뮬레이션 정식검증을 혼용한 설계 검증 방법
KR1020040017476A KR20040063845A (ko) 2001-09-14 2004-03-09 검증 성능을 높이는 시뮬레이션 기반의 검증 장치 및 이를이용한 시뮬레이션 방법
KR1020040019066A KR20040063846A (ko) 2001-09-14 2004-03-16 다양한 검증 플랫폼들의 통합 사용을 지원하는 검증 장치및 이를 이용한 검증 방법

Country Status (1)

Country Link
KR (4) KR100794916B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US7213216B2 (en) 2002-08-09 2007-05-01 Synplicity, Inc. Method and system for debugging using replicated logic and trigger logic
US6904576B2 (en) 2002-08-09 2005-06-07 Synplicity, Inc. Method and system for debugging using replicated logic
WO2005078584A1 (en) * 2003-12-16 2005-08-25 Logic Mill Technology, Llc Performance improvement apparatus for hardware-assisted verification using massive memory and compilation avoidance and its verification method using the same
KR100800412B1 (ko) * 2005-10-10 2008-02-01 부산대학교 산학협력단 전자시스템수준 설계 방식에서의 효과적인 설계 검증 장치및 이를 이용한 검증 방법
US7908574B2 (en) 2007-05-09 2011-03-15 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7984400B2 (en) 2007-05-09 2011-07-19 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7904859B2 (en) 2007-05-09 2011-03-08 Synopsys, Inc. Method and apparatus for determining a phase relationship between asynchronous clock signals
US8756557B2 (en) 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
KR100930089B1 (ko) * 2009-02-27 2009-12-07 주식회사 지노스 설계 검증 장치 및 방법
KR100916635B1 (ko) * 2009-02-27 2009-09-08 주식회사 지노스 표준 설계 정보 관리 시스템 및 방법
KR100929551B1 (ko) * 2009-02-27 2009-12-03 주식회사 지노스 설계 검증 장치 및 방법
CN110632857B (zh) * 2019-09-25 2022-05-17 中国工程物理研究院计算机应用研究所 用于大规模层次化控制***的控制性能验证方法
KR102545302B1 (ko) * 2022-10-07 2023-06-20 인하대학교 산학협력단 Cmos 기반 디지털 회로의 설계 및 검증 과정 자동화 프레임워크

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980032933A (ko) * 1996-10-17 1998-07-25 레이몬드 케이. 오스트비 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치
KR20010013191A (ko) * 1997-05-30 2001-02-26 퀵턴 디자인 시스템즈, 인크. 하드웨어 논리 에뮬레이션 시스템에서 사용되는 분포 논리분석기

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980032933A (ko) * 1996-10-17 1998-07-25 레이몬드 케이. 오스트비 에뮬레이션 및 시뮬레이션을 이용한 설계 검증 방법 및 장치
KR20010013191A (ko) * 1997-05-30 2001-02-26 퀵턴 디자인 시스템즈, 인크. 하드웨어 논리 에뮬레이션 시스템에서 사용되는 분포 논리분석기

Also Published As

Publication number Publication date
KR20040063845A (ko) 2004-07-14
KR20030023485A (ko) 2003-03-19
KR20030023465A (ko) 2003-03-19
KR20040063846A (ko) 2004-07-14
KR100767957B1 (ko) 2007-10-17

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
Riesgo et al. Design methodologies based on hardware description languages
KR100921314B1 (ko) 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
US7478346B2 (en) Debugging system for gate level IC designs
KR100483876B1 (ko) 반도체 집적 회로 설계 및 검증 시스템
CN113255267B (zh) 使用现场可编程门阵列fpga重新编程检测仿真中的时序违规
KR100794916B1 (ko) 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
KR20000029237A (ko) 반도체 집적 회로 평가 시스템
US7055118B1 (en) Scan chain verification using symbolic simulation
KR20040007463A (ko) 로직 시뮬레이션을 이용하지 않는 복잡한 ic의 설계검증을 위한 방법 및 장치
WO2022251267A1 (en) Testable time-to-digital converter
KR100812938B1 (ko) 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법
KR100710972B1 (ko) 혼합된 에뮬레이션과 시뮬레이션이 가능한 혼합 검증 장치및 이를 이용한 혼합 검증 방법
KR100824503B1 (ko) 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법
US20080250378A1 (en) Circuit emulation and debugging method
KR20060066634A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
Schirrmeister et al. Hardware-assisted verification and software development
Siripokarpirom et al. Hardware-assisted simulation and evaluation of IP cores using FPGA-based rapid prototyping boards
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
KR20050059985A (ko) 대용량메모리와 컴파일 회피를 이용한 하드웨어기반검증의 성능 향상 장치 및 이를 이용한 설계 검증 방법
Riesgo et al. Design process based on hardware description languages
Tessier Rethinking Your Verification Strategies for Multimillion-Gate FPGAs
KR20070108303A (ko) 체계적 점진적 구체화를 통한 전자시스템수준에서부터게이트수준까지의 검증 방법
KR20010015053A (ko) 신속한 입출력탐침 장치 및 이를 이용한 입출력탐침방법과 이를 기반으로 하는 혼합 에뮬레이션/시뮬레이션방법
Frearson The T9 transputer: A practical example of the application of standard test techniques

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120103

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee