KR101832583B1 - 전력 상태 커버리지 메트릭 및 이의 추정 방법 - Google Patents

전력 상태 커버리지 메트릭 및 이의 추정 방법 Download PDF

Info

Publication number
KR101832583B1
KR101832583B1 KR1020160001073A KR20160001073A KR101832583B1 KR 101832583 B1 KR101832583 B1 KR 101832583B1 KR 1020160001073 A KR1020160001073 A KR 1020160001073A KR 20160001073 A KR20160001073 A KR 20160001073A KR 101832583 B1 KR101832583 B1 KR 101832583B1
Authority
KR
South Korea
Prior art keywords
block
coverage
value
power state
esl
Prior art date
Application number
KR1020160001073A
Other languages
English (en)
Other versions
KR20170040724A (ko
Inventor
산딥 쿠머 고엘
스탠리 존
쯔치앙 후앙
윤한 리
Original Assignee
타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드 filed Critical 타이완 세미콘덕터 매뉴팩쳐링 컴퍼니 리미티드
Publication of KR20170040724A publication Critical patent/KR20170040724A/ko
Application granted granted Critical
Publication of KR101832583B1 publication Critical patent/KR101832583B1/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
    • G06F17/5045
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31704Design for test; Design verification
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31721Power aspects, e.g. power supplies for test circuits, power saving during test
    • G06F17/5022
    • 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
    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

일부 실시예들에서, 적어도 하나의 프로세서에 의해 수행되는 전자 시스템 레벨(ESL) 모델의 전체 전력 상태 커버리지를 추정하기 위한 방법에 있어서, 제 1 값 및 제 2 값이 각각의 블록에 대해 설정된다. 적어도 하나의 검증 케이스가 ESL 모델에 있는 각각의 블록에 대해 선택된다. 적어도 하나의 검증 케이스 각각에 대해, (a) 타겟 커버리지 값이 설정되고, (b) 레지스터 전송 레벨(RTL) 시뮬레이션이 수행되고, (c) 실제 커버리지 값이 수신되고, (d) 실제 커버리지 값이 타겟 커버리지 값 미만인지의 여부에 기초하여 제 1 값 또는 제 2 값이 업데이트된다. 전력 상태 커버리지가 각각의 블록에 대해 계산된다. 전체 전력 상태 커버리지가 ESL 모델에 대해 계산된다.

Description

전력 상태 커버리지 메트릭 및 이의 추정 방법{POWER STATE COVERAGE METRIC AND METHOD FOR ESTIMATING THE SAME}
반도체 칩의 성능이 증가함에 따라, 칩 설계는 점점 더 복잡해진다. 종래의 레지스터 전송 레벨(register transfer level; RTL) 설계 방법은 소프트웨어 및 하드웨어의 고집적화를 필요로 하는 현대의 시스템 온 칩(system-on-chip; SoC) 설계를 위해 시간이 많이 걸린다. 문제가 RTL 단계에서 검출되면 너무 늦어서 설계를 변경할 수 없다. 그러므로, 전자 시스템 레벨(electronic system level; ESL) 설계 방법이 현대의 시스템 설계를 용이하게 하기 위해 이용된다.
소비 전력은 칩 설계에서 중요한 문제였다. ESL 모델의 경우, ESL 모델이 ESL 모델에 있는 각각의 지적 재산권(intellectual property; IP)에 대한 전력 상태 및 연관된 소비 전력 넘버를 포함하기 때문에, 전력 추정이 시스템 레벨 설계 및 기술 탐구에 요구된다.
일부 실시예들에서, 적어도 하나의 프로세서에 의해 수행되는 전자 시스템 레벨(ESL) 모델의 전체 전력 상태 커버리지를 추정하기 위한 방법에 있어서, 제 1 값 및 제 2 값이 각각의 블록에 대해 설정된다. 적어도 하나의 검증 케이스가 ESL 모델에 있는 각각의 블록에 대해 선택된다. 적어도 하나의 검증 케이스 각각에 대해, (a) 타겟 커버리지 값이 설정되고, (b) 레지스터 전송 레벨(RTL) 시뮬레이션이 수행되고, (c) 실제 커버리지 값이 수신되고, (d) 실제 커버리지 값이 타겟 커버리지 값 미만인지의 여부에 기초하여 제 1 값 또는 제 2 값이 업데이트된다. 전력 상태 커버리지가 각각의 블록에 대해 계산된다. 전체 전력 상태 커버리지가 ESL 모델에 대해 계산된다.
본 발명개시의 하나 이상의 실시예들의 세부 사항이 첨부 도면들 및 아래의 설명에 기재된다. 본 발명개시의 다른 피처(feature)들 및 장점들이 설명, 도면 및 청구항으로부터 명백하게 될 것이다.
도 1은 실시예에 따라 칩 설계에서 모듈에 대한 검증 케이스를 관리하기 위한 방법을 도시하는 흐름도이다.
도 2는 실시예에 따라 전력 상태 커버리지 추정을 위한 시스템을 도시하는 블록도이다.
도 3은 실시예에 따라 매크로 레벨 전력 상태 커버리지 추정을 위한 시스템을 도시하는 블록도이다.
도 4는 실시예에 따라 특정 모듈을 위한 ESL 모델 및 검증 케이스의 개략도이다.
도 5는 실시예에 따라 기능 검증 시스템의 개략도이다.
도 6은 실시예에 따라 ESL 모델에 있는 블록의 전력 상태 커버리지를 추정하기 위한 방법을 도시하는 흐름도이다.
도 7은 실시예에 따라 ESL 모델에 대한 원래의 검증 케이스 및 업데이트된 검증 케이스의 도면이다.
도 8은 일부 실시예들에 따라 도 1 내지 도 6을 참조하여 설명된 방법 및 시스템 실시예들을 구현하기 위한 하드웨어 시스템의 블록도이다.
다음의 발명개시는 제공된 주제의 상이한 피처들을 구현하는 다수의 상이한 실시예들, 또는 예들을 제공한다. 컴포넌트 및 배치의 특정한 예들은 본 발명개시를 단순화하기 위해 이하에 설명된다. 물론, 이러한 설명은 단지 예일 뿐 제한하기 위한 것이 아니다. 게다가, 본 발명개시는 다양한 예들에서 참조 번호 및/또는 문자를 반복할 수 있다. 이러한 반복은 간략함과 명료함을 위한 것으로, 그 자체가 논의된 다양한 실시예들 및/또는 구성들 사이의 관계를 지시하지 않는다.
전자 시스템 레벨(ESL) 모델의 경우, ESL 모델에서의 모든 유효 전력 상태의 완벽한 커버리지에는 정확한 시스템 레벨 전력 모델링이 요구될 수 있다. 누락 전력 상태는 전력의 과소 추정을 야기할 수 있고, 큰 기능적 오버랩을 갖는 전력 상태는 전력의 과잉 추정을 야기할 수 있다. 그러므로, ESL 모델이 임의의 누락 전력 상태를 갖는지 그리고 ESL 모델에 정의된 전력 상태가 유효 전력 상태인지를 체크하여 칩의 대부분의 기능 부분을 커버하기 위한 방법을 갖는 것이 바람직할 수 있다. 전력 상태 커버리지 검증 방법 및 소비 전력 추정 방법이 본 발명개시의 다양한 실시예들에 제공된다.
도 1은 실시예에 따라 칩 설계에서 모듈에 대한 검증 케이스를 관리하기 위한 방법(100)을 도시하는 흐름도이다. 도 1을 참조하면, 동작(101)에서, 칩 설계에서 모듈을 위해 복수의 블록들을 포함하는 ESL 모델이 생성된다. 칩 설계는 칩의 다양한 모듈의 기능 설명을 포함한다. 각각의 모듈은 특정 타입의 기능을 수행하도록 설계된다. 하나 이상의 모듈들은 엔진, 코어, 또는 처리 유닛으로 고려될 수 있다. 일례에서, 상업적으로 이용 가능한 SoC는 중앙 처리 장치(central processing unit; CPU), 디지털 신호 처리(digital signal processing; DSP) 코어, 그래픽 처리 장치(graphic processing unit; GPU), 메모리, 가속기, 전력 모듈, 입력/출력 모듈 및 기타 여러 모듈들을 포함한다. 모듈들의 일부 또는 전체가 한 명 이상의 칩 설계자들에 의해 설계된다. 일부 모듈들은 서드 파티(third-party) IP들을 포함하고, 일부 모듈들은 반도체 제조자에 의해 제공될 수 있다. 블록은 논리적 IP 또는 IP들의 모음을 포함할 수 있다. 예를 들어, 비디오 인코더 모듈을 위한 블록은 MPEG 인코더 IP들일 수 있다.
동작(102)에서, ESL 모델에 있는 블록들 각각에 대한 ESL 전력 상태가 정의된다. 일부 실시예들에서, ESL 전력 상태는 블록의 기능 상태로부터 유도될 수 있다. 예를 들어, MPEG 인코더 블록에 대한 ESL 전력 상태는 MPEG4 상태일 수 있다.
동작(103)에서, ESL 전력 상태들 각각에 대한 검증 케이스가 선택된다. 검증 케이스는 ESL 검증 케이스 데이터베이스로부터 선택될 수 있다. 예를 들어, MPEG4 전력 상태에 대한 검증 케이스는 MPEG4_I_Frame 검증 케이스일 수 있다.
동작(104)에서, 검증 케이스들 각각에 대한 타겟 커버리지 값이 설정된다. 일부 실시예들에서, 타겟 커버리지 값은 ESL 검증 케이스에 의해 커버되는 기능 코드 커버리지의 기대 값이다.
동작(105)에서, 검증 케이스들 각각에 대한 레지스터 전송 레벨(RTL) 시뮬레이션이 수행되고, 동작(106)에서, 검증 케이스들 각각에 대한 실제 커버리지 값이 수신된다. 실제 커버리지 값은 RTL 시뮬레이션의 결과로서 ESL 검증 케이스에 의해 실질적으로 커버되는 기능 코드 커버리지의 값이다.
동작(107)에서, 블록들 각각에 대한 ESL 전력 상태 및 검증 케이스가 타겟 커버리지 값 및 실제 커버리지 값에 기초하여 업데이트된다. 일부 실시예들에서, 앞서 언급한 업데이트 동작은 ESL 전력 상태에 대한 일부 검증 케이스를 추가 또는 제거 및/또는 블록에 대한 일부 ESL 전력 상태를 추가 또는 제거를 포함한다. RTL 시뮬레이션 이후에 수신된 타겟 커버리지 값 및 실제 커버리지 값은 칩 설계자가 각각의 검증 케이스에 의해 커버되는 실제 커버리지와 기대 커버리지 간의 차이를 이해하는데 도움을 줄 수 있어, 칩 설계자는 ESL 모델에 있는 블록들에 대한 더욱 양호한 커버리지를 달성하기 위해서 각각의 블록에 대한 검증 케이스들 및 ESL 전력 상태들을 업데이트할 수 있다.
도 2는 실시예에 따라 전력 상태 커버리지 추정을 위한 시스템(200)을 도시하는 블록도이다. 도 2를 참조하면, 시스템(200)은 모듈(201), ESL 검증 케이스(202), ESL 모델(203) 및 기능 테스트 벤치(205)를 포함한다. 모듈(201)은 검증될 IP들의 세트를 포함하는 특정 애플리케이션일 수 있다. 예를 들어, 모듈(201)은 비디오 압축 IP들, MPEG 인코더 IP들, JPEG 인코더 IP들, 제어 블록 IP들과 같은 비디오 인코더 IP들의 세트를 포함하는 비디오 인코더 애플리케이션일 수 있다.
모듈(201)을 검증하기 위해서, ESL 검증 케이스(202)가 생성된다. ESL 검증 케이스(202)는 ESL 검증 케이스 데이터베이스로부터 선택될 수 있다. 일부 실시예들에서, ESL 검증 케이스(202)는 자동화된 툴에 의해 생성될 수 있다. ESL 검증 케이스(202)는 또한 시스템 설계자에 의해 기입된 테스트 코드일 수 있다. ESL 검증 케이스(202)는 또한 자동화된 툴 및 시스템 설계자 프로그래밍의 혼합일 수 있다. 일부 실시예들에서, ESL 검증 케이스(202)의 각각의 검증 케이스는 특정 IP의 기능 코드 커버리지를 검증하기 위해 이용될 수 있다.
생성된 ESL 검증 케이스(202)에 기초하여, 모듈(201)을 위해 ESL 모델(203)이 생성된다. ESL 모델(203)은 복수의 블록들을 포함할 수 있고, 각각의 블록은 복수의 전력 상태들을 포함할 수 있다. 예를 들어, 도 2에서, ESL 모델(203)은 블록 1 내지 블록 k를 포함할 수 있고, k는 자연수이다. 더욱이, 블록 1은 전력 상태들{PS1b1 내지 PSnb1}을 포함할 수 있고, 블록 2는 전력 상태들{PS1b2 내지 PSmb2}을 포함하며, Block k는 전력 상태들{PS1bk 내지 PSqbk}을 포함하고, 여기서, n, m 및 q는 자연수이다.
ESL 모델(203)의 각각의 전력 상태에 대해, 생성된 ESL 검증 케이스(202)에 있는 검증 케이스들의 세트가 이에 할당되고, 타겟 커버리지 값이 상기 전력 상태에 할당된 각각의 검증 케이스에 대해 설정된다. 예를 들어, 요소(204)에서, T(PS1b1)는 블록 1의 전력 상태 PS1b1에 할당된 검증 케이스들의 세트이고, CTT(PS1b1)는 T(PS1b1)의 각각의 검증 케이스에 대해 설정된 타겟 커버리지 값들의 세트이다. 더욱이, T(PS1b2)는 블록 2의 전력 상태 PS1b2에 할당된 검증 케이스들의 세트이고, CTT(PS1b2)는 T(PS1b2)의 각각의 검증 케이스에 대해 설정된 타겟 커버리지 값들의 세트이다. 유사하게, T(PS1bk)는 블록 k의 전력 상태 PS1bk에 할당된 검증 케이스들의 세트이고, CTT(PS1bk)는 T(PS1bk)의 각각의 검증 케이스에 대해 설정된 타겟 커버리지 값들의 세트이다.
일부 실시예들에서, 전력 상태에 할당된 검증 케이스들은 상기 전력 상태에 대응하는 기능을 검증하기 위해 이용될 수 있다. 예를 들어, H264 전력 상태에 할당된 검증 케이스는 H264 전력 상태의 H264 기능을 검증하는 H264_I_Frame 검증 케이스일 수 있다. 일부 실시예들에서, 각각의 검증 케이스에 대한 타겟 커버리지는 칩 설계자에 의해 설정된 기대 커버리지이다.
모든 검증 케이스들 및 타겟 커버리지들이 준비된 이후에, 이들은 기능 테스트 벤치(205)에 전달된다. 기능 테스트 벤치는, 특정 입력을 고려해 볼 때, 설계가 사양을 수행하는지 체크하기 위해 시나리오를 제공함으로써 설계를 기능적으로 검증하기 위해 만들어졌다.
도 3은 실시예에 따라 매크로 레벨 전력 상태 커버리지 추정을 위한 시스템(300)을 도시하는 블록도이다. 도 3을 참조하면, 시스템(300)은, 예를 들어, ESL 모델(303)을 제외하면, 도 2에 설명되고 예시된 시스템(200)과 유사하다. ESL 모델(303)의 매크로 1은 하나 이상의 블록들을 포함할 수 있고, 전력 상태들은 매크로 1의 모든 블록들에 제공된다. 본 실시예에서, 매크로 1은 블록 1 내지 블록 n 및 연관된 전력 상태들{PS1b1 내지 PSnb1}을 포함한다. ESL 모델(303)은 블록 n+1 내지 블록 n+k을 더 포함한다. 게다가, 블록 n+1은 전력 상태들{PS1b(n+1) 내지 PSmb(n+1)}을 포함하고, 블록 n+k는 전력 상태들{PS1b(n+k) 내지 PSqb(n+k)}을 포함한다.
도 3의 나머지 요소들은 도 2의 대응하는 요소들과 유사하다. 매크로 레벨 구현으로, ESL 모델의 블록, 전력 상태, 및 검증 케이스는 더욱 융통성 있게 업데이트되고 관리될 수 있다.
도 4는 실시예에 따라 특정 모듈을 위한 ESL 모델(403) 및 검증 케이스(404)의 개략도이다. 예를 들어, 모듈(401)이 비디오 인코더 모듈이면, 모듈(401)을 위한 ESL 모델(403)은 비디오 압축, MPEG 인코더, JPEG 인코더, 제어 블록 등과 같은 블록들을 포함할 수 있다. 표(404)는 모듈(401)을 검증하기 위해 이용되는 ESL 모델의 블록들, 전력 상태들, 및 전력 검증 케이스들 간의 관계를 도시한다. 각각의 검증 케이스에는 타겟 커버리지 값 CTT가 할당될 수 있다.
본 실시예에서, 블록 "비디오 압축"은 전력 상태 "H264 상태"를 포함하고, 여기서 H264는 비디오 압축 포맷을 나타낸다. H264 상태를 위한 전력 검증 케이스는 30%의 CTT를 이용하는 H264_I_Frame 테스트, 30%의 CTT를 이용하는 H264_B_Frame 테스트, 및 40%의 CTT를 이용하는 H264_P_Frame 테스트를 포함한다.
게다가, 블록 "MPEG 인코더"는 전력 상태들 "MPEG4 상태", "MPEG2 상태" 및 "MPEG1 상태"를 포함한다. MPEG4 상태를 위한 전력 검증 케이스는 25%의 CTT를 이용하는 MPEG4_I_Frame 및 25%의 CTT를 이용하는 MPEG4_P_Frame 테스트를 포함한다. MPEG2 상태를 위한 전력 검증 케이스는 15%의 CTT를 이용하는 MPEG2_I_Frame 테스트 및 15%의 CTT를 이용하는 MPEG2_P_Frame 테스트를 포함한다. MPEG1 상태를 위한 전력 검증 케이스는 20%의 CTT를 이용하는 MPEG1 테스트를 포함한다.
더욱이, 블록 "JPEG 인코더"는 "JPEG 상태" 및 90%의 CTT를 이용하는 연관된 전력 검증 케이스 JPEG 테스트를 포함한다. 또한, 블록 "CTRL 블록"은 "IDLE 상태" 및 90%의 CTT를 이용하는 연관된 전력 검증 케이스 IDLE 테스트를 포함한다.
일부 실시예들에서, ESL 검증 케이스(402)의 각각의 검증 케이스는 모듈, 블록, 전력 상태, 타겟 커버리지 값 등과 같은 검증 케이스와 연관된 다른 정보와 함께 데이터베이스에 저장될 수 있다. 이런 식으로, 표(404)에 도시된 관계는 자동적으로 생성될 수 있다.
일부 실시예들에서, 블록을 검증하기 위해 이용될 전력 상태들 및 전력 검증 케이스들은 미리 결정된 규칙들의 세트에 의해 자동적으로 결정될 수 있다. 일부 실시예들에서, 모듈(401)을 검증하기 위해 이용될 블록들, 전력 상태들, 전력 검증 케이스들, 및 타겟 커버리지 값들은 칩 설계자에 의해 결정될 수 있다.
도 5는 실시예에 따라 기능 검증 시스템(500)의 개략도이다. 도 5를 참조하면, 기능 검증 시스템(500)은 기능 검증 테스트 벤치(502), RTL 시뮬레이션 툴(503), 시뮬레이션 로그 및 리포트 데이터베이스(504), 및 코드 커버리지 데이터베이스(505)를 포함한다. 기능 검증 시스템(500)에서, 도 4의 표(404)에 나열된 바와 같은 타겟 커버리지 값들을 이용하는 전력 검증 케이스들(501)이 만들어져서 기능 검증 테스트 벤치(502)의 일부가 된다.
기능 검증 테스트 벤치(502)는 칩 설계를 기능적으로 검증하기 위해 RTL 시뮬레이션 툴(503)에 의해 이용된다. 일부 실시예들에서, 기능 검증 테스트 벤치(502)는 검증될 모듈과 관련되지 않은 요소들을 포함할 수 있다. 예를 들어, 기능 검증 테스트 벤치(502)는 비디오 인코더 모듈을 위한 검증 케이스들과 관련되지 않은 테스트 벤치 제어 로직을 포함할 수 있다.
RTL 시뮬레이션 이후에, 테스트 결과는 시뮬레이션 로그 및 리포트 데이터베이스(504)에 저장될 수 있고, 전력 검증 케이스(501)에 대한 실제 코드 커버리지 값은 코드 커버리지 데이터베이스(505)에 저장될 수 있다.
도 6은 실시예에 따라 ESL 모델에 있는 블록의 전력 상태 커버리지를 추정하기 위한 방법을 도시하는 흐름도이다. 일 실시예에서, 블록의 전력 상태 커버리지는 블록의 IP들의 기능 코드 커버리지와 직접적인 상관 관계가 있을 수 있다. 전력 상태 커버리지를 계산하기 위해서, 전력 상태 커버리지 메트릭이 아래의 수학식 1에 정의될 수 있다.
Figure 112016000908389-pat00001
수학식 1에서, PSCOV는 ESL 모델에서 블록의 전력 상태 커버리지를 나타내고, SESL은 검증 케이스가 ESL 모델에 정의되어 있지만 블록에 있는 IP들의 타겟 코드를 실행시키지 않는 "거짓 상태"를 나타내고, SIP는 검증 케이스가 RTL 설계 기능 코드 커버리지 분석에 의해 커버되지만 ESL 모델에서는 발견되지 않는 "누락 상태"를 나타내며, Sboth는 검증 케이스가 ESL 모델에 정의되어 있고 RTL 설계 기능 코드 커버리지 분석에 의해 적절히 커버되는 "유효 상태"를 나타낸다.
일부 실시예들에서, 수학식 1의 파라미터 α는 0 내지 1 범위의 사용자 정의 값일 수 있다. 일부 실시예들에서, 수학식 1의 파라미터 α는 전력 상태 커버리지를 결정할 때 SIP의 영향력 계수에 따라 정의될 수 있다.
도 6을 참조하면, 동작(601)에서, 블록에 대한 적어도 하나의 검증 케이스가 선택된다. 일부 실시예들에서, 검증 케이스는 도 4에 도시된 표(404)에 기초하여 선택될 수 있다. 예를 들어, MPEG 인코더 블록에 대한 검증 케이스는 MPEG4_I_Frame, MPEG4_P_Frame, MPEG2_I_Frame, MPEG2_P_Frame, 및 MPEG1 검증 케이스를 포함할 수 있다. 일부 실시예들에서, 전력 상태 커버리지를 계산하기 전에 블록 커버리지 값이 0으로 초기화될 수 있다.
동작(602)에서, 타겟 커버리지 값이 검증될 선택된 검증 케이스들 중 하나에 대해 설정된다. 일부 실시예들에서, 타겟 커버리지 값은 도 4에 도시된 표(404)의 CTT에 기초하여 정의될 수 있다. 예를 들어, 도 4를 또한 참조하면, MPEG 인코더의 MPEG4 상태의 경우, MPEG4_I_Frame 검증 케이스에 대한 타겟 커버리지 값은 25%일 수 있고, MPEG4_P_Frame 검증 케이스에 대한 타겟 커버리지 값은 25%일 수 있다. 일부 실시예들에서, 타겟 커버리지 값은 10% 내지 100%의 범위일 수 있다.
동작(603)에서, 검증 케이스에 대해 RTL 시뮬레이션이 수행된다. 다음으로, 검증 케이스에 대한 실제 커버리지 값이 동작(604)에서 수신된다. 실제 커버리지 값은 RTL 시뮬레이션의 결과로서 검증 케이스에 의해 실질적으로 커버되는 기능 코드 커버리지의 값이다.
동작(605)에서, 실제 커버리지 값이 타겟 커버리지 값보다 크거나 같은지가 결정된다. 긍정이면, Sboth 및 블록 커버리지 값은 동작(606)에서 업데이트되고, 그런 다음, 프로세스는 동작(609)으로 진행한다. 그렇지 않으면, 프로세스는 동작(607)으로 진행하고, 이는 이하에 논의될 것이다.
동작(606)에서, Sboth는 그것에 대해 고정 또는 가변 수를 추가함으로써 업데이트될 수 있다. 실시예에서, 동작(606)에서, 블록 커버리지 값은 아래의 수학식 2에 따라 업데이트될 수 있다.
Figure 112016000908389-pat00002
수학식 2에서, Cb는 블록 커버리지 값을 나타내고, CCTj는 블록에 대한 검증 하에 j 번째 검증 케이스의 실제 커버리지 값을 나타내며, j는 자연수이다. 예를 들어, Cb는 블록의 제 1 검증 케이스를 검증하기 전에 0으로 초기화될 수 있다. 제 1 검증 케이스에 대한 실제 커버리지 값이 30%(즉, CCT1 = 30%)이면, Cb는 30% 되도록 업데이트된다.
동작(607)에서, 검증 케이스가 일부 기준을 충족하면, 검증 케이스는 제외 리스트에 추가된다. 일부 실시예들에서, 동작(607)은 선택적이고, 프로세스는 동작(608)으로 진행한다. 일부 실시예들에서, 검증 케이스의 실제 커버리지 값이 문턱값 미만이면, 검증 케이스는 제외 리스트에 추가된다. 검증 케이스가 제외 리스트에 추가되면, 상기 검증 케이스는 상기 블록의 전력 상태 커버리지를 계산하는 다음번에, 블록에 대한 검증 케이스들 중 하나로서 선택될 수 없다. 일부 실시예들에서, 검증 하에 있는 검증 케이스가 이미 제외 리스트에 나열되어 있으면, 상기 검증 케이스는 추가의 동작으로부터 제외될 수 있고, 프로세스는 동작(602)으로 리턴하여, 블록에 대한 다음 검증 케이스가 검증될 것이다. 제외 리스트의 도움으로, 부정적인 커버리지 영향을 미치는 검증 케이스는 테스트로부터 제외될 수 있고, 전력 상태 커버리지의 계산은 더욱 정확하게 될 수 있다.
동작(608)에서, SESL은 업데이트되고, 그런 다음, 프로세스는 동작(609)으로 진행한다. 일부 실시예들에서, SESL은 SESL에 고정 또는 가변 수를 추가함으로써 업데이트될 수 있다.
동작(609)에서, 검증 하에 있는 검증 케이스가 블록에 대한 마지막 검증 케이스인지가 결정된다. 긍정이면, 프로세스는 동작(610)으로 진행한다. 그렇지 않으면, 프로세스는 동작(602)으로 리턴하여, 블록에 대한 다음 검증 케이스가 검증될 것이다.
동작(610)에서, 블록 커버리지 값이 미리 정의된 블록 커버리지 값보다 크거나 같은지가 결정된다. 그렇지 않으면, 동작(611)에서, 적어도 하나의 새로운 검증 케이스가 블록에 대해 추가되고, SIP는 업데이트되며, 그런 다음, 프로세스는 동작(602)으로 리턴하여, 적어도 하나의 새로운 검증 케이스가 검증될 것이다. 긍정이면, 프로세스는 동작(612)으로 진행한다. 일부 실시예들에서, 미리 정의된 블록 커버리지 값은 100%로서 정의될 수 있고, 이는 블록의 전체 설계가 지정된 전력 상태로 커버되어야만 한다는 것을 의미한다.
동작(611)에서, 블록에 대해 추가된 적어도 하나의 새로운 검증 케이스는 도 2에 도시된 ESL 검증 케이스(202)로부터 선택될 수 있다. 동작(611)에서, SIP는 SIP에 고정 또는 가변 수를 추가함으로써 업데이트될 수 있다.
동작(612)에서, 블록에 대한 전력 상태 커버리지가 계산된다. 일부 실시예들에서, 상기 전력 상태 커버리지는 SESL, SIP, 및 Sboth의 최종 값을 이용하여, 수학식 1에 따라 계산될 수 있다.
일부 실시예들에서, ESL 모델의 전체 전력 상태 커버리지는 수학식 1에 의해 계산된 상기 ESL 모델에 있는 각각의 블록의 전력 상태 커버리지에 기초하여 추정될 수 있다. 예를 들어, ESL 모델의 전체 전력 상태 커버리지는 아래의 수학식 3에 정의될 수 있다.
Figure 112016000908389-pat00003
수학식 3에서, PSALL은 N 개의 블록을 갖는 ESL 모델의 전체 전력 상태 커버리지를 나타내고, PSi는 ESL 모델에 있는 i번째 블록의 전력 상태 커버리지를 나타내고, i는 자연수이며, βi는 i번째 블록에 대한 가중 값이고, 모든 βi의 합은 1이다. 일부 실시예들에서, βi는 각각의 블록에 대해 동일할 수 있다. 일부 실시예들에서, βi는 각각의 블록의 검증 케이스의 수 및/또는 전력 상태의 수의 함수로서 정의될 수 있다.
도 7은 실시예에 따라 ESL 모델에 대한 원래의 검증 케이스 및 업데이트된 검증 케이스의 도면이다. 도 7을 참조하면, 표(701)는 모듈을 검증하기 위해 이용되는 ESL 모델의 원래의 검증 케이스를 도시한다. 표(701)의 구조는 표 4에 도시된 표(404)의 것과 유사할 수 있다.
표(702)는 검증 케이스에 대해 RTL 시뮬레이션을 수행한 이후에 모듈을 검증하기 위해 이용되는 ESL 모델의 업데이트된 검증 케이스이다. 일부 실시예들에서, 앞서 언급한 업데이트 동작은 표(701)의 블록에 대해 일부 전력 상태를 추가 또는 제가 및/또는 전력 상태에 대해 일부 검증 케이스를 추가 또는 제거하는 것을 포함한다.
일부 실시예들에서, 도 6에 도시된 방법(600)이 동작(611)으로 진행하는 경우, 새로운 검증 케이스가 표(701)에 추가될 수 있다. 예를 들어, 표(702)의 항목(703)은 추가된 새로운 검증 케이스를 포함한다. 일부 실시예들에서, 표(701)에 추가된 새로운 검증 케이스는 새로운 검증 케이스와 연관된 타겟 커버리지의 값에 기초하여 결정될 수 있다. 예를 들어, 새로운 검증 케이스가 표(701)의 비디오 압축 블록에 추가되면, 비디오 압축 블록을 위해 설계된 검증 케이스들 중 가장 높은 타겟 커버리지 값을 갖는 검증 케이스가 표(701)의 비디오 압축 블록에 먼저 추가될 수 있다.
일부 실시예들에서, 도 6에 도시된 동작(607)에서 업데이트될 수 있는 제외 리스트에 상기 검증 케이스가 나열되는 경우, 검증 케이스는 표(701)에서 제거될 수 있다. 예를 들어, 표(702)의 항목(704)에 있는 검증 케이스가 제외 리스트에 나열되면, 상기 검증 케이스는 표(702)에서 제거될 수 있고, 비디오 인코더 모듈이 검증될 다음번에 비디오 인코더 모듈에 대한 검증 케이스로서 선택되지 않을 수 있다. 상기 검증 케이스와 연관된 전력 상태가 또한 비디오 인코더 모듈이 검증될 다음번에 비디오 인코더 모듈에 대한 전력 상태에서 제외될 수 있다.
표(701)의 업데이트 이후에, ESL 모델의 블록 및/또는 전력 상태는 이에 따라 업데이트될 수 있다. 동일한 모듈이 다음번에 검증될 경우, 업데이트된 ESL 모델 및 검증 케이스가 상기 모듈을 위해 이용될 수 있다. 이런 식으로, 블록들 및 ESL 모델의 더욱 양호한 전력 상태 커버리지가 달성될 수 있다.
도 8은 일부 실시예들에 따라 도 1 내지 도 6을 참조하여 설명된 방법 및 시스템 실시예들을 구현하기 위한 하드웨어 시스템(800)의 블록도이다. 시스템(800)은 적어도 하나의 프로세서(802), 네트워크 인터페이스(804), 입출력(I/O) 디바이스(806), 저장 장치(808), 메모리(812), 및 버스(810)를 포함한다. 버스(810)는 네트워크 인터페이스(804), I/O 디바이스(806), 저장 장치(808) 및 메모리(812)를 프로세서(802)에 결합시킨다.
일부 실시예들에서, 메모리(812)는 랜덤 액세스 메모리(random access memory; RAM) 및/또는 다른 휘발성 저장 디바이스 및/또는 읽기 전용 메모리(read only memory; ROM) 및/또는 다른 비휘발성 저장 디바이스를 포함한다. 메모리(812)는 프로세서(802)에 의해 실행될 프로그램 명령어 및 프로그램 명령어에 의해 액세스되는 데이터를 저장하도록 구성된 사용자 공간(814) 및 커널(816)을 포함한다.
일부 실시예들에서, 네트워크 인터페이스(804)는 네트워크를 통해 원격으로 저장된 프로그램 명령어, 및 프로그램 명령어에 의해 액세스되는 데이터를 액세스하도록 구성된다. I/O 디바이스(806)는 시스템(800)과 사용자 상호 작용을 가능하게 하기 위해 구성된 입력 디바이스 및 출력 디바이스를 포함한다. 입력 디바이스는, 예를 들어, 키보드, 마우스 등을 포함한다. 출력 디바이스는, 예를 들어, 디스플레이, 프린터 등을 포함한다. 저장 디바이스(808)는 프로그램 명령어들 및 프로그램 명령어들에 의해 액세스되는 데이터를 저장하도록 구성된다. 저장 디바이스(808)는, 예를 들어, 자기 디스크 및 광 디스크를 포함한다.
일부 실시예들에서, 프로그램 명령어를 실행할 때, 프로세서(802)는 도 1 내지 도 6을 참조하여 설명된 방법을 수행하도록 구성되거나, 도 2 내지 도 5를 참조하여 설명된 시스템으로서 구성된다.
일부 실시예들에서, 프로그램 명령어는 하나 이상의 광 디스크, 하드 디스크 및 비휘발성 메모리 디바이스와 같은 비일시적 컴퓨터 판독 가능 기록 매체에 저장된다. 일부 실시예들에서, 도 4에 도시된 표(404) 및 도 7에 도시된 표들(701 및 702)은 비일시적 컴퓨터 판독 가능 저장 매체의 파일에 저장될 수 있다.
본 발명개시의 실시예들은 전력 상태 커버리지 검증 및 소비 전력 추정 방법을 제공한다. 본 발명개시의 실시예들은 주어진 IP의 기능 검증을 통해 획득된 기능 코드 커버리지에 기초하여 전력 상태 커버리지를 추정하기 위해 전력 상태 커버리지 메트릭 및 방법을 제공한다. 본 발명개시의 실시예들은 ESL 모델이 임의의 누락 전류 상태를 갖는지, ESL 모델에 정의된 전력 상태가 유효 전력 상태이고 칩의 대부분의 기능 부분을 커버하는지를 체크할 수 있다. 본 발명개시의 실시예들은 ESL 모델의 어떤 전력 상태가 유효한지, 기능 커버리지가 각각의 전력 상태와 얼마만큼 연관되는지, 그리고 ESL 모델에 있는 모든 전력 상태들에 대한 전체 설계 커버리지를 결정할 수 있다.
실시예에서, 적어도 하나의 프로세서에 의해 수행되는 칩 설계에서 모듈에 대한 검증 케이스들을 관리하기 위한 방법에 있어서, 모듈을 위해 복수의 블록들을 포함하는 전자 시스템 레벨(ESL) 모델이 생성된다. 적어도 하나의 ESL 전력 상태가 복수의 블록들 각각에 대해 정의된다. 적어도 하나의 검증 케이스가 ESL 전력 상태들 각각에 대해 선택된다. 타겟 커버리지 값이 검증 케이스들 각각에 대해 설정된다. 레지스터 전송 레벨(RTL) 시뮬레이션이 검증 케이스들 각각에 대해 수행된다. 실제 커버리지 값이 검증 케이스들 각각에 대해 수신된다. ESL 전력 상태들 및 검증 케이스들이 복수의 블록들 각각에 대해 업데이트된다.
다른 실시예에서, 적어도 하나의 프로세서에 의해 수행되는 전자 시스템 레벨(ESL) 모델에 있는 블록의 전력 상태 커버리지를 추정하기 위한 방법에 있어서, 제 1 값, 제 2 값, 제 3 값, 및 블록 커버리지 값이 블록에 대해 설정된다. 적어도 하나의 검증 케이스가 블록에 대해 선택된다. 적어도 하나의 검증 케이스 각각에 대해, (a) 타겟 커버리지 값이 설정되고, (b) 레지스터 전송 레벨(RTL) 시뮬레이션이 수행되고, (c) 실제 커버리지 값이 수신되고, (d) 실제 커버리지 값이 타겟 커버리지 값보다 크거나 같은지가 결정되며, (e) 실제 커버리지 값이 타겟 커버리지 값보다 크거나 같은 경우, 제 1 값 및 블록 커버리지 값이 업데이트된다. 블록 커버리지 값이 미리 정의된 블록 커버리지 값보다 크거나 같은지가 결정된다. 블록 커버리지 값이 미리 정의된 블록 커버리지 값보다 크거나 같은 경우 블록에 대해 전력 상태 커버리지가 계산된다.
또 다른 실시예에서, 적어도 하나의 프로세서에 의해 수행되는 전자 시스템 레벨(ESL) 모델의 전체 전력 상태 커버리지를 추정하기 위한 방법에 있어서, 제 1 값 및 제 2 값이 각각의 블록에 대해 설정된다. 적어도 하나의 검증 케이스가 ESL 모델에 있는 각각의 블록에 대해 선택된다. 적어도 하나의 검증 케이스 각각에 대해, (a) 타겟 커버리지 값이 설정되고, (b) 레지스터 전송 레벨(RTL) 시뮬레이션이 수행되고, (c) 실제 커버리지 값이 수신되고, (d) 실제 커버리지 값이 타겟 커버리지 값 미만인지의 여부에 기초하여 제 1 값 또는 제 2 값이 업데이트된다. 전력 상태 커버리지가 각각의 블록에 대해 계산된다. 전체 전력 상태 커버리지가 ESL 모델에 대해 계산된다.
당업자가 본 발명개시의 양태들을 더욱 잘 이해할 수 있도록 앞서 말한 것은 여러 실시예들의 특징들을 설명하였다. 당업자는 본 명세서에 도입된 실시예들의 동일한 이점들을 달성 및/또는 동일한 목적을 수행하는 구조 및 다른 공정을 설계 또는 수정하기 위한 기본으로서 본 발명개시를 용이하게 이용할 수 있음을 이해해야 한다. 당업자는 또한, 등가 구조물이 본 발명개시의 사상과 범위로부터 벗어나지 않도록 실현해야 하며, 본 발명개시의 사상과 범위로부터 벗어나지 않고 여기에서 다양한 변경, 대체 및 변화를 행할 수 있다.

Claims (10)

  1. 칩 설계에서 모듈에 대한 검증 케이스들을 관리하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
    상기 모듈을 위해 복수의 블록들을 포함하는 전자 시스템 레벨(electronic system level; ESL) 모델을 생성하는 단계;
    상기 복수의 블록들 중의 각각의 블록에 대해 적어도 하나의 ESL 전력 상태를 정의하는 단계;
    상기 적어도 하나의 ESL 전력 상태 중의 각각의 ESL 전력 상태에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
    상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해 타겟 커버리지 값을 설정하는 단계;
    상기 각각의 검증 케이스에 대해 레지스터 전송 레벨(register transfer level; RTL) 시뮬레이션을 수행하는 단계;
    상기 각각의 검증 케이스에 대해 실제 커버리지 값을 수신하는 단계; 및
    상기 복수의 블록들 중의 각각의 블록에 대해 ESL 전력 상태들 및 검증 케이스들을 업데이트하는 단계
    를 포함하는 모듈에 대한 검증 케이스들을 관리하기 위한 방법.
  2. 제 1 항에 있어서, 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 상기 단계는, 타겟 커버리지 값들 및 실제 커버리지 값들에 기초하여 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 단계를 포함하는 것인, 모듈에 대한 검증 케이스들을 관리하기 위한 방법.
  3. 제 1 항에 있어서, 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 상기 단계는, 상기 ESL 전력 상태들 중 적어도 하나의 ESL 전력 상태에 대해 적어도 하나의 검증 케이스를 추가하거나 제거하는 단계, 또는 상기 복수의 블록들 중 적어도 하나의 블록에 대해 적어도 하나의 ESL 전력 상태를 추가하거나 제거하는 단계를 포함하는 것인, 모듈에 대한 검증 케이스들을 관리하기 위한 방법.
  4. 칩 설계에서 모듈에 대한 전자 시스템 레벨(ESL) 모델에 있는 블록의 전력 상태 커버리지를 추정하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
    상기 블록에 대해 제 1 값, 제 2 값, 제 3 값, 및 블록 커버리지 값을 설정하는 단계;
    상기 블록에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
    상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해,
    (a) 타겟 커버리지 값을 설정하는 단계;
    (b) 레지스터 전송 레벨(RTL) 시뮬레이션을 수행하는 단계;
    (c) 실제 커버리지 값을 수신하는 단계;
    (d) 상기 실제 커버리지 값이 상기 타겟 커버리지 값보다 크거나 같은지를 결정하는 단계;
    (e) 상기 실제 커버리지 값이 상기 타겟 커버리지 값보다 크거나 같은 경우, 상기 제 1 값 및 상기 블록 커버리지 값을 업데이트하는 단계; 및
    상기 블록 커버리지 값이 미리 정의된 블록 커버리지 값보다 크거나 같은지를 결정하는 단계; 및
    상기 블록 커버리지 값이 상기 미리 정의된 블록 커버리지 값보다 크거나 같은 경우, 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 단계
    를 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  5. 제 4 항에 있어서,
    상기 실제 커버리지 값이 상기 타겟 커버리지 값 미만인 경우, 상기 제 2 값을 업데이트하는 단계
    를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 블록 커버리지 값이 상기 미리 정의된 블록 커버리지 값 미만인 경우, 상기 블록에 대해 적어도 하나의 새로운 검증 케이스를 추가하고 상기 제 3 값을 업데이트하는 단계
    를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  7. 제 6 항에 있어서, 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 상기 단계는, 상기 제 1 값, 상기 제 2 값, 및 상기 제 3 값에 기초하여 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 단계를 포함하는 것인, 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  8. 제 4 항에 있어서, 상기 블록 커버리지 값은 상기 실제 커버리지 값에 기초하여 업데이트되는 것인, 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  9. 제 4 항에 있어서,
    상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스의 실제 커버리지 값이 미리 정해진 문턱값 미만이면, 상기 검증 케이스를 제외 리스트에 추가하는 단계
    를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법.
  10. 칩 설계에서 모듈에 대한 복수의 블락들을 포함하는 전자 시스템 레벨(ESL) 모델의 전체 전력 상태 커버리지를 추정하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
    각각의 블록에 대해 제 1 값 및 제 2 값을 설정하는 단계;
    상기 ESL 모델에 있는 각각의 블록에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
    상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해,
    (a) 타겟 커버리지 값을 설정하는 단계;
    (b) 레지스터 전송 레벨(RTL) 시뮬레이션을 수행하는 단계;
    (c) 실제 커버리지 값을 수신하는 단계; 및
    (d) 상기 실제 커버리지 값이 상기 타겟 커버리지 값 미만인지의 여부에 기초하여, 상기 제 1 값 또는 상기 제 2 값을 업데이트하는 단계;
    각각의 블록에 대해 전력 상태 커버리지를 계산하는 단계; 및
    상기 ESL 모델에 대해 상기 전체 전력 상태 커버리지를 계산하는 단계
    를 포함하는 전체 전력 상태 커버리지를 추정하기 위한 방법.
KR1020160001073A 2015-10-05 2016-01-05 전력 상태 커버리지 메트릭 및 이의 추정 방법 KR101832583B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/874,881 2015-10-05
US14/874,881 US9633147B1 (en) 2015-10-05 2015-10-05 Power state coverage metric and method for estimating the same

Publications (2)

Publication Number Publication Date
KR20170040724A KR20170040724A (ko) 2017-04-13
KR101832583B1 true KR101832583B1 (ko) 2018-02-26

Family

ID=58355735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160001073A KR101832583B1 (ko) 2015-10-05 2016-01-05 전력 상태 커버리지 메트릭 및 이의 추정 방법

Country Status (5)

Country Link
US (1) US9633147B1 (ko)
KR (1) KR101832583B1 (ko)
CN (1) CN107103105A (ko)
DE (1) DE102016117171A1 (ko)
TW (1) TWI608372B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102408222B1 (ko) * 2020-11-19 2022-06-13 주식회사 바움디자인시스템즈 전력 모델 증분 학습 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293163A (ja) 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
JP2010003162A (ja) 2008-06-20 2010-01-07 Toshiba Corp 半導体集積回路設計装置および半導体集積回路設計プログラム
JP2014106591A (ja) 2012-11-26 2014-06-09 Ricoh Co Ltd 消費電力見積り装置および消費電力見積り方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209517B2 (en) * 2002-03-04 2007-04-24 Qualcomm Incorporated Method and apparatus for estimating a maximum rate of data and for estimating power required for transmission of data at a rate of data in a communication system
US8781808B2 (en) * 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
TWI475415B (zh) * 2007-07-23 2015-03-01 Synopsys Inc 架構之實體合成
US8756544B2 (en) * 2010-12-06 2014-06-17 Industrial Technology Research Institute Method for inserting characteristic extractor
TW201224748A (en) * 2010-12-06 2012-06-16 Ind Tech Res Inst Transaction level system power estimation method and system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222315B2 (en) 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
JP2005293163A (ja) 2004-03-31 2005-10-20 Nec Electronics Corp 消費電力計算方法及び装置
JP2010003162A (ja) 2008-06-20 2010-01-07 Toshiba Corp 半導体集積回路設計装置および半導体集積回路設計プログラム
JP2014106591A (ja) 2012-11-26 2014-06-09 Ricoh Co Ltd 消費電力見積り装置および消費電力見積り方法

Also Published As

Publication number Publication date
KR20170040724A (ko) 2017-04-13
US9633147B1 (en) 2017-04-25
CN107103105A (zh) 2017-08-29
US20170098023A1 (en) 2017-04-06
TW201714107A (zh) 2017-04-16
DE102016117171A1 (de) 2017-04-06
TWI608372B (zh) 2017-12-11

Similar Documents

Publication Publication Date Title
US8117576B2 (en) Method for using an equivalence checker to reduce verification effort in a system having analog blocks
US8099690B2 (en) Adaptive state-to-symbolic transformation in a canonical representation
US7343499B2 (en) Method and apparatus to generate circuit energy models with multiple clock gating inputs
US8468479B2 (en) Consistent hierarchical timing model with crosstalk consideration
JP2009163576A (ja) 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
US9069699B2 (en) Identifying inconsistent constraints
US20120136635A1 (en) Method and apparatus for optimizing constraint solving through constraint rewriting and decision reordering
US20120123745A1 (en) Adaptive Content-aware Aging Simulations
US10534883B1 (en) Local path-based analysis for circuit place and route optimization
US20150278425A1 (en) Timing Closure Using Transistor Sizing in Standard Cells
CN104981805A (zh) 自动时钟树布线规则生成
US10296700B1 (en) Multimode circuit place and route optimization
US10534878B1 (en) Circuit place and route optimization based on path-based timing analysis
US8843873B1 (en) Capacitive cell load estimation using electromigration analysis
JP5040625B2 (ja) Lsiの電力見積方法及びその装置
TWI777210B (zh) 用於設計上下文感知電路的方法
KR101832583B1 (ko) 전력 상태 커버리지 메트릭 및 이의 추정 방법
US7346866B2 (en) Method and apparatus to generate circuit energy models with clock gating
US20080300806A1 (en) Power consumption calculating method
US10963026B2 (en) Digital signal transition counters for digital integrated circuits
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
US20090037860A1 (en) Apparatus, system and method for simulating operation of circuit
US8301431B2 (en) Apparatus and method for accelerating simulations and designing integrated circuits and other systems
US9892227B1 (en) Systems, methods and storage media for clock tree power estimation at register transfer level
US9600613B1 (en) Block-level code coverage in simulation of circuit designs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant