KR20030028541A - 혼합 신호 시뮬레이션 - Google Patents

혼합 신호 시뮬레이션 Download PDF

Info

Publication number
KR20030028541A
KR20030028541A KR10-2003-7000074A KR20037000074A KR20030028541A KR 20030028541 A KR20030028541 A KR 20030028541A KR 20037000074 A KR20037000074 A KR 20037000074A KR 20030028541 A KR20030028541 A KR 20030028541A
Authority
KR
South Korea
Prior art keywords
digital
analog
simulation
mixed signal
database
Prior art date
Application number
KR10-2003-7000074A
Other languages
English (en)
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 KR20030028541A publication Critical patent/KR20030028541A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Abstract

본 발명은 아날로그 및 디지털 혼합 모드 시뮬레이션용 시스템 및 방법을 개시한다. 이 시스템 및 방법은 디지털 보조시스템, 아날로그 회로 및 혼합 신호 인터페이스 부품을 기술한 하나 또는 복수의 하드웨어 기술 언어(HDL)로 코딩된 아날로그 혼합 신호(AMS) 시스템(300)을 시뮬레이팅한다. 그 시스템은 어떤 표준화되고 특정된 타입의 어플리케이션 프로그램 인터페이스(API)로 불리는 HDL 프로그래밍 언어 인터페이스(PLI 305)를 이용하여 AMS 회로들을 구현하고 시뮬레이팅한다. 바람직한 실시예에 있어서, 그 시스템 및 방법은 인기있는 Verilog-AMS HDL 및 레거시 스파이스 HDL들로 코딩된 시스템을 시뮬레이팅한다. PLI의 이용하면 AMS 시뮬레이션을 많이 간소화하고 개선할 수 있다. 왜나하면, PLI를 이용하여 구현된 혼합 모드 엔진이 디지털 엔진용으로 일반적으로 이용가능한 디지털 시뮬레이터 및 아날로그 엔진용으로 일반적으로 이용할 수 있는 아날로그 솔버를 기동하기 때문이다. 그 시스템 및 방법은 단일 커널 AMS 시뮬레이션의 정확도와 제조 용이성 및 데이터 교환 AMS 시뮬레이션의 유연성을 결합한다.

Description

혼합 신호 시뮬레이션{MIXED SIGNAL SIMULATION}
가전 제품의 인기는 아날로그 보조 시스템과 디지털 보조 시스템을 결합하는 대형 전자 시스템에 이르게 되었다. 이 대형 전자 시스템들은 SoC(system on achip)로 불리는 하나의 집적 회로(IC)만을 이용하여 흔히 구현된다. 이러한 인기있는 가전 제품은 IC 소자 용량의 증가가 수반되기 때문에, 아날로그 혼합 신호(AMS) 회로를 자동으로 검증할 필요가 있다.
Ⅰ종래의 AMS 시뮬레이션 방법
복수의 AMS 시스템 검증 방법들(표준 관례에 따라, 혼합 신호, 혼합 모드 및 약어 AMS란 용어는 호환성 있게 이용된다)에는 아날로그 회로들을 디지털 부품으로 바꾸거나 디지털 부품을 아날로그 회로들로 바꿈으로서 혼합 신호 시뮬레이션 문제를 해결하기 위한 시도가 개시되어 있다. 이러한 방법들은 디지털 또는 아날로그 모델링 정확도가 떨어지거나 아날로그 대 디지털(A 대 D) 및 디지털 대 아날로그(D 대 A) 인터페이스들이 전혀 모델링되지 않기 때문에, 진부한 것이다.
후속하는 미국 특허들은 아날로그 AMS 시뮬레이션 방법으로부터 디지털 AMS 시뮬레이션 방법으로 바꾼 것을 개시한다. 미국 특허 제5,297,066호는 발명의 명칭이"아날로그/디지털 회로의 디지털 회로 시뮬레이션"이며, 디지털 기간에 아날로그 부품들을 규정하는 셀 라이브러리를 이용하여 아날로그 부품들을 시뮬레이팅한다. 아날로그 값들은 모든 가능한 전압 레벨을 제공하는 디지털 비트 백터로서 나타내어 진다. 이 방법은 아날로그 회로 방정식들을 풀수 없기 때문에 아날로그 모델을 간소화한 것에 불과하다. 미국 특허 제5,105,373호는 발명의 명칭이 " 아날로그 및 디지털 회로 부품을 구비한 회로의 동작을 시뮬레이팅하는 방법"이며, 개별 컴퓨터 코드(기능)를 이용하여 회로의 아날로그 부분을 시뮬레이팅하는 방법을 정의한다. 디지털 시뮬레이터는 이러한 기능들을 불러낸다. 그 절차들은 테이블이나 전달 함수를 이용하여 아날로그 부품들을 모델링하지만, 아날로그 모델링은 정확하지 않다. 미국 특허 제5,991,522호는 발명의 명칭이 " 시뮬레이션용 회로 변환 방법 및 장치, 이들을 이용하는 시뮬레이터, 및 프로그램을 내장한 컴퓨터 판독 가능한 매체"이며, 아날로그 부품들을 디지털용 시뮬레이션에 적합한 회로로 변환하는 변환 방법을 개시한다.
Ⅱ 현재의 AMS 검증 방법
가장 일반적인 AMS 시스템 검증 방법은 디지털 및 아날로그 보조 시스템을 개별적으로 검증하기 위하여 동작한다. 이 디지털 부품 및 아날로그 부품은 개별적으로 모델링된 다음, 무계획적으로 결합되어 혼합 신호 시뮬레이션을 완성한다. 아날로그 대 디지털 인터페이스, 디지털 대 아날로그 인터페이스 및 전력 또는 전기적인 상호 작용에 관한 부정확한 가정으로 인하여 별도의 시간이 소모되고 값비싼 설계를 반복해야 할 필요성이 생긴다. 따라서, 이 방법은 본질적인 혼합 신호 검증 방법이 아니다.
보다 새로운 신호 검증 방법은 시뮬레이션을 이용하여 AMS 시스템을 검증하는 것이다. 가장 인기있는 2개의 AMS 시뮬레이션 방법들에는, 1. 단일 커널 AMS 시뮬레이션 및 2. 혼합 신호 데이터 교환을 포함하는 개별 디지털 및 아날로그 시뮬레이션이 있다.
Ⅱ A. 단일 커널 AMS 시뮬레이션
단일 커널 방법에 있어서, AMS 시뮬레이터는 스크래치(scratch)로부터 기록되거나, 디지털 시뮬레이션 소스 코드 및 아날로그 시뮬레이션 소스 코드로 기동시켜 이들 소스 코드를 통합된 혼합 모드 시뮬레이터에 재기록함으로써 기록된다. 이 시뮬레이터는 아날로그 정보 및 디지털 정보를 모두 저장하는 공통 회로 정보 데이터베이스를 이용한다. 아날로그 대 디지털(A 대 D) 변환 및 디지털 대 아날로그(D 대 A) 변환 등의 혼합 신호 인터페이스들은 공통 회로 데이터 베이스를 이용하여 구현되고, 하나의 시뮬레이션 커널에 완벽하게 통합된다. 단일 커널 방법은 일반적으로 하위의 순수 디지털 및 순수 아날로그 시뮬레이션을 하는 하나의 AMS 시뮬레이터에 기인하는데, 그 이유는 각종의 시뮬레이터를 개발하는데는 여러해가 걸리기 때문이다. 그러나, 단일 커널 방법은 일반적으로 디지털 및 아날로그 시뮬레이션 검퓨터 프로그램 루틴들이 완벽하게 결합되기 때문에 매우 양호한 혼합 신호 모델링 능력을 갖는다. 단일 커널 방법의 기타 단점들은 디지털 대 아날로그 시뮬레이션에 대하여 저장되어야 하는 정보 유형의 커다란 차이로 인하여 발생한다. 디지털 정보는 이산적이고 작은 정수 또는 비트로 기억되는 반면, 아날로그 정보는 일반적으로 다차원 매트릭스로 기억되는 실수값으로 나타내어 진다.
후속하는 미국 특허들은 단일 커널 시뮬레이션과 관련된 방법들을 개시한다. 미국 특허 제4,985,860호는 발명의 명칭이 " 혼합 모드 시뮬레이터 인터페이스"이며, 필요할 때 아날로그 시간을 롤백(roll back)하는 디지털 시간 및 아날로그 파형들을 동기시키는 방법을 정의한다. 미국 특허 제4,985,860호는 AMS 시뮬레이터가 있다고 가정하여, 시간을 동기시키는 방법만을 개시한다. 미국 특허 제5,394,346호는 발명의 명칭이 " 고레벨 매크로 모델을 이용하여 아날로그 및 디지털을 포함하는 전자 시스템의 시뮬레이션"이며, 이 방법은 아날로그 소자들을 고레벨 아날로그매크로에 의해 모델링하고, 디지털 소자들을 고레벨 디지털 매크로에 의해 모델링하는 단일 커널 시뮬레이션 방법을 개시하고 있다. 이 매크로들은 레이아웃 데이터를 추출하여 테이블 또는 아날로그 전달 함수로 변환함으로써 만들어진다. 아날로그 회로들은 단지 주파수 영역에서만 모델링되고, 부정확한 반복 근사법을 이용하여 시뮬레이트되지만, 그 정확도는 아날로그 소자들을 디지털 회로 구성부품으로 바꾼 시뮬레이터들보다 좋다. 시뮬레이션은 단일 커널이다. 왜냐하면, 그 회로 특성들을 반복하여 추출하여, 그 반복 근사값을 만드는 다른 고레벨 매크로에 대한 입력으로서 이용되기 때문이다. 그 다음에, 그 근사값의 결과를 이용하여 회로 특성들을 다시 추출한다. 미국 특허 제5,394,346호에는 일반적인 혼합 신호 시뮬레이션 방법을 개시하지 않았다.
Ⅱ B. 데이터 교환 AMS 시뮬레이션
데이터 교환 방법으로서 분리된 디지털 및 아날로그 시뮬레이션에 있어서, 표준화된 아날로그 및 디지털 시뮬레이터들은 독립 운용 체계 모드(stand alone mode)에 이용된다. AMS 시뮬레이션은 디지털 시뮬레이터로부터 아날로그 시뮬레이터로 실수값으로 변환된 개별 시뮬레이션 결과들을 전송하고, 논리 레벨로 변환된 전압 레벨 등의 아날로그 실수값을 디지털 시뮬레이터로 전송함으로써 수행된다. 컴퓨터 운용 시스템에 의해 제공된 프로그램들 사이에 정보를 교환하는 후속하는 하나 이상의 방법들은 공유 파일, 파이프, 신호 장치, 공유 메모리, 스레드 실행 (thread execution) 및 원격 절차 호출에 이용된다.
이러한 데이터 교환 방법은 혼합 신호 시뮬레이션에 이용하기 위하여 최고의이용가능한 시뮬레이터들을 선택할 수 있기 때문에 양호한 디지털 및 양호한 아날로그 시뮬레이션을 행할 수 있다. 그러나, 데이터 교환 방법을 구비한 개별 시뮬레이션은 하위의 혼합 신호 인터페이스 검증을 제공한다. 아날로그 및 디지털 시뮬레이터들이 완벽하게 결합되지 않기 때문에, 정보 교환은 일반적으로 회로 경계 구성 요소(일반적으로 입력 포트 또는 출력 포트라고 칭함)에 국한되며, 시간 동기화는 조악하게 이루어진다. 완벽하게 결합되지 않으면 분리된 혼합 신호 시뮬레이션에 서는 2가지의 아주 심각한 한계를 나타낸다. 첫번째는 지금 표준화하고 있는 Verilog-AMS 또는 VHDL-AMS HDL 등의 하나의 유일한 하드웨어 기술 언어(HDL)를 이용하여 혼합 신호 시스템을 나타낼 수 없고, 두번째는 딥(deep) 서브 마이크론 회로 설계시에 발생하는 디지털 회로부와 아날로그 회로부사이의 미세한 상호 작용을 모델링할 수 없다는 것이다. 현대의 딥 서브 마이크론 회로에 대하여, 분리된 혼합 신호 시뮬레이션은 개별 순수 디지털 및 순수 아날로그 시뮬레이션보다 훨씬 좋은 것은 아니다. 최종적으로, 그 분리된 데이터 교환 방법에 의해서 자동으로 혼합 신호 인터페이스 소자를 삽입을 할 수 없는데, 그 이유는 디지털 시뮬레이터가 회로의 아날로그부를 전혀 모르고, 아날로그 시뮬레이터가 회로의 디지털부를 전혀 모르기 때문이다.
후속하는 미국 특허들은 데이터 교환 AMS 시뮬레이션 방법을 개시한다. 미국 특허 제4,792,913호는 발명의 명칭이 " 아날로그부 및 디지털부를 갖는 시스템용 시뮬레이터"이며, 아날로그 노드 값을 디지털 시뮬레이터로 전달하고, 디지털 신호 값을 아날로그 시뮬레이터로 전달하기 위하여 데이터 추출 및 파일 공유를 이용하는 방법을 개시한다. 미국 특허 제5,481,484호는 발명의 명칭이 "혼합 모드 시뮬레이션 방법 및 시뮬레이터"이고, 아날로그 및 디지털 시뮬레이션을 대안으로 실행하고, 그 아날로그 시뮬레이션에 이용되는 디지털 전류를 추출한다. 이 방법은 디지털 방식으로 분석된 회로부 전류 사용량을 추출함으로써 아날로그 회로 시뮬레이션 정확도를 개선하는 것이다. 또한, 아날로그 정보를 디지털 시뮬레이터로 전송하기 전에 변환하고, 디지털 정보를 아날로그 시뮬레이터로 전송하기 전에 변환하기 위해 컴퓨터 프로그램을 이용하여 데이터 교환을 개선한다. 그러나, 이 방법은 시뮬레이터를 실행하는 동안에 데이터 전송 및 동기화를 결정하는데에는 한계가 있다. 이 데이터 전송 및 동기화는 유저에 의해 코드화 되거나, 초기의 시뮬레이션 결과를 이용하여 동적으로 변경될 수 없다. 미국 특허 제5,822,567호는 발명의 명칭이"집적 회로를 시뮬레이팅하는 방법 및 장치"이며, 아날로그 회로 시뮬레이션을 회피할 때를 결정하는 제어기를 이용하여 디지털 및 아날로그 시뮬레이션의 개별 아날로그 부품의 속도를 가속하는 방법이다. 미국 특허 제5,822,567호의 단점은 제어기가 데이터 교환을 허용할 수 없는 한계가 있다는 것이다. 오히려, 제어기만이 각각의 디지털 및 아날로그 시뮬레이션의 인터리빙을 제어한다.
Ⅲ 디지털 시뮬레이션
디지털 설계 및 검증은 그 기술 분야 내에서는 명확하게 이해되고 자동화된다. 디지털 시스템은 Verilog(IEEE P1364 표준) 또는 VHDL(IEEE P1076 표준) 등의 표준화된 HDL을 이용하여 개시된다. 디지털 회로들은 소수의 이산값(신호 세기를 모델링하기 위한 값이 일반적으로 4 이지만 때때로 12 또는 128)을 이용하여 모델링된다. 디지털 동작은 고속 이벤트 구동 방법을 이용하여 모델링된다. 레벨화된 단위 지연 시뮬레이션, 사이클 기반 시뮬레이션 또는 하드웨어 가속 시뮬레이션 등의 다른 종류의 시뮬레이션도 때때로 이용된다. 디지털 동작의 의미는 광의적으로 이해되고 표준화된다. 디지털 시스템들은 네트 리스트(net list)를 이용하는 게이트 레벨 및 레지스터 전달 레벨(RTL : register transfer level) 기술 (description)을 이용하는 동작 레벨에서 기술된다.
Ⅳ 아날로그 시뮬레이션
SPICE 등의 아날로그 회로 시뮬레이터는 수십년 동안 아날로그 회로 설계 및 검증에 이용되었다. 아날로그 설계 및 검증은 디지털 설계 및 검증보다 이해의 범위가 적었다. 왜냐하면, 아날로그 시뮬레이션에는 트랜지스터 동작을 기술하는 한 세트의 미분 방정식의 해법이 필요하기 때문이다. 미분 방정식의 해법이 계산 집약적이기 때문에, 아날로그 시스템의 작은 부품만이 시뮬레이팅될 수 있다. 아날로그 설계자들은 다수의 작은 회로 시뮬레이터로부터 아날로그 시스템 동작을 추측해야 한다. 아날로그 시뮬레이션도 디지털 시뮬레이션보다 덜 표준화되고, 덜 자동화 된다. 왜냐하면, 많은 기법들로 회로 미분 방정식을 풀 수 있고, 많은 다른 아날로그 회로 특성들이 시뮬레이팅하는데 필요하기 때문이다. 가장 일반적인 이러한 특성들에는 전압, 전류 및 주파수가 있다.
아날로그 회로들은 또한 HDL을 이용하여 기술되었지만, 그 기술은 최근까지 로우 레벨 트랜지스터 소자 및 배선 상호 접속을 코딩하는데 국한되었다. 가장 인기있는 아날로그 HDL은 스파이스(SPICE)로 불린다. SPICE는 ["Spice 2 : AComputer Program to simulate Semiconductor Integrated Circuit", L.W.Nagel, UCB/ERL M520, May, 1975]에 의해 최초에 정의된 사실상의 표준이다. SPICE 회로에 있어서, 상호 접속은 전기 노드들인 본체들을 이용하여 코딩되고, 트랜지스터 동작은 제조 공정의 소정의 모델을 이용하여 코딩된다. 그 노드 및 공정 모델들은 미분 방정식들로 변환되고, 그 변환된 미분 방정식들의 세트를 풀어서 시뮬레이팅된다. 아날로그 회로 시뮬레이션은 실수값을 이용하여 전압 등의 노드 전기 특성을 기술하며, 그 실수값들은 오실로스코프 결과를 통하여 연속파로서 보여질 수 있다.
부분 미분 방정식의 해법 시스템이 시간 소모적이기 때문에, 디지털 부품(전달 함수)으로 다항식 보간 또는 전환 등의 다른 부정확한 시뮬레이션 방법들이 때때로 이용된다. 보다 새로운 HDL 코딩 및 시뮬레이션 방법은 아날로그 회로 동작을 직접 기술하는 미분 방정식을 정의하고 풀어서, 회로 노드로부터 미분 방정식으로 전환하는 단계를 없앤 아날로그 회로를 기술한다.
Ⅴ 혼합 신호 시뮬레이션
AMS 시스템 시뮬레이션 및 검증은 아날로그 검증보다 훨씬 덜 이해할 수 없게 자동화된다. 일반적으로, AMS 시뮬레이션의 혼합 신호 인터페이스부는 아날로그 전압 또는 전류를 이산 디지털 논리값으로 변환하는 방법(A 대 D로 불리는 소자들을 이용하는 아날로그 대 디지털 변환으로 불리는 프로세스) 및 이산 디지털 논리값을 아날로그 전압 또는 전류로 변환하는 방법(D 대 A로 불리는 소자를 이용하는 디지털 대 아날로그 변환으로 불리는 프로세스)을 정의한다. AMS 시뮬레이션의 혼합 신호부는 또한 아날로그 연속 시간 및 이산 눈금(tick) 디지털 시간을 동기화하는 방법을 정의한다.
Ⅵ 혼합 신호 HDL
최근에, 전체의 혼합 신호 설계를 코딩하는 HDL이 개발되었다. 이러한 언어들은 표준화 디지털 HDL에 부가하거나 강화함으로써 정의된다. 현재 가장 인기있는 AMS 언어는 Verilog-AMS 이다. 다른 AMS 언어는 VHDL-AMS 이다. 이 2가지 언어의 표준화는 현재 진행중이다. AMS HDL들은 다양한 새로운 구성을 디지털 HDL에 부가한다. 그 부가된 구성 중에는 방정식으로서 아날로그 회로부를 코딩하는 아날로그 블록과, 아날로그 회로 특성(특성들은 단지 키르히호프 법칙 등의 다음과 같은 기본 회로 특성만을 필요로 한다)의 유저 정의에 대하여 모델링할 수 있는 글로벌 신호 특성부[Veriog-AMS에서 성질 및 디서플린(discipline) 정의라 불림)와, 회로 전압 및 전류 노드를 나타내는 전압 및 전류 노드와, 노드들 사이의 접속을 기술하는 분기들이 있다(종래 기술의 도 1을 보아라, 예컨대, Verilog-AMS).
Verilog-AMS HDL의 경우에, 광범위한 성질 및 분야 이외에, AMS 추가는 디지털 HDL 인스턴스 트리 구조가 AMS HDL 내에 보존되도록 HDL 내에 정의된다. 일부의 AMS HDL들은 기타 HDL들을 포함하는 외래어 포함 구조(non-native language inclusion construct)(현재 AMS HDL 모델에서 SPICE 보조 회로를 포함하는데 1차적으로 이용됨) 등의 다른 추가를 정의한다. HDL은 또한 전원 노드 및 접지 노드를 모델링하기 위하여 글로벌 노드와, 광범위한 제조 공정과 관련된 변수들을 정의하기 위한 광범위한 변수들을 정의하는 구조를 포함할 수 있다. 다른 언어 섹션은 AMS HDL 모듈이 되고, 예컨대, 보조 시스템이 독립적으로 설계되고 검증될 수 있는HDL 인스턴스 구조를 보존한다.
Ⅶ HDL PLI 기술
HDL PLI에 의해 C 언어 등의 공통 프로그래밍 언어로 쓰여진 링킹 프로그램 (linking program)은 시뮬레이션을 개시하기 직전에 교정 HDL 시스템 모델로 링킹되는 하나 또는 복수의 객체 라이브러리로 컴파일된다. SPICE 시뮬레이션 엔진 등의 특정 프로그래밍 언어 코드는 PLI 프로그램에 포함될 수 있다. HDL 정의는 유저 PLI 프로그램들이 HDL 시뮬레이터와 상호 작용하기 위하여 호출하는 프로그램 언어 경로의 명칭, 기능 및 실제 변수들을 정의한다.
PLI API의 이점은 매우 상세하게 표준화되고 문서화됨으로써, 복수의 다른 PLI 프로그램들이 혼합 신호 시뮬레이션의 실행 등의 추가적인 기능을 기본 전자 시뮬레이터에 부가하기 위하여 개발될 수 있다. PLI들이 테이블 구동 프로그램 링킹 표준을 정의하기 때문에, 다른 조직은 PLI 표준화로 인하여 상호 동작할 PLI 확장을 개발할 수 있다. 컴퓨터 프로그램 코드는 공통 API들을 이용하기 때문에 재사용 가능하고, 표준화된 PLI 초기화 콜백 메커니즘 때문에 다른 PLI 어플리케이션과 간섭하지 않을 것이다.
본 발명의 시스템 및 방법에 있어서, 최종의 AMS 혼합 모드 시뮬레이션 프로그램은 하나 이상의 디지털 시뮬레이션 엔진, 하나 이상의 아날로그 시뮬레이션 엔진, 글루(glue) 컴퓨터 프로그램 코드에 따른 모든 혼합 모드 아날로그 대 디지털 변환기 (A 대 D) 루틴과 모든 혼합 모드 디지털 대 아날로그 변환기(D 대 A) 루틴을 함께 링킹한 결과이며, 이들 루틴은 PLI 루틴이라 불리며 본 출원의 "양호한 실시예" 섹션내에서 상세히 기술된다. 컴퓨터 프로그램 링킹은 종래 기술에서 잘 이해된다. 다양한 다른 컴퓨터 프로그램 및 루틴들을 실행가능한 프로그램에 링킹하는 많은 다른 방법들이 있다. 동적 링크 시스템을 이용하는 실행동안에 전체의 실행가능한 프로그램을 동적으로 로딩하기 위해, 링커를 이용하여 객체 모듈의 간단한 결합 범위를 링킹하는 방법들은 예컨대, dlopen, dlsym 등으로 불린다.
본 발명의 AMS 혼합 모드 시뮬레이션 프로그램 및 방법을 만드는 모든 다양한 프로그램 및 루틴들은 유저 PLI 프로그램을 링크할 수 있는 새로운 시뮬레이터 2진 프로그램을 통하여 바람직하게 링크되고, 즉 이후에 설명될 정상 디지털 시뮬레이션 엔진 + 부가된 혼합 모드 시뮬레이션 엔진의 모든 성능을 갖는다. 이러한 AMS 시뮬레이션 시스템 및 방법을 이해하기 위해서는 HDL PLI 작동 방법에 대한 종래 기술을 이해할 필요가 있다.
예컨대, Verilog에서는 루틴 vpi_register_cb를 이용하여 회선의 변경 등과 같은 특정 이벤트가 발생할 때 HDL 시뮬레이터에 의해 호출되는 유저 프로그램 기능(콜백이라 불림)을 등록한다. 한 개의 인수로서 cb_data 구조라 불리는 PLI 정의된 레코드를 갖는다. HDL PLI는 예컨대, 미들웨어(middle ware)가 컴퓨터 운용 시스템 및 전자 시뮬레이터에 이용될 수 있는 다른 API와 매우 비슷하다.
HDL PLI들은 적어도 5개의 기본 루틴 분류를 정의한다.
1. 콜백을 등록하는 루틴--
콜백에 의해 HDL 시뮬레이터는 특정 이벤트가 발생한 경우, 예컨대 1. 실행된 특정 시스템 태스크(도 1의 $p1i_memory_model), 2. 네트 또는 변수 변경(예컨대, 특정 순간 변화의 출력을 매시간 모니터하기 위함), 3. 시뮬레이션 관련된 이벤트가 발생(예컨대, 시뮬레이션 시간이 1000에 도달할 때)하면 유저 프로그램 루틴을 콜할 수 있다.
2. 값들을 액세스하는 루틴--
HDL 시스템 모델 값들은 값 액세스 루틴들을 이용하여 판독된다. Verilog에서, 그 루틴은 vpi_get_value이 콜된다. 이 루틴은 하나의 값을 갖는 특정 객체의 값을 판독한다. 예컨대, 그 루틴은 최근에 시스템 테스크가 복귀한 값(그 태스크가 액티브한 경우) 또는 복귀될 값(태스크가 액티브인 경우)을 판독할 수 있다.
3. 값들을 할당하는 루틴들--
HDL 시스템 모델 값들은 값 설정 루틴을 이용하여 기록된다. Verilog에서, 그 루틴은 vpi_put_value로 불려진다. 소정의 지연이 있은 후에 네트 및 레지스터에 정상적으로 값들이 기록된다.
4. HDL 구조로 액세스할 수 있는 루틴들--
HDL 소스 구조 액세스 루틴들은 HDL 회로 기술의 정확한 세부 사항을 결정할 수 있다. Verilog에서, 1 대 1 HDL 구조 액세스 루틴은 vpi_handle로 명명되고, 1 대 다수 액세스 루틴은 vpi_iterate로 명명된다. 예컨대, vpi_iterate를 이용하여 소정의 순간 동안에 모든 포트를 액세스한다. Vpi_handle를 이용하여 vpiLowConn로 칭해진 모듈 내측에 포트 접속 또는 vpiHighConn로 칭해진 포트에 인스턴스 접속을 액세스한다. 최고의 HDL은 PLI 액세스 루틴을 이용하여 HDL 소스 복구를 완료할 수 있다.
5. 지연을 판독 및 기록할 수 있는 루틴들 --
HDL 지연은 PLI 지연 루틴을 이용하여 판독 및 기록된다. Verilog에 있어서, 루틴 vpi_get_delays는 지연들을 판독하는데 이용되고, vpi_put_delays는 지연을 설정하는데 이용된다. PLI 지연 판독 및 기록은 시뮬레이션을 개시하기 전에 정상적으로 이용된다.
HDL 시뮬레이터에게는, 콜백 루틴의 소정의 테이블이 시뮬레이터 2진 객체 코드에 링크되는 경우에, 시뮬레이터가 실행을 개시할 때 판독하는 콜백 루틴의 소정의 테이블로 로딩 및 실행되어야 한다는 것을 알린다. PLI 루틴들이 존재하지 않는 경우, 그 소정의 테이블은 비어진다. HDL 시뮬레이션 동안에 많은 다른 PLI 프로그램들을 이용하는 경우에, 정상적으로 각 PLI 어플리케이션에 대한 소정의 테이블에서 콜백 루틴은 한 번 기동될 것이다.
Verilog PLI는 매뉴얼["IEEE, Std. 1364-1995 Verilog Hardware Description Language Reference Manual." IEEE Standards Board. Chap 17-23, IEEE; New York,1996]에 더욱 완벽하게 정의된다. 이 매뉴얼은 그 모든 내용이 본원에 인용된다.
본 출원은 2000년 7월 5일 출원되고, 발명의 명칭이 "PLI API를 이용하는 디지털 및 아날로그 혼합 신호 시뮬레이션" 인 미국 가출원 번호 제60/216,065호의 우선권을 주장하는 것이며, 본원에 참조용으로 포함된다.
본 발명은 일반적으로 시뮬레이션 방법 및 장치에 관한 것으로써, 특히 하드웨이 기술 언어(HDL : Hardware Description Language)로 코딩된 아날로그, 디지털 및 혼합 신호(AMS) 전자 시스템을 시뮬레이팅하는 방법에 관한 것이다. AMS 시뮬레이션은 흔히 혼합 모드 시뮬레이션으로 불린다. 본 발명은 또한 HDL 프로그래밍 언어 인터페이스(PLI)로 불리는 특정 소프트웨어 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 시뮬레이션 프로그램을 구현하는 영역에 관한 것이다. 보다 구체적으로 설명하면, 본 발명은 디지털 2진 논리 값 이벤트 구동 시뮬레이션 및 아날로그 미분 방정식 해법 회로 시뮬레이션을 조합한 영역에 관한 것이다. 본 발명의 시스템 및 방법은 전자 캐드(ECAD : electronic computer aided design) 분야에서 반도체 집적 회로들을 검증하는데 이용된다.
도 1은 Verilog-AMS HDL로 코딩된 혼합 신호 회로의 종래 기술을 도시하는 예시도.
도 2a 및 2b는 본 발명에 의해 가능하게 만들어진 혼합 신호 시스템 설계를 도시하는 흐름도.
도 3은 본 발명의 AMS 혼합 신호 시뮬레이션 시스템 및 방법을 개략적으로 도시하고, 아날로그, 디지털 및 혼합 신호 시뮬레이션 엔진들 사이의 관계를 도시하는 흐름도.
도 4는 디지털 및 아날로그 교정 단계들을 도시하는 흐름도.
도 5는 하나의 AMS HDL만을 이용하는 간단한 대안의 실시예의 교정을 도시하는 흐름도.
도 6은 디지털 및 아날로그 교정 후에 완성되는 AMS 인터페이스 교정 단계를 도시하는 흐름도.
도 7은 AMS 시뮬레이션 셋업 단계들을 도시하는 흐름도.
도 8은 PLI 제어형 AMS 시뮬레이션 단계들을 도시하는 흐름도.
도 9는 AMS 동기화 방법을 정의하는 Verilog-AMS LRM draft 1.5의 도시도.
도 10은 본 발명의 시스템 및 방법을 실현하는데 이용될 수 있는 컴퓨터 시스템의 일예에 대한 블록도.
본 발명은 하나 이상의 디지털 시뮬레이터와, 하나 이상의 아날로그 시뮬레이터와, 시뮬레이션을 제어하고 이산 디지털 시간을 연속 아날로그 시간으로 동기화하는 혼합 신호 컴퓨터 프로그램을 포함한다. 본 발명의 아날로그 혼합 신호 (AMS) 시뮬레이션 시스템 및 방법은 하드웨어 기술 언어(HDL)들로 코딩된 설계를시뮬레이팅하는데 이용된다. 본 발명에는 많은 공통으로 이용가능한 디지털 HDL 시뮬레이터 중 특정한 하나와 많은 공통으로 이용가능한 아날로그 HDL 시뮬레이터 중 특정한 하나를 결합하여 아날로그 혼합 신호 회로(정상적으로 AMS 회로라 칭함)를 시뮬레이팅하는 것이 개시된다. 본 발명의 시스템 및 방법은 AMS 시뮬레이션을 실행하기 위한 특정 종류의 어플리케이션 프로그래밍 언어 인터페이스(API)인 프로그래밍 언어 인터페이스(PLI)를 이용한다. 본 발명은 복합 멀티플 "엔진" 머신으로써 개념화될 수 있다. 이 디지털 시뮬레이션 엔진은 이산 디지털 이벤트 시뮬레이션을 실행한다. 아날로그 시뮬레이션 엔진은 회로 기술(circuit description) 미분 방정식을 푸는 것에 의해 아날로그 부품들을 시뮬레이팅한다. 혼합 신호 엔진은 데이터를 판독하고, 데이터를 기록하며, 변경 사항을 스케쥴링하고, 변경 사항을 모니터링하며, 이산 아날로그 시간과 이산 디지털 시간을 좌표로 나타냄으로써 다른 엔진들 사이의 인터페이스로서 작용한다.
모든 현대의 HDL에 대하여 PLI를 정의하기 때문에, 혼합 신호 엔진은 다양한 PLI API 라이브러리 루틴들에 콜하여 작용하는 컴퓨터 코드로 이루어진다. 본 발명은 유저 어플리케이션 특정 컴퓨터 절차가 시뮬레이션 컴퓨터 프로그램 객체 코드에 링크되어 어플리케이션 특정한 고급 시뮬레이션 프로그램(application specific enhanced simulation programs)을 발생할 수 있는 HDL용 표준 API에 의해 가능해질 수 있다. PLI들에 의해 혼합 신호 기능(혼합 신호 엔진)은 시뮬레이션 프로그램 개발로부터 개별적으로 개발될 수 있다. PLI들은 또한 시뮬레이터들이 디지털 및 아날로그 시뮬레이터들의 브랜드(brand)의 선택에 따라 혼합 및 정합될 수 있도록 공통으로 이용가능하고 일반적으로 표준화된다. 지금까지 널리 알려진 컴퓨터 프로그램 및 라이브러리 링킹을 이용하면, 그 개발의 결과는 여전히 AMS 시뮬레이션 발명을 구현하는 컴퓨터 프로그램이다.
본 발명의 시스템 및 방법은 디지털 이벤트 및 아날로그 회로 시뮬레이터들을 독립적으로 개발하고 선택할 수 있다. 본 발명은 다른 아날로그 및 디지털 HDL들이 레거시(legacy)에 내장될 수 있다. 가장 인기있는 HDL들을 이용하는 실시예는 Verilog 디지털 HDL과 Spice 아날로그 HDL를 결합할 것이다. 본 발명의 양호한 실시예는 아날로그 및 디지털 회로들이 동일한 HDL로 코딩되는 Verilog-AMS 등의 새로운 통합 구문(syntax) 표준화 AMS 언어들을 이용한다. 이러한 통합 언어들은 혼합 신호 인터페이스들을 유저가 정의할 수 있는 장점이 있다.
본 발명의 범주 내에서, 혼합 신호 엔진에 의해 PLI 루틴들이 콜됨으로써, 이산 디지털 값들은 아날로그 시뮬레이션(A 대 D 변환으로 불림)에 이용하기 위하여 연속 아날로그 노드 값으로 변환되고, 디지털 시뮬레이션(D 대 A 변환으로 불림)에 이용하여 위하여 연속 아날로그 노드값을 이산 디지털 논리값으로 변환할 수 있다. 본 발명은 아날로그 대 디지털 회로 기능을 검증할 뿐만 아니라 아날로그 시스템 소자와 디지털 시스템 소자들 간의 공통 상호 작용을 정확하게 모델링하여 검증하는데 이용된다. 본 발명은 또한 아날로그 시뮬레이션이 고주파 무선 회로의 주파수 영역 시뮬레이션 등의 비표준 회로 특성을 이용하는 AMS 시뮬레이션을 이용한다.
본원에 개시된 발명은 2개의 가장 인기있는 현재의 혼합 신호 시뮬레이션 방법을 통한 장점들을 제공한다. 그 통합된 커널 방식에 관하여, 본 발명은 통합된 커널의 미세한 세분성을 보존하면서 규격품인 디지털 및 아날로그 시뮬레이터를 사용할 수 있는 이점을 제공한다. 데이터 교환과 해체 또는 분리된 시뮬레이션에 관하여, 본 발명은 표준화된 PLI API를 이용하여 완벽하게 결합된 시뮬레이션의 이점을 제공한다.
본 발명은 효율적인 시뮬레이션을 허용하는데, 그 이유는 시뮬레이션용 HDL PLI들이 대부분의 경우에 아날로그 미분 방정식을 푸는데 필요한 시간만큼 혼합 신호 효율을 무색하게 하더라도 효율적으로 설계되기 때문이다. 본 발명의 추가적인 이점은 유저가 본 발명을 구현하는데 이용된 동일한 HDL PLI들을 이용하여 다른 시뮬레이션 기능을 부가할 수 있다는 것이다. 추가될 수 있는 유저 PLI 기능의 예들에는, AMS 시뮬레이션 동안에 아날로그 대 디지털 변환기 전압 마진을 모니터링하기 위한 유저 PLI 프로그래밍, 또는 상세한 설계를 아직 완료하지 않은 디지털 부품을 개괄적인 기능 레벨에서 모델링하기 위한 유저 PLI 프로그래밍이 있다.
본 발명은 특정 HDL 및 이 HDL의 특정 디지털 시뮬레이터 브랜드로 작동하기 때문에 범용적이다. 추가적으로, 아날로그 시뮬레이터[일반적으로 솔버 엔진 (solver engine)이라 칭함]가 이용된 방정식 풀이 방법으로 작업한다. 본 발명은 많은 다른 시뮬레이터 브랜드들을 구매할 수 있도록 하나 이상의 HDL 및 이들과 관련된 PLI를 표준화할 때(IEEE 및/또는 ISO 표준으로써의 일반적인 실습으로) 많은 이점을 제공한다. 본 발명의 바람직한 실시예에 있어서, 하나의 결합된 AMS HDL은 HDL 내의 혼합 신호 인터페이스가 유저에 의해 인터페이스될 수 있고, 하나의 통합인스턴스 트리가 코딩될 수 있다.
본 발명의 시스템 및 방법은 하나 이상의 선택된 아날로그 시뮬레이터와 함께 하나 이상의 선택된 디지털 시뮬레이터를 링킹하고, PLI 수단(혼합 신호 프로그램 또는 엔진이라 칭함)에 의한 정보 교환 및 다른 부품들의 좌표를 실행하는 복수의 추가적인 컴퓨터 프로그램 루틴을 부가함으로써 만들어지는 하나의 PLI 강화 컴퓨터 프로그램에 기인한다. 본 발명의 시스템 및 방법은 3가지 종류의 기능 성분(일반적으로 엔진이라 칭함), 즉 1) 아날로그 시뮬레이션 엔진, 2) 디지털 시뮬레이션 엔진, 3) 혼합 신호 엔진을 포함한다. 본 발명의 바람직한 실시예에 있어서, 그 실행가능한 프로그램은 혼합된 신호 엔진 코어이다. 그 나머지의 HDL 시뮬레이터 및 혼합 신호 절차들은 혼합 신호 엔지 코어를 실행하는 컴퓨터의 동작에 따라 동적 링킹, 프로세스의 스포닝(spawning), 또는 스레드의 스포닝을 이용하여 실행하는 동안에 동적으로 로딩된다. 본 발명의 대안의 실시예에 있어서, 그 시뮬레이션 프로그램은 링커를 이용하여 정적으로 링크되거나, OS가 제공된 메커니즘을 이용하여 병렬로 실행되는 동적 라이브러리를 이용하여 링크된다.
본 발명은 표준화된 디지털 시뮬레이터, 예컨대 IEEE P1364(참조. 1995 IEEE P1364 Verilog Language Reference Manual or the IEEE P1364 Verilog 2000 Language Reference Manual standard)에 의해 표준화된 Verilog 시뮬레이터 및 이와 관련된 PLI에서 최상으로 작업한다. 본 발명은 또한 어떤 표준화된 AMS 시뮬레이터, 예컨대 디지털 및 아날로그 모델링 HDL 구조와 IEEE 디지털 Verilog P1364 표준의 변형인 아날로그 HDL 구조를 결합하는 표준화된 IEEE Verilog P1364-AMSHDL로 최상으로 작업한다(참조, in draft state IEEE P1364-AMS Verilog AMS Language reference Manual). 본 발명은 또한 현재의 Spice라 불리는 가장 인기있는 아날로그 HDL을 포함하는 특정 아날로그 HDL로 작업한다.
본 발명의 원리에 따르면, PLI API 기반 아날로그 혼합 신호(AMS) 전자 시스템을 시뮬레이션하는 시스템 및 방법이 개시된다. 그 바람직한 실시예의 시스템 및 방법은 Verilog-AMS 또는 VHDL-AMS 등의 표준화 혼합 신호 HDL로 코딩된 설계들을 시뮬레이팅한다. 대안의 실시예에 있어서, 복수의 다른 아날로그 및 디지털 HDL들이 시뮬레이팅된다. HDL은 컴퓨터 메모리 안의 2진 데이터와 같이 사람이 읽을 수 있는 형식 또는 사람이 읽을 수 없는 형식이 될 수 있다.
도 2a 및 도 2b를 참조하면, 본 발명에 의한 혼합 신호 시스템 설계 흐름을 도시하는 흐름도가 도시된다. 디지털 설계용 박스(205, 210, 225, 230) 및 아날로그 설계용 박스(215, 220, 225, 230)들에 도시된 바와 같이, 설계 흐름은 종래의 아날로그 및 디지털 설계로 개시한다. 블록(200)에 도시된 바와 같이, 그 시스템에 대한 혼합 신호 라이브러리는 개발되고, 디서플린들이 정의된다. 기능 블록(205)에서 그 혼합 신호 시스템의 디지털부가 설계된 다음, 기능 블록(210)에서 하나 이상의 디지털 HDL 기술로 변환된다. 기능 블록(215)에서 혼합 신호 시스템의 아날로그부가 설계된 다음, 기능 블록(220)에서 하나 이상의 트랜지스터 레벨 아날로그 HDL로 변환된다. 기능 블록(225)에서는 모든 이전에 설계된 혼합 신호 시스템 부품 라이브러리들이 어셈블리되고, 기능 블록(230)에서 그 디지털, 아날로그 및 혼합 신호 제어 스크립트들이 준비된다.
그 다음, 본원에 개시된 PLI 방법의 유연성으로 인하여 기능 블록(235)은 아날로그 부품의 최적화를 실행하는데 이용될 수 있다. 아날로그 부품 특성들은 아날로그 및 디지털 시뮬레이션 제어 스크립트의 제어로 반복된 AMS 시뮬레이션을 이용하여 최적화된다. 이 스크립트들은 최적화 되는 회로 변수들, 즉 검색을 실행하는 범위(일반적으로 종래에는 변수 스위핑이라 칭함) 및 최적화 성공 범위의 선택을 제어하는 프로그램을 포함한다. 이러한 부품 최적화가 이전에 아날로그 시뮬레이션에서 이용되었더라도, 본원에 개시된 PLI 기반 방법에 의해 모든 디지털 및 아날로그 상태는 최적화 프로세스에 이용될 수 있다. 이러한 아날로그 설계 공간 검색력을 한번 공통으로 이용하는 것은 아날로그 대 디지털 및 디지털 대 아날로그 부품 특성들을 최적화하기 위한 것이다. 공통적으로 최적화되는 것은 저항의 크기, 커패시터의 크기, 트랜지스터 구동기 및 회로 안정성이다.
기능 블록(240, 245, 250)은 AMS 시스템 모델을 시뮬레이팅하고, 그 시뮬레이션 결과를 분석한 다음, 버그(bug)들을 고치는 프로세스를 도시한다(예컨대, 모든 HDL 네트 리스트 및 스크립트들은 에러들을 고치기 위하여 갱신된다). 그 후, 에러가 발생한 경우에는 검증 사이클이 반복될 수 있다. 기능 블록(255)은 최적화를 실행하는 동안에는 기능 블록(235)으로 다시 돌아가고, 검증을 실행하는 동안에는 기능 블록(240)으로 다시 돌아간다. 이러한 사이클은 간소한 현재의 디지털 검증과 비슷하며, 다른 타입의 시뮬레이션 결과를 비교 및 검사하는 것에 후속하여 각각의 아날로그 및 디지털 시뮬레이션을 필요로 하는 복잡한 설계 흐름을 피한다.
PLI API 기반 시스템의 중요한 조직화 원리는 근본적으로 콜백을 통하여 기능한다는 것이다. 콜백 동기화는 미분 방적식의 항들에 정의된 연속 아날로그 파형을 이산 디지털 시간 단위를 동기화하는데 필요한 기능을 제공한다(도 8a 및 8b를 참조). 콜백은 아날로그 대 디지털 및 디지털 대 아날로그 인터페이스에 액세스 및 타이밍을 제공한다. 추가적으로, PLI 콜백 매커니즘에 의해 교정 디지털 및 아날로그 설계 데이터베이스의 PLI 스캐닝은 아날로그 및 디지털 상호 작용이 발생하는 위치를 결정할 수 있다(도 6을 참조).
본 발명에 있어서, 그 혼합 신호 엔진 레지스터(PLI) 콜백은 콜백 이유에 따라 하나 또는 복수의 디지털 시뮬레이터에 의해 콜된다. HDL 시뮬레이터 PLI들은 그 혼합 신호 엔지에 필요한 많은 기능을 이미 제공했기 때문에, 본 발명의 동작은 모노리식 커널 AMS 시뮬레이터와 비교하면 간소해진다.
도 3을 참조하면, AMS 시뮬레이터 조직이 개략적으로 제공되고, AMS 디자이너(300) 뿐만 아니라 메인 부품들, 즉 AMS 시뮬레이션 엔진들, 혼합 신호 엔진 (305), 디지털 시뮬레이터(310)(디지털 엔진) 및 아날로그 시뮬레이터(315)(아날로그 엔진)를 참조로 포함한다. 그 디지털 시뮬레이터(310)는 어떤 종래의 디지털 시뮬레이터가 될 수 있다. 디지털 HDL들이 표준화되기 때문에, 많은 브랜드 및 종류의 디지털 시뮬레이터중 어떤 것이 이용될 수 있다. 아날로그 시뮬레이터(315)는 어떤 종래의 아날로그 회로 시뮬레이터가 될 수 있다. 현재, Spice는 Verilog A 아날로그 HDL용 시뮬레이터를 이용하더라도 가장 일반적인 아날로그 시뮬레이터이다. 그 혼합 신호 PLI 프로그램(305)은 PLI를 이용하여 도 4 내지 8에 도시된 혼합 신호 시뮬레이션을 구현하는 혼합 신호 좌표 프로그램이다.
그 부품들을 접속하고 AMS 디자이너를 접속하는 다양한 양방향 화살표들은다양한 AMS 시뮬레이션 부품 사이의 정보 흐름을 도시한다. 특히, AMS 디자이너 (300)는 디지털 시뮬레이터(310)에 디지털 자극 패턴을 제공하고, 아날로그 시뮬레이터 (315)에 아날로그 솔버(solver) 제어 스트립트를 제공하며, 혼합 신호 프로그램(305)에 아날로그 대 디지털 및 디지털 대 아날로그 파라메터를 제공한다. 그 혼합 신호 프로그램(305)은 변경 콜백을 디지털 신호에 부가하고, 그 디지털 시뮬레이션을 개시 및 중지하며, 이산 이벤트를 스케줄링할 뿐만 아니라 디지털 시뮬레이터(310)에 대하여 디지털 데이터를 판독 및 기록함으로써 디지털 시뮬레이터(310)와 인터페이스한다. 그 혼합된 신호 프로그램은 아날로그 방정식 솔버를 기동시켜, 아날로그 대 디지털 변환기 디지털 논리값을 결정하기 위해 정합해야 하는 아날로그 파형 패턴을 통과시키고, 아날로그 시뮬레이터(315)에 대한 아날로그 데이터를 판독 및 기록함으로써 아날로그 시뮬레이터(315)와 인터페이스한다. 그 아날로그 시뮬레이터(315)는 추가적으로 아날로그 대 디지털 변경을 혼합 신호 프로그램 (305)의 네트 리스트에 부가하는 동작을 한다.
도 3은 본 발명의 PLI 콜백 기반 시퀀싱 메커니즘을 도시한다. 여기서, 시뮬레이터 및 혼합 신호 절차들은 자유롭게 실행한다. 이벤트 또는 액션이 발생할 때, 콜백은 콜되고, 그 혼합 신호 엔진(305)(또는 혼합 신호 엔진의 병렬 스레드)은 그 콜백으로부터 제어를 복귀할 때까지 중지한다. 그 혼합 신호 엔진(305)(여기서, 지연 콜백 후에 혼합 신호에 위치됨)은 한 주기 동안 디지털 시뮬레이션 실행을 한다음 한 주기 동안 아날로그 시뮬레이션을 교대로 지속하여 실행한다. 여기에 개시된 PLI 조직은 하나 이상의 아날로그 또는 하나 이상의 디지털 시뮬레이터를 포함하는실시예에서만 프로세스 또는 스레드 등의 몇가지 종류의 병렬 실행 메커니즘의 사용을 요구한다.
AMS 시뮬레이션을 개시하기 전에, 디지털 및 아날로그 HDL 부품들은 교정되어야 한다. 도 4는 각각의 디지털 시뮬레이터가 HDL의 교정을 실행하고, 각각의 아날로그 시뮬레이터가 HDL의 교정을 실행한 단계들을 도시한다. 그 교정 프로세스는 실질적으로 모두 비슷하다. 도 4는 하나 이상의 디지털 또는 하나 이상의 아날로그 HDL을 이용하는 실시예에 대한 교정을 도시한다. 그 교정 단계들은 기능 블록(400)에 따라 혼합 신호의 교정 콜백을 등록하는 단계를 포함한다. 그 다음에, 콜백시에 기능 블록(405)에서 각 HDL에 대한 프로세스 또는 스레드를 스포닝한다. 기능 블록(410)에서 HDL 시뮬레이터(디지털 또는 아날로그)는 판독된 다음, 그 네트 리스트를 스캔하여 만든다. HDL 시뮬레이터는 기능 블록(415)에서 추가적인 구조화 소스 코드를 발생할 수 있다. 기능 블록(420)에서 디지털 및 아날로그 시뮬레이터의 내부의 네트 리스트들의 위치 및 기술들이 혼합된 신호 엔진을 다시 통과하며, 기능 블록(425)에서는 HDL 시뮬레이터 프로세스 또는 스레드가 중지된다. 디지털 교정 및 아날로그 교정이 매우 비슷하면, 디지털 교정이 절차적인 RTL 및 게이트를 포함하는 반면에, 아날로그 교정은 트랜지스터 본체 및 아날로그 블록 방정식 기술을 포함하는 것에 주목해야 한다.
바람직한 실시예에 있어서, 디지털 및 아날로그 교정 동안에 생성된 회로 네트 리스트 기술들은 혼합 신호 엔진에 의해 개별적으로 기억된 후에 액세스된다. 기능 블록(420)에 기술된 바와 같이, 그 교정된 회로 기술 데이터 베이스 액세스정보는 다시 혼합된 신호 엔진을 통과한다. 대안의 실시예에 있어서, 하나의 통합된 데이터베이스가 이용된다. 이러한 대안의 실시예에 있어서, 기능 블록(420)은 모든 교정한 디지털 네트 리스트 데이터베이스 정보를 다시 혼합된 신호 엔진으로 전송하여, 그 혼합된 신호 엔진이 데이터를 그 통합된 데이터베이스에 부가할 수 있도록하는 단계로 대체될 것이다.
도 5를 참조하면, 개별 디지털 및 아날로그 교정 과정이 종료한 후에, 기능 블록(500)에서는 혼합된 신호 교정 PLI 콜백이 실행된다. 그 만들어진 네트 리스트 데이터베이스는 다시 스캐닝되어, 기능 블록(505)에서 혼합된 신호 인터페이스를 교정할 뿐만아니라, 기능 블록(510)에서 디지털 부품의 아날로그 효과 및 아날로그 부품의 디지털 효과를 교정한다. 이러한 타입의 디지털 및 아날로그 상호 작용은 디지털 대 아날로그 변환 및 아날로그 대 디지털 변환을 삽입하는(정상적으로 접속 블록 삽입이라 칭함) 위치를 결정하고, 디지털 및 아날로그 부품에 의해 공유된 파라메터들의 최종값을 교정하며, 디지털 접속으로부터 아날로그 방정식 변경 사항을 결정하고, 디지털 지연값에 주석을 다시 달고(정상적으로 표준화 SDF 포멧을 이용), 아날로그 파라메터에 주석을 다시 단다(일반적으로 표준화 SDF 포멧을 이용). 기능 블록(515)에서는 그 혼합 신호 교정 데이터를 그 혼합 신호 내부 데이터베이스에 부가한다.
AMS 설계가 통합된 인스턴스 트리로 이루어지는 것에 주목해야 한다. 그 인스턴스 트리 데이터베이스 포멧이 아날로그 및 디지털 HDL에 대하여 동일한 경우에, 추가적인 교정 과정이 AMS 설계 인스턴스 트리를 만드는데 필요하다. 다른 방법으로, 혼합 신호 교정 과정 동안에, 아날로그 및 디지털 인스턴스 트리들은 통합된 인스턴스 트리에 결합된다. 가능한 대안의 실시예에 있어서, 혼합 신호 교정은 신규의 디지털 및 아날로그 HDL 소스를 발생한 다음, 새롭게 "혼합된 신호" 성분에 대하여 HDL 교정 과정을 반복함으로써 교정된다(도 4 참조).
도 6은 하나의 AMS HDL만을 이용하는 대안의 실시예에 대한 교정 단계를 도시한다. 이 교정 단계는 HDL 교정 PL1 콜백을 등록하고(기능 블록 600), 디지털, 아날로그 및 혼합 신호 HDL 구조를 분리하며(기능 블록 605), 디지털 구조로부터 네트 리스트를 판독, 스캐닝 및 구축하며(기능 블록 610), 아날로그 구조로부터 네트 리스트를 판독, 스캐닝 및 구축하고(기능 블록 615), 혼합 신호 구조로부터 네트 리스트를 판독, 스캐닝 및 구축하며(기능 블록 620), 모든 내부 데이터의 위치 및 기술을 다시 혼합된 신호 엔진으로 전송하는(기능 블록 625) 것을 포함한다. 하나의 AMS DHL만을 이용하는 경우에, 모든 3개의 아날로그, 디지털 및 혼합 신호 구조는 동시에 교정된다. AMS HDL은, AMS HDL 데이터베이스의 몇가지 추가적인 재스캐닝이 여전히 필요하더라도, 혼합 신호 구조들이 HDL로 코딩되기 때문에, 혼합 신호 교정을 간소화 한다. 다른 방법으로, 도 6의 단계들은 현저하게 도 4의 단계와 동일하다(비통합 AMS HDL). 현재, 하나의 통합 AMS HDL이 이용되는 경우에도, 레거시 Spice 네트 리스트들을 포함하기 위한 메커니즘은 AMS 시스템 시뮬레이션에 필요하다. AMS HDL은 "외래" 언어가 Spice 네트 리스트들이 AMS HDL 소스에 포함될 수 있는 메커니즘을 포함하는 것을 정의한다. 바람직한 실시예에 있어서, Spice는 "다른 언어를 포함하는" 콜백을 등록함으로써 프로세스된다. 정상적인 스파이스 교정기(elaborator)는 스파이스를 콜백 안쪽의 AMS HDL 블록 구조로 변환하는데 이용된다. 대안의 실시예에 있어서, 아날로그 시뮬레이터는 또한 포함된 외래 HDL 언어로부터 방정식을 풀기 위하여 수정된다.
AMS 시뮬레이션을 개시하기 전에, 혼합 신호 상호 작용에 필요한 다양한 PLI 콜백이 등록되어야 한다. 복수의 PLI 어플리케이션들이 공존해야 하기 때문에, PLI를 이용하는 시뮬레이션의 제1 실행 단계는 복수의 콜백 루틴을 하나의 테이블에 위치시켜 등록할 필요가 있다. 이 테이블은 이것이 실행을 개시할 때 혼합 신호 시뮬레이션 프로그램에 의해 실행되는 첫번째 것들 중에 하나이다(정확한 세부 사항은 PLI 명세서의 일부분으로서 정의된다). 하나의 교정 루틴이 교정할 필요가 있는 각각의 HDL에 대하여 등록할 필요가 있고(도 4, 5 및 6 참조), 하나의 콜백은 시뮬레이션을 개시할 때 등록되어야 한다[개념적으로, 그 제1 동작은 시간(0)에서 일어난다].도 7은 기능 블록(700)에서 디지털 엔진이 개시되는 AMS 시뮬레이션 셋업 콜백에서 실행되는 단계들을 상세하게 도시한다. 도 7의 단계들이 "시뮬레이션의 개시" 콜백에서 실행되는 것(기능 블록 705)을 주목해야 한다.
기능 블록(710)에서는 그 교정된 혼합 신호 데이터베이스가 액세스되며, 한 포트의 입력측이 디지털이고, 다른측이 아날로그 트랜지스터 또는 방정식으로 모델링된 부품의 일부분에 접속하는 모든 포트 인스턴스 위치들이 발견된다. 이러한 각각의 포트에 대하여, 값 변경 콜백은 그 접속된 디지털 네트의 변경을 모니터링하기 위하여 등록된다. 신호들의 디지털 HDL 지원 벡터에 대하여, 하나의 콜백은 한 백터의 각 비트에 대하여 등록된다. Verilog-AMS 등의 AMS HDL들에 대하여, 다른타입의 아날로그 대 디지털 변환기들이 필요하다. 디지털 대 아날로그 변환기가 그 포트에 대하여 정의되지 않으면, 불량 접속 블록에 정의된 디지털 대 아날로그 변환기를 이용한다. 바람직한 실시예에 있어서, 다른 콜백 프로세싱 루틴은 각각의 다른 타입의 디지털 대 아날로그 변환기에 대하여 등록되지만, 대안의 실시예에 있어서는 단지 하나의 콜백 루틴이 등록된다. 여기서, 콜백 프로세스 루틴은 그 설계 데이터베이스를 액세스하여 처리하는데 필요한 디지털 대 아날로그 변환기의 타입을 결정한다. 또한, 기능 블록(715)에 도시된 바와 같이 아날로그 방정식과 콜백을 결합하는데 필요할 수 있다.
기능 블록(720)에서는 교정된 혼합 신호 데이터베이스가 액세스되며, 한 포트의 입력측이 아날로그이고 다른측이 디지털식으로 모델링된 부품의 일부분에 접속하는 모든 포트 인스턴스 위치들이 발견된다. 각 포트에 대하여, 각 아날로그 컨버젼 단계의 끝에서 갱신되어야 하는 디지털 값의 리스트가 갱신된다(이러한 리스트를 이용하는 방법의 설명에 대하여 도 8a 및 8b를 참조). 기능 블록(725)에 도시된 바와 같이, 디지털 및 아날로그 시뮬레이터들이 초기화 되어야 한다. 이것은 예컨대 필요한 최대 아날로그 시간 단계를 결정하기 위하여 AMS 데이터베이스의 분석을 요구할 수 있다. 또한, 디지털에 대한 패턴 준비 스크립트를 실행하거나, 수학적인 모델링 스크립트를 실행하여, 유저가 시뮬레이션 제어 스크립트를 셋업하는 방법에 따라 아날로그측을 적당하게 초기화한다.
기능 블록(730/735)에 도시된 바와 같이, 시뮬레이션 셋업 동안의 바람직한 실시예에 있어서, SDF 파일 판독 주석을 이용하는 디지털 지연 및 SPF 파일 판독주석을 이용하는 아날로그 파라메터의 지연 주석이 발생한다. 설계자들이 흔히 HDL들로 코딩된 조건에 따라 조건 주석을 좋아하기 때문에, 대안의 실시예의 주석은 시뮬레이션 동안에 발생할 수 있다. 이러한 실시예에 대하여, "주석 동작의 종료" 콜백은 아날로그 방정식과 상태, 및 디지털 상태를 갱신하기 위하여 등록된다. 다른 대안의 실시예에 있어서, 주석은 단지 혼합 신호 교정 동안에만 허용된다. 이러한 실시예는 시뮬레이션 모델에 값들이 컴파일될 수 있기 때문에 보다 효율적으로 시뮬레이션을 할 수 있지만, 유연성이 부족하기 때문에 설계자에게는 인기가 없다.
기능 블록(740)에 도시된 바와 같이, 시뮬레이션 셋업의 최종 단계는 "디지털 시간 진행 시뮬레이션의 처음 종료" 콜백을 스케줄링한다. 바람직한 실시예에 있어서, 디지털 시뮬레이션은 아날로그 시뮬레이션 및 "시간 진행의 끝" 펜스 이벤트(fence event)를 이용하여 디지털 시간 이동을 중지하고 아날로그 솔버를 구동하기 전에 실행한다(시뮬레이션 콜백으로 실행된 단계들에 대하여 도 8a 및 8b에 도시). "시간 진행의 처음 종료" 콜백은 시간 0의 끝에서 스케줄링되거나, 정상 디지털 시간 진행량을 이용하여 스케줄링된다. 디지털 시뮬레이션 시간 진행과 아날로그 시뮬레이션 시간 진행사이의 진행 시간량은 일반적으로 시간 델타(time delta)로 불린다. 설계시에 모든 또는 거의 모든 아날로그(일반적으로 많은 아날로그, 적은 디지털)의 특별한 경우, 아날로그 시뮬레이터는 시간 진행 이벤트의 처음 종료 후에 정상적으로 실행하는데, 그 이유는 시뮬레이션 주기의 끝에서 디지털 델타를 발생하도록 조정할 수 있기 때문이다. 설계시에 모든 또는 거의 모든 디지털(일반적으로 많은 디지털, 적은 아날로그로 칭함)의 특별한 경우에, 디지털 시뮬레이터는 매우 효율적이고 간단한 각각의 디지털 델타 후에 실행된 시간 진행 콜백의 1이 부가된 것 이외에 정상적으로 실행한다. 왜냐하면, 아날로그 솔벌를 콜하는데 불필요하기 때문이다.
도 8a 및 8b를 참조하면, 본 발명에 따른 PLI 기반 AMS 시뮬레이션의 메인 제어 및 동기화 시뮬레이션 단계들이 "디지털 시간 진행의 종료" 콜백에서 발생하는 것이 보여질 수 있다. 이 콜백은 시간의 특정 기간이 경과한 후에 트리거하는 경보 클록과 비슷하다. 도 8a 및 8b의 단계들은 디지털 이산 이벤트 시간이 디지털 시간 단계의 종료에 도달한 후의 콜백에서 실행된다. 도 8a 및 8b에 기술된 바람직한 실시예는 시간 이동을 이용하고, Verilog-AMS LRM draft 1.5의 도 9에 정의된 AMS 동기화 방법은 다음과 같다.
동기화 루프
디지털 및 아날로그 커널들은 동기화될 수 있다. 따라서, 다른 것을 수용하기에 부적당한 결과들을 계산한다. 그 동기화 알고리즘은 다음 섹션에 기술된 아날로그 및 디지털 커널들의 특성을 이용할 수 있다. 샘플 실행은 도 9에 도시된다.
도 9 샘플 실행
1. 아날로그 엔진은 과도 해석을 개시하고, 상태 정보를 디지털 엔진으로 전송한다(901, 902).
2. 디지털 엔진은 자체의 시간 단계(903)를 이용하여 실행을 개시하지만, D2A 이벤트가 없는 경우에, 아날로그 엔진에는 알리지 않고, 디지털 엔진은 아날로그 솔루션의 시간(904)을 넘어서지 않고 자체의 시간을 진행할 수 없을 때까지 지속적으로 시뮬레이팅한다. 이 시뮬레이션의 제어는 아날로그 엔진으로 복귀된다 (905). 이 프로세스는 반복된다(907, 908, 909, 910, 911).
3. 디지털 엔진이 D2A 이벤트를 발생하는 경우(912), 이 시뮬레이션의 제어는 아날로그 엔진으로 복귀된다(913). 아날로그 엔진은 디지털 엔진이 건네준 제어를 지속하는 지점으로 복귀한다(914). 아날로그 엔진은 D2A 이벤트가 발생한 시간까지 아날로그 솔루션을 다시 계산한다(915). 그 다음에, 아날로그 엔진은 다음 시간 단계(916)를 갖는다.
4. 아날로그 엔진이 A2D 이벤트를 발생하는 경우, 디지털 엔진(917)으로 제어를 복귀하여, A2D 이벤트의 시간까지 시뮬레이팅한 다음, 제어를 건네준다(918, 919).
5. 이러한 프로세스는 과도 해석이 완료될 때까지 지속한다.
아날로그 및 디지털 알고리즘에 관한 가정
1. 디지털 알고리즘에서 시간의 진행
ㆍ디지털 시뮬레이션은 일부의 최소의 시간 크기 단위를 갖고, 모든 디지털 이벤트들은 그 크기 단위의 일부의 정수배인 시각에서 발생한다.
ㆍ디지털 시뮬레이터는 나중에 아직 이벤트를 실행하지 않은 경우에 소정의 시뮬레이션 시간 동안 이벤트를 항상 수락할 수 있다. 소정의 시간 동안 이벤트를 실행할 때, 초기에는 이벤트를 수락할 수 없다.
ㆍ디지털 시뮬레이터는 가장 최근에 실행된 이벤트의 시간 및 다음에 계류중인 이벤트의 시간을 항상 알릴 수 있다.
2. 아날로그 알고리즘에서 시간 진행
ㆍ아날로그 시뮬레이터는 솔루션의 순서를 계산함으로써 시간을 진행한다. 각각의 솔루션은 디지털 시간과 다르고, 특별히 최소의 크기 단위로 제한되지 않는 관련 시간을 갖는다.
ㆍ이 아날로그 시뮬레이터는 다음 솔루션이 수렴하는 특정 시간을 말할 수 없다. 따라서, 다음 솔루션 시간이 아니라 가장 최근에 계산된 솔루션 시간을 말할 수 있다.
ㆍ일반적으로, 아날로그 솔루션은 하나 이상의 이전의 솔루션의 함수이다. 소정의 시간 동안 이 솔루션을 계산하면, 아날로그 시뮬레이터는 그 솔루션을 수락하거나 거절할 수 있고, 현재 시간에 솔루션을 수락할 때까지 미래 시간에 대한 솔루션을 계산할 수 없다.
3. 아날로그 대 디지털 이벤트
ㆍ아날로그 대 디지털 이벤트는 아날로그 시뮬레이터에 의해 평가될 때 변환 요소들(아날로그/디지털 동작 모델들)에 의해 발생된다.
ㆍ아날로그 이벤트(예컨대, cross, initial_step, final_step)는 이들이 발생하는 시간의 아날로그 솔루션을 발생한다.
ㆍ 따라서, 어떤 아날로그 대 디지털 이벤트는 특성 과도 해석의 결과로 발생된다. 이것은 이벤트들이 디지털 시뮬레이터들을 통과할 때까지 이벤트를 발생한 솔루션과 결합하여 머무를 수 있고, 이벤트들은 솔루션이 거절되는 경우에 솔루션에 따라 거절될 수 있다는 것을 의미한다.
4. 디지털 대 아날로그 이벤트들은 그들이 발생하는 시간의 아날로그 솔루션을 발생할 수 있다.
Vefilog-AMS 및 이러한 동기화 방법은 현재 여전히 개량되고 있는 중이다. 초안의 표준이 완성되면, 표준으로 승인을 받기 위하여 IEEE에 제출될 것이다. 다른 동기화 방법은 본 발명의 다른 실시예에 이용되고, 연속 아날로그 및 이산 디지털 시간 동기화가 다시 검색되기 때문에, 미래의 실시예들은 새롭게 발견된 동기화 방법을 이용할 수 있다. HDL PLI들이 풀 컴퓨터 프로그램 보편성을 허용하기 때문에, 그러한 방법은 본원에 개시된 PLI 시스템 및 방법을 이용하여 실현가능하다.
기능 블록(810)에 도시된 바와 같이, 기능 블록(805)에서 디지털 시간 이동을 종료하고, 아날로그 시간 델타 또는 수렴 중지 상태들이 결정된 후에, 아날로그 솔버들이 콜되어 수렴 또는 상한 시간 대역까지 실행됨으로써, 아날로그 시간이 디지털 시간에 이루게 된다. 모든 아날로그 솔버들이 완료하면(하나의 솔버만을 이용하는 실시예에서 콜백으로부터 복귀), 기능 블록(815)에 도시된 바와 같이, 모든 아날로그 솔버들이 복귀한 이유가 분석된다. 기능 블록(840)에 도시된 바와 같이, 기능 블록(815)에 의해 계산된 정보를 이용하여 다음 디지털 델타를 향하여 이동하기 위한 디지털 시간량을 계산한다. 다음, 기능 블록(820)에 도시된 바와 같이, 도 7에 저장된 아날로그 대 디지털 아날로그 노드들의 리스트(기능 블록 720)는 어떤 신호들이 논리값들을 변경했는지 여부를 결정하기 위하여 통과된다. 일반적으로, 논리값 변경은 특정 전압 임계치를 초과할 때 발생하거나, 유저에 의해 프로그래밍된 AMS HDL 조건이 충족될 때 발생된다. 기능 블록(825)은 다음 아날로그 솔버의기동을 준비하는데 필요한 다른 프로세싱을 도시한다.
기능 블록(830)은 선택적인 단계, 즉 아날로그 상태 변화로 변경된 디지털 지연에 다시 주석을 달아서 모델링 정확도를 증가시키는 단계를 도시한다. 아날로그 회로 상태가 디지털 지연을 변경할 수 있고(용량 효과 때문에 가능), 디지털 지연이 디지털 HDL PLI 풋 지연 루틴들을 콜링함으로써 변경된다. 기능 블록(835)에서, 임의의 디스플레이된 아날로그 파형은 갱신되고, 어떤 아날로그 제어 또는 점검 스트립트가 실행된다. MATLAB등의 수학적인 패키지들은 아날로그 수렴 또는 다른 아날로그 상태 특성들을 계산하기 위하여 실행된 다음, AMS 시뮬레이션을 종료하거나 변경하는데 이용된다.
기능 블록(840)을 개시하면, 다음의 디지털 시뮬레이션 단계를 준비하는 동작은 실행된다. 판정 블록(805)을 이용하여 (일반적으로 시간 0) 콜백 실행을 위하여 아날로그 시간 이동을 스킵하는 것에 주목하자. 이것은 바람직한 실시예에서 디지털 시간이 아날로그 시간 전으로 이동하지만, 다른 실시예에서 아날로그 시간이 처음으로 이동할 수 있기 때문에 필요하다. 기능 블록(805 ∼ 835)은 바람직한 실시예에서 스킵된다.
기능 블록(840)에 도시된 바와 같이, 다음 AMS 시뮬레이션 콜백을 스케줄링하기 위한 디지털 시간이 계산된다. 이 계산은 기능 블록(815)에 도시된 이전의 아날로그 솔버로부터의 결과를 이용한다. 기능 블록(845)에 도시된 바와 같이, 다음 디지털 시뮬레이션"시간 진행의 끝" 콜백이 등록된다. 이 콜백이 완료한 다음, 기능 블록(850)에 의해 제어를 콜백으로부터 복귀한다.
기능 블록(855, 860)은 본 발명의 동작 동안에 동기적으로 발생하고, 즉 디지털 대 아날로그 입력 디지털 이벤트가 발생할 때마다, 블록(855)로 언급된 콜백은 콜되어, 실행한 다음, 복귀하며, 디지털 시뮬레이터가 기동할 때마다, 콜백 루틴을 중지 및 실행하기 위한 명령이 있을 때까지 디지털 시뮬레이터를 실행한다. 박스(855)에 도시된 바와 같이, 디지털 대 아날로그 입력부에 등록된 값 변경 콜백 (도 7의 기능 블록 710)이 디지털값이 변하기 때문에 발생할 때마다, 그 디지털값은 아날로그 노드값으로 변환되고, 그 아날로그 데이터 및 방정식이 갱신된다. 보다 효율적인 실시예는 모든 디지털 대 아날로그 입력 변화를 세이브하여, 디지털 시뮬레이션 주기의 끝에서 프로세스한다. 이것은 디지털 값이 새로운 값으로 변한 다음 다시 기동값으로 변할 때에 필요한 프로세싱 양을 줄인다. 기능 블록(860)에 도시된 바와 같이, 디지털 시뮬레이션 동안, 디지털 파형 디스플레이는 갱신되고, 절차상의 HDL은 디지털 시뮬레이션을 완료하기 위한 테스트를 실행한다. 디지털 값들은 동적으로 디스플레이된다. 왜냐하면, 내부 디지털 상태는 항상 정확하지만, 아날로그에 대하여 그 정확한 상태는 방정식 수렴점에서 발생할 수 있기 때문이다.
전압 이외의 다른 회로값을 이용하여 아날로그 회로를 시뮬레이팅하는 본원에 개시된 발명의 다른 실시예도 또한 가능하다. 정상적인 아날로그 시뮬레이션은 트랜지스터 노드 전압을 이용하지만, 주파수, 전류 또는 자기장 세기 등의 다른 아날로그 회로값들은 또한 미분 방정식을 이용하여 기술될 수 있고, 그 값이 여전히 시간 영역 성분을 갖는 경우에 다른 종류의 아날로그 시뮬레이션을 실행하기 위하여 풀어질 수 있다. 이러한 다른 실시예에 있어서, AMS 시뮬레이션은 아날로그 대디지털 및 디지털 대 아날로그 동작이 다른 아날로그 회로 특성과 디지털 논리값사이를 맵핑하기 위하여 변경되는 것 이외에는 동일하다. 일부의 이러한 다른 실시예에 있어서, 변환에는 확장 계산이 필요할 수 있다.
전술한 흐름도가 제어 흐름의 양호한 방향을 나타낸다는 것에 주목해야 한다. 그러나, 본 발명에 따라 실행된 단계들의 순서 및/또는 단계들의 동시성은 본 발명의 사상 및 범위를 벗어남이 없이 변경될 수 있다.
본 발명은 컴퓨터 시스템의 이용을 통하여 바람직하게 실현될 수 있고, 그 일예는 도 10에 제공된다. 도 10의 컴퓨터 시스템은 본 발명의 프로그램 명령을 실행하기 위하여 중앙 처리 장치(1013) 및 메모리(1011)를 갖는 컴퓨터를 포함한다. 입력 주변 장치(1014) 및 출력 주변 장치(1015)는 컴퓨터 시스템에 이용될 수 있다.
본 발명은 본 발명의 본질적인 속성의 사상으로부터 벗어남이 없이 다른 특정한 형태로 구현될 수 있기 때문에, 그 도시된 실시예는 본 발명의 범위를 나타내기 위하여 앞서 기재한 것보다는 첨부한 청구 범위를 기준으로 하여, 기재상 제한없이 모든 관점에서 고려되어야 한다.

