KR20230160880A - 혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑 - Google Patents

혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑 Download PDF

Info

Publication number
KR20230160880A
KR20230160880A KR1020237036234A KR20237036234A KR20230160880A KR 20230160880 A KR20230160880 A KR 20230160880A KR 1020237036234 A KR1020237036234 A KR 1020237036234A KR 20237036234 A KR20237036234 A KR 20237036234A KR 20230160880 A KR20230160880 A KR 20230160880A
Authority
KR
South Korea
Prior art keywords
simulation
digital
time window
file
block
Prior art date
Application number
KR1020237036234A
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 KR20230160880A publication Critical patent/KR20230160880A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/38Circuit design at the mixed level of analogue and digital signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

회로를 시뮬레이션하기 위한 방법, 시스템, 및 비일시적 컴퓨터 판독가능 매체가 제공된다. 방법은 블록을 포함하는 회로에 대한 디지털 시뮬레이션 파일을 생성하는 단계, 회로에 대한 혼합 시뮬레이션 파일을 생성하는 단계, 시뮬레이션의 제1 시간 윈도우 동안 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하는 단계, 파형 파일에 기초하여 블록에 대한 복수의 아날로그 값들을 결정하는 단계, 및 프로세서에 의해, 제2 시간 윈도우의 시작에서 블록에 주석이 달린 복수의 아날로그 값들로 시뮬레이션의 제2 시간 윈도우 동안 혼합 시뮬레이션 파일을 실행하는 단계를 포함한다. 디지털 시뮬레이션 파일은 디지털 뷰에서의 블록에 대응하고, 혼합 시뮬레이션 파일은 아날로그 뷰에서의 블록에 대응한다.

Description

혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑
관련 출원들에 대한 상호 참조
본 출원은, 35 U.S.C. §119(e)의 규정 하에, 2021년 3월 31일자로 출원된 미국 가특허 출원 제63/168,763호의 이익을 주장하며, 이 가특허 출원은 모든 목적을 위해 그 전체가 본 명세서에 참조로 포함된다.
기술분야
본 개시내용은 집적 회로의 시뮬레이션에 관한 것이다. 더 구체적으로, 본 개시내용은 혼합 신호 시뮬레이션(mixed signal simulation)에서의 실시간 뷰 스와핑(real time view swapping)에 관한 것이다.
전자 설계 자동화(EDA)에서, 시뮬레이터들은 자극들에 응답하여 회로의 거동을 시뮬레이션하도록 설계된다. 두 가지 주요 타입의 시뮬레이터들, 즉, 아날로그 회로 시뮬레이터들 및 디지털 로직 시뮬레이터들이 존재한다. 아날로그 회로 시뮬레이터는 높은 정확도를 달성하기 위해 회로의 매우 정확한 모델들(즉, 표현들)을 이용한다. 신호들은 아날로그 회로 시뮬레이션에서 연속적으로 변하는 값들로서 전파된다. 아날로그 회로 시뮬레이터에 대한 입력 회로는 일반적으로 집적 회로 강조를 갖는 시뮬레이션 프로그램(simulation program with integrated circuit emphasis)(SPICE) 포맷이다. 디지털 로직 시뮬레이터는 회로의 기능적 표현들을 이용한다. 연속적으로 변하는 값들을 전파하기보다는, 몇몇 이산 전압 레벨들(예를 들어, 주(primary) 로직 0 및 로직 1)이 전파된다. 디지털 로직 시뮬레이터에 대한 입력 로직 설계는 일반적으로 Verilog와 같은 하드웨어 기술 언어(hardware description language)(HDL) 포맷이다. 아날로그 회로 시뮬레이터는 디지털 로직 시뮬레이터에 비해, 회로의 거동을 예측함에 있어서 더 높은 정확도를 달성할 수 있다. 그러나, 디지털 로직 시뮬레이터는 전형적으로 아날로그 회로 시뮬레이터보다 2차수 더 빠르다. 따라서, 정확도와 속도 사이에 트레이드오프(tradeoff)가 있다.
일 양태에서, 방법은 블록을 포함하는 회로에 대한 디지털 시뮬레이션 파일을 생성하는 단계, 회로에 대한 혼합 시뮬레이션 파일을 생성하는 단계, 시뮬레이션의 제1 시간 윈도우 동안 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하는 단계, 파형 파일에 기초하여 블록에 대한 복수의 아날로그 값들을 결정하는 단계, 및 프로세서에 의해, 제2 시간 윈도우의 시작에서 블록에 주석이 달린 복수의 아날로그 값들로 시뮬레이션의 제2 시간 윈도우 동안 혼합 시뮬레이션 파일을 실행하는 단계를 포함한다. 디지털 시뮬레이션 파일은 디지털 뷰(digital view)에서의 블록에 대응하고, 혼합 시뮬레이션 파일은 아날로그 뷰(analog view)에서의 블록에 대응한다.
일 양태에서, 시스템은 명령어들을 저장하는 메모리 및 메모리와 결합되고 명령어들을 실행하는 프로세서를 포함한다. 명령어들은 실행될 때 프로세서로 하여금 블록을 포함하는 회로에 대한 디지털 시뮬레이션 파일을 생성하게 하고 - 디지털 시뮬레이션 파일은 디지털 뷰에서의 블록에 대응함 -, 회로에 대한 혼합 시뮬레이션 파일을 생성하게 하고 - 혼합 시뮬레이션 파일은 아날로그 뷰에서의 블록에 대응함 -, 시뮬레이션의 제1 시간 윈도우 동안 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하게 하고, 파형 파일에 기초하여 블록에 대한 복수의 아날로그 값들을 결정하게 하고, 제2 시간 윈도우의 시작에서 블록에 주석이 달린 복수의 아날로그 값들로 시뮬레이션의 제2 시간 윈도우 동안 혼합 시뮬레이션 파일을 실행하게 한다.
본 개시내용은 아래에 주어지는 상세한 설명으로부터 그리고 본 개시내용의 실시예들의 첨부 도면들로부터 더 충분히 이해될 것이다. 도면들은 본 개시내용의 실시예들의 지식 및 이해를 제공하기 위해 이용되며, 본 개시내용의 범위를 이러한 특정 실시예들로 제한하지 않는다. 더욱이, 도면들이 반드시 축척대로 그려져 있는 것은 아니다.
도 1a는 (고정된 블록 설정들을 갖는) 종래의 혼합 신호 시뮬레이션을 도시하는 개략도이다.
도 1b는 본 개시내용의 실시예에 따른, 시뮬레이션 동안 블록 설정들이 디지털 뷰와 아날로그 뷰 사이에서 스위칭(switch)하는 혼합 신호 시뮬레이션을 도시하는 개략도이다.
도 2는 본 개시내용의 실시예에 따른, 3개의 시간 윈도우들을 갖는 혼합 신호 시뮬레이션을 도시하는 개략도이다.
도 3 내지 도 5는 본 개시내용의 실시예에 따른, 혼합 신호 시뮬레이션들의 예시적인 출력들을 도시하는 개략도이다.
도 6은 본 개시내용의 실시예에 따른, 혼합 신호 시뮬레이션을 실행하기 위한 방법에 대한 흐름도이다.
도 7은 본 개시내용의 일부 실시예들에 따른, 집적 회로의 설계 및 제조 동안 이용된 다양한 프로세스들의 흐름도를 도시한다.
도 8은 본 개시내용의 실시예들이 동작할 수 있는 예시적인 컴퓨터 시스템의 도면을 도시한다.
본 개시내용의 양태들은 혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑(RTVS)에 관한 것이다. 혼합 신호 시뮬레이션에서, 정확도와 속도를 더 잘 트레이드오프하기 위해, 아날로그 회로 시뮬레이션 및 디지털 로직 시뮬레이션이 하나의 시뮬레이션으로 결합된다. 혼합 신호 시뮬레이션의 종래의 흐름에서, 사용자들은 디지털 시뮬레이터에 의해 디지털 뷰(예를 들어, Verilog)에서 시뮬레이션될 회로 설계의 특정 블록들을 설정할 수 있다. 그리고, 다른 블록들은 아날로그 시뮬레이터에 의해 시뮬레이션되도록 아날로그 뷰(예를 들어, SPICE)에서 설정될 수 있다. 이것은 혼합 신호 시뮬레이션 또는 혼합 신호 검증(mixed signal verification)(MSV)으로 지칭된다. 그러나, 혼합 신호 시뮬레이션의 종래의 흐름에서, 디지털 뷰 및 아날로그 뷰에 대한 블록 설정은 시뮬레이션 전체에 걸쳐 고정된다(즉, 블록은 시뮬레이션 전체에 걸쳐 디지털 뷰에 또는 아날로그 뷰에 있다).
본 명세서에 개시된 실시예들은 혼합 신호 시뮬레이션들에서 시뮬레이션 기간 전체에 걸친 고정 뷰들의 문제를 해결한다. 일부 실시예들에서, 사용자는 동일한 블록에 대한 시뮬레이션 동안 상이한 시간 윈도우들에서 동적으로 (상이한 시뮬레이터들에 의해 시뮬레이션된) 상이한 뷰들을 지정할 수 있다. 일부 실시예들에서, 본 명세서에 설명된 방식들은 시간-기반 공동-시뮬레이션(time-based co-simulation)을 제공하며, 따라서, 사용자는 과도적 시뮬레이션(transient simulation)에서 디바이스 뷰들을 동적으로 스위칭할 수 있다.
본 개시내용의 이점들은 사용자들이 정확도 및 성능을 트레이드오프하는 유연성을 제공하는 것을 포함하지만, 이에 제한되지는 않는다. 예를 들어, 블록 설정이 시뮬레이션 전체에 걸쳐 고정되지 않기 때문에, 이점들은 시뮬레이션의 특정 부분에 대한 원하는 정확도를 보존하면서 종래의 혼합 신호 시뮬레이션보다 더 높은 속도를 포함할 수 있다.
일부 실시예들에서, 디지털 시뮬레이터 및 아날로그 시뮬레이터가 이용된다. 일부 양태들에서, 디지털 시뮬레이터는 Synopsys VCS®일 수 있다. 일부 양태들에서, 아날로그 시뮬레이터는 Synopsys로부터의 FineSimTM 및/또는 PrimeSimTM일 수 있다. 그러나, 본 명세서에 설명된 기술들은 임의의 특정 시뮬레이터로 제한되지 않는다.
예시의 목적을 위해, 3개의 시뮬레이션 윈도우들(제1 윈도우, 제2 윈도우 및 제3 윈도우)을 포함하는 예가 RTVS 구현을 설명하기 위해 이용된다. 이 예에서, 제1 윈도우 및 제3 윈도우는 순수 디지털 시뮬레이션이다. 제2 윈도우는 MSV 시뮬레이션이다. 따라서, 제2 윈도우의 시작 및 제3 윈도우의 시작에서, 회로의 일부 블록들은 디지털 뷰로부터 아날로그 뷰로의, 그 다음, 아날로그 뷰로부터 디지털 뷰로의 스위칭을 필요로 한다.
도 1a는 종래의 혼합 신호 시뮬레이션을 도시하는 개략도이다. 종래의 혼합 신호 시뮬레이션에서, 블록 설정들은 고정된다. 예를 들어, 제1 블록(110)은 디지털 뷰에서 테스트되고, 제2 블록(112)은 아날로그 뷰에서 테스트된다. 일부 양태들에서, 커맨드 "use_spice-cell inv_chain"은 t0으로부터 t3까지 시뮬레이션 윈도우(102) 동안 공동-시뮬레이션을 실행하기 위해 이용될 수 있다. 파형(114)은 제1 블록(110)에 대응하는 디지털 파형을 도시하고, 파형(116)은 제2 블록(112)에 대응하는 아날로그 파형을 도시한다. 본 명세서에서 이전에 논의된 바와 같이, 종래의 혼합 신호 시뮬레이션에서, 블록 설정들은 고정된다. 따라서, 제1 블록(110)은 전체 시뮬레이션 윈도우(102)(즉, t0으로부터 t3까지)에 대해 디지털 뷰로 실행되고, 제2 블록(112)은 전체 시뮬레이션 윈도우(102)에 대해 아날로그 뷰로 실행된다.
도 1b는 본 개시내용의 실시예에 따른 혼합 신호 시뮬레이션을 도시하는 개략도이다. 제1 블록(110)은 전체 시뮬레이션 윈도우(즉, t0으로부터 t3까지)에 대해 디지털 뷰에서 테스트된다. 제2 블록(112)은 디지털 뷰 및 아날로그 뷰에서 테스트된다. 제2 블록(112)의 설정은 시뮬레이션 동안 디지털 뷰와 아날로그 뷰 사이에서 스위칭된다. 따라서, 제1 시간 윈도우(104)에서, 제1 블록(110) 및 제2 블록(112) 둘 다가 디지털 뷰에 있고, 순수 디지털 시뮬레이션이 실행된다. 제2 시간 윈도우(106)에서, 제1 블록(110)은 디지털 뷰에 있고, 제2 블록(112)은 아날로그 뷰에 있다. 제3 시간 윈도우(108)에서, 제1 블록(110) 및 제2 블록(112) 둘 다가 디지털 뷰에 있고, 둘 다의 블록에 대해 순수 디지털 시뮬레이션이 실행된다.
일부 실시예들에서, 제2 시간 윈도우(106)에서, 다음의 커맨드가 이용될 수 있다:
도 2는 본 개시내용의 실시예에 따른, 3개의 시간 윈도우들을 갖는 혼합 신호 시뮬레이션을 도시하는 개략도(200)이다. 개략도(200)는 차례로 실행되는 디지털 및 혼합 시뮬레이션(즉, 디지털 simv 및 msv simv)과 연관된 2개의 실행파일(executable)의 예를 도시한다.
일부 실시예들에서, 사용자는 MSV 윈도우(204)를 초기 파일에서 지정할 수 있다. 예를 들어, 사용자는 MSV 윈도우(204)의 시작 시간 및 종료 시간(예를 들어, 30ns로부터 60ns까지)을 초기 파일에서 지정할 수 있다. 본 명세서에 설명된 RTVS 흐름은 실행파일(즉, simv)을 자동으로 생성하고, 사용자의 사양(specification)에 따라 시뮬레이션을 론칭(launch)할 수 있다.
일부 실시예들에서, 시간-기반 공동-시뮬레이션을 달성하기 위해, 상이한 컴파일링된 Verilog 바이너리들(디지털/혼합)이 자동으로 생성되고, 사용자에 의해 지정된 상이한 시간 윈도우들에서 하나씩 실행된다. 일부 양태들에서, 이러한 기능은 혼합 신호 검증 툴의 셋업 파일 또는 구성 파일에서의 새로운 커맨드에 의해 호출된다. 예를 들어, 혼합 신호 검증 툴의 구성 파일(예를 들어, cosim 셋업 파일)에서 커맨드(예를 들어, multi_view_sim)가 이용될 수 있다. 커맨드는 각각의 뷰 구성에 대한 윈도우 지속기간을 기술하는 데 이용될 수 있다. 일부 실시예들에서, 커맨드(예를 들어, multi_view_sim 커맨드)는 사용자들이 다수의(무제한의) 윈도우들을 지정하게 할 수 있다. 각각의 윈도우는 초기 조건을 포함하여 그 자신의 뷰 구성 및 그 자신의 시뮬레이션 제어를 가질 수 있다. 이것은 혼합 신호 시뮬레이션에서 가장 큰 유연성 및 제어를 제공한다.
일부 실시예들에서, 바이너리 유틸리티(binary utility)(예를 들어, "msv_mview_vcs"라고 지칭됨)는 혼합 신호 컴파일레이션 및 디지털 컴파일레이션을 실행하여 대응하는 실행파일들을 생성하고, 윈도우 사양들에 기초하여 디지털 및 혼합 신호 시뮬레이션들을 하나씩 론칭할 수 있다.
일부 실시예들에서, 유틸리티(예를 들어, "msv_mview_vcs")는 도 2에 도시된 바와 같이 제1 런(run), 그 후 제2 런, 그 후 제3 런을 자동으로 론칭할 수 있다.
제1 런은 제1 윈도우(202)와 연관된다. 따라서, 시뮬레이션은 0ns로부터 30ns까지 디지털 뷰에서 실행된다. 제2 런은 제2 윈도우(204)와 연관된다. 시뮬레이션은 30ns로부터 60ns까지 혼합 신호 뷰에서 실행된다. 제3 런은 제3 윈도우(206)와 연관된다. 시뮬레이션은 60ns로부터 90ns까지 디지털 뷰에서 실행되고, 제1 윈도우(202)로부터 계속된다.
일부 실시예들에서, 다음의 커맨드는 제1 런, 제2 런, 및 제3 런을 론칭하기 위해 이용될 수 있다. 제1 윈도우(202)에 대해:
제2 윈도우(204)에 대해:
Figure pct00003
제3 윈도우(206)에 대해:
Figure pct00004
전술한 바와 같이, 커맨드는 상이한 뷰 구성들을 갖는 다수의 시뮬레이션 윈도우들을 가능하게 하기 위해 혼합 신호 검증 툴의 제어 파일에서 이용될 수 있다. 일부 양태들에서, 커맨드는 다음의 신택스를 가질 수 있다:
커맨드의 제1 파라미터(예를 들어, start=time1)는 시뮬레이션을 위한 시작 시간을 나타내기 위해 이용될 수 있다. 일부 양태들에서, 시작 시간은 혼합 시뮬레이션의 시작 시간에 대응할 수 있다.
커맨드의 제2 파라미터(예를 들어, icfile=file1)는 혼합 시뮬레이션을 위한 초기 값들을 설정하기 위해 이용될 수 있다. 예를 들어, 초기 값은 하나 이상의 셀의 초기 값에 대응할 수 있다. 제2 파라미터는 선택사양적이다. 일부 양태들에서, 제2 파라미터는 시작 시간을 지정하는 제1 파라미터와 윈도우의 종료 시간을 지정하는 제4 파라미터 사이에 지정된다. 제2 파라미터에 의해 설정된 초기 값들은 단일 윈도우 슬롯과 연관된다. 단일 윈도우 슬롯은 시작 시간 및 종료 시간에 의해 정의된다.
커맨드의 제3 파라미터(예를 들어, afile=file2)는 첨부된 파일에 혼합 시뮬레이션을 위한 추가적인 시뮬레이터 설정들을 첨부하기 위해(예를 들어, 일부 시뮬레이션 제어 옵션들을 추가하기 위해) 이용될 수 있다. 제어 설정들은 정확도/속도 제어 옵션을 포함할 수 있지만, 이들로 제한되지 않는다. 예를 들어, rtvs_win start=10ns afile=new.cfg end=20ns start=30ns end=40ns control=spice1.init이다. 제3 파라미터는 선택사양적이며, 사용자에 의해 제공되지 않을 수 있다. 제3 파라미터는 윈도우의 시작 시간을 지정하는 제1 파라미터와 윈도우의 종료 시간을 지정하는 제4 파라미터 사이에 제공될 수 있다. 추가적인 시뮬레이터 설정들은 단일 윈도우 슬롯에만 영향을 미친다. 따라서, 커맨드에서 지정된 각각의 시간 윈도우에 대해 첨부된 파일이 제공될 수 있다. 예를 들어, 아날로그 시뮬레이터(예를 들어, SPICE) 설정은 온도, SPICE 자극, 프로브 등을 포함할 수 있다.
커맨드의 제4 파라미터(예를 들어, end=time2)는 혼합 시뮬레이션에 대한 종료 시간을 지정하기 위해 이용될 수 있다. 종료 시간은 시작 시간과 쌍을 이룬다. 일부 양태들에서, 사용자는 시작 시간들 및 종료 시간들의 다수의 쌍들을 지정할 수 있다. 일부 양태들에서, 다수의 쌍들의 마지막 종료 시간이 지정되지 않으면, 종료 시간은 시뮬레이션의 종료 시간으로 설정될 수 있다.
커맨드의 제5 파라미터(예를 들어, control="control_file")는 혼합 신호 시뮬레이터에 대한 설정들을 포함하는 파일을 지정하기 위해 이용될 수 있다. 비제한적인 예에 따르면, 상이한 윈도우들에 대한 "use_[view]"의 뷰 선택 설정은 혼합 시뮬레이션 윈도우에 대한 파일(예를 들어, "use_spice")을 이용하여 지정될 수 있다.
일부 실시예들에서, 구성 파일이 다수의 커맨드들(예를 들어, multi_view_sim)을 포함하는 경우, 제5 파라미터에 의해 지정된 제어 파일이 현재 커맨드 윈도우에만 적용된다(즉, 누적되지 않는다). 일부 실시예들에서, 사용자가 아날로그 시뮬레이터 설정을 모든 윈도우들에 적용하기를 원하는 경우, 사용자는 초기 파일에서 아날로그 시뮬레이터 설정을 지정할 수 있다. 예를 들어, 비제한적인 예로서, 이것은 초기 파일에서의 글로벌 "use_spice"를 이용하여 달성될 수 있다.
일부 실시예들에서, 커맨드의 제6 파라미터(예를 들어, simv_commands)는 런타임 시뮬레이션 옵션들을 지정하기 위해 이용될 수 있다. 옵션들은 주어진 포인트에서 시뮬레이션 실행파일의 메모리 이미지(예를 들어, simv)를 캡처 및 저장하고 시뮬레이션을 종료하기 위한 커맨드들을 포함할 수 있다. 일부 양태들에서, 제6 파라미터는 본 명세서에 설명된 방식들을 이용하여 수동으로 실행파일 바이너리(예를 들어, simv)를 실행할 필요가 없기 때문에 선택사양적이다. 일부 양태들에서, 시뮬레이션 옵션들이 지정되지 않으면, 디폴트 설정들이 적용될 수 있다. 예를 들어, simv_cmd = simv가 적용될 수 있다. UCLI(unified command line interface)가 제한적으로 지원된다. 지원될 수 있는 UCLI 파일 포맷은 아래에 더 설명된다.
커맨드의 제7 파라미터(예를 들어, node_map=node_map_file)는 디지털 뷰와 아날로그 뷰 사이의 노드 매핑(node mapping)을 지정하기 위해 이용될 수 있다. 일부 실시예들에서, 파일은 노드들이 아날로그 뷰 및 디지털 뷰에서 상이한 명칭들을 가질 때 제공될 수 있다.
본 명세서에서 전술한 바와 같이, 유틸리티는 컴파일 시간 및 실행 시간을 순차적으로 론칭할 수 있다. 그것은 RTVS 시뮬레이션에 관한 정보를 얻기 위해 커맨드(예를 들어, multi_view_sim)를 파싱한다. 정보는 시뮬레이션 윈도우와 연관된 정보를 포함할 수 있다. 유틸리티는 흐름을 제어하여 시뮬레이션을 가능하게 하고, 시뮬레이션의 상태를 모니터링한다. 일부 양태들에서, 유틸리티는 자동화된 흐름을 가능하게 할 수 있다. 일부 실시예들에서, 유틸리티는 이하의 신택스를 가질 수 있다:
일부 실시예들에서, 사용자는 유틸리티를 이용해서(예를 들어, vcs_elabration_options을 이용해서) 디지털 시뮬레이터에 대한 커맨드 라인 옵션들을 지정할 수 있다. 예를 들어, 사용자는 디지털 시뮬레이터(예를 들어, VCS)에 대한 커맨드 라인 옵션들을 지정할 수 있다. 옵션들은 디지털 시뮬레이터(예를 들어, VCS)의 런타임 커맨드에 통신된다. 일부 양태들에서, 디지털 시뮬레이터에서 혼합 신호 피처(mixed-signal feature)를 가능하게 하는 제어 파일이 이용될 수 있다. 비제한적인 예에 따르면, VCS에서, 옵션 "-ad="이 지정되고, 그렇지 않으면 유틸리티 msv_mview_vcs가 에러 아웃(error out)될 수 있다.
일부 양태들에서, 사용자는 상호작용 모드를 가능하게 할 수 있다. 일부 양태들에서, "-debug_access+all"이 지정되지 않으면, msv_mview_vcs는 그것을 자동으로 추가한다. 이 옵션은 디버그 능력들을 가능하게 할 수 있다. 일부 양태들에서, 시뮬레이션을 실행하기 위한 파라미터(예를 들어, -R)는, RTVS 흐름이 컴파일링 후에 런타임을 자동으로 론칭할 수 있기 때문에, 스킵될 수 있다.
일부 양태들에서, 어느 특징들이 턴온되고 어느 특징들이 턴오프되는지를 지정하기 위해 디지털에 대한 커맨드 라인 옵션들이 이용될 수 있다. 매크로(macro)(예를 들어, RTVS_Mixed)는 교차 모듈 참조(cross module referencing)(XMR) 서술문들(statements)을 포함하기 위해 이용될 수 있다. 예를 들어, 사용자가 노드 상의 전압을 강제하기 위한 서술문들(예를 들어, snps_force_volt()) 또는 노드로부터의 전압 값들을 샘플링하기 위한 서술문들(예를 들어, snps_get_volt())과 같은 XMR(교차 모듈 참조) 서술문들을 갖는 경우, 사용자는 매크로(예를 들어, RTVS_MIXED) 내에 이들 서술문들을 포함할 수 있다. 그리고 사용자는 유틸리티의 정교화 옵션들(elaboration options)에서 매크로를 지정하기 위한 옵션(예를 들어, +define)을 지정할 수 있다. 비제한적인 예에 따르면, 사용자는 정교화 옵션에서 "+define+RTVS_MIXED"를 이용할 수 있다. 이것은 어느 특징들이 턴온되고 어느 특징들이 턴오프되는지를 지정하기 위해 사용자에 의해 이용될 수 있다. 매크로(예를 들어, RTVS_MIXED)는 상이한 뷰들에 대한 상이한 명칭들 및 이용을 다루기 위해 상이한 테스트벤치들(testbenches)이 사용자 소스 코드(예를 들어, Verilog) 내에 지정될 수 있도록 혼합 신호 시뮬레이션에 대해서만 정의될 수 있다.
일부 양태들에서, 유틸리티의 파라미터(예를 들어, [-no_elab])는 설계를 리컴파일링(recompiling)하지 않고 윈도우 설정을 조정하기 위해 사용자에 의해 이용될 수 있다. 예를 들어, 혼합 신호 제어 파일(예를 들어, vcsAD.init)은 사용자에 의해 수정될 수 있고, 유틸리티(예를 들어, msv_mview_vcs)는 파라미터(예를 들어, [-no_elab])로 실행될 수 있다.
일부 실시예들에서, 디지털 테스트벤치의 복잡성으로 인해, 디지털 시뮬레이션은 시뮬레이션의 중간에서 시작할 수 없다. 예를 들어, 시뮬레이션이 제1 시간 윈도우 및 제2 시간 윈도우를 포함하는 경우, 디지털 시뮬레이션은 제2 시간 윈도우에서 시작할 수 없다. 따라서, 시뮬레이션 상태들의 무결성을 보장하기 위해, 디지털 시뮬레이션은 스킵될 수 없다. 그것은 전체 시뮬레이션 기간 전체에 걸쳐 실행될 수 있다. 한편, 아날로그 시뮬레이션은 아날로그 뷰에서의 시뮬레이션 윈도우의 시작에서 적절한 초기 상태들을 제공함으로써 시뮬레이션 기간의 중간에서 시작될 수 있다.
일부 실시예들에서, 종래의 MSV 흐름은 동적 뷰 스위칭을 지원하지 않기 때문에, 단일 실행가능 바이너리(예를 들어, simv) 대신에 시간-기반 공동-시뮬레이션을 행하기 위해 별도의 실행가능 바이너리(예를 들어, simv)가 생성된다.
도 2를 다시 참조하면, 디지털 시뮬레이션 윈도우들(즉, 제1 윈도우 및 제3 윈도우)에서, 디지털 시뮬레이터가 시뮬레이션들을 수행한다. 예를 들어, 순수 디지털 simv(simv_dig)는 시뮬레이션을 행한다. MSV 윈도우(즉, 제2 윈도우)에서, 아날로그 시뮬레이터는 시뮬레이션들을 수행한다. 예를 들어, MSV simv(simv_msv)는 시뮬레이션을 행한다.
이 2개의 실행파일(simv_dig, simv_msv)은 다음과 같은 방식으로 론칭될 수 있다:
순수 디지털 시뮬레이션 윈도우에서, 디지털 simv가 론칭된다. 그것은 시뮬레이션 윈도우의 끝까지 이어진다. 신호들의 파형들은 파형 파일로 덤프(dumped)된다. 아날로그 뷰로 스위칭될 블록들에서의 신호들만이 RTVS 흐름 목적을 위해 이용된다.
다음 MSV 윈도우에서, MSV 실행파일(MSV simv)이 론칭된다. MSV simv는 시작 t=0부터 시뮬레이션을 시작할 수 있다. 디지털 테스트벤치는 여전히 디지털 블록들에 대해 시뮬레이션될 수 있다. 그러나, 아날로그 블록들에 대한 시뮬레이션은 제1 윈도우(순수 디지털)에 대해 스킵된다. 이 특징은 아날로그 엔진에 의해 구현된다. 아날로그 엔진은 이벤트 시뮬레이션을 스킵할 수 있지만, 시뮬레이션 시간을 앞으로 이동할 수 있다. 그리고 이 제1 윈도우(순수 디지털)에서의 아날로그 대 디지털 인터페이스 이벤트들은 제1 디지털 시뮬레이션(예를 들어, simv_dig 시뮬레이션)으로부터 캡처된다. 아날로그 대 디지털 이벤트들은 제1 디지털 시뮬레이션(즉, simv_dig 시뮬레이션)에서 파형 파일로부터 재구성될 수 있다. 이들 이벤트들은 MSV 시뮬레이션(즉, simv_msv 시뮬레이션)의 제1 윈도우 기간에서 시뮬레이션된다. 인터페이스 이벤트들의 이러한 재구성은 제1 디지털 전용 윈도우에 대한 디지털 블록들에 대한 MSV 시뮬레이션의 무결성을 보장할 수 있다.
MSV가 아날로그 블록 시뮬레이션을 스킵함으로써 제1 윈도우를 완료한 후에, MSV는 제2 혼합 신호(MSV) 윈도우에 대한 적절한 초기 상태들을 셋업한다. 디지털 블록들이 제1 윈도우에서 정확하게 시뮬레이션되기 때문에, 이 순간에, 아날로그 블록의 초기 상태들에 주석이 달린다.
아날로그 블록들의 초기 상태들은 제1 윈도우에 대한 디지털 시뮬레이션으로부터의 파형 파일로부터 검색될 수 있다. 그 후, 아날로그 블록들에서의 모든 노드들의 (즉, 디지털 시뮬레이션으로부터의) 최신 상태들은 제2 윈도우의 시작에서 아날로그 블록들에 주석이 달릴 수 있다. 이 커맨드는 아날로그 블록들에서의 노드들에 대한 초기 조건들을 제공하는 서술문으로서 아날로그 시뮬레이터에 전달될 수 있다. 비제한적인 예에 따르면, SPICE에서, 이것은 표준 SPICE 포맷의 ".ic" 서술문들을 이용하여 달성될 수 있다. 한편, 디지털 블록들의 초기 상태들은 디지털 블록들에 대한 시뮬레이션이 이 혼합 시뮬레이션에서 t=0의 시작으로부터 계속되었기 때문에 주석이 달리지 않을 수 있다. 초기 상태에 적절히 주석이 달린 후에, 실행파일은 MSV 뷰 구성으로 제2 윈도우를 시뮬레이션할 수 있다.
제3 윈도우에서, 시뮬레이션은 디지털 시뮬레이션으로 다시 스위칭된다. 시뮬레이션은 제1 윈도우 디지털 시뮬레이션(simv_dig)으로부터 계속될 수 있다. 시뮬레이션 상태들의 정확성이 보장될 수 있다. 동시에, 시뮬레이션은 결과들에 대한 전체 대기 시간을 단축시키기 위해 독립적으로 론칭될 수 있다.
일부 실시예들에서, 윈도우들을 스위칭될 때, 다음 윈도우의 초기 값은 이전 윈도우로부터 덤프된 파형 파일로부터 온다. 본 명세서에 설명된 RTVS 방식은 파형 파일로부터 노드 데이터 포인트의 최신 상태를 판독하는 작업을 구현할 수 있다. 이것은 제1 윈도우 디지털 결과들로부터의 아날로그 블록들 초기 값들에 주석을 달기 위해 이용된다. 표 1은 디지털 값들 및 대응하는 아날로그 값들을 나타낸다.
표 1: 디지털 값들 및 대응하는 아날로그 값들
Figure pct00008
일부 실시예들에서, 디지털 시뮬레이션은 simv_msv 시뮬레이션의 제1 윈도우에서 계속된다. 그러나, 시뮬레이션 결과들은, 시뮬레이션이 연속 목적으로만 수행되기 때문에, 생성되지 않을 수 있다.
일부 실시예들에서, 2개의 상이한 실행파일(예를 들어, simv)을 생성하는 것은 시뮬레이션들을 병렬로 실행하는 것을 가능하게 하여 최종 결과들을 획득하는 전체 속도를 개선한다. 예를 들어, simv_msv의 제2 윈도우가 제1 윈도우 결과들에 의존하지만, 디지털 시뮬레이션(즉, 실행파일 simv_dig)은 혼합 신호 시뮬레이션(즉, simv_msv) 결과들에 의존하지 않는다. 따라서, 디지털 시뮬레이션을 위한 실행파일(예를 들어, simv_dig)은 혼합 신호 시뮬레이션(예를 들어, simv_msv) 결과들을 대기하지 않고 병렬 작업으로서 론칭될 수 있다.
일부 실시예들에서, 유틸리티(예를 들어, msv_mview_vcs)는 혼합 신호 시뮬레이터에서 2개의 커맨드 라인들을 론칭하여, 디지털 simv 및 혼합 simv 바이너리를 생성할 수 있다. 예를 들어, 커맨드 라인은 다음과 같을 수 있다:
유틸리티는 VCS에서 다음의 실제 컴파일 시간 커맨드들을 호출할 수 있다:
일부 실시예들에서, 유틸리티는 각각의 simv 윈도우에 대한 simv 커맨드 라인 및 대응하는 ucli 파일을 생성한다. 예를 들어, 유틸리티는 다음을 생성할 수 있다:
일부 실시예들에서, 상이한 윈도우들(상이한 뷰 구성들) 사이의 깨끗한 전환들(transitions)을 보장하기 위해, 사용자는 윈도우들(뷰들)을 스위칭하기에 적합한 시간을 선택할 수 있다. 일부 양태들에서, 적합한 시간은 뷰들을 스와핑하는 시간에 완료되지 않은 중요(critical) 이벤트들 또는 전환들이 없는 시간에 대응할 수 있다. 도 2에 도시된 예에서, t1 및 t2는 스위칭 뷰의 시점 전에 모든 중요 동작들이 완료되는 것과 같이 선택될 수 있다. 중요 동작들은 전환들이 토글(toggle)의 중간에 발생하지 않도록 토글들과 같은 동작들을 포함할 수 있다. 예를 들어, 제1 시간 윈도우(302)에서의 모든 중요 동작들은 t1 이전에 완료될 수 있다. 일부 실시예들에서, 이러한 조건이 충족되지 않더라도 시뮬레이션이 실행될 수 있지만, 결과들은 정확하지 않거나 디스플레이되지 않을 수 있다.
일부 실시예들에서, 유휴 기간(idle period)(즉, 자극 없는, 시간 버퍼)이 스위칭 순간 전후에 이용될 수 있다. 스위칭 전의 유휴 기간은 이전 윈도로부터의 모든 스케줄링된(중요) 이벤트들이 완료되게 하는 것이다. 스위칭 후의 유휴 기간은 설계가 안정되고 일관된 상태에 있도록 초기 조건들이 전체 설계로 전파되게 하는 것이다. 일부 실시예들에서, 유휴 기간 및/또는 스위칭은 스킵될 수 있다.
일부 실시예들에서, 출력 파형들은 시뮬레이션 동안 생성된다. 일부 실시예들에서, 디지털 시뮬레이션(예를 들어, 디지털 simv)은 하나의 파형 파일을 생성할 수 있고, 혼합 시뮬레이션(예를 들어, MSV simv)은 추가적인 파형 파일을 생성할 수 있다. 이 특징은 디폴트로 통합된 덤프를 가능하게 한다. 시뮬레이션의 무효 기간 동안 파형 파일들에서 적절한 상태들이 생성된다. 무효 기간은 블록이 디지털 뷰에서 또는 아날로그 뷰에서 실행되지 않을 때의 시간 윈도우를 지칭할 수 있다. 예를 들어, 제1 윈도우(202)는 혼합 시뮬레이션을 위한 무효 기간이다.
도 3은 본 개시내용의 실시예에 따른 그래픽 파형 뷰어(WV)(300)를 도시하는 개략도이다. 그래픽 WV(300)는 혼합 신호 시뮬레이션들의 예시적인 출력을 도시한다. 그래픽 WV(300)는 하나의 계층 트리 아래에 2개의 파형들(디지털 및 혼합 시뮬레이션들)과 연관된 모든 신호들을 디스플레이할 수 있다. 디지털 신호 및 대응하는 아날로그 신호는 하나의 패널로 병합될 수 없다. 예를 들어, 사용자가 신호 명칭(302)을 클릭하는 경우, 디지털 신호 및 대응하는 아날로그 신호가 하나의 계층 트리(304) 아래에 표시될 수 있다(예를 들어, 디지털 신호(306)(top.dut.addr_3.a) 및 혼합 신호(308)(top.dut.addr_3.v(a)). 그래픽 WV(300)는 디스에이블된 윈도우가 접속되지 않은 신호를 나타낼 수 있다. 디지털 신호(306)는 해시 패턴(310)에 의해 도시된 바와 같이 30ns로부터 60ns까지의 범위에서 디스에이블된 것으로 마킹된다. 혼합 신호(308)는 도 2의 제1 윈도우(202) 및 제3 윈도우(206)에 각각 대응하는 0ns로부터 30ns까지의 범위 및 60ns로부터 80ns까지의 범위에서 공백으로 마킹된다.
도 4는 본 개시내용의 실시예에 따른 혼합 신호 시뮬레이션들의 예시적인 출력을 도시하는 개략도이다. 순수 디지털 신호들은 그래픽 WV(400)에서 하나의 패널로 병합될 수 있다. 예를 들어, 도 1b의 제1 블록(110)에 대응하는 신호(402)가 전체 시뮬레이션 윈도우에 대해 도시될 수 있다. 디지털 파형(404)(top.dut.addr_0.a)은 0ns로부터 80ns까지의 범위에서(즉, 전체 시뮬레이션 윈도우에 대해) 병합된다. 따라서, 도 2의 제1, 제2 및 제3 윈도우들로부터의 결과들은 병합되고 단일 파형으로서 도시된다.
도 5는 본 개시내용의 실시예에 따른 혼합 신호 시뮬레이션들의 예시적인 출력을 도시하는 개략도(500)이다. 파형들은 Synopsys의 Verdi® nWave 툴을 이용하여 디스플레이될 수 있다. Synopsys Verdi® nWave 툴을 이용하여, 사용자는 파형을 관찰하기 위해 개별적으로 고속 신호 데이터베이스(fsdb)와 같은 2개의 파일들을 열 수 있다. 제1 패널(502)은 신호의 디지털 뷰를 도시하는 한편, 제2 패널(504)은 신호의 아날로그 뷰를 도시한다. 무효 기간들은 블록들(506)로서 도시될 수 있다.
일부 실시예들에서, 교차 모듈 참조(XMR)는 디지털 테스트벤치에서 흔한 이용이다. 그러나, 본 명세서에 설명된 RTVS 기술을 채택할 때, 사용자들은 디지털 뷰와 아날로그 뷰 사이의 동등성을 고려하기를 원할 수 있다. 예를 들어, SPICE에서 Verilog의 "강제(force)" 서술문과 동등한 설정은 없다. 그리고 이것은 아래에 더 설명되는 바와 같이 일부 복잡성들 또는 제한들로 이어질 수 있다.
일부 실시예들에서, 강제 서술문은, 본 명세서에 설명된 RTVS 기술을 이용할 때 디지털 전용 블록(예를 들어, 도 1의 제1 블록(110))에 적용될 수 있다. 강제는 제1 윈도우 또는 제2 윈도우에서 이용될 수 있는데, 그 이유는 강제/예치(deposit)가 그 강제 노드들에 영향을 미치지 않을 수 있기 때문이다. 그리고 이것은 원하는 거동이다.
일부 실시예들에서, 강제는 스위칭 블록에 대해 적용된다. 이어서, SPICE 블록에 대해 동등한 셋업이 이용될 수 있다. 예를 들어, 사용자들은 동등한 SPICE 노드가 동일한 명칭을 가질 때 다음의 신택스를 이용할 수 있다:
동등한 노드가 상이한 명칭을 갖는 경우, 다음의 매크로가 혼합 시뮬레이션(즉, simv_msv)을 위해 제2 윈도우에서 이용될 수 있다:
도 6은 본 개시내용의 실시예에 따른, 혼합 신호 시뮬레이션을 실행하기 위한 방법(600)의 흐름도를 도시한다. 블록 설정은 하나 이상의 실시예에 따라 시뮬레이션 동안 디지털 뷰와 아날로그 뷰 사이에서 스위칭할 수 있다. 일부 양태들에서, 회로는 하나 이상의 블록을 포함할 수 있다. 시뮬레이션은 2개 이상의 윈도우를 포함할 수 있다. 일부 양태들에서, 제1 윈도우 동안, 순수 디지털 시뮬레이션이 요구된다. 제2 윈도우에서, 혼합 시뮬레이션이 요구된다. 예를 들어, 적어도 하나의 블록은 디지털 뷰에 있고 다른 블록은 아날로그 뷰에 있다.
602에서, 회로에 대한 디지털 시뮬레이션 파일(예를 들어, 실행파일 파일 simv_dig)이 생성된다. 디지털 시뮬레이션 파일에서, 하나 이상의 블록은 디지털 뷰에 있다.
604에서, 회로에 대한 혼합 시뮬레이션 파일(예를 들어, 실행파일 파일 simv_msv)이 생성된다. 혼합 시뮬레이션 파일에서, 블록은 아날로그 뷰에 있다. 일부 양태들에서, 추가적인 블록은 디지털 뷰에 있다.
606에서, 시뮬레이션의 제1 시간 윈도우 동안 디지털 시뮬레이션 파일을 실행함으로써 파형 파일이 생성된다. 파형 파일은 제1 시간 윈도우 동안 디지털 시뮬레이션 파일을 실행한 결과이다. 일부 양태들에서, 혼합 시뮬레이션 파일은 파형 파일에 기초하여 또는 그것을 이용하여 처음으로 실행된다. 구체적으로, 전술한 바와 같이, (제1 윈도우 동안 디지털 시뮬레이션 파일의 실행으로부터의) 아날로그 대 디지털 인터페이스 이벤트들은 파형 파일로부터 재구성된 후에 제1 윈도우 동안 혼합 시뮬레이션 파일의 시뮬레이션에 이용될 수 있다.
제1 시간 윈도우 동안의 혼합 시뮬레이션 파일의 실행은 제1 시간 윈도우 동안 블록의 시뮬레이션을 스킵한다. 일부 양태들에서, 디지털 값은 혼합 시뮬레이션 파일을 실행한 후에 추가적인 블록과 연관된다. 추가적인 블록은 모든 시뮬레이션 윈도우들에서 디지털 뷰에 있을 수 있다. 예를 들어, 제1 시간 윈도우 동안의 혼합 시뮬레이션 파일의 실행 후의 블록과 연관된 최종 디지털 값들은 제2 시간 윈도우의 시작을 위해 전달된다. 전술한 바와 같이, 디지털 블록들의 초기 상태들은, 디지털 블록들에 대한 시뮬레이션이 혼합 시뮬레이션 파일(예를 들어, simv_msv)에서 t=0의 시작으로부터 계속되었기 때문에 주석이 달릴 필요가 없다.
608에서, 블록에 대한 아날로그 값들은 파형 파일에 기초하여 결정된다. 구체적으로, (제1 시간 윈도우의 끝에서의) 블록과 연관된 디지털 값들은 (즉, 단계(606)로부터의) 제2 시간 윈도우의 시작에 대한 아날로그 값들로 변환된다.
610에서, 혼합 시뮬레이션 파일은 제2 시간 윈도우의 시작에서 블록에 주석이 달린 아날로그 값들로 시뮬레이션의 제2 시간 윈도우 동안 실행된다. 일부 양태들에서, 디지털 시뮬레이션 파일은 시뮬레이션을 위해 제2 시간 윈도우 및 제3 시간 윈도우 동안 실행된다.
일부 실시예들에서, 디지털 시뮬레이션 파일의 실행은 시뮬레이션의 제2 시간 윈도우 및 시뮬레이션의 제3 윈도우 동안 재개된다. 이것은 단계 610과 병렬로 수행될 수 있다.
일부 실시예들에서, 단계 606 및 610으로부터의 출력들은 (예를 들어, 도 3에 도시된 바와 같이) 병합되어 파 뷰어(wave viewer) 상에 디스플레이될 수 있다.
일부 실시예들에서, 시뮬레이션은 디지털 뷰로부터 아날로그 뷰로의 다른 하나 이상의 스위칭을 포함할 수 있다. 예를 들어, 블록에 대한 시뮬레이션은 디지털 뷰로부터 아날로그 뷰로, 이후 아날로그 뷰로부터 디지털 뷰로, 이후 디지털 뷰로부터 아날로그 뷰로 스위칭할 수 있다. 따라서, 혼합 시뮬레이션 파일은 시뮬레이션의 제4 시간 윈도우 동안 실행될 수 있다.
도 7은 집적 회로를 나타내는 설계 데이터 및 명령어들을 변환하고 검증하기 위해 집적 회로와 같은 제조 물품의 설계, 검증, 및 제조 동안 이용되는 프로세스들(700)의 예시적인 세트를 도시한다. 이러한 프로세스들 각각은 다수의 모듈들 또는 동작들로서 구조화되고 가능해질 수 있다. 용어 'EDA'는 용어 '전자 설계 자동화'를 나타낸다. 이러한 프로세스들은 설계자에 의해 공급되는 정보, 즉, EDA 프로세스들(712)의 세트를 이용하는 제조 물품을 생성하도록 변환되는 정보를 갖는 제품 아이디어(710)의 생성으로 시작한다. 설계가 완료될 때, 설계는 테이프 아웃(taped-out)되고(734), 이는 집적 회로에 대한 아트워크(artwork)(예를 들어, 기하학적 패턴들)가 마스크 세트를 제조하기 위해 제조 설비에 전송되고, 이는 이후 집적 회로를 제조하기 위해 이용된다. 테이프 아웃 후에, 반도체 다이가 제조되고(736), 패키징 및 조립 프로세스들이 수행되어(738) 완성된 집적 회로를 생성한다(740).
회로 또는 전자 구조체에 대한 사양들은 로우-레벨 트랜지스터 재료 레이아웃들로부터 하이-레벨 기술 언어들까지의 범위일 수 있다. VHDL, Verilog, SystemVerilog, SystemC, MyHDL 또는 OpenVera와 같은 하드웨어 기술 언어('HDL')를 이용하여 회로들 및 시스템들을 설계하기 위해 하이-레벨의 추상화(high level of abstraction)가 이용될 수 있다. HDL 기술은 로직-레벨 레지스터 전송 레벨('RTL') 기술, 게이트-레벨 기술, 레이아웃-레벨 기술, 또는 마스크-레벨 기술로 변환될 수 있다. 덜 추상적인 기술인 각각의 더 낮은 추상화 레벨은 설계 기술에 더 유용한 상세, 예를 들어, 기술을 포함하는 모듈들에 대한 더 많은 상세를 추가한다. 덜 추상적인 기술들인 더 낮은 레벨들의 추상화는 컴퓨터에 의해 생성되거나, 설계 라이브러리로부터 도출되거나, 다른 설계 자동화 프로세스에 의해 생성될 수 있다. 더 상세한 기술들을 특정하기 위한 더 낮은 레벨의 추상화 언어에서의 사양 언어의 예는 SPICE이며, 그것은 많은 아날로그 컴포넌트들을 갖는 회로들의 상세한 기술들에 이용된다. 각각의 레벨의 추상화에서의 기술들은 그 계층의 대응하는 툴들(예를 들어, 정식 검증 툴)에 의한 이용을 위해 인에이블된다. 설계 프로세스는 도 7에 도시된 시퀀스를 이용할 수 있다. 설명된 프로세스들은 EDA 제품들(또는 툴들)에 의해 가능해질 수 있다.
시스템 설계(714) 동안, 제조될 집적 회로의 기능이 특정된다. 설계는 전력 소비, 성능, 면적(물리적 및/또는 코드의 라인들), 및 비용의 감소 등과 같은 원하는 특성들을 위해 최적화될 수 있다. 설계를 상이한 타입들의 모듈들 또는 컴포넌트들로 파티셔닝하는 것은 이 단계에서 발생할 수 있다.
로직 설계 및 기능 검증(716) 동안, 회로 내의 모듈들 또는 컴포넌트들은 하나 이상의 기술 언어들로 특정되고, 사양은 기능 정확도에 대해 체크된다. 예를 들어, 회로의 컴포넌트들은 설계되는 회로 또는 시스템의 사양의 요건들에 부합하는 출력들을 생성하도록 검증될 수 있다. 기능적 검증은 시뮬레이터들 및 다른 프로그램들, 예컨대, 테스트벤치 발생기들, 정적 HDL 체커들, 및 정식 검증기들을 이용할 수 있다. 일부 실시예들에서, '에뮬레이터들' 또는 '프로토타이핑 시스템들(prototyping systems)'로 지칭되는 컴포넌트들의 특수 시스템들은 기능 검증의 속도를 높이는 데 이용된다.
테스트를 위한 합성 및 설계(718) 동안, HDL 코드는 네트리스트로 변환된다. 일부 실시예들에서, 네트리스트는 그래프 구조일 수 있으며, 그래프 구조의 에지들은 회로의 컴포넌트들을 나타내고, 그래프 구조의 노드들은 컴포넌트들이 어떻게 상호접속되는지를 나타낸다. HDL 코드 및 네트리스트 둘 다는, 제조될 때, 집적 회로가 특정된 설계에 따라 수행하는 것을 검증하기 위해 EDA 제품에 의해 이용될 수 있는 계층적 제조 물품들이다. 네트리스트는 타겟 반도체 제조 기술에 대해 최적화될 수 있다. 추가적으로, 완성된 집적 회로는 집적 회로가 사양의 요건들을 만족시키는지를 검증하기 위해 테스트될 수 있다.
네트리스트 검증(720) 동안, 네트리스트는 타이밍 제약의 준수 및 HDL 코드와의 대응에 대해 체크된다. 설계 계획(722) 동안, 집적 회로에 대한 전체 플로어 계획(overall floor plan)이 구성되고, 타이밍 및 최상위 레벨 라우팅을 위해 분석된다.
레이아웃 또는 물리적 구현(724) 동안, 물리적 배치(트랜지스터들 또는 커패시터들과 같은 회로 컴포넌트들의 포지셔닝) 및 라우팅(다수의 도전체들에 의한 회로 컴포넌트들의 접속)이 발생하고, 특정 로직 기능들을 가능하게 하기 위한 라이브러리로부터의 셀들의 선택이 수행될 수 있다. 본 명세서에서 이용된 바와 같이, 용어 '셀'은 부울 로직 기능(Boolean logic function)(예를 들어, AND, OR, NOT, XOR) 또는 (플립플롭 또는 래치와 같은) 저장 기능을 제공하는 트랜지스터들, 다른 컴포넌트들 및 상호접속들의 세트를 지정할 수 있다. 본 명세서에서 이용된 바와 같이, 회로 '블록'은 둘 이상의 셀을 지칭할 수 있다. 셀 및 회로 블록 둘 다는 모듈 또는 컴포넌트라고 지칭될 수 있고, 물리적 구조들 및 시뮬레이션들 둘 다로 인에이블된다. 파라미터들은 크기와 같은 ('표준 셀들'에 기초하여) 선택된 셀들에 대해 지정되고, EDA 제품들에 의한 이용을 위해 데이터베이스에서 액세스 가능하게 된다.
분석 및 추출(726) 동안, 회로 기능은 레이아웃 레벨에서 검증되고, 이는 레이아웃 설계의 개선을 허용한다. 물리적 검증(728) 동안, DRC 제약들, 전기적 제약들, 리소그래피 제약들과 같은 제조 제약들이 정확하고, 회로 기능이 HDL 설계 사양과 매칭하도록 보장하기 위해 레이아웃 설계가 체크된다. 해상도 향상(730) 동안, 레이아웃의 기하구조는 회로 설계가 제조되는 방법을 개선하도록 변환된다.
테이프 아웃 동안, 데이터는 리소그래피 마스크들의 생성을 위해 (적절한 경우에 리소그래피 향상들이 적용된 후에) 이용되도록 생성된다. 마스크 데이터 준비(732) 동안, '테이프 아웃' 데이터는 완성된 집적 회로들을 생성하는 데 이용되는 리소그래피 마스크들을 생성하는 데 이용된다.
(도 8의 컴퓨터 시스템(800)과 같은) 컴퓨터 시스템의 저장 서브시스템은 본 명세서에서 설명되는 EDA 제품들의 일부 또는 전부에 의해 이용되는 프로그램들 및 데이터 구조들, 및 라이브러리에 대한 셀들의 개발을 위해 그리고 라이브러리를 이용하는 물리 및 로직 설계를 위해 이용되는 제품들을 저장하는 데 이용될 수 있다.
도 8은, 머신으로 하여금 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하게 하기 위한 명령어들의 세트가 실행될 수 있는 컴퓨터 시스템(800)의 예시적인 머신을 도시한다. 대안적인 구현들에서, 머신은 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷에서 다른 머신들에 접속(예를 들어, 네트워킹)될 수 있다. 머신은 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신으로서, 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서, 또는 클라우드 컴퓨팅 인프라구조 또는 환경에서 서버 또는 클라이언트 머신으로서 동작할 수 있다.
머신은 PC(personal computer), 태블릿 PC, STB(set-top box), PDA(Personal Digital Assistant), 셀룰러 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 해당 머신에 의해 취해질 액션들을 명시하는 명령어들의 세트(순차적 또는 다른 방식)를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신이 예시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 방법들 중 임의의 하나 이상을 수행하기 위해 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합을 포함하는 것으로 간주되어야 한다.
예시적인 컴퓨터 시스템(800)은, 버스(830)를 통해 서로 통신하는, 처리 디바이스(802), 메인 메모리(804)(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM)), 정적 메모리(806)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등), 및 데이터 저장 디바이스(818)를 포함한다.
처리 디바이스(802)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 프로세서를 나타낸다. 보다 구체적으로, 처리 디바이스는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(802)는 또한 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(802)는 본 명세서에 설명된 동작들 및 단계들을 수행하기 위한 명령어들(826)을 실행하도록 구성될 수 있다.
컴퓨터 시스템(800)은 네트워크(820)를 통해 통신하기 위해 네트워크 인터페이스 디바이스(808)를 더 포함할 수 있다. 컴퓨터 시스템(800)은 또한, 비디오 디스플레이 유닛(810)(예를 들어, 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 디바이스(812)(예를 들어, 키보드), 커서 제어 디바이스(814)(예를 들어, 마우스), 그래픽 처리 유닛(822), 신호 생성 디바이스(816)(예를 들어, 스피커), 그래픽 처리 유닛(822), 비디오 처리 유닛(828), 및 오디오 처리 유닛(832)을 포함할 수 있다.
데이터 저장 디바이스(818)는, 본 명세서에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 소프트웨어 또는 명령어들(826)의 하나 이상의 세트가 저장되어 있는 머신 판독가능 저장 매체(824)(비일시적 컴퓨터 판독가능 매체라고도 알려짐)를 포함할 수 있다. 명령어들(826)은 또한 컴퓨터 시스템(800)에 의한 그것의 실행 동안 메인 메모리(804) 내에 및/또는 처리 디바이스(802) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며, 메인 메모리(804) 및 처리 디바이스(802)는 또한 머신 판독가능 저장 매체들을 구성한다.
일부 구현들에서, 명령어들(826)은 본 개시내용에 대응하는 기능성을 구현하는 명령어들을 포함한다. 머신 판독가능 저장 매체(824)가 예시적인 구현에서 단일 매체인 것으로 도시되어 있지만, "머신 판독가능 저장 매체"라는 용어는 명령어들의 하나 이상의 세트를 저장하는 단일 매체 또는 다수의 매체(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)를 포함하는 것으로 간주되어야 한다. 용어 "머신 판독가능 저장 매체"는 또한, 머신에 의한 실행을 위한 명령어들의 세트를 저장 또는 인코딩할 수 있고, 머신 및 처리 디바이스(802)로 하여금 본 개시내용의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 간주되어야 한다. 따라서, "머신 판독가능 저장 매체"라는 용어는 고체 상태 메모리들, 광학 매체들 및 자기 매체들을 포함하지만 이에 제한되지는 않는 것으로 간주되어야 한다.
이전의 상세한 설명들의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 연산들의 알고리즘들 및 심볼 표현들의 관점에서 제시되었다. 이러한 알고리즘 설명들 및 표현들은 데이터 처리 분야의 통상의 기술자가 그들의 작업의 본질을 본 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하기 위해 이용되는 방식들이다. 알고리즘은 원하는 결과를 초래하는 동작들의 시퀀스일 수 있다. 동작들은 물리적 양들의 물리적 조작들을 요구하는 것들이다. 그러한 양들은 저장, 결합, 비교, 및 다른 방식으로 조작될 수 있는 전기 또는 자기 신호들의 형태를 취할 수 있다. 그러한 신호들은 비트들, 값들, 요소들, 심볼들, 문자들, 항들, 숫자들 등으로 지칭될 수 있다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되고 이들 양에 적용되는 편리한 라벨들일 뿐이라는 점을 명심해야 한다. 본 개시내용으로부터 명백한 바와 같이 구체적으로 달리 언급되지 않는 한, 설명 전반에 걸쳐, 특정 용어들이 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적(전자적) 양들로서 표현되는 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장 디바이스들 내의 물리적 양들로서 유사하게 표현되는 다른 데이터로 조작하고 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스들을 지칭한다는 것이 이해된다.
본 개시내용은 또한 본 명세서에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 의도된 목적을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스에 결합되는, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함하는 임의의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하기에 적합한 임의의 타입의 매체들과 같은, 그러나 이에 제한되지 않는, 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
본 명세서에 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치에 관련되지 않는다. 다양한 다른 시스템들이 본 명세서의 교시들에 따라 프로그램들과 함께 이용될 수 있거나, 또는 방법을 수행하기 위해 더 특수화된 장치를 구성하는 것이 편리한 것으로 판명될 수 있다. 또한, 본 개시내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들이 본 명세서에 설명된 바와 같은 개시내용의 교시들을 구현하기 위해 이용될 수 있다는 것이 이해될 것이다.
본 개시내용은, 본 개시내용에 따른 프로세스를 수행하도록 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하는 데 이용될 수 있는 명령어들이 저장되어 있는 머신 판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다. 머신 판독가능 매체는 머신(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 머신 판독가능(예를 들어, 컴퓨터 판독가능) 매체는 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체들, 광학 저장 매체들, 플래시 메모리 디바이스들 등과 같은 머신(예를 들어, 컴퓨터) 판독가능 저장 매체를 포함한다.
전술한 개시내용에서, 개시내용의 구현들은 그 특정 예시적인 구현들을 참조하여 설명되었다. 다음의 청구항들에 개시된 바와 같은 본 개시내용의 구현들의 더 넓은 사상 및 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있다는 것이 명백할 것이다. 본 개시내용이 단일 시제에서의 일부 요소들을 언급하는 경우, 하나 초과의 요소가 도면들에 묘사될 수 있고 유사한 요소들은 유사한 번호들로 라벨링된다. 따라서, 본 개시내용 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 회로를 시뮬레이션하기 위한 방법으로서,
    상기 회로에 대한 디지털 시뮬레이션 파일을 생성하는 단계 - 상기 회로는 블록을 포함하고, 상기 디지털 시뮬레이션 파일은 디지털 뷰에서의 상기 블록에 대응함 -;
    상기 회로에 대한 혼합 시뮬레이션 파일을 생성하는 단계 - 상기 혼합 시뮬레이션 파일은 아날로그 뷰에서의 상기 블록에 대응함 -;
    시뮬레이션의 제1 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하는 단계;
    상기 파형 파일에 기초하여 상기 블록에 대한 복수의 아날로그 값들을 결정하는 단계; 및
    하나 이상의 프로세서에 의해, 제2 시간 윈도우의 시작에서 상기 블록에 주석이 달린 상기 복수의 아날로그 값들로 상기 시뮬레이션의 상기 제2 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 회로는 추가적인 블록을 포함하고, 상기 디지털 시뮬레이션 파일은 상기 디지털 뷰에서의 상기 추가적인 블록에 대응하고, 상기 혼합 시뮬레이션 파일은 상기 디지털 뷰에서의 상기 추가적인 블록에 대응하는, 방법.
  3. 제2항에 있어서,
    상기 파형 파일에 기초하여 상기 시뮬레이션의 상기 제1 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하는 단계 - 상기 제1 시간 윈도우 동안의 상기 혼합 시뮬레이션 파일의 실행은 상기 제1 시간 윈도우 동안 상기 블록의 시뮬레이션을 스킵함 - 를 더 포함하는, 방법.
  4. 제2항에 있어서,
    상기 제1 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행한 후에 상기 추가적인 블록을 디지털 값과 연관시키는 단계를 더 포함하는, 방법.
  5. 제2항에 있어서,
    상기 시뮬레이션의 상기 제2 시간 윈도우 및 상기 시뮬레이션의 제3 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제2 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하는 단계는 상기 제2 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행하는 단계와 병렬로 수행되는, 방법.
  7. 제1항에 있어서,
    상기 아날로그 값들은 상기 블록의 하나 이상의 노드의 초기 상태들에 대응하고, 상기 방법은,
    상기 파형 파일로부터 상기 초기 상태들을 획득하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제2 시간 윈도우는 상기 제2 시간 윈도우의 시작에서의 제1 유휴 기간 및 상기 제2 시간 윈도우의 끝에서의 제2 유휴 기간을 포함하는, 방법.
  9. 제1항에 있어서,
    그래픽 윈도우에 제1 파형 및 제2 파형을 디스플레이하는 단계 - 상기 제1 파형은 디지털 신호에 대응하고, 상기 제2 파형은 상기 대응하는 아날로그 신호에 대응함 -; 및
    상기 제2 시간 윈도우의 지속기간 동안 상기 제1 파형을 마스킹하는 단계를 더 포함하는, 방법.
  10. 제1항에 있어서,
    상기 시뮬레이션의 복수의 혼합 시뮬레이션 윈도우들의 시작 시간 및 종료 시간을 나타내는 정보를 수신하는 단계; 및
    상기 복수의 혼합 시뮬레이션 윈도우들 각각 동안 상기 혼합 시뮬레이션 파일을 실행하는 단계를 더 포함하는, 방법.
  11. 회로를 시뮬레이션하기 위한 시스템으로서,
    명령어들을 저장하는 메모리; 및
    상기 메모리와 결합되고 상기 명령어들을 실행하는 프로세서를 포함하고,
    상기 명령어들은 실행될 때 상기 프로세서로 하여금,
    상기 회로에 대한 디지털 시뮬레이션 파일을 생성하고 - 상기 회로는 블록을 포함하고, 상기 디지털 시뮬레이션 파일은 디지털 뷰에서의 상기 블록에 대응함 -,
    상기 회로에 대한 혼합 시뮬레이션 파일을 생성하고 - 상기 혼합 시뮬레이션 파일은 아날로그 뷰에서의 상기 블록에 대응함 -,
    시뮬레이션의 제1 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하고,
    상기 파형 파일에 기초하여 상기 블록에 대한 복수의 아날로그 값들을 결정하고,
    제2 시간 윈도우의 시작에서 상기 블록에 주석이 달린 상기 복수의 아날로그 값들로 상기 시뮬레이션의 상기 제2 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하게 하는, 시스템.
  12. 제11항에 있어서,
    상기 회로는 추가적인 블록을 포함하고, 상기 디지털 시뮬레이션 파일은 상기 디지털 뷰에서의 상기 추가적인 블록에 대응하고, 상기 혼합 시뮬레이션 파일은 상기 디지털 뷰에서의 상기 추가적인 블록에 대응하는, 시스템.
  13. 제12항에 있어서,
    상기 프로세서는 추가로,
    상기 파형 파일에 기초하여 상기 시뮬레이션의 상기 제1 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하도록 구성되는 - 상기 제1 시간 윈도우 동안의 상기 혼합 시뮬레이션 파일의 실행은 상기 제1 시간 윈도우 동안 상기 블록의 시뮬레이션을 스킵함 -, 시스템.
  14. 제12항에 있어서,
    상기 프로세서는 추가로,
    상기 제1 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행한 후에 상기 추가적인 블록을 디지털 값과 연관시키도록 구성되는, 시스템.
  15. 제12항에 있어서,
    상기 프로세서는 추가로,
    상기 시뮬레이션의 상기 제2 시간 윈도우 및 상기 시뮬레이션의 제3 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행하도록 구성되는, 시스템.
  16. 제15항에 있어서,
    상기 제2 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하는 것은 상기 제2 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행하는 것과 병렬로 수행되는, 시스템.
  17. 제11항에 있어서,
    상기 아날로그 값들은 상기 블록의 하나 이상의 노드의 초기 상태들에 대응하고, 상기 프로세서는 추가로,
    상기 파형 파일로부터 상기 초기 상태들을 획득하도록 구성되는, 시스템.
  18. 제11항에 있어서,
    상기 제2 시간 윈도우는 상기 제2 시간 윈도우의 시작에서의 제1 유휴 기간 및 상기 제2 시간 윈도우의 끝에서의 제2 유휴 기간을 포함하는, 시스템.
  19. 제11항에 있어서,
    상기 프로세서는 추가로,
    그래픽 윈도우에 제1 파형 및 제2 파형을 디스플레이하고 - 상기 제1 파형은 디지털 신호에 대응하고, 상기 제2 파형은 상기 대응하는 아날로그 신호에 대응함 -;
    상기 제2 시간 윈도우의 지속기간 동안 상기 제1 파형을 마스킹하도록 구성되는, 시스템.
  20. 제1 블록 및 제2 블록을 포함하는 회로를 시뮬레이션하기 위한 저장된 명령들을 포함하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    상기 회로에 대한 디지털 시뮬레이션 파일을 생성하고 - 상기 회로는 블록을 포함하고, 상기 디지털 시뮬레이션 파일은 디지털 뷰에서의 상기 블록에 대응함 -;
    상기 회로에 대한 혼합 시뮬레이션 파일을 생성하고 - 상기 혼합 시뮬레이션 파일은 아날로그 뷰에서의 상기 블록에 대응함 -;
    시뮬레이션의 제1 시간 윈도우 동안 상기 디지털 시뮬레이션 파일을 실행함으로써 파형 파일을 생성하고;
    상기 파형 파일에 기초하여 상기 블록에 대한 복수의 아날로그 값들을 결정하고;
    제2 시간 윈도우의 시작에서 상기 블록에 주석이 달린 상기 복수의 아날로그 값들로 상기 시뮬레이션의 상기 제2 시간 윈도우 동안 상기 혼합 시뮬레이션 파일을 실행하게 하는, 비일시적 컴퓨터 판독가능 매체.
KR1020237036234A 2021-03-31 2022-03-31 혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑 KR20230160880A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163168763P 2021-03-31 2021-03-31
US63/168,763 2021-03-31
PCT/US2022/022898 WO2022212751A1 (en) 2021-03-31 2022-03-31 Real time view swapping in a mixed signal simulation

Publications (1)

Publication Number Publication Date
KR20230160880A true KR20230160880A (ko) 2023-11-24

Family

ID=81385127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237036234A KR20230160880A (ko) 2021-03-31 2022-03-31 혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑

Country Status (5)

Country Link
US (1) US20220327272A1 (ko)
EP (1) EP4298546A1 (ko)
KR (1) KR20230160880A (ko)
CN (1) CN117355838A (ko)
WO (1) WO2022212751A1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
EP4298546A1 (en) 2024-01-03
CN117355838A (zh) 2024-01-05
WO2022212751A1 (en) 2022-10-06
US20220327272A1 (en) 2022-10-13

Similar Documents

Publication Publication Date Title
US5544067A (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
US5867399A (en) System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
US5623418A (en) System and method for creating and validating structural description of electronic system
US5572437A (en) Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
JP3118592B2 (ja) よりハイレベルのビヘイビア指向のデスクリプションから回路又は装置の構造上のデスクリプションを生成する方法
Riesgo et al. Design methodologies based on hardware description languages
US5555201A (en) Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
CN114600111A (zh) 机器学习增强型编译器
CN114756085A (zh) 用于现场可编程门阵列(fpga)综合的形式化门控时钟转换
US11023635B1 (en) Sequence of frames generated by emulation and waveform reconstruction using the sequence of frames
US11080446B2 (en) Method to regulate clock frequencies of hybrid electronic systems
US11443087B2 (en) System and method for power analysis for design logic circuit with irregular clock
US11231462B1 (en) Augmenting an integrated circuit (IC) design simulation model to improve performance during verification
TW202333039A (zh) 使用超級葉單元的記憶體個體重新配置
US11847396B1 (en) Integrated circuit design using multi-bit combinational cells
KR20230160880A (ko) 혼합 신호 시뮬레이션에서의 실시간 뷰 스와핑
US11022634B1 (en) Rail block context generation for block-level rail voltage drop analysis
US11941339B1 (en) Automated equal-resistance routing in compact pattern
US11734080B1 (en) Memory efficient and scalable approach to stimulus (waveform) reading
US12014205B2 (en) Advanced register merging
US11816409B1 (en) Strongly connected component (SCC) graph representation for interactive analysis of overlapping loops in emulation and prototyping
US20230409788A1 (en) Synchronizing distributed simulations of a circuit design
US20240111660A1 (en) Managing high performance simulation representation of an emulation system
US20230195982A1 (en) Transformations for multicycle path prediction of clock signals
US20240028812A1 (en) Waveform capture using multicycle path properties