KR101832583B1 - 전력 상태 커버리지 메트릭 및 이의 추정 방법 - Google Patents
전력 상태 커버리지 메트릭 및 이의 추정 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 claims abstract description 155
- 238000004088 simulation Methods 0.000 claims abstract description 19
- 238000012546 transfer Methods 0.000 claims abstract description 10
- 238000013461 design Methods 0.000 claims description 23
- 230000007717 exclusion Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 4
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011990 functional testing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G06F17/5045—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31704—Design for test; Design verification
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31721—Power aspects, e.g. power supplies for test circuits, power saving during test
-
- G06F17/5022—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power 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
반도체 칩의 성능이 증가함에 따라, 칩 설계는 점점 더 복잡해진다. 종래의 레지스터 전송 레벨(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을 참조하여 설명된 방법 및 시스템 실시예들을 구현하기 위한 하드웨어 시스템의 블록도이다.
도 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에 정의될 수 있다.
수학식 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에 따라 업데이트될 수 있다.
수학식 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에 정의될 수 있다.
수학식 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)
- 칩 설계에서 모듈에 대한 검증 케이스들을 관리하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
상기 모듈을 위해 복수의 블록들을 포함하는 전자 시스템 레벨(electronic system level; ESL) 모델을 생성하는 단계;
상기 복수의 블록들 중의 각각의 블록에 대해 적어도 하나의 ESL 전력 상태를 정의하는 단계;
상기 적어도 하나의 ESL 전력 상태 중의 각각의 ESL 전력 상태에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해 타겟 커버리지 값을 설정하는 단계;
상기 각각의 검증 케이스에 대해 레지스터 전송 레벨(register transfer level; RTL) 시뮬레이션을 수행하는 단계;
상기 각각의 검증 케이스에 대해 실제 커버리지 값을 수신하는 단계; 및
상기 복수의 블록들 중의 각각의 블록에 대해 ESL 전력 상태들 및 검증 케이스들을 업데이트하는 단계
를 포함하는 모듈에 대한 검증 케이스들을 관리하기 위한 방법. - 제 1 항에 있어서, 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 상기 단계는, 타겟 커버리지 값들 및 실제 커버리지 값들에 기초하여 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 단계를 포함하는 것인, 모듈에 대한 검증 케이스들을 관리하기 위한 방법.
- 제 1 항에 있어서, 상기 복수의 블록들 중의 각각의 블록에 대해 상기 ESL 전력 상태들 및 상기 검증 케이스들을 업데이트하는 상기 단계는, 상기 ESL 전력 상태들 중 적어도 하나의 ESL 전력 상태에 대해 적어도 하나의 검증 케이스를 추가하거나 제거하는 단계, 또는 상기 복수의 블록들 중 적어도 하나의 블록에 대해 적어도 하나의 ESL 전력 상태를 추가하거나 제거하는 단계를 포함하는 것인, 모듈에 대한 검증 케이스들을 관리하기 위한 방법.
- 칩 설계에서 모듈에 대한 전자 시스템 레벨(ESL) 모델에 있는 블록의 전력 상태 커버리지를 추정하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
상기 블록에 대해 제 1 값, 제 2 값, 제 3 값, 및 블록 커버리지 값을 설정하는 단계;
상기 블록에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해,
(a) 타겟 커버리지 값을 설정하는 단계;
(b) 레지스터 전송 레벨(RTL) 시뮬레이션을 수행하는 단계;
(c) 실제 커버리지 값을 수신하는 단계;
(d) 상기 실제 커버리지 값이 상기 타겟 커버리지 값보다 크거나 같은지를 결정하는 단계;
(e) 상기 실제 커버리지 값이 상기 타겟 커버리지 값보다 크거나 같은 경우, 상기 제 1 값 및 상기 블록 커버리지 값을 업데이트하는 단계; 및
상기 블록 커버리지 값이 미리 정의된 블록 커버리지 값보다 크거나 같은지를 결정하는 단계; 및
상기 블록 커버리지 값이 상기 미리 정의된 블록 커버리지 값보다 크거나 같은 경우, 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 단계
를 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법. - 제 4 항에 있어서,
상기 실제 커버리지 값이 상기 타겟 커버리지 값 미만인 경우, 상기 제 2 값을 업데이트하는 단계
를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법. - 제 5 항에 있어서,
상기 블록 커버리지 값이 상기 미리 정의된 블록 커버리지 값 미만인 경우, 상기 블록에 대해 적어도 하나의 새로운 검증 케이스를 추가하고 상기 제 3 값을 업데이트하는 단계
를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법. - 제 6 항에 있어서, 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 상기 단계는, 상기 제 1 값, 상기 제 2 값, 및 상기 제 3 값에 기초하여 상기 블록에 대해 상기 전력 상태 커버리지를 계산하는 단계를 포함하는 것인, 블록의 전력 상태 커버리지를 추정하기 위한 방법.
- 제 4 항에 있어서, 상기 블록 커버리지 값은 상기 실제 커버리지 값에 기초하여 업데이트되는 것인, 블록의 전력 상태 커버리지를 추정하기 위한 방법.
- 제 4 항에 있어서,
상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스의 실제 커버리지 값이 미리 정해진 문턱값 미만이면, 상기 검증 케이스를 제외 리스트에 추가하는 단계
를 더 포함하는 블록의 전력 상태 커버리지를 추정하기 위한 방법. - 칩 설계에서 모듈에 대한 복수의 블락들을 포함하는 전자 시스템 레벨(ESL) 모델의 전체 전력 상태 커버리지를 추정하기 위한, 적어도 하나의 프로세서에 의해 수행되는 방법에 있어서,
각각의 블록에 대해 제 1 값 및 제 2 값을 설정하는 단계;
상기 ESL 모델에 있는 각각의 블록에 대해 적어도 하나의 검증 케이스를 선택하는 단계;
상기 적어도 하나의 검증 케이스 중의 각각의 검증 케이스에 대해,
(a) 타겟 커버리지 값을 설정하는 단계;
(b) 레지스터 전송 레벨(RTL) 시뮬레이션을 수행하는 단계;
(c) 실제 커버리지 값을 수신하는 단계; 및
(d) 상기 실제 커버리지 값이 상기 타겟 커버리지 값 미만인지의 여부에 기초하여, 상기 제 1 값 또는 상기 제 2 값을 업데이트하는 단계;
각각의 블록에 대해 전력 상태 커버리지를 계산하는 단계; 및
상기 ESL 모델에 대해 상기 전체 전력 상태 커버리지를 계산하는 단계
를 포함하는 전체 전력 상태 커버리지를 추정하기 위한 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102408222B1 (ko) * | 2020-11-19 | 2022-06-13 | 주식회사 바움디자인시스템즈 | 전력 모델 증분 학습 방법 및 장치 |
Citations (4)
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)
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 |
-
2015
- 2015-10-05 US US14/874,881 patent/US9633147B1/en active Active
-
2016
- 2016-01-05 KR KR1020160001073A patent/KR101832583B1/ko active IP Right Grant
- 2016-09-05 TW TW105128607A patent/TWI608372B/zh active
- 2016-09-13 DE DE102016117171.9A patent/DE102016117171A1/de active Pending
- 2016-09-30 CN CN201610870809.9A patent/CN107103105A/zh active Pending
Patent Citations (4)
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 |