Claims (44)

  1. 디지털 및 아날로그 부품을 구비한 회로를 시뮬레이팅하는 시스템으로서, 상기 회로의 적어도 일부분이 하드웨어 기술 언어(HDL) 모델로 인코딩되는 시스템에 있어서,
    프로그래밍 언어 인터페이스(PLI)를 이용하고, 상기 HDL 모델에 기초한 디지털 회로 정보를 발생하는 디지털 시뮬레이터와,
    상기 PLI를 이용하고, 상기 HDL 모델에 기초한 아날로그 회로 정보를 발생하는 아날로그 시뮬레이터와,
    상기 PLI를 이용하고, 상기 디지털 및 아날로그 시뮬레이터를 제어하며, 이산 디지털 시간 및 연속 아날로그 시간을 동기화하는 혼합 신호 프로그램을 포함하고,
    상기 디지털 시뮬레이터, 상기 아날로그 시뮬레이터 및 상기 혼합 신호 프로그램의 이 모든 3개가 상기 PLI를 사용하기 위해서는 혼합 신호 엔진을 포함하는 것인 시스템.
  2. 제1항에 있어서, 상기 디지털 시뮬레이터는 교정기(elaborator)를 포함하며, 상기 교정기는 회로 네트 리스트 기술(circuit net list description)의 디지털 부분을 상기 디지털 시뮬레이터 내의 내부 디지털 및 인스턴스(instance) 구조 데이터베이스로 변환하며,
    상기 아날로그 시뮬레이터는 교정기를 포함하며, 상기 교정기는 회로 네트 리스트 기술의 아날로그 부분을 상기 아날로그 시뮬레이터 내의 내부 데이터베이스로 변환하는 것인 시스템.
  3. 제2항에 있어서, 상기 혼합 신호 프로그램은 상기 디지털 시뮬레이터 데이터베이스를 판독하여, 그 디지털 시뮬레이터 데이터베이스를 상기 아날로그 시뮬레이터로 전송하기 위한 동작을 행하고, 상기 혼합 신호 프로그램은 상기 아날로그 시뮬레이터 데이터베이스를 판독하여 그 아날로그 시뮬레이터 데이터베이스를 상기 디지털 시뮬레이터로 전송하기 위한 동작을 행하며, 상기 혼합 신호 프로그램은 상기 디지털 시뮬레이터 데이터베이스 및 상기 아날로그 시뮬레이터 데이터베이스 내의 상기 판독 데이터를 이용하여 혼합 신호 인터페이스 처리 기능을 실행하는 것인 시스템.
  4. 제1항에 있어서, 상기 디지털 시뮬레이터는 이산 시간 디지털 이벤트를 스케줄링하기 위한 이벤트 엔진을 포함하는 것인 시스템.
  5. 제1항에 있어서, 상기 아날로그 시뮬레이터는 아날로그 회로 방정식 솔버 (solver)를 포함하는 것인 시스템.
  6. 제1항에 있어서, 상기 혼합 신호 엔진이 PLI 콜백(call back)을 스케줄링할수 있는 시간 동기 장치를 더 포함하고, 상기 PLI 콜백은 상기 디지털 시뮬레이터에 의한 디지털 시뮬레이션을 중지함으로써, 상기 연속 아날로그 시간이 상기 이산 디지털 시간으로 진행할 수 있거나 동기점으로 이동할 수 있는 것인 시스템.
  7. 제1항에 있어서, 상기 혼합 신호 엔진이 PLI 콜백으로부터 복귀할 수 있는 시간 동기 장치를 더 포함하고, 상기 PLI 콜백으로부터 복귀할 때, 상기 디지털 시뮬레이터는 상기 이산 디지털 시간이 상기 연속 아날로그 시간으로 진행할 수 있게 진행되거나 동기점으로 이동할 수 있는 것인 시스템.
  8. 제1항에 있어서, 상기 혼합 신호 엔진이 디지털 신호 상에 값 변경 콜백을 스케줄링할 수 있는 디지털 값 변경기를 더 포함하고, 상기 디지털 신호의 변경시, 상기 값 변경 콜백에 의해 상기 혼합 신호 엔진이 상기 디지털 신호를 아날로그 값으로 변경하는 것인 시스템.
  9. 제1항에 있어서, 상기 혼합 신호 엔진이 아날로그 파형 패턴으로부터 디지털 값을 결정할 수 있는 아날로그 대 디지털 변환기를 더 포함하는 것인 시스템.
  10. 제1항에 있어서, 상기 혼합 신호 엔진이 디지털 값으로부터 아날로그 값을 결정할 수 있는 디지털 대 아날로그 변환기를 더 포함하는 것인 시스템.
  11. 제1항에 있어서, 상기 디지털 시뮬레이터는 디지털 데이터베이스를 유지관리하고, 상기 아날로그 시뮬레이터는 아날로그 데이터베이스를 유지관리하며, 상기 혼합 신호 엔진은 상기 디지털 데이터베이스 및 상기 아날로그 데이터베이스에 대한 값을 기록 및 판독할 수 있는 것인 시스템.
  12. 제11항에 있어서, 상기 디지털 데이터베이스 또는 상기 아날로그 데이터베이스에 상기 혼합 신호 엔진의 기록은 시뮬레이션 제어를 위하여 제공하는 것인 시스템.
  13. 제12항에 있어서, 상기 시뮬레이션 제어는 디지털 제어 스크립트를 포함하는 것인 시스템.
  14. 제12항에 있어서, 상기 시뮬레이션 제어는 아날로그 제어 스트립트를 포함하는 것인 시스템.
  15. 디지털 및 아날로그 부품들을 갖고, 하나 이상의 하드웨어 기술 언어들 (HDLs)에 의해 기술되는 회로를 시뮬레이팅하는 아날로그 혼합 신호 시뮬레이션 방법에 있어서,
    상기 HDL을 판독하는 단계와,
    상기 회로의 상기 디지털 부품들에 대하여 상기 HDL을 교정하는 단계와,
    상기 회로의 상기 아날로그 부품들에 대하여 상기 HDL을 교정하는 단계와,
    상기 HDL 상에 혼합 신호 교정을 수행하여 디지털 및 아날로그 상호작용 위치를 결정하는 단계와,
    상기 혼합 신호 교정 후에 혼합 신호 초기화를 수행하는 단계와,
    상기 혼합 신호 초기화에 기초한 혼합 신호 시뮬레이션을 실행하는 단계를 포함하고,
    상기 실행 단계는 디지털 시뮬레이션, 아날로그 시뮬레이션 및 상기 디지털 시뮬레이션의 타이밍과 상기 아날로그 시뮬레이션의 타이밍의 동기화를 포함하며,
    상기 각각의 단계들은 프로그래밍 언어 인터페이스(PLI)들을 이용함으로써 적어도 부분적으로 구현되는 것인 방법.
  16. 제15항에 있어서, 상기 디지털 부품들에 대하여 상기 HDL을 교정하는 단계는 디지털 회로 네트 리스트 기술을 생성하여 상기 디지털 네트 리스트 기술을 디지털 및 인스턴스 구조 데이터베이스로 변환하는 단계를 포함하고, 상기 아날로그 부품에 대하여 상기 HDL을 교정하는 단계는 아날로그 회로 네트 리스트를 생성하여 상기 아날로그 회로 네트 리스트를 데이터베이스로 변환하는 단계를 포함하는 것인 방법.
  17. 제16항에 있어서, 상기 혼합 신호 초기화를 수행하는 단계는 상기 디지털 데이터베이스를 판독하여 상기 아날로그 시뮬레이션이 상기 디지털 데이터베이스 내의 데이터를 이용할 수 있는 단계와, 상기 아날로그 데이터베이스를 판독하여 상기 디지털 시뮬레이션이 상기 아날로그 데이터베이스 내의 데이터를 이용할 수 있는 단계와, 상기 디지털 데이터베이스 및 상기 아날로그 데이터베이스를 이용하여 혼합 신호 처리를 수행하는 단계를 포함하는 것인 방법.
  18. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 이산 시간 디지털 이벤트를 스케줄링하는 단계를 포함하는 것인 방법.
  19. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 아날로그 회로 방정식을 푸는 단계를 포함하는 것인 방법.
  20. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 디지털 시뮬레이션을 수행하는 단계를 포함하는 것인 방법.
  21. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 PLI 콜백을 스케줄링하는 단계를 포함하고, 상기 PLI 콜백은 상기 아날로그 부품의 상기 타이밍이 상기 디지털 부품의 상기 타이밍 또는 정해진 동기화 시간으로 진행할 수 있게 하는 디지털 시뮬레이션을 중지하는 것인 방법.
  22. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 PLI 콜백으로부터 복귀하는 단계를 포함하고, 상기 PLI 콜백 복귀시, 상기 디지털 부품의 타이밍은 상기 디지털 부품의 상기 타이밍이 상기 아날로그 부품의 상기 타이밍 또는 미리 정해진 동기화 시간으로 진행할 수 있게 진행되는 것인 방법.
  23. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 디지털 신호에 기초한 값 변경 콜백을 스케줄링하는 단계를 포함하고, 상기 디지털 신호의 변경시, 상기 값 변경 콜백은 상기 디지털 신호 대 아날로그 값의 변경을 인에이블하는 것인 방법.
  24. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 아날로그 파형 패턴으로부터 디지털 값을 결정하는 단계를 포함하는 것인 방법.
  25. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 디지털 값으로부터 아날로그 값을 결정하는 단계를 포함하는 것인 방법.
  26. 제15항에 있어서, 상기 혼합 신호 시뮬레이션을 실행하는 단계는 디지털 시뮬레이션 데이터베이스 및 아날로그 시뮬레이션 데이터베이스에 대한 값을 판독 및 기록하는 단계를 포함하는 것인 방법.
  27. 제26항에 있어서, 상기 디지털 시뮬레이션 데이터베이스 또는 상기 아날로그시뮬레이션 데이터베이스에 값을 기록하는 단계는 상기 혼합 신호 시뮬레이션의 실행을 제어하기 위하여 제공하는 것인 방법.
  28. 제27항에 있어서, 상기 값은 디지털 제어 스크립트를 포함하는 것인 방법.
  29. 제27항에 있어서, 상기 값은 아날로그 제어 스크립트를 포함하는 것인 방법.
  30. 디지털 및 아날로그 부품들을 갖는 회로를 시뮬레이팅하고, 상기 회로의 적어도 일부분이 하드웨어 기술 언어(HDL) 모델로 코딩되는 시스템에 있어서,
    상기 HDL을 판독하는 판독 수단과,
    상기 회로의 상기 디지털 부품에 대하여 상기 HDL을 교정하는 제1 교정 수단과,
    상기 회로의 상기 아날로그 부품에 대하여 상기 HDL을 교정하는 제2 교정 수단과,
    디지털 및 아날로그 상호 작용 위치를 결정하기 위하여 상기 HDL 상의 혼합 신호 교정을 수행하는 제3 교정 수단과,
    상기 혼합 신호 교정 후에 혼합 신호 초기화를 수행하는 초기화 수단과,
    상기 혼합 신호 초기화에 기초하여 혼합 신호 시뮬레이션을 실행하는 실행 수단을 포함하고,
    상기 실행 수단은 디지털 시뮬레이션을 수행하는 디지털 시뮬레이션 수단과,아날로그 시뮬레이션을 수행하는 아날로그 시뮬레이션 수단과, 상기 디지털 시뮬레이션의 타이밍과 상기 아날로그 시뮬레이션의 타이밍을 동기화하는 동기화 수단을 포함하며,
    상기 각각의 수단들은 프로그래밍 언어 인터페이스(PLI)를 이용하는 것인 시스템.
  31. 제30항에 있어서, 상기 제1 교정 수단은 디지털 회로 네트 리스트 기술을 생성하는 수단과, 상기 디지털 네트 리스트 기술을 디지털 및 인스턴스 구조 데이터베이스로 변환하는 수단을 포함하고,
    상기 제2 교정 수단은 아날로그 회로 네트 리스트를 생성하는 수단과, 상기 아날로그 회로 네트 리스트를 데이터베이스로 변환하는 수단을 포함하는 것인 시스템.
  32. 제31항에 있어서, 상기 초기화 수단은 상기 디지털 데이터베이스를 판독하는 수단과, 상기 아날로그 시뮬레이션 수단이 상기 디지털 데이터베이스 내의 데이터를 이용할 수 있는 수단을 포함하고, 상기 아날로그 데이터베이스를 판독하는 수단및 상기 디지털 시뮬레이션 수단이 상기 아날로그 데이터베이스 내의 데이터를 이용할 수 있는 수단을 포함하며, 상기 디지털 데이터베이스 및 상기 아날로그 데이터베이스 내의 상기 데이터를 이용하여 혼합 신호 처리를 수행하는 수단을 포함하는 것인 시스템.
  33. 제30항에 있어서, 상기 실행 수단은 이산 시간 디지털 이벤트를 스케줄링하는 수단을 포함하는 것인 시스템.
  34. 제30항에 있어서, 상기 실행 수단은 아날로그 회로 방정식을 푸는 수단을 포함하는 것인 시스템.
  35. 제30항에 있어서, 상기 실행 수단은 디지털 시뮬레이션을 수행하는 수단을 포함하는 것인 시스템.
  36. 제30항에 있어서, 상기 실행 수단은 PLI 콜백을 스케줄링하는 수단을 포함하고, 상기 PLI 콜백은 상기 아날로그 시뮬레이션의 상기 타이밍이 상기 디지털 시뮬레이션의 타이밍 또는 미리 정해진 동기화 시간으로 진행할 수 있는 디지털 시뮬레이션을 중지하는 것인 시스템.
  37. 제30항에 있어서, 상기 실행 수단은 PLI 콜백으로부터 복귀하는 수단을 포함하고, 상기 PLI 콜백으로부터 복귀할 때, 상기 디지털 시뮬레이션의 타이밍은 상기 디지털 시뮬레이션의 상기 타이밍이 상기 아날로그 시뮬레이션의 상기 타이밍 또는 미리 정해진 동기화 시간으로 진행할 수 있게 진행되는 것인 시스템.
  38. 제30항에 있어서, 상기 실행 수단은 디지털 신호에 기초한 값 변경 콜백을 스케줄링하는 수단을 포함하고, 상기 디지털 신호의 변경시, 상기 값 변경 콜백은 상기 디지털 신호 대 아날로그 값 변경을 인에이블하는 것인 시스템.
  39. 제30항에 있어서, 상기 실행 수단은 아날로그 파형 패턴으로부터 디지털 값을 결정하는 수단을 포함하는 것인 시스템.
  40. 제30항에 있어서, 상기 실행 수단은 디지털 값으로부터 아날로그 값을 결정하는 수단을 포함하는 것인 시스템.
  41. 제30항에 있어서, 상기 실행 수단은 디지털 시뮬레이션 데이터베이스 또는 아날로그 시뮬레이션 데이터베이스로부터 값을 판독하는 수단과, 디지털 시뮬레이션 데이터베이스 또는 아날로그 시뮬레이션 데이터베이스로 기록하는 수단을 포함하는 것인 시스템.
  42. 제41항에 있어서, 상기 디지털 시뮬레이션 데이터베이스 또는 상기 아날로그 시뮬레이션 데이터베이스에 값을 기록하는 수단은 상기 실행 수단에 실행 제어를 제공하는 것인 시스템.
  43. 제42항에 있어서, 상기 값은 디지털 제어 스트립트를 포함하는 것인 시스템.
  44. 제42항에 있어서, 상기 값은 아날로그 제어 스크립트를 포함하는 것인 시스템.
KR10-2003-7000074A 2000-07-05 2001-07-05 혼합 신호 시뮬레이션 KR20030028541A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US21606500P 2000-07-05 2000-07-05
US60/216,065 2000-07-05
PCT/US2001/021278 WO2002003310A1 (en) 2000-07-05 2001-07-05 Mixed signal simulation

Publications (1)

Publication Number Publication Date
KR20030028541A true KR20030028541A (ko) 2003-04-08

Family

ID=22805530

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7000074A KR20030028541A (ko) 2000-07-05 2001-07-05 혼합 신호 시뮬레이션

Country Status (6)

Country Link
US (1) US20020049576A1 (ko)
EP (1) EP1305765A4 (ko)
KR (1) KR20030028541A (ko)
CN (1) CN1440537A (ko)
AU (1) AU2001276854A1 (ko)
WO (1) WO2002003310A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018235004A1 (en) * 2017-06-22 2018-12-27 Sendyne Corporation RESOLVER OF DIFFERENTIAL STOCHASTIC EQUATIONS

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10043905A1 (de) * 2000-09-06 2002-03-14 Infineon Technologies Ag Stromkopplung bei der gemischten Simulation von Schaltungen
US6820243B1 (en) * 2001-09-19 2004-11-16 Nassda Corporation Hybrid system of static analysis and dynamic simulation for circuit design
US20030149962A1 (en) * 2001-11-21 2003-08-07 Willis John Christopher Simulation of designs using programmable processors and electronically re-configurable logic arrays
US20030154059A1 (en) * 2001-11-30 2003-08-14 Jorg-Uwe Feldmann Simulation apparatus and simulation method for a system having analog and digital elements
US20030125921A1 (en) * 2001-12-27 2003-07-03 Matsushita Electric Industrial Co., Ltd. Circuit simulation apparatus, circuit simulation method, circuit simulation program, and storage medium storing circuit simulation program
US7194400B2 (en) * 2002-04-04 2007-03-20 International Business Machines Corporation Method and system for reducing storage and transmission requirements for simulation results
US7203633B2 (en) * 2002-04-04 2007-04-10 International Business Machines Corporation Method and system for selectively storing and retrieving simulation data utilizing keywords
US7373290B2 (en) 2002-04-04 2008-05-13 International Business Machines Corporation Method and system for reducing storage requirements of simulation data via keyword restrictions
US7206732B2 (en) * 2002-04-04 2007-04-17 International Business Machines Corporation C-API instrumentation for HDL models
US7587305B2 (en) * 2002-06-26 2009-09-08 Cray Inc. Transistor level verilog
US7203632B2 (en) * 2003-03-14 2007-04-10 Xilinx, Inc. HDL co-simulation in a high-level modeling system
US7194705B1 (en) * 2003-03-14 2007-03-20 Xilinx, Inc. Simulation of integrated circuitry within a high-level modeling system using hardware description language circuit descriptions
US7599821B1 (en) * 2003-04-30 2009-10-06 Cadence Design Systems, Inc. Mixed language simulation cycle for analog mixed-signal circuit design and simulation
US20040260527A1 (en) * 2003-06-19 2004-12-23 Stanculescu Alexandru G. Compact and effective representation of simulation results
US7236918B2 (en) * 2003-12-31 2007-06-26 International Business Machines Corporation Method and system for selective compilation of instrumentation entities into a simulation model of a digital design
US7536288B2 (en) 2003-12-31 2009-05-19 International Business Machines Corporation Method, system and program product supporting user tracing in a simulator
US7228515B2 (en) * 2004-05-13 2007-06-05 Intel Corporation Methods and apparatuses for validating AC I/O loopback tests using delay modeling in RTL simulation
US7251795B2 (en) * 2004-09-27 2007-07-31 Cadence Design Systems, Inc. Connecting verilog-AMS and VHDL-AMS components in a mixed-language mixed-signal design
US7392169B2 (en) * 2004-10-21 2008-06-24 International Business Machines Corporation Method, system and program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language
US20060089826A1 (en) * 2004-10-21 2006-04-27 International Business Machines Corporation Method, system and program product for defining and recording minimum and maximum count events of a simulation
US20060111886A1 (en) * 2004-11-23 2006-05-25 Mahesh Siddappa Method and system for modeling of a differential bus device
US20060122820A1 (en) * 2004-12-03 2006-06-08 The Mitre Corporation Scripting language for domain-specific modification of a simulation model
US7454325B2 (en) * 2004-12-07 2008-11-18 International Business Machines Corporation Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases
US7418676B2 (en) * 2005-01-19 2008-08-26 Seiko Epson Corporation Asynchronous circuit design tool and computer program product
KR20060091069A (ko) * 2005-02-11 2006-08-18 엘지전자 주식회사 하드웨어 기술 언어를 이용한 아날로그 회로 설계 방법
US20060190230A1 (en) * 2005-02-24 2006-08-24 Patterson Sylvia D Method and apparatus for cross simulation data sharing to facilitate higher resolution data measurements for complex designs
JP2006244073A (ja) * 2005-03-02 2006-09-14 Matsushita Electric Ind Co Ltd 半導体設計装置
US7552043B2 (en) * 2005-09-15 2009-06-23 International Business Machines Corporation Method, system and program product for selectively removing instrumentation logic from a simulation model
US7360187B2 (en) * 2005-09-30 2008-04-15 Rambus Inc. Mixed mode verifier
KR100800471B1 (ko) * 2006-01-17 2008-02-01 삼성전자주식회사 논리회로 검증방법 및 이를 수행하는 논리회로 검증장치
TWI301202B (en) * 2006-04-13 2008-09-21 Ind Tech Res Inst A calibration method of a mixed mode simulation
US7711537B2 (en) * 2006-05-03 2010-05-04 International Business Machines Corporation Signals for simulation result viewing
US7493248B2 (en) * 2006-05-08 2009-02-17 International Business Machines Corporation Method, system and program product supporting phase events in a simulation model of a digital system
US7574688B1 (en) * 2006-06-09 2009-08-11 Xilinx, Inc. Using high-level language functions in HDL synthesis tools
US8423959B1 (en) 2006-12-11 2013-04-16 Synopsys, Inc. Techniques for coordinating and controlling debuggers in a simulation environment
US9317636B1 (en) * 2006-12-11 2016-04-19 Synopsys, Inc. System and method for stopping integrated circuit simulation
US7590965B1 (en) 2006-12-19 2009-09-15 Xilinx, Inc. Methods of generating a design architecture tailored to specified requirements of a PLD design
US7912694B2 (en) * 2007-01-30 2011-03-22 International Business Machines Corporation Print events in the simulation of a digital system
GB0702576D0 (en) * 2007-02-09 2007-03-21 Texas Instruments Ltd An analogue signal modelling routine for a hardware description language
US7925489B2 (en) * 2007-10-31 2011-04-12 International Business Machines Corporation Defining and recording threshold-qualified count events of a simulation by testcases
US8050902B2 (en) 2007-10-31 2011-11-01 International Business Machines Corporation Reporting temporal information regarding count events of a simulation
US7761279B1 (en) * 2007-11-16 2010-07-20 Cadence Design Systems, Inc. Synchronized transient-envelope and event-driven simulation of electronic circuits
US20090222253A1 (en) * 2008-03-03 2009-09-03 Thomas Jay Sheffler System and Method for Switch-Level Linear Simulation Using Verilog
US8776019B2 (en) 2008-12-05 2014-07-08 Invensys Systems, Inc. Configurator with embedded firmware for offline instrument user settings implementation
US8160857B2 (en) 2008-12-16 2012-04-17 International Business Machines Corporation Selective compilation of a simulation model in view of unavailable higher level signals
US8453080B2 (en) * 2008-12-16 2013-05-28 International Business Machines Corporation Model build in the presence of a non-binding reference
US8201137B1 (en) * 2009-03-06 2012-06-12 Cadence Design Systems, Inc. Method and apparatus for AMS simulation of integrated circuit design
US8666720B2 (en) * 2009-08-04 2014-03-04 Henry Chung-herng Chang Software extensions to a high level description language simulator to provide infrastructure for analog, mixed-signal, RF modeling and verification
US8504346B1 (en) * 2009-12-15 2013-08-06 Cadence Design Systems, Inc. Method and mechanism for performing mixed-signal simulation of electronic designs having complex digital signal types or models
US8316342B1 (en) * 2010-06-02 2012-11-20 Cadence Design Systems, Inc. Method and apparatus for concurrent design of modules across different design entry tools targeted to a single layout
US8521483B1 (en) 2010-06-02 2013-08-27 Cadence Design Systems, Inc. Method and apparatus for concurrent design of modules across different design entry tools targeted to single simulation
US8571837B1 (en) * 2010-07-16 2013-10-29 Cadence Design Systems, Inc. System and method for simulating a bi-directional connect module within an analog and mixed-signal circuit
US20130097568A1 (en) * 2011-10-14 2013-04-18 William W. Yang Global clock handler object for hdl environment
CN103425810A (zh) * 2012-05-24 2013-12-04 中兴通讯股份有限公司 一种时钟与数据恢复电路和模拟电路的行为级建模方法
EP2888818A1 (en) * 2012-08-21 2015-07-01 Missing Link Electronics Inc. Configurable mixed-signal systems
CN103729490A (zh) * 2012-10-15 2014-04-16 飞思卡尔半导体公司 混合信号ip核原型设计系统
US10346573B1 (en) * 2015-09-30 2019-07-09 Cadence Design Systems, Inc. Method and system for performing incremental post layout simulation with layout edits
CN105808843A (zh) * 2016-03-08 2016-07-27 浪潮集团有限公司 一种混合信号验证平台的构造方法
CN106096177A (zh) * 2016-06-23 2016-11-09 中国电子科技集团公司第五十八研究所 一种基于传统eda工具的多芯片联合仿真方法
CN106205080A (zh) * 2016-08-26 2016-12-07 爱普(福建)科技有限公司 一种人机界面修改报警限值的方法以及系统
US10635766B2 (en) 2016-12-12 2020-04-28 International Business Machines Corporation Simulation employing level-dependent multitype events
CN106777720A (zh) * 2016-12-23 2017-05-31 深圳市国微电子有限公司 电路验证方法及装置
CN106681153B (zh) * 2017-02-23 2020-02-14 国家电网公司 自适应电力系统实时仿真平台变频仿真的外置物理控制器
US10984160B1 (en) * 2020-05-07 2021-04-20 International Business Machines Corporation Analysis and modification of circuit designs
US11429773B1 (en) 2020-12-30 2022-08-30 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing an electronic design using connect modules with dynamic and interactive control
US11334702B1 (en) * 2021-02-11 2022-05-17 Siemens Industry Software Inc. Mixed-signal simulation for complex design topologies
KR102350941B1 (ko) * 2021-05-25 2022-01-14 주식회사 바움디자인시스템즈 집적 회로 설계 방법 및 이를 수행하는 집적 회로 설계 시스템
CN113807041A (zh) * 2021-10-20 2021-12-17 中国科学院微电子研究所 一种电路系统的仿真方法、装置、电子设备及存储介质
WO2023091738A1 (en) * 2021-11-22 2023-05-25 Microchip Technology Incorporated Analog information model object class definition

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792913A (en) * 1986-11-03 1988-12-20 Grumman Aerospace Corporation Simulator for systems having analog and digital portions
US4985860A (en) * 1989-06-21 1991-01-15 Martin Vlach Mixed-mode-simulator interface
US5105373A (en) * 1990-01-22 1992-04-14 Texas Instruments Incorporated Method of simulating the operation of a circuit having analog and digital circuit parts
JP3082987B2 (ja) * 1991-10-09 2000-09-04 株式会社日立製作所 ミックスモードシミュレーション方法
US5297066A (en) * 1991-10-22 1994-03-22 National Semiconductor Corporation Digital circuit simulation of analog/digital circuits
GB9203507D0 (en) * 1992-02-19 1992-04-08 Philips Electronics Uk Ltd Electronic system simulation
JP2708338B2 (ja) * 1992-10-12 1998-02-04 三菱電機株式会社 論理シミュレーション装置及び回路シミュレーション装置
US5535223A (en) * 1993-05-28 1996-07-09 Sun Microsystems, Inc. Method and apparatus for the verification and testing of electrical circuits
JP3297213B2 (ja) * 1994-08-18 2002-07-02 株式会社東芝 集積回路シミュレータ及び集積回路のシミュレーション方法
JP3885274B2 (ja) * 1997-03-14 2007-02-21 富士通株式会社 シミュレーション用回路変換装置
US6110217A (en) * 1997-10-03 2000-08-29 International Business Machines Corporation System and method for synchronization of multiple analog servers on a simulation backplane
US6339836B1 (en) * 1998-08-24 2002-01-15 Mentor Graphics Corporation Automated design partitioning
US6560572B1 (en) * 1999-04-15 2003-05-06 Interactive Image Technologies, Ltd. Multi-simulator co-simulation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018235004A1 (en) * 2017-06-22 2018-12-27 Sendyne Corporation RESOLVER OF DIFFERENTIAL STOCHASTIC EQUATIONS

Also Published As

Publication number Publication date
EP1305765A1 (en) 2003-05-02
US20020049576A1 (en) 2002-04-25
CN1440537A (zh) 2003-09-03
WO2002003310A1 (en) 2002-01-10
EP1305765A4 (en) 2003-10-01
AU2001276854A1 (en) 2002-01-14

Similar Documents

Publication Publication Date Title
KR20030028541A (ko) 혼합 신호 시뮬레이션
US5880971A (en) Methodology for deriving executable low-level structural descriptions and valid physical implementations of circuits and systems from semantic specifications and descriptions thereof
Riesgo et al. Design methodologies based on hardware description languages
US5870308A (en) Method and system for creating and validating low-level description of electronic design
US5933356A (en) Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
US5557531A (en) Method and system for creating and validating low level structural description of electronic design from higher level, behavior-oriented description, including estimating power dissipation of physical implementation
US5598344A (en) Method and system for creating, validating, and scaling structural description of electronic device
US5553002A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface
US5541849A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5493508A (en) Specification and design of complex digital systems
US5572436A (en) Method and system for creating and validating low level description of electronic design
US5544066A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of low-level design constraints
US6470482B1 (en) Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
US8639487B1 (en) Method for multiple processor system-on-a-chip hardware and software cogeneration
WO2003056475A2 (en) System, method and article of manufacture for estimating a potential performance of a codesign from an executable specification
WO2003056473A2 (en) System, method, and article of manufacture for profiling an application targeted for reconfigurable logic using calls to profiling functions
US7370312B1 (en) System and method for controlling simulation of hardware in a hardware development process
US8732630B1 (en) Methods, systems, and articles of manufacture for implementing analog behavioral modeling and IP integration using systemverilog hardware description language
Newton et al. Computer-aided design for VLSI circuits
WO2003056472A2 (en) System method and article of manufacture for enhanced profiling of an application targeted for hardware/software systems
WO2003056474A1 (en) System method and article of manufacture for dynamically profiling memory transfers in a program
US7433813B1 (en) Embedding a co-simulated hardware object in an event-driven simulator
Renaudin et al. A design framework for asynchronous/synchronous circuits based on CHP to HDL translation
US9501592B1 (en) Methods, systems, and articles of manufacture for implementing analog behavioral modeling and IP integration using systemverilog hardware description language
Peng et al. Automatic model refinement for fast architecture exploration [soc design]

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid