KR20190077058A - 프로그래밍가능 클록 모니터 - Google Patents

프로그래밍가능 클록 모니터 Download PDF

Info

Publication number
KR20190077058A
KR20190077058A KR1020197015779A KR20197015779A KR20190077058A KR 20190077058 A KR20190077058 A KR 20190077058A KR 1020197015779 A KR1020197015779 A KR 1020197015779A KR 20197015779 A KR20197015779 A KR 20197015779A KR 20190077058 A KR20190077058 A KR 20190077058A
Authority
KR
South Korea
Prior art keywords
clock
signal
circuit
processor
error condition
Prior art date
Application number
KR1020197015779A
Other languages
English (en)
Other versions
KR102381903B1 (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 KR20190077058A publication Critical patent/KR20190077058A/ko
Application granted granted Critical
Publication of KR102381903B1 publication Critical patent/KR102381903B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations

Abstract

장치(210)는, 동작 파라미터를 수신하도록 구성된 인터페이스 회로(305), 및 인터페이스 회로(305)에 커플링되며, 동작 파라미터를 저장하도록 구성된 제어 회로(310)를 포함할 수 있다. 장치(210)는 또한, 제어 회로(310)에 커플링된 클록 에러 검출 회로(320)를 포함할 수 있다. 클록 에러 검출 회로(320)는, 동작 파라미터에 기반하여 클록 신호에 대한 클록 에러 조건을 검출하고, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 에러 조건의 발생을 표시하는 신호를 생성하도록 구성될 수 있다.

Description

프로그래밍가능 클록 모니터
본 개시내용은 집적 회로(IC)들에 관한 것으로, 더 상세하게는 IC 내에서의 구현을 위한 클록 모니터 회로에 관한 것이다.
클록 모니터링은 현대의 전자 시스템 설계의 중요한 엘리먼트이다. 예컨대, 기능 안전 시장 내에서, 시스템의 내고장성(fault tolerance)이 요건으로서 간주된다. 내고장성은 일반적으로, 시스템의 하나 이상의 컴포넌트들의 고장(예컨대, 결함)의 경우, 적절하게 또는 적어도 정의된 및 예상되는 방식으로 계속 동작하기 위한 시스템의 능력을 지칭한다. 시스템이 "내고장성"으로 고려되기 위해, 다른 엘리먼트들 중에서 클록 모니터링이 종종 요구된다.
보안의 경우, 클록 모니터링은 종종, 시스템들이 공격을 막는 것에 도움이 되기 위한 요건으로서 간주된다. 예컨대, 공격의 하나의 타입은 시스템의 클록 신호에서의 글리치(glitch)의 유발이다. 클록 글리치는 다수의 문제점들, 이를테면 프로세서로 하여금 명령의 실행을 스킵하게 하는 것을 유발할 수 있다. 명령의 실행을 스킵하는 것은 프로그램 코드의 전체 부분들이 실행되는 것을 막을 수 있다. 프로그램 코드의 이들 부분들은 중요한 보안 특징들, 이를테면 로그인, 암호화, 암호해독 등을 시스템에 제공할 수 있다. 해커가 그러한 명령의 실행이 스킵되게 할 수 있으면, 시스템은 공격에 취약해질 수 있다.
실시예는 클록 신호들을 모니터링하기 위한 장치를 포함한다. 장치는, 동작 파라미터를 수신하도록 구성된 인터페이스 회로, 및 인터페이스 회로에 커플링되며, 동작 파라미터를 저장하도록 구성된 제어 회로를 포함할 수 있다. 장치는 또한, 제어 회로에 커플링된 클록 에러 검출 회로를 포함할 수 있다. 클록 에러 검출 회로는, 동작 파라미터에 기반하여 클록 신호에 대한 클록 에러 조건을 검출하고, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 에러 조건의 발생을 표시하는 신호를 생성하도록 구성될 수 있다.
다른 실시예는 클록 신호들을 모니터링하는 방법을 포함한다. 방법은, 클록 모니터 회로에서, 프로세서로부터 동작 파라미터를 수신하는 단계, 동작 파라미터에 기반하여 클록 모니터의 클록 에러 검출 회로를 업데이트하는 단계, 및 동작 파라미터에 기반하여 클록 에러 검출 회로를 사용하여 클록 신호에 대한 클록 에러 조건을 검출하는 단계를 포함할 수 있다. 방법은, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 에러 조건의 발생을 표시하는 신호를 생성하는 단계를 포함할 수 있다.
이러한 요약 섹션은 청구된 청구 대상의 임의의 중요 또는 본질적인 특징들을 식별하는 것이 아니라 특정한 개념들을 도입하기 위해서만 제공된다. 본 발명의 어레인지먼트(arrangement)들의 다른 특징들은 첨부한 도면들 및 다음의 상세한 설명으로부터 명백할 것이다.
본 발명의 어레인지먼트들은 첨부한 도면들에서 예로서 예시된다. 그러나, 도면들은, 본 발명의 어레인지먼트들을 도시된 특정한 구현들로만 제한하는 것으로 해석되지 않아야 한다. 다양한 양상들 및 장점들은 다음의 상세한 설명의 검토 시에 그리고 도면들을 참조할 시에 명백해질 것이다.
도 1은 집적 회로에 대한 예시적인 아키텍처이다.
도 2는 클록 모니터 회로를 포함하는 집적 회로의 일 예이다.
도 3은 클록 모니터 회로의 일 예이다.
도 4는 클록 에러 검출 회로의 일 예이다.
도 5는 클록 모니터 회로에 대한 에지 검출기의 동작을 예시하는 예시적인 파형들을 예시한다.
도 6은 클록 모니터 회로를 구현하는 예시적인 방법이다.
도 7은 클록 모니터 회로에 대한 예시적인 동작 방법이다.
본 개시내용이 신규한 특징들을 정의하는 청구항들로 종결되지만, 본 개시내용 내에서 설명된 다양한 특징들이 도면들과 함께 설명의 고려사항으로부터 더 양호하게 이해될 것으로 생각된다. 본 명세서에 설명된 프로세스(들), 머신(들), 제조(들) 및 그들의 임의의 변경들은 예시의 목적들을 위해 제공된다. 본 개시내용 내에서 설명된 특정한 구조 및 기능 세부사항들은 제한으로서 해석되는 것이 아니라, 오로지, 청구항들에 대한 기반으로서 그리고 사실상 임의의 적절하게 상세한 구조로 설명된 특징들을 다양하게 이용하기 위해 당업자에게 교시하기 위한 대표적인 기반으로서 해석되어야 한다. 추가로, 본 개시내용 내에서 사용된 용어들 및 어구들은 제한하는 것으로 의도되는 것이 아니라 오히려, 설명된 특징들의 이해가능한 설명을 제공하도록 의도된다.
본 개시내용은 집적 회로(IC)들에 관한 것으로, 더 상세하게는 IC 내에서의 구현을 위한 클록 모니터 회로에 관한 것이다. 본 명세서에 설명된 하나 이상의 예시적인 실시예들은, IC 내에서의 내고장성 시스템의 구현을 용이하게 하는 클록 모니터 회로를 제공한다. 일 양상에서, 클록 모니터 회로는 프로그래밍가능하다.
하나 이상의 실시예들에서, 클록 모니터 회로를 구현하는 코어가 제공된다. 회로 설계자, 예컨대 사용자는 코어를 프로그래밍하고 그리고/또는 코어를 파라미터화하기 위해 하나 이상의 동작 파라미터들을 전자 설계 자동화(EDA) 툴에 제공할 수 있다. 추가로, 일단 코어가 기능 회로로서 IC 내에서 물리적으로 구현되면, 클록 모니터 회로는 실시간으로 프로그래밍 또는 제어될 수 있다. 일 실시예에서, 클록 모니터 회로는 프로세서를 사용하여 제어될 수 있다. 예컨대, 프로세서는 클록 모니터 회로와의 통신을 용이하게 하는 드라이버 프로그램 코드를 실행할 수 있다. 이로써, 동작 동안, 예컨대 실시간으로, 프로세서는 클록 모니터 회로의 동작 파라미터들 중 하나 이상을 변경시킬 수 있다.
하나 이상의 실시예들에서, 클록 모니터 회로는 하나 이상의 상이한 클록 신호들을 동시에 모니터링할 수 있다. 추가로, 클록 모니터 회로는, 모니터링되는 상이한 클록 신호들 각각에 대한 하나 이상의 상이한 타입들의 클록 에러 조건들을 검출하도록 프로그래밍될 수 있다. 프로세서는 검출된 클록 에러 조건들을 핸들링하기 위해 클록 모니터 회로와 상호작용할 수 있다. 프로세서는, 클록 에러 조건이 검출된 특정한 클록 신호 및/또는 모니터링된 클록 신호(들)에 대해 검출된 클록 에러 조건의 타입에 적어도 부분적으로 기반하여, 클록 모니터 회로에 의해 검출된 클록 에러 조건들에 대한 응답으로 액션을 취할 수 있다.
클록 모니터 회로, 클록 모니터 회로의 동작, 및 클록 모니터 회로의 프로그래밍가능성의 추가적인 양상들이 도면들을 참조하여 본 명세서에서 더 상세히 설명된다. 예시의 간략화 및 명확화의 목적들을 위해, 도면들에 도시된 엘리먼트들은 반드시 실척대로 도시될 필요는 없다. 예컨대, 엘리먼트들 중 몇몇 엘리먼트들의 치수들은 명확화를 위해 다른 엘리먼트들에 비해 과장될 수 있다. 추가로, 적절한 것으로 고려될 경우, 참조 번호들은 대응하는, 유사한, 또는 동일한 특징들을 표시하기 위해 도면들 사이에서 반복된다.
도 1은 IC에 대한 예시적인 아키텍처(100)를 예시한다. 일 양상에서, 아키텍처(100)는 프로그래밍가능 IC 내에서 구현된다. 예컨대, 아키텍처(100)는 필드 프로그래밍가능 게이트 어레이(FPGA)를 구현하는 데 사용될 수 있다. 아키텍처(100)는 또한 IC의 SOC(system-on-chip) 타입을 표현한다. SOC는, 프로그램 코드를 실행하는 프로세서 및 하나 이상의 다른 회로들을 포함하는 IC이다. 다른 회로들은 하드와이어링된 회로, 프로그래밍가능 회로, 및/또는 이들의 조합으로서 구현될 수 있다. 회로들은 서로 그리고/또는 프로세서와 협력하여 동작할 수 있다. 다른 회로는 통상적으로 프로세서와 동일한 다이 상에 있다.
도시된 바와 같이, 아키텍처(100)는 수개의 상이한 타입들의 프로그래밍가능 회로, 예컨대, 로직, 블록들을 포함한다. 예컨대, 아키텍처(100)는, 멀티-기가비트 트랜시버(MGT)들(101), 구성가능한 로직 블록(CLB)들(102), 랜덤 액세스 메모리 블록(BRAM)들(103), 입력/출력 블록(IOB)들(104), 구성 및 클록킹 로직(CONFIG/CLOCKS)(105), 디지털 신호 프로세싱 블록(DSP)들(106), 특수화된 I/O 블록들(107)(예컨대, 구성 포트들 및 클록 포트들), 및 다른 프로그래밍가능 로직(108), 이를테면 디지털 클록 관리기들, 아날로그-디지털 변환기들, 시스템 모니터링 로직 등을 포함하는 많은 수의 상이한 프로그래밍가능 타일들을 포함할 수 있다.
몇몇 IC들에서, 각각의 프로그래밍가능 타일은, 각각의 인접한 타일 내의 대응하는 상호연결 엘리먼트(INT)(111)로의 그리고 대응하는 상호연결 엘리먼트(INT)(111)로부터의 표준화된 연결들을 갖는 프로그래밍가능 상호연결 엘리먼트(INT)(111)를 포함한다. 따라서, 함께 취해진 INT들(111)은 예시된 IC에 대한 프로그래밍가능 상호연결 구조를 구현한다. 각각의 INT(111)는 또한, 도 1의 최상부에 포함된 예들에 의해 도시된 바와 같이, 동일한 타일 내의 프로그래밍가능 로직 엘리먼트로의 그리고 프로그래밍가능 로직 엘리먼트로부터의 연결들을 포함한다.
예컨대, CLB(102)는, 사용자 로직 외에(plus) 단일 INT(111)를 구현하도록 프로그래밍될 수 있는 구성가능한 로직 엘리먼트(CLE)(112)를 포함할 수 있다. BRAM(103)은 하나 이상의 INT들(111)에 부가하여 BRAM 로직 엘리먼트(BRL)(113)를 포함할 수 있다. 통상적으로, 타일에 포함된 INT들(111)의 수는 타일의 높이에 의존한다. 도시된 바와 같이, BRAM 타일은 5개의 CLB들과 동일한 높이를 갖지만, 다른 수들(예컨대, 4)이 또한 사용될 수 있다. DSP 타일(106)은 적절한 수의 INT들(111)에 부가하여 DSP 로직 엘리먼트(DSPL)(114)를 포함할 수 있다. IOB(104)는, 예컨대, INT(111)의 하나의 인스턴스에 부가하여 I/O 로직 엘리먼트(IOL)(115)의 2개의 인스턴스들을 포함할 수 있다. 당업자들에게 자명할 바와 같이, 예컨대, IOL(115)에 연결된 실제 I/O 패드들은 통상적으로, IOL(115)의 영역으로 한정되지 않는다.
도 1에 도시된 예에서, 다이의 중심 근처의, 예컨대 구역들(105, 107, 및 108)로 형성된 열(columnar) 영역은 구성, 클록, 및 다른 제어 로직에 대해 사용될 수 있다. 이러한 열(column)로부터 연장되는 수평 영역들(109)은 프로그래밍가능 IC의 폭에 걸쳐 클록들 및 구성 신호들을 분배하는 데 사용된다.
도 1에 예시된 아키텍처를 이용하는 몇몇 IC들은 IC의 많은 부분을 구성하는 규칙적인 열 구조를 방해하는 부가적인 로직 블록들을 포함한다. 부가적인 로직 블록들은 프로그래밍가능 블록들 및/또는 전용 회로일 수 있다. 예컨대, PROC(110)로서 도시된 프로세서 블록은 CLB들 및 BRAM들의 수개의 열들에 걸쳐 있다.
일 양상에서, PROC(110)는 IC의 프로그래밍가능 회로를 구현하는 다이의 일부로서 제조되는 전용 회로, 예컨대 하드와이어링된 프로세서로서 구현된다. PROC(110)는 복잡도에서, 개별 프로세서, 예컨대 프로그램 코드를 실행할 수 있는 단일 코어로부터 하나 이상의 코어들, 모듈들, 코-프로세서들, 인터페이스들 등을 갖는 전체 프로세서 시스템에 이르기까지 다양한 상이한 시스템들 및/또는 프로세서 타입들 중 임의의 것을 표현할 수 있다.
다른 양상에서, PROC(110)는 아키텍처(100)로부터 생략되며, 다른 다양한 설명된 프로그래밍가능 블록들 중 하나 이상으로 대체된다. 추가로, 그러한 블록들은, 프로그래밍가능 회로의 다양한 블록들이 PROC(110)의 경우와 같이 프로그램 코드를 실행할 수 있는 프로세서를 형성하기 위해 사용될 수 있다는 점에서 "소프트 프로세서"를 형성하는 데 이용될 수 있다.
어구 "프로그래밍가능 회로"는 IC 내의 프로그래밍가능 회로 엘리먼트들, 예컨대, 본 명세서에 설명된 다양한 프로그래밍가능 또는 구성가능한 회로 블록들 또는 타일들 뿐만 아니라, IC에 로딩된 구성 데이터에 따라 다양한 회로 블록들, 타일들, 및/또는 엘리먼트들을 선택적으로 커플링시키는 상호연결 회로를 지칭한다. 예컨대, PROC(110) 외부에 있는 도 1에 도시된 회로 블록들, 이를테면 CLB들(102) 및 BRAM들(103)은 IC의 프로그래밍가능 회로로 고려된다.
일반적으로, 프로그래밍가능 회로의 기능은 구성 데이터가 IC에 로딩될 때까지 설정되지 않는다. 구성 비트들의 세트는 IC의 프로그래밍가능 회로, 이를테면 FPGA를 프로그래밍하기 위해 사용될 수 있다. 구성 비트(들)는 통상적으로 "구성 비트스트림"으로 지칭된다. 일반적으로, 프로그래밍가능 회로는, 먼저 구성 비트스트림을 IC에 로딩하지 않으면 동작 또는 기능하지 않는다. 구성 비트스트림은 프로그래밍가능 회로 내의 특정한 회로 설계를 효과적으로 구현한다. 회로 설계는, 예컨대 프로그래밍가능 회로 블록들의 기능 양상들, 및 다양한 프로그래밍가능 회로 블록들 사이의 물리적 연결을 특정한다.
하드와이어링된" 또는 "경화된", 즉 프로그래밍가능하지 않은 회로는 IC의 일부로서 제조된다. 프로그래밍가능 회로와는 달리, 하드와이어링된 회로 또는 회로 블록들은, 구성 비트스트림의 로딩을 통해 IC의 제조 이후 구현되지 않는다. 하드와이어링된 회로는 일반적으로, 예컨대 먼저 구성 비트스트림을 IC, 예컨대 PROC(110)에 로딩하지 않으면서 기능하는 전용 회로 블록들 및 상호연결부들을 갖는 것으로 고려된다.
몇몇 인스턴스들에서, 하드와이어링된 회로는, IC 내의 하나 이상의 메모리 엘리먼트들에 저장된 레지스터 세팅들 또는 값들에 따라 세팅 또는 선택될 수 있는 하나 이상의 동작 모드들을 가질 수 있다. 동작 모드들은, 예컨대 구성 비트스트림의 IC로의 로딩을 통해 셋팅될 수 있다. 이러한 능력에도 불구하고, IC의 일부로서 제조되는 경우, 하드와이어링된 회로가 동작가능하고 특정한 기능을 가지므로, 하드와이어링된 회로는 프로그래밍가능 회로로 고려되지 않는다.
SOC의 경우, 구성 비트스트림은, 프로그래밍가능 회로 내에서 구현될 회로 및 PROC(110) 또는 소프트 프로세서에 의해 실행될 프로그램 코드를 특정할 수 있다. 몇몇 경우들에서, 아키텍처(100)는, 구성 비트스트림을 적절한 구성 메모리 및/또는 프로세서 메모리에 로딩하는 전용 구성 프로세서를 포함한다. 전용 구성 프로세서는 사용자-특정된 프로그램 코드를 실행하지 않는다. 다른 경우들에서, 아키텍처(100)는, 구성 비트스트림을 수신하고, 구성 비트스트림을 적절한 구성 메모리에 로딩하며, 그리고/또는 실행을 위해 프로그램 코드를 추출하도록 PROC(110)를 이용할 수 있다.
도 1은 프로그래밍가능 회로, 예컨대 프로그래밍가능 패브릭(fabric)을 포함하는 IC를 구현하기 위해 사용될 수 있는 예시적인 아키텍처를 예시하도록 의도된다. 예컨대, 열 내의 로직 블록들의 수, 열들의 상대적인 폭, 열들의 수 및 순서, 열들에 포함된 로직 블록들의 타입들, 로직 블록들의 상대적인 사이즈들, 및 도 1의 최상부에 포함된 상호연결/로직 구현들은 순수하게 예시적이다. 실제 IC에서, 예컨대, CLB들의 하나 초과의 인접한 열은 통상적으로, 사용자 회로 설계의 효율적인 구현을 용이하게 하기 위해, CLB들이 나타나는 곳마다 포함된다. 그러나, 인접한 CLB 열들의 수는 IC의 전체 사이즈에 따라 변할 수 있다. 추가로, IC 내의 PROC(110)와 같은 블록들의 포지셔닝 및/또는 사이즈는 단지 예시의 목적들을 위한 것이며, 제한들로서 의도되지 않는다.
많은 프로그래밍가능 IC들에서, 클록 에러 조건들이 발생할 수 있는 다수의 클록들이 존재한다. 이것은 특히, SOC들의 경우 참(true)이다. SOC의 경우, 프로세서 및/또는 프로세서 시스템에 의한 사용에 전용되는 하나 이상의 클록들 및 SOC의 프로그래밍가능 회로 내에서 구현되는 회로들에 의한 사용에 전용되는 하나 이상의 다른 클록들이 존재할 수 있다. 여전히, 프로세서 시스템 및 프로그래밍가능 회로 둘 모두에 의해 이용되는 클록들이 존재할 수 있다.
하나 이상의 실시예들에서, 클록 모니터 회로들은, 아키텍처(100)의 프로그래밍가능 회로를 사용하여 구현되며, 클록 신호들이 프로세서 시스템 및/또는 프로그래밍가능 회로에 의해 사용되는지와 관계없이, 클록 신호들 중 하나 이상의 클록 신호들에 대해 클록 에러 조건들의 발생을 동시에 모니터링하는 데 사용될 수 있다. 추가로, 클록 모니터 회로(들)는 복수의 클록 신호들에 대해 상이한 타입들의 클록 에러 조건들을 동시에 모니터링할 수 있다.
도 2는 클록 모니터 회로를 포함하는 IC(200)의 일 예이다. 일 양상에서, IC(200)는 프로그래밍가능 회로를 포함하는 프로그래밍가능 IC이다. 예컨대, IC(200)는 FPGA 또는 다른 다양한 프로그래밍가능 IC로서 구현될 수 있다. 다른 예에서, IC(200)는 SOC로서 구현될 수 있다. IC(200)는 도 1에 예시된 것과 동일하거나 또는 유사한 아키텍처를 가질 수 있다. 도시된 바와 같이, IC(200)는 프로세서(205) 및 클록 모니터 회로(210)를 포함한다. IC(200)는 선택적인 인터럽트 제어기(215)를 포함할 수 있다.
프로세서(205)는 프로그램 코드, 예컨대 명령들을 실행할 수 있는 회로이다. 일 실시예에서, 프로세서(205)는 강화된 회로(hardened processor)이다. 다른 실시예에서, 프로세서(205)는, IC(200)의 구성 메모리 셀들에 구성 데이터를 로딩하는 것에 대한 응답으로 IC(200)의 프로그래밍가능 회로를 사용하여 구현된 소프트 프로세서이다. 프로세서(205)는 프로그램 코드를 실행할 수 있는 다양한 상이한 아키텍처들 중 임의의 아키텍처를 가질 수 있다. 프로세서(205)는 클록 모니터 회로(210)와 동일한 다이 상에 구현될 수 있다.
프로세서(205)는 프로그램 코드, 이를테면 운영 시스템, 사용자 애플리케이션 등을 실행할 수 있다. 프로세서(205)는, 프로세서(205)가 연결(220)을 통해 클록 모니터 회로(210)와 통신할 수 있게 하는 드라이버 프로그램 코드, 예컨대 드라이버를 추가로 실행할 수 있다. 연결(220)은 다양한 온-칩 상호연결들 중 임의의 상호연결을 구현하는 하나 이상의 배선들로서 구현될 수 있다.
일 실시예에서, 연결(220)은 버스로서 구현된다. 일 예에서, 버스는 AXI(AMBA eXtensible Interface) 버스일 수 있다. AXI 버스는, 회로 블록들 및/또는 시스템들 사이에 온-칩 연결들을 설정하는 데 사용하기 위한 임베디드(embedded) 마이크로제어기 버스 인터페이스이다. 본 명세서에서 제공된 예시적인 버스 타입들이 제한이 아니라 예시의 목적들을 위한 것임을 인식해야 한다. 본 발명의 어레인지먼트들은, 다른 버스들 및/또는 연결 타입들이 사용될 수 있으므로, 제공된 예들로 제한되지 않는다.
클록 모니터 회로(210)는 하나 이상의 상이한 클록 신호들을 모니터링하도록 구성된다. 예컨대, 설계자는, EDA 툴을 통해 작업하고 있는 동안, 회로 설계 내에 클록 모니터 코어를 포함할 수 있다. 설계자는, IC(200) 내에 구현될 회로 설계의 복수의 클록 신호들 중 어느 클록 신호가 클록 모니터 코어에 의해 모니터링될지를 표시할 수 있다. 설계자는 "N"개의 상이한 클록 신호들까지 하나 이상의 클록 신호들을 특정할 수 있으며, 여기서, N은 정수 값이다. 설명의 목적들 및 예시의 용이함을 위해, N의 최대 값은 4일 수 있다. 4의 예시적인 값이 제한으로 의도되지 않음을 인식해야 한다. N의 값은, 클록 모니터 회로의 특정한 구현에 의존하여 1, 2, 3, 또는 4 초과로 세팅될 수 있다.
도 1의 예에서, 클록 모니터 회로(210)는 "clk_in_1" 내지 "clk_in_N"로서 예시된 클록 신호들을 수신한다. FPGA 회로를 포함하는 SOC의 경우, 모니터링될 수 있는 클록 신호들은, 프로세서 시스템(예컨대, IC(200)의 프로그래밍가능 회로와 통신하는 프로세서, 인터페이스들, 및/또는 주변기기들을 구현하는 IC(200)의 하드와이어링된 부분)에서 생성된 클록 신호들, 또는 프로그래밍가능 회로 내의 임의의 임의적인 클록 신호를 포함한다. 클록 모니터 회로(210)는, 하나 이상(예컨대, 1-N개)의 상이한 클록 신호들에 대해 복수의 상이한 클록 에러 조건들 중 하나 이상 또는 그 각각을 동시에 모니터링하도록 구성가능하다. 클록 모니터 회로(210)가 검출할 수 있는 클록 에러 조건들의 예들은, 클록 신호들 1-N 각각에 대한, 범위 밖의 클록(예컨대, 오버런(overrun)된 클록 및/또는 언더런(underrun)된 클록), 클록 글리치, 및/또는 클록 신호의 손실을 포함한다(그러나 이에 제한되지 않음).
모니터링될 각각의 클록 신호에 대해, 클록 모니터 회로(210)는, 예컨대, "ref_clk_1" 내지 "ref_clk_N"로 표기된 기준 클록 신호를 수신하도록 커플링된다. 클록 모니터 회로(210)는, 하나 이상의 상이한 타입들의 클록 에러 조건들에 대해 클록 신호들 각각을 모니터링할 수 있다. 기준 클록 신호들 각각은 디바이스 핀으로부터 또는 다른 내부 클록으로부터 획득될 수 있다.
클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 모니터 회로(210)는 도시된 바와 같이 인터럽트 신호를 생성할 수 있다. 추가로, 클록 모니터 회로(210)는 검출된 클록 에러 조건의 타입을 표시하는 신호를 출력할 수 있다. 예컨대, 클록 모니터 회로(210)는, 클록 정지 에러 조건의 검출을 표시하는 clk_stop 신호에 대한 값들, 클록 글리치 에러 조건의 검출을 표시하는 clk_glitch 신호에 대한 값들, 및 클록 범위 밖 에러 조건의 검출을 표시하는 clk_oor 신호에 대한 값들을 생성할 수 있다. clk_stop, clk_glitch, clk_oor, 잠금(locked), 및 인터럽트 신호들은 신호들(230)로 총괄하여 지칭될 수 있다.
일 실시예에서, clk_stop, clk_glitch, 잠금, 및 clk_oor 신호들 각각은 멀티비트 신호일 수 있으므로, 클록 모니터 회로(210)는, 1-N개의 모니터링된 클록 신호들 중 어느 곳에서 에러 조건이 검출되었는지를 표시할 수 있다. "잠금" 신호는, 모니터링된 클록 신호(들)가 예상된 바와 같이 시작되었거나 또는 재시작되었는지 여부를 표시한다. 클록 모니터 회로(210)는 또한, 그러한 신호들을 IC(200) 내의 다른 회로들 및/또는 시스템들에 제공하기 위해, 모니터링된 클록 신호들 1-N 각각을 출력할 수 있다.
언급된 바와 같이, IC(200)는 선택적인 인터럽트 제어기(215)를 포함할 수 있다. 인터럽트 제어기(215)는, clk_stop, clk_glitch, clk_oor, 잠금, 및 인터럽트 신호들을 수신하고, 신호들을 디코딩하며, 그리고 인터럽트 신호(225)를 프로세서(205)에 제공할 수 있다. 인터럽트 제어기(215)는, 하나 이상의 상이한 회로들이 프로세서(205)에 대한 인터럽트들을 생성하도록 구성되는 경우들에서 사용될 수 있다. 예컨대, IC(200)는 하나 초과의 클록 모니터 회로(210), 하나 이상의 클록 모니터 회로들(210), 및 인터럽트들을 생성하도록 구성된 하나 이상의 다른 회로들 등을 포함할 수 있다. 인터럽트 제어기(215)는, 2개 이상의 인터럽트 소스들(예컨대, 회로들)로부터의 신호들을 수신, 우선순위화, 및 결합하여, 결과적인 값(들)을, 자신의 내부에 구현된 임의의 우선순위화 방식을 적용한 인터럽트 신호(225)를 통해 프로세서(205)에 제공할 수 있다. 인터럽트 신호(225)는 clk_stop, clk_glitch, clk_oor, 잠금, 및/또는 인터럽트 신호들에 의해 클록 모니터 회로(210)로부터 수신된 동일하거나 또는 유사한 데이터를 포함하거나 또는 전달할 수 있다. 예컨대, 신호(225)는 멀티비트 신호일 수 있다.
다른 실시예에서, 인터럽트 제어기(215)가 생략된다. 그 경우, 클록 모니터 회로(210)로부터 인터럽트 제어기(215)로 제공된 신호들(230)은 프로세서(205)에 직접 제공될 수 있다. 다른 실시예에서, 클록 모니터 회로(210)로부터의 인터럽트는 클록 모니터 회로(210)로부터 프로세서(205)로, 예컨대 인터럽트 입력 포트로 직접 제공되는 반면, clock_stop, clk_glitch, clk_oor, 및 잠금 신호들과 같은 다른 신호들은 연결(220)을 통해 프로세서(205)에 제공된다.
하나 이상의 실시예들에서, 프로세서(205)는 클록 모니터 회로(210)의 동작을 제어할 수 있다. 프로세서(205)는, 예컨대 클록 모니터 회로(210)에 대한 드라이버를 실행할 시에, 명령들을 클록 모니터 회로(210)에 전송할 수 있다. 명령들은 하나 이상의 동작 파라미터들을 포함할 수 있다. 명령들 및/또는 동작 파라미터들은, 클록 모니터 회로(210)가 클록 신호들 1-N에 대한 클록 에러 조건들을 어떻게 검출하는지의 다양한 양상들을 제어한다. 연결(220)을 사용하여, 프로세서(205)는 IC(200)의 동작 동안 동적으로, 예컨대 실시간으로 클록 모니터 회로(210)의 동작을 제어, 예컨대 수정할 수 있다.
도 3은 클록 모니터 회로(210)의 예시적인 구현이다. 클록 모니터 회로(210)는 인터페이스(305), 제어 회로(310), 및 클록 에러 검출 회로(320)를 포함한다. 도 3의 예에서, 제어 회로(310)는 동작 파라미터들 및/또는 클록 에러 검출 데이터를 저장하기 위한 제어 레지스터(315), 예컨대 메모리를 포함한다. 클록 에러 검출 회로(320)는 하나 이상(예컨대, 1-N개)의 에러 검출기들(325)을 포함한다. 예시의 목적들을 위해, N의 값은 4인 것으로 가정된다. 이로써, 클록 모니터 회로(210)는, 325-1, 325-2, 325-3, 및 325-4로서 도시된 4개의 에러 검출기들(325)을 포함한다(예컨대, 모니터링되는 각각의 클록 신호에 대해 하나의 에러 검출기).
인터페이스(305)는, IC(200)의 동작 동안 프로세서(205)로부터의 동작 파라미터들을 특정 또는 포함하는 명령들을 수신할 수 있다. 인터페이스(305)는 추가로, 데이터를 프로세서(205)에 전송할 수 있다. 일 실시예에서, 인터페이스(305)는 버스 인터페이스이다. 예컨대, 인터페이스(305)는 AXI 버스 인터페이스로서 구현될 수 있다. 도시된 바와 같이, 인터페이스(305)는 연결(220)을 통해 프로세서(205)에 커플링된다.
제어 회로(310)는 인터페이스(305)에 그리고 클록 에러 검출 회로(320)에 커플링된다. 일 실시예에서, 프로세서(205)로부터 수신된 명령들, 예컨대 동작 파라미터들은 제어 레지스터(315)에 저장된다. 제어 레지스터(315)는 에러 검출기들(325) 각각에 대한 하나 이상의 동작 파라미터들을 저장하기에 충분한 저장소를 포함할 수 있다. 다른 실시예에서, 제어 레지스터(315)는, 에러 검출기들(325)에 의해 생성된 클록 에러 검출 데이터를 저장하기에 충분한 저장소를 포함한다. 일 실시예에서, 프로세서(205)는 인터페이스(305) 및 연결(220)을 통해 제어 레지스터(315)로부터 클록 에러 검출 데이터를 판독할 수 있다. 다른 실시예에서, 프로세서(205)는, 에러 검출기들(325)에 의해 생성되고 제어 레지스터(315)에 저장된 출력 데이터를 신호들(230)을 통해 수신할 수 있다.
추가적인 실시예에서, 제어 회로(310)는 도 1에 도시된 인터럽트 신호를 생성할 수 있다. 예컨대, 제어 회로(310)는, 도 4를 참조하여 본 명세서에서 더 상세히 설명될 에러 검출기들(325) 각각으로부터의 개별 클록 에러 검출 신호들을 모니터링할 수 있다. 모니터링되는 클록 신호들 중 하나 이상에 대해 클록 에러 조건을 검출하는 것에 대한 응답으로, 제어 회로(310)는 인터럽트 신호에 대한 적절한 값(들)을 생성할 수 있으며, 예컨대, 클록 모니터 회로(210)의 특정한 구현에 의존하여 인터럽트 신호를 하이(high) 또는 로우(low)로 가져올 수 있다.
도 4는 에러 검출기(325)의 일 예이다. 일 실시예에서, 클록 모니터 회로(210)는 모니터링될 각각의 클록 신호에 대한 하나의 에러 검출기(325)를 포함한다. 에러 검출기(325)는 클록 분할기(405), 동기화기(410), 카운터들(415, 420, 및 425), 에지 검출기(435), 및 비교기들(435, 440, 및 445)을 포함한다.
논의된 바와 같이, 도 4에 예시된 다양한 회로 블록들에 대한 동작 파라미터들이 클록 모니터 코어에 대해 초기에 특정될 수 있다. 동작 파라미터들은, 일단 구현되면 클록 모니터 회로에 명령(들)을 전송하는 프로세서에 의해 동작 동안 업데이트될 수 있다. 일 실시예에서, 프로세서는 하나 이상의 동작 파라미터들을 획득하고, 동작 파라미터들을 클록 모니터 회로에 전송할 수 있다. 제어 회로(310)는, 프로세서로부터 수신된 동작 파라미터들로부터 하나 이상의 다른 동작 파라미터들을 계산하고, 이어서, 계산된 동작 파라미터들을 필요에 따라 다양한 회로 블록들에 제공할 수 있다.
다른 실시예에서, 프로세서는, 예컨대 드라이버 프로그램 코드를 실행할 시에, 하나 이상의 동작 파라미터들을 수신 또는 획득할 수 있다. 프로세서는, 수신된 또는 획득된 동작 파라미터들로부터 하나 이상의 다른 동작 파라미터들을 계산할 수 있다. 프로세서는 계산된 동작 파라미터들을 클록 모니터 회로에 전송할 수 있다. 그 경우, 제어 회로(310)는, 프로세서로부터 수신된 동작 파라미터들을 필요에 따라 에러 검출기(325)의 다양한 회로 블록들에 제공하며, 어떠한 계산들도 수행할 필요가 없을 수 있다.
도시된 바와 같이, 클록 분할기(405)는 모니터링될 클록 신호(452)(예컨대, clk_in_N)를 수신한다. 클록 분할기(405)는 클록 신호(452)를 유한 값(예컨대, 제수)으로 나눌 수 있다. 클록 분할기(405)는 추가적인 계산들을 용이하게 하기 위해 제수에 기반하여 클록 신호(452)의 주파수를 효과적으로 감소시킨다. 클록 분할기(405)는 추가로, 신호(456)로서 도시된 클록 신호(452)의 분할된 버전을 동기화기(410)에 전송할 수 있다.
일 예에서, 클록 신호(452)를 나누기 위해 사용된 제수는 32이다. 클록 신호(452)를 나누기 위해 사용된 제수의 특정한 값이 클록 모니터 코어에 대해 초기에 특정된 동작 파라미터들에 기반하여 세팅 또는 결정될 수 있음을 인식해야 한다. 추가로, 클록 신호(452)를 나누기 위해 사용된 제수의 특정한 값은 프로그래밍가능하며, 클록 모니터 회로의 동작 동안 변경될 수 있다.
도시된 바와 같이, 제어 회로(310)는 클록 모니터 회로의 동작 파라미터인 제수의 값을 신호(454)를 통해 클록 분할기(405)에 제공할 수 있다. 일 실시예에서, 제수는 기준 신호의 주파수 및 사용자 특정된 허용치와 같은 동작 파라미터들에 기반하여 계산될 수 있다. 일 실시예에서, 프로세서는, 기준 신호의 업데이트된 주파수 및/또는 업데이트된 허용치를 수신 또는 획득하고, 클록 분할기(405)에 대한 제수의 업데이트된 값을 계산할 수 있다. 프로세서는 제수의 업데이트된 값을 클록 모니터 회로에 제공할 수 있다. 제어 회로(310)는 신호(454)를 통해 제수의 업데이트된 값을 클록 분할기(405)에 제공할 수 있다.
대안적으로, 프로세서는, 기준 클록의 업데이트된 주파수 및/또는 업데이트된 허용치와 같은 하나 이상의 동작 파라미터들을 클록 모니터 회로에 제공한다. 그 경우, 제어 회로(310)는 클록 분할기(405)에 제공된 제수의 값을 계산할 수 있다. 제어 회로(310)는 제수의 값을 계산하고, 신호(454)를 통해 제수를 클록 분할기(405)에 제공한다.
또 다른 실시예에서, 프로세서는 입력 또는 메모리로부터 제수를 획득, 예컨대 판독할 수 있다. 프로세서는 제수를 제어 회로(310)에 제공할 수 있다. 제어 회로(310)는 신호(454)를 통해 제수를 클록 분할기(405)에 제공할 수 있다.
동기화기(410)는 주파수 분할된 신호(456) 및 기준 신호(458)(예컨대, ref_clk_N)를 수신한다. 동기화기(410)는 신호(456)를 신호(458)와 동기화시키며, 신호(458)의 동기화된 버전을 신호(460)로서 출력할 수 있다. 에러 검출기(325)의 나머지는 신호(460)를 사용하여 동작된다.
에지 검출기(430)는 신호(460)를 수신한다. 에지 검출기(430)는 신호(460)에 대해 상승 에지 또는 상승 에지들을 검출할 수 있다. 에지 검출기(430)는 검출된 에지들을 표시하는 출력 신호(462)를 생성하고, 신호(462)를 카운터(415)에 제공할 수 있다. 도 5는 에지 검출기(430)의 동작을 나타내는 신호들(452, 456, 및 462)에 대한 예시적인 파형들을 예시한다.
일 실시예에서, 카운터(415)는 업/다운 카운터로서 구현된다. 카운터(415)는 신호(460)에 대해 동작하는 프리 러닝 카운터(free running counter)로서 동작할 수 있다. 일 실시예에서, 카운터(415)는, 에지 검출된 신호인 신호(460)에 대해 하이를 검출하는 것에 대한 응답으로, 내부에 저장된 카운터 값을 제로로 리세팅할 수 있다. 이로써, 카운터(415)는 설정된 제한들 내에서 신호(460)에 대한 사이클릭 에지 검출을 이용한다. 카운터(415)에 의해 계산된 값은 신호(464)로서 비교기(435)에 출력된다.
일 실시예에서, 카운터(420)는 클록 하이 카운터로서 구현된다. 클록(420)은, 신호(456)의 하이 시간(예컨대, 클록 신호(452)의 분할된 버전)으로 맞춰진 (신호(460)의) 기준 클록 사이클들의 수를 카운팅할 수 있다. 카운터(420)에 의해 결정된 값은 신호(466)로서 비교기(440) 및 비교기(445)에 출력된다.
일 실시예에서, 카운터(425)는 클록 로우 카운터로서 구현된다. 카운터(425)는, 신호(456)의 로우 시간으로 맞춰진 (신호(460)의) 기준 클록 사이클들의 수를 카운팅할 수 있다. 카운터(425)에 의해 결정된 값은 신호(468)로서 비교기(446)에 출력된다.
논의된 바와 같이, 모니터링될 각각의 클록 신호에 대해, 설계자는, 클록 신호의 주파수(Fuser), 클록 신호를 모니터링하는 데 사용되는 기준 신호의 주파수(Freference), 및 허용치(Ftolerance)에 대한 값들을 특정할 수 있다. 추가로, 프로세서는, 클록 모니터 회로의 동작 동안 이들 값들에 기반하여 클록 모니터 회로의 동작 파라미터들을 실시간으로 업데이트할 수 있다. 논의된 바와 같이, 프로세서 및/또는 제어 회로(310)는 추가적인 동작 파라미터들을 계산하기 위해 이들 동작 파라미터들을 사용할 수 있다.
비교기(435)는 카운터(415)로부터의 신호(464)를 제어 회로(310)로부터의 신호(470)와 비교할 수 있다. 일 양상에서, 신호(470)는, 신호(464)가 비교되는 상한 및/또는 하한을 특정한다. 비교기(435)는, 클록 신호(452)가 일부 시간 부분에서 프리 러닝하고 있는지 또는 "0" 또는 "1"에 멈춰있는지를 결정하기 위해 비교를 수행할 수 있다. 신호(464) 상의 출력으로서 카운터(415)의 값이 상한을 초과하거나 또는 하한 미만이 되면, 비교기(435)는, 클록 신호(452)가 정지되었다는 것(예컨대, "1" 또는 "0"에 멈춰있다는 것)을 표시하는 적어도 최소량의 시간 동안 신호(462)(예컨대, 에지 검출된 신호)가 하이로 되지 않는다고 결정한다. 비교기(435)는 신호(472)(예컨대, clk_stop)를 생성하며, 클록 신호(452)에 대한 클록 정지 에러 조건의 검출을 표시하기 위해 클록 모니터 회로의 구현에 의존하여 신호를 하이 또는 로우로 이끈다.
신호(470)에 의해 특정된 값(들)은, 코어를 파라미터화하는 경우 사용자 특정되고 그리고/또는 동작 동안 실시간으로 동적으로 프로그래밍될 수 있는 클록 모니터 회로의 동작 파라미터들의 예들이다. 일 실시예에서, 상한 및 하한은 프로세서에 의해 획득되어, 제어 회로(310)에 제공될 수 있다. 다른 실시예에서, 프로세서는, 클록 주파수, 기준 주파수, 및/또는 허용치와 같은 다른 사용자 제공된 동작 파라미터들에 기반하여 상한 및/또는 하한을 계산할 수 있다. 또 다른 실시예에서, 프로세서는 클록 주파수, 기준 주파수, 및/또는 허용치를 제어 회로(310)에 제공할 수 있고, 제어 회로(310)는 상한 및/또는 하한을 계산할 수 있다. 임의의 경우에서, 상한 및/또는 하한은 신호(470)를 통해 비교기(435)에 제공될 수 있다.
비교기(440)는 카운터(420)로부터 신호(466)를 수신하고, 제어 회로(310)로부터 신호(474)를 수신한다. 논의된 바와 같이, 신호(466)는 신호(460)가 하이인 시간의 양을 표시한다. 신호(474)는 Count_2의 값을 특정한다. 비교기(440)는 신호(466)를 Count_2(신호(474))와 비교할 수 있다. 신호(466)의 값이 Count_2를 초과하면, 허용된 것보다 더 많은 기준 클록 사이클들이 클록 신호(452)의 사이클 내에 맞춰지며, 이는, 클록 신호(452)의 주파수가 허용된 것보다 낮다는 것을 표시한다(예컨대, 클록 언더런). 신호(466)의 값이 Count_2보다 작으면, 허용된 것보다 더 적은 기준 클록 사이클들이 클록 신호(452)의 사이클 내에 맞춰지며, 이는, 클록 신호(452)의 주파수가 허용된 것보다 높다는 것을 표시한다(예컨대, 클록 오버런). 어느 경우든, 비교기(440)는, 신호(452)의 주파수가 범위 밖이라는 것을 표시하는 신호(476)(예컨대, clk_oor)를 생성한다. 예컨대, 비교기(440)는 클록 신호(452)에 대한 범위 밖 클록 에러 조건을 표시하기 위해 클록 모니터 회로의 구현에 의존하여 신호(476)를 하이 또는 로우로 이끌 수 있다.
신호(474)에 의해 특정된 바와 같은 Count_2의 값은, 코어를 파라미터화하는 경우 사용자 특정되고 그리고/또는 동작 동안 실시간으로 동적으로 프로그래밍될 수 있는 클록 모니터 회로의 동작 파라미터의 다른 예이다. 일 실시예에서, Count_2는 프로세서에 의해 획득되어, 제어 회로(310)에 제공될 수 있다. 다른 실시예에서, 프로세서는, 클록 주파수, 기준 주파수, 및/또는 허용치와 같은 다른 사용자 제공된 동작 파라미터들에 기반하여 Count_2를 계산할 수 있다. 또 다른 실시예에서, 프로세서는 클록 주파수, 기준 주파수, 및/또는 허용치를 제어 회로(310)에 제공할 수 있고, 제어 회로(310)는 Count_2를 계산할 수 있다. 임의의 경우에서, Count_2는 신호(474)를 통해 비교기(440)에 제공될 수 있다.
비교기(445)는 카운터(425)로부터 신호(466) 및 신호(468)를 수신한다. 논의된 바와 같이, 신호(466)는 신호(460)가 하이인 시간의 양을 표시한다. 신호(468)는 신호(460)가 로우인 시간의 양을 표시한다. 비교기(445)는 신호(466)를 신호(468)와 비교할 수 있다. 비교기(445)는, 신호(466)의 값이 신호(468)의 값과 매칭하는지 여부를 결정할 수 있다. 신호들(466 및 468)의 값들이 매칭되지 않으면, 예컨대 미리 결정된 범위 또는 서로의 허용치 내에 있지 않으면, 비교기(445)는, 글리치 에러 조건이 클록 신호(452)에 대해 발생했다고 결정하고, 신호(478)(예컨대, clk_glitch)를 생성한다. 예컨대, 비교기(445)는 클록 신호(452)에 대한 글리치의 발생을 표시하기 위해 클록 모니터 회로의 구현에 의존하여 신호(478)를 하이 또는 로우로 이끌 수 있다.
하나의 예시적인 실시예에서, 신호들(472, 476, 및 478)이 하나 이상의 다른 회로들에 제공된다. 다른 예시적인 실시예에서, 신호들(472, 476, 및 478)이 제어 회로(310)에 제공된다. 예컨대, 제어 회로(310)는 (복수의 에러 검출기들(325) 중 임의의 에러 검출기로부터의) 임의의 모니터링된 클록 신호에 대한 에러 조건 또는 에러 조건들의 검출에 대한 응답으로 인터럽트 신호를 생성하는 회로를 포함할 수 있다. 예컨대, 클록 모니터 회로가 N개의 상이한 에러 검출기들(325)을 포함하는 경우, 제어 회로(310)는, 에러 검출기(325) 각각으로부터 신호들(472, 476, 및 478)의 등가물들을 수신하고, 모니터링된 클록 신호들 중 임의의 클록 신호에 대한 클록 에러 조건의 검출에 대한 응답으로 인터럽트 제어기 및/또는 프로세서에 제공될 인터럽트 신호를 생성할 수 있다. 에러 검출기들(325) 각각으로부터의 신호들(472, 476, 및 478)이 하나 이상의 다른 회로들 및 또한 제어 회로(310)에 제공될 수 있음을 인식해야 한다.
제한이 아니라 예시의 목적들을 위해, 위에서 설명된 동작 파라미터들 중 하나 이상을 계산하는 추가적인 예들이 아래에서 나타낸다. 동작 파라미터들은 나타낸 특정 표현들을 사용하여 프로세서 또는 제어 회로(310)에 의해 계산될 수 있다. 값들 각각은 클록 모니터 회로의 동작을 수정하기 위해 클록 모니터 회로의 동작 동안 동적으로 업데이트될 수 있다. 일 실시예에서, Count_stop 파라미터가 신호(470)에 의해 특정된 상한으로서 사용될 수 있다.
Figure pct00001
Figure pct00002
도 6은 회로 설계 내에서 클록 모니터 회로를 구현하는 예시적인 방법(600)이다. 방법(600)은 EDA 툴(이하, "시스템")에 의해 수행될 수 있다. EDA 툴의 일 예는 운영 시스템 및 EDA 애플리케이션과 같은 적합한 운영 소프트웨어를 실행하는 데이터 프로세싱 시스템, 예컨대, 컴퓨터이다. 방법(600)은, 설계자가 시스템을 사용하고 있고 회로 설계를 생성하거나 또는 그 내에 로딩하는 상태에서 시작할 수 있다.
블록(605)에서, 시스템은 회로 설계 내에 클록 모니터 회로를 포함시키기 위한 요청 또는 명령을 수신한다. 블록(610)에서, 시스템은 클록 모니터 회로에 대한 하나 이상의 동작 파라미터들을 수신한다. 예컨대, 회로 설계 내에 클록 모니터 회로를 포함시키기 위한 요청에 대한 응답으로, 시스템은 사용자 인터페이스를 제시할 수 있으며, 사용자 인터페이스를 통해, 설계자는 클록 모니터 회로에 대한 초기 동작 파라미터들로서 값들을 제공할 수 있다. 이들 동작 파라미터들은 모니터링될 클록 신호들의 수, 모니터링될 특정한 클록 신호들 등과 같은 정보를 특정할 수 있다. 시스템에 의해 수신 및 저장될 수 있는 추가적인 동작 파라미터들은, 모니터링된 클록 신호마다, 모니터링된 클록 신호의 주파수, 사용될 기준 클록, 기준 클록의 주파수, 및 허용치를 포함한다(그러나 이에 제한되지 않음).
일 양상에서, 블록(610)에서 설명된 동작 파라미터들은, 시스템이 값들을 지속시키고, 설계 흐름을 통해, 클록 모니터 코어를 포함하여 회로 설계를 프로세싱하려는 목적들을 위해 값들을 사용하므로 초기 동작 파라미터들로 지칭될 수 있다. 모니터링될 클록 신호들의 수에 의존하여 하나 초과의 클록 모니터 회로가 회로 설계에 포함될 수 있음을 인식해야 한다. 예컨대, 모니터링될 회로 설계의 클록 신호들의 수가 N개의 클록 신호들을 초과하면, 단일 클록 모니터 코어가 모니터링할 수 있는 클록 신호들의 최대 수를 참조하여, 부가적인 클록 모니터 회로들이 포함될 수 있다.
블록(615)에서, 시스템은 회로 설계에 대한 설계 흐름을 수행한다. 설계 흐름의 일부로서, 시스템은 합성, 배치, 라우팅, 및 비트스트림 생성을 수행할 수 있다. 블록(620)에서, 시스템은 타겟 IC 내에서 클록 모니터 회로(들)에 관한 결과적인 회로 설계를 구현한다. 회로 설계가 시스템에 의해 타겟 IC로 로딩되거나 또는 다른 시스템(예컨대, 회로 설계를 일정 볼륨으로 타겟 IC로 로딩할 수 있는 시스템)에 의해 복수의 IC들로 로딩될 수 있음을 인식해야 한다.
도 7은 IC 내의 클록 모니터 회로에 대한 예시적인 동작 방법(700)이다. 방법(700)은, 클록 모니터 회로를 포함하는 회로 설계가 타겟 IC 내에서 구현되는 상태에서 시작할 수 있다. 설명의 용이함 및 예시의 목적들을 위해, 하나의 클록 모니터 회로가 가정되지만, 하나 초과의 클록 모니터 회로가 타겟 IC에 포함될 수 있다.
블록(705)에서, 클록 모니터 회로는, 회로 설계의 모니터링된 클록 신호들 각각에 대한 클록 에러 조건의 발생을 모니터링하는 것을 시작한다. 블록(710)에서, 클록 모니터 회로는, 클록 에러 조건이 모니터링된 클록 신호들 중 하나 이상에 대해 검출되는지 여부를 결정한다. 검출된다면, 방법(700)은 블록(715)으로 계속된다. 검줄되지 않는다면, 방법(700)은 블록(705)으로 루프 백(loop back)된다.
블록(715)에서, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 모니터 회로는 프로세서에 대한 인터럽트를 생성한다. 인터럽트는 프로세서에 직접 제공될 수 있거나 또는 프로세서에 커플링된 인터럽트 제어기에 제공될 수 있다.
블록(720)에서, 클록 모니터 회로는 클록 에러 조건 데이터를 프로세서에 제공하거나, 또는 그렇지 않으면, 그러한 데이터를 프로세서에 이용가능하게 만든다. 예컨대, 클록 에러 조건(들)을 검출한 클록 모니터 회로는, 클록 에러 조건(들)이 검출된 특정한 클록 신호(들) 및 검출된 클록 에러 조건들의 타입을 인식한다. 일 실시예에서, 클록 모니터 회로는 프로세서에 커플링된 하나 이상의 신호들을 통해 데이터를 프로세서에 제공한다. 다른 실시예에서, 인터럽트를 수신하는 것에 대한 응답으로, 프로세서는 클록 모니터 회로로부터 데이터를 판독할 수 있다.
클록 에러 조건 데이터를 획득한 프로세서가 복수의 상이한 인터럽트 핸들링 루틴들 중 하나 이상을 구현할 수 있음을 인식해야 한다. 예컨대, 프로세서는 복수의 상이한 인터럽트 핸들링 루틴들에 대한 액세스를 가지며, 클록 에러 조건이 검출된 클록 신호(들) 및/또는 검출된 에러 클록 조건의 타입(들)에 기반하여 실행을 위해 특정한 인터럽트 핸들링 루틴을 선택할 수 있다. 예컨대, 프로세서는 클록 신호를 리세팅하거나, 타겟 IC 모두 또는 일부를 셧 다운(shut down)시키거나, 또는 다른 액션을 수행할 수 있다. 하나 이상의 상이한 클록들에 대한 상이한 클록 에러 조건들을 검출하기 위한 능력은 프로세서가, 모든 클록 신호들 및/또는 클록 에러 조건들에 일반적인 하나의 예외 핸들링 접근법을 사용하기보다는, 맞춤형 또는 맞춤화된 응답으로 각각의 클록 에러 조건 또는 클록 에러 조건들의 조합에 응답하게 허용한다.
블록(725)에서, 클록 모니터 회로는, 프로세서가 새로운 및/또는 업데이트된 동작 파라미터들을 제공했는지 여부를 결정한다. 논의된 바와 같이, 프로세서는, 프로세서가 새로운 및/또는 업데이트된 동작 파라미터들을 클록 모니터 회로에 전송하게 허용하는 드라이버를 실행할 수 있다. 클록 모니터 회로가 프로세서로부터 동작 파라미터들을 수신하면, 방법(700)은 블록(730)으로 계속된다. 수신하지 않는다면, 클록 모니터 회로는, 모니터링된 클록 신호들에 대한 추가적인 클록 에러 조건들을 계속 모니터링하기 위해 블록(705)으로 루프 백된다.
블록(730)에서, 클록 모니터 회로는, 블록(725)에서 프로세서로부터 수신된 동작 파라미터들을 이용하여, 내부에 저장된 동작 파라미터들을 업데이트한다. 일 실시예에서, 프로세서는 드라이버 프로그램 코드를 실행할 시에, 업데이트된 값들, 예컨대 Counter1_width, Counter1_value, User_clock_counts, Count_stop, 및 Count_2를 포함하는(그러나 이에 제한되지 않음) 동작 파라미터들을 본 명세서에 설명된 바와 같이 계산할 수 있다. 예컨대, 프로세서는, 하나 이상의 클록 신호들에 대한 동작 동안, 모니터링된 클록 신호의 업데이트된 주파수, 기준 클록의 업데이트된 주파수, 및/또는 업데이트된 허용치와 같은 입력들을 수신할 수 있다. 프로세서는 새로운 및/또는 업데이트된 입력들을 수신하는 것에 대한 응답으로, 관련 클록 신호(들)에 대해 Counter1_width, Counter1_value, User_clock_counts, Count_stop, 및 Count_2에 대한 업데이트된 값들을 계산할 수 있다. 프로세서는 추가로, 계산된 동작 파라미터들을 클록 모니터 회로에 전송할 수 있다. 본 명세서에서 이전에 설명된 바와 같이, 값들은 제어 레지스터에 저장되고, 클록 모니터 회로의 관련 회로 블록들에 제공될 수 있다.
다른 실시예에서, 프로세서는, 하나 이상의 클록 신호들에 대한 동작 동안, 모니터링된 클록 신호의 업데이트된 주파수, 기준 클록 신호의 업데이트된 주파수, 및/또는 업데이트된 허용치와 같은 입력들을 수신할 수 있다. 프로세서는, 새로운 및/또는 업데이트된 입력들을 수신하는 것에 대한 응답으로, 업데이트된 값들을 클록 모니터 회로에 제공할 수 있다. 그 경우, 제어기 회로는 값들을 수신할 수 있다. 제어기 회로는, 수신된 값들로부터 관련 클록 신호들에 대해 Counter1_width, Counter1_value, User_clock_counts, Count_stop, 및 Count_2에 대한 값들을 포함하는(그러나 이에 제한되지 않음) 예시적인 동작 파라미터들을 본 명세서에 설명된 바와 같이 계산할 수 있다. 이전에 설명된 바와 같이, 업데이트된 값들은 제어 레지스터에 저장되고, 클록 모니터 회로의 관련 회로 블록들에 제공될 수 있다.
또 다른 실시예에서, 프로세서는, 프로세서 또는 제어기 회로 중 어느 것도 업데이트된 값들을 계산할 필요가 없도록 클록 모니터 회로 내에서 업데이트될 동작 파라미터들을 획득 또는 판독할 수 있다. 예시로, 프로세서는 값들, 예컨대 Counter1_width, Counter1_value, User_clock_counts, Count_stop, 및 Count_2를 포함하는(그러나 이에 제한되지 않음) 동작 파라미터들을 본 명세서에 설명된 바와 같이 획득 또는 판독할 수 있다. 프로세서는 추가로, 동작 파라미터들을 클록 모니터 회로에 전송할 수 있다. 본 명세서에서 이전에 설명된 바와 같이, 값들은 제어 레지스터에 저장되고, 클록 모니터 회로의 관련 회로 블록들에 제공될 수 있다. 블록(730) 이후, 방법(700)은 계속 동작하기 위해 블록(705)으로 루프 백될 수 있다.
설명의 목적들을 위해, 특정한 명칭이 본 명세서에서 개시된 다양한 본 발명의 개념들의 완전한 이해를 제공하도록 기재된다. 그러나, 본 명세서에서 사용된 용어는 단지 본 발명의 어레인지먼트들의 특정한 양상들을 설명하려는 목적을 위한 것일 뿐이며, 제한하는 것으로 의도되지 않는다.
본 명세서에서 정의된 바와 같이, 단수형들은, 문맥상 명확하게 달리 표시되지 않으면, 복수형들을 또한 포함하도록 의도된다. 본 명세서에서 정의된 바와 같이, 용어 "다른"은 적어도 제2 또는 그 이상을 의미한다. 본 명세서에서 정의된 바와 같이, 용어들 "적어도 하나", "하나 이상", 및 "및/또는"은 달리 명확하게 나타내지 않으면, 동작에서 연결형 및 분리형 둘 모두인 개방형(open-ended) 표현들이다. 예컨대, 표현들 "A, B 및 C 중 적어도 하나", "A, B, 또는 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", "A, B, 또는 C 중 하나 이상", 및 A, B, 및/또는 C" 각각은, A 단독, B 단독, C 단독, A와 B가 함께, A와 C가 함께, B와 C가 함께, 또는 A, B 및 C가 함께를 의미한다. 본 명세서에서 정의된 바와 같이, 용어 "자동으로"는 사용자 개입이 없는 것을 의미한다.
본 명세서에서 정의된 바와 같이, 용어 "컴퓨터 판독가능 저장 매체"는, 명령 실행 시스템, 장치, 또는 디바이스에 의한 또는 그들과 관련하여 사용을 위한 프로그램 코드를 포함 또는 저장하는 저장 매체를 의미한다. 본 명세서에서 정의된 바와 같이, "컴퓨터 판독가능 저장 매체"는 일시적인 전파 신호 그 자체는 아니다. 컴퓨터 판독가능 저장 매체는 전자 저장 디바이스, 자기 저장 디바이스, 광학 저장 디바이스, 전자기 저장 디바이스, 반도체 저장 디바이스, 또는 전술한 것들의 임의의 적합한 조합일 수 있다(그러나 이에 제한되지 않음). 본 명세서에 설명된 바와 같이, 메모리 엘리먼트들은 컴퓨터 판독가능 저장 매체의 예들이다. 컴퓨터 판독가능 저장 매체의 더 특정한 예들의 비-포괄적인 리스트는, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거가능한 프로그래밍가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다목적 디스크(DVD), 메모리 스틱, 플로피 디스크, 기계적으로 인코딩된 디바이스, 이를 테면 명령들이 레코딩된 펀치-카드들 또는 홈의 상승 구조들, 및 전술한 것들의 임의의 적합한 조합을 포함할 수 있다.
본 명세서에서 정의된 바와 같이, 용어 "커플링된"은 달리 나타내지 않으면, 임의의 개재 엘리먼트들 없이 직접적으로든지 또는 하나 이상의 개재 엘리먼트들을 이용하여 간접적으로든지 연결되는 것을 의미한다. 2개의 엘리먼트들은 기계적으로, 전기적으로 커플링되거나, 또는 통신 채널, 경로, 네트워크, 또는 시스템을 통해 통신가능하게 링크될 수 있다. 본 명세서에서 정의된 바와 같이, 용어들 "포함하는", "포함", "구비" 및/또는 "구비하는"은 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 그들의 그룹들의 존재 또는 부가를 배제하지는 않는다. 본 명세서에서 정의된 바와 같이, 용어 "출력"은 물리적 메모리 엘리먼트들, 예컨대 디바이스들에 저장하는 것, 디스플레이 또는 다른 주변 출력 디바이스에 기입하는 것, 다른 시스템에 전송 또는 송신하는 것, 내보내는 것 등을 의미한다. 본 명세서에서 정의된 바와 같이, 용어 "복수의"는 2개 또는 2개 초과를 의미한다.
본 명세서에서 정의된 바와 같이, 용어 "~라면"은 맥락에 의존하여, "때" 또는 "~시에" 또는 "~에 대한 응답으로" 또는 "~에 응답하여"를 의미한다. 따라서, 어구 "결정되면" 또는 "[언급된 조건 또는 이벤트]가 검출되면"은 문맥에 의존하여, "결정할 시에" 또는 "결정하는 것에 대한 응답으로" 또는 "[언급된 조건 또는 이벤트]를 검출할 시에" 또는 "[언급된 조건 또는 이벤트]를 검출하는 것에 대한 응답으로" 또는 "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여"를 의미하도록 해석될 수 있다. 본 명세서에서 정의된 바와 같이, 용어 "에 응답하여"는 액션 또는 이벤트에 응답하는 것 또는 그에 용이하게 반응하는 것을 의미한다. 따라서, 제2 액션이 제1 액션"에 응답하여" 수행되면, 제1 액션의 발생과 제2 액션의 발생 사이에 인과 관계가 존재한다. 용어 "에 응답하여"는 인과 관계를 표시한다.
본 명세서에서 정의된 바와 같이, 용어들 "일 실시예", "실시예" 또는 유사한 언어는, 실시예와 관련하여 설명된 특정한 특징, 구조, 또는 특성이 본 개시내용 내에서 설명된 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 개시내용 전반에 걸친 어구들 "일 실시예에서", "실시예에서" 및 유사 언어의 출현들은 모두 동일한 실시예를 지칭할 수 있지만, 반드시 그러할 필요는 없다.
본 명세서에서 정의된 바와 같이, 용어 "프로세서"는, 프로그램 코드로 포함된 명령들을 실행하도록 구성된 적어도 하나의 하드웨어 회로를 의미한다. 하드웨어 회로는 집적 회로일 수 있다. 프로세서의 예들은, 중앙 프로세싱 유닛(CPU), 어레이 프로세서, 벡터 프로세서, 디지털 신호 프로세서(DSP), 필드-프로그래밍가능 게이트 어레이(FPGA), 프로그래밍가능 로직 어레이(PLA), 주문형 집적 회로(ASIC), 프로그래밍가능 로직 회로, 그래픽 프로세싱 유닛(GPU), 제어기 등을 포함한다(그러나 이에 제한되지 않음).
본 명세서에서 정의된 바와 같이, 용어 "실시간"은, 사용자 또는 시스템이 특정한 프로세스 또는 결정이 이루어지기에 충분히 즉각적으로 감지하거나, 또는 프로세서가 몇몇 외부 프로세스를 유지할 수 있게 하는 일정 레벨의 프로세싱 응답성을 의미한다. 본 명세서에서 정의된 바와 같이, 용어 "사용자"는 사람을 의미한다. 용어들 제1, 제2 등은 다양한 엘리먼트들을 설명하기 위해 본 명세서에서 사용될 수 있다. 달리 언급되지 않거나 또는 문맥상 명확하게 달리 표시되지 않으면, 이들 용어들이 하나의 엘리먼트를 다른 엘리먼트와 구별하기 위해서만 사용되므로, 이들 엘리먼트들은 이들 용어들에 의해 제한되지 않아야 한다.
몇몇 예시들에서, 용어 "신호"는 물리적 구조들, 이를테면 단자들, 핀들, 신호 라인들, 와이어들을 설명하기 위해 본 개시내용 내에서 사용될 수 있다. 다른 예시들에서, 용어 "신호"는 와이어에 의해 특정된 특정한 값들을 지칭하기 위해 사용될 수 있다. 용어 "신호"는 단일 비트, 예컨대 단일 와이어의 전달, 또는 다수의 병렬 와이어들을 통한 다수의 병렬 비트들의 전달을 지칭할 수 있다. 추가로, 각각의 신호는 신호에 의해 연결된 2개 이상의 컴포넌트들 사이의 양방향 통신을 표현할 수 있다.
컴퓨터 프로그램 제품은, 프로세서로 하여금, 본 명세서에 설명된 본 발명의 어레인지먼트들의 양상들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령들을 갖고 있는 컴퓨터 판독가능 저장 매체(또는 매체들)을 포함할 수 있다. 본 개시내용 내에서, 용어 "프로그램 코드"는 용어 "컴퓨터 판독가능 프로그램 명령들"과 상호교환가능하게 사용된다. 본 명세서에 설명된 컴퓨터 판독가능 프로그램 명령들은 컴퓨터 판독가능 저장 매체로부터 개개의 컴퓨팅/프로세싱 디바이스들로 다운로딩되거나, 또는 네트워크, 예컨대 인터넷, LAN, WAN 및/또는 무선 네트워크를 통해 외부 컴퓨터 또는 외부 저장 디바이스로 다운로딩될 수 있다. 네트워크는 구리 송신 케이블들, 송신 광섬유들, 무선 송신, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 에지 서버들을 포함하는 에지 디바이스들을 포함할 수 있다. 각각의 컴퓨팅/프로세싱 디바이스 내의 네트워크 어댑터 카드 또는 네트워크 인터페이스는, 네트워크로부터 컴퓨터 판독가능 프로그램 명령들을 수신하고, 개개의 컴퓨팅/프로세싱 디바이스 내의 컴퓨터 판독가능 저장 매체로의 저장을 위해 컴퓨터 판독가능 프로그램 명령들을 포워딩한다.
본 명세서에 설명된 본 발명의 어레인지먼트들에 대한 동작들을 수행하기 위한 컴퓨터 판독가능 프로그램 명령들은, 어셈블러 명령들, ISA(instruction-set-architecture) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 또는 오브젝트 지향 프로그래밍 언어 및/또는 절차적 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어들의 임의의 조합으로 기입된 소스 코드 또는 오브젝트 코드 중 어느 하나의 코드일 수 있다. 컴퓨터 판독가능 프로그램 명령들은 상태-세팅 데이터를 포함할 수 있다. 컴퓨터 판독가능 프로그램 명령들은, 사용자의 컴퓨터 상에서 전체적으로, 사용자의 컴퓨터 상에서 부분적으로, 독립형 소프트웨어 패키지로서, 사용자의 컴퓨터 상에서 부분적으로 그리고 원격 컴퓨터 상에서 부분적으로 또는 원격 컴퓨터 또는 서버 상에서 전체적으로 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는, LAN 또는 WAN을 포함하는 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 연결될 수 있거나, 또는 연결은 (예컨대, 인터넷 서비스 제공자를 사용하여 인터넷을 통해) 외부 컴퓨터에 대해 이루어질 수 있다. 몇몇 경우들에서, 예컨대 프로그래밍가능 로직 회로, FPGA, 또는 PLA를 포함하는 전자 회로는, 본 명세서에 설명된 본 발명의 어레인지먼트들의 양상들을 수행하기 위해 전자 회로를 개인화(personalize)하도록 컴퓨터 판독가능 프로그램 명령들의 상태 정보를 이용함으로써 컴퓨터 판독가능 프로그램 명령들을 실행할 수 있다.
본 발명의 어레인지먼트들의 특정한 양상들은, 방법들, 장치(시스템들), 및 컴퓨터 프로그램 제품들의 흐름도들 및/또는 블록 다이어그램들을 참조하여 본 명세서에서 설명된다. 흐름도들 중 적어도 일부에 대해, 흐름도들 및/또는 블록 다이어그램들 중 하나 이상 또는 그들의 각각의 블록, 및 흐름도들 및/또는 블록 다이어그램들 내의 블록들의 조합들이 컴퓨터 판독가능 프로그램 명령들, 예컨대 프로그램 코드에 의해 구현될 수 있음을 이해할 것이다.
이들 컴퓨터 판독가능 프로그램 명령들은 머신을 생성하기 위해 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서에 제공될 수 있어서, 컴퓨터 또는 다른 프로그래밍가능 데이터 프로세싱 장치의 프로세서를 통해 실행되는 명령들은 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에서 특정된 기능들/동작들을 구현하기 위한 수단을 생성한다. 특정한 방식으로 기능하도록 컴퓨터, 프로그래밍가능 데이터 프로세싱 장치, 및/또는 다른 디바이스들에게 지시할 수 있는 이들 컴퓨터 판독가능 프로그램 명령들은 또한 컴퓨터 판독가능 저장 매체에 저장될 수 있어서, 명령들이 저장된 컴퓨터 판독가능 저장 매체는 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에서 특정된 동작들의 양상들을 구현하는 명령들을 포함한 제조 물품을 포함한다.
컴퓨터 판독가능 프로그램 명령들은 또한, 컴퓨터로 구현되는 프로세스를 생성하도록 일련의 동작들로 하여금 컴퓨터, 다른 프로그래밍가능 장치 또는 다른 디바이스 상에서 수행되게 하기 위해 컴퓨터, 다른 프로그래밍가능 데이터 프로세싱 장치, 또는 다른 디바이스 상에 로딩될 수 있어서, 컴퓨터, 다른 프로그래밍가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들은 흐름도 및/또는 블록 다이어그램 블록 또는 블록들에서 특정된 기능들/동작들을 구현한다.
도면들 내의 흐름도 및 블록 다이어그램들은 본 발명의 어레인지먼트들의 다양한 양상들에 따른, 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능, 및 동작을 예시한다. 이와 관련하여, 흐름도들 중 적어도 일부에 대해, 흐름도 또는 블록 다이어그램들 내의 하나 이상 또는 각각의 블록은, 특정된 동작들을 구현하기 위한 하나 이상의 실행가능한 명령들을 포함하는 모듈, 세그먼트, 또는 명령들의 일부를 표현할 수 있다.
몇몇 대안적인 구현들에서, 블록들에서 언급된 동작들은 도면들에서 언급된 순서를 벗어나 발생될 수 있다. 예컨대, 수반된 기능에 의존하여, 연속적으로 도시된 2개의 블록들은 실질적으로 동시에 실행될 수 있거나 또는 블록들은 종종 역순으로 실행될 수 있다. 다른 예들에서, 블록들은 일반적으로 증가하는 숫자 순서로 수행될 수 있는 반면, 또 다른 예들에서, 하나 이상의 블록들은 다양한 순서로 수행될 수 있으며, 결과들은 바로 후속하지 않는 후속 또는 다른 블록들에 저장되고 이용된다. 블록 다이어그램들 및/또는 흐름도의 각각의 블록 및 블록 다이어그램들 및/또는 흐름도의 블록들의 조합들이 특정된 기능들 또는 동작들을 수행하거나 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 조합들을 수행하는 특수 목적 하드웨어-기반 시스템들에 의해 구현될 수 있음을 또한 유의할 것이다.
아래의 청구항들에서 발견될 수 있는 모든 수단 또는 단계 더하기 기능 엘리먼트들의 대응하는 구조들, 재료들, 동작들, 및 등가물들은, 구체적으로 청구된 바와 같이 다른 청구된 엘리먼트들과 조합하여 기능을 수행하기 위한 임의의 구조, 재료, 또는 동작을 포함하도록 의도된다.
클록 신호들을 모니터링하기 위한 장치는, 동작 파라미터를 수신하도록 구성된 인터페이스 회로, 인터페이스 회로에 커플링되며, 동작 파라미터를 저장하도록 구성된 제어 회로, 및 제어 회로에 커플링된 클록 에러 검출 회로를 포함할 수 있다. 클록 에러 검출 회로는, 동작 파라미터에 기반하여 클록 신호에 대한 클록 에러 조건을 검출하고, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 에러 조건의 발생을 표시하는 신호를 생성하도록 구성된다.
일 양상에서, 클록 에러 검출 회로는, 클록 신호에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 검출하고 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 검출되었는지를 표시하도록 구성된다.
다른 양상에서, 클록 에러 검출 회로는, 복수의 상이한 클록 신호들 각각에 대해 클록 에러 조건을 동시에 검출하고 복수의 클록 신호들 중 에러 조건을 갖는 클록 신호를 표시하도록 구성된다. 예컨대, 클록 에러 검출 회로는, 복수의 상이한 클록 신호들 각각에 대해 복수의 상이한 타입들의 클록 에러 조건들을 검출하고 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 복수의 클록 신호들의 각각의 개개의 클록 신호에 대해 검출되었는지를 표시하도록 구성된다.
신호는 프로세서에 제공될 수 있으며, 인터럽트를 포함할 수 있다.
인터페이스는, 동작 파라미터를 전송하도록 구성된 프로세서에 커플링될 수 있다.
동작 파라미터는, 클록 정지 에러 조건을 검출하고, 클록 글리치 에러 조건을 검출하며, 그리고/또는 클록 범위 밖 에러 조건을 검출하기 위해 사용될 수 있다.
추가적인 양상에서, 인터페이스 회로, 제어 회로, 및 클록 에러 검출 회로는 집적 회로의 프로그래밍가능 회로에서 구현된다.
클록 신호들을 모니터링하는 방법은, 클록 모니터 회로에서, 프로세서로부터 동작 파라미터를 수신하는 단계, 동작 파라미터에 기반하여 클록 모니터의 클록 에러 검출 회로를 업데이트하는 단계, 및 동작 파라미터에 기반하여 클록 에러 검출 회로를 사용하여 클록 신호에 대한 클록 에러 조건을 검출하는 단계를 포함할 수 있다. 방법은 또한, 클록 에러 조건을 검출하는 것에 대한 응답으로, 클록 에러 조건의 발생을 표시하는 신호를 생성하는 단계를 포함할 수 있다.
일 양상에서, 클록 에러 조건을 검출하는 단계는, 클록 신호에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 모니터링하는 단계, 및 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 검출되었는지를 표시하는 단계를 포함한다.
다른 양상에서, 클록 에러 조건을 검출하는 단계는, 복수의 상이한 클록 신호들 각각에 대해 클록 에러 조건을 동시에 모니터링하는 단계, 및 복수의 클록 신호들 중 에러 조건을 갖는 클록 신호를 표시하는 단계를 포함한다.
다른 양상에서, 클록 에러 조건을 검출하는 단계는, 복수의 상이한 클록 신호들 각각에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 모니터링하는 단계, 및 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 복수의 클록 신호들의 각각의 개개의 클록 신호에 대해 검출되었는지를 표시하는 단계를 포함한다.
신호는 프로세서에 제공될 수 있으며, 인터럽트를 포함할 수 있다.
동작 파라미터는 프로세서로부터 수신될 수 있다.
동작 파라미터는, 클록 정지 에러 조건을 검출하고, 클록 글리치 에러 조건을 검출하며, 그리고/또는 클록 범위 밖 에러 조건을 검출하기 위해 사용될 수 있다.
추가적인 양상에서, 방법은, 집적 회로의 프로그래밍가능 회로에서 클록 모니터 회로를 구현하는 단계를 포함할 수 있다.
본 명세서에서 제공된 본 발명의 어레인지먼트들의 설명은 예시의 목적들을 위한 것이며, 포괄적인 것으로 의도되거나 또는 개시된 형태 및 예들로 제한되지 않는다. 본 명세서에서 사용된 용어는 본 발명의 어레인지먼트들의 원리들, 시장에서 발견되는 기술들에 대한 실제적인 애플리케이션 또는 기술적 개선을 설명하고, 그리고/또는 당업자들이 본 명세서에 개시된 본 발명의 어레인지먼트들을 이해할 수 있도록 선정되었다. 변형들 및 변경들은 설명된 본 발명의 어레인지먼트들의 범위 및 사상을 벗어나지 않으면서 당업자들에게 자명할 수 있다. 따라서, 전술한 개시내용보다는, 그러한 특징들 및 구현들의 범위를 표시하는 다음의 청구항들에 대한 참조가 이루어져야 한다.

Claims (15)

  1. 클록 신호들을 모니터링하기 위한 장치로서,
    동작 파라미터를 수신하도록 구성된 인터페이스 회로;
    상기 인터페이스 회로에 커플링되며, 상기 동작 파라미터를 저장하도록 구성된 제어 회로; 및
    상기 제어 회로에 커플링된 클록 에러 검출 회로를 포함하며,
    상기 클록 에러 검출 회로는, 상기 동작 파라미터에 기반하여 클록 신호에 대한 클록 에러 조건을 검출하고, 상기 클록 에러 조건을 검출하는 것에 대한 응답으로, 상기 클록 에러 조건의 발생을 표시하는 신호를 생성하도록 구성되는, 클록 신호들을 모니터링하기 위한 장치.
  2. 제1항에 있어서,
    상기 클록 에러 검출 회로는, 상기 클록 신호에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 검출하고 상기 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 검출되었는지를 표시하도록 구성되는, 클록 신호들을 모니터링하기 위한 장치.
  3. 제1항에 있어서,
    상기 클록 에러 검출 회로는, 복수의 상이한 클록 신호들 각각에 대해 상기 클록 에러 조건을 동시에 검출하고 상기 복수의 클록 신호들 중 상기 에러 조건을 갖는 클록 신호를 표시하도록 구성되는, 클록 신호들을 모니터링하기 위한 장치.
  4. 제3항에 있어서,
    상기 클록 에러 검출 회로는, 상기 복수의 상이한 클록 신호들 각각에 대해 복수의 상이한 타입들의 클록 에러 조건들을 검출하고 상기 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 상기 복수의 클록 신호들의 각각의 개개의 클록 신호에 대해 검출되었는지를 표시하도록 구성되는, 클록 신호들을 모니터링하기 위한 장치.
  5. 제1항에 있어서,
    상기 신호는 프로세서에 제공되며, 인터럽트를 포함하는, 클록 신호들을 모니터링하기 위한 장치.
  6. 제1항에 있어서,
    상기 인터페이스는, 상기 동작 파라미터를 전송하도록 구성된 프로세서에 커플링되는, 클록 신호들을 모니터링하기 위한 장치.
  7. 제1항에 있어서,
    상기 동작 파라미터는 클록 정지 에러 조건을 검출하기 위해 사용되는, 클록 신호들을 모니터링하기 위한 장치.
  8. 제1항에 있어서,
    상기 동작 파라미터는 클록 글리치(glitch) 에러 조건을 검출하기 위해 사용되는, 클록 신호들을 모니터링하기 위한 장치.
  9. 제1항에 있어서,
    상기 동작 파라미터는 클록 범위 밖 에러 조건(clock out of range error condition)을 검출하기 위해 사용되는, 클록 신호들을 모니터링하기 위한 장치.
  10. 제1항에 있어서,
    상기 인터페이스 회로, 상기 제어 회로, 및 상기 클록 에러 검출 회로는 집적 회로의 프로그래밍가능 회로에서 구현되는, 클록 신호들을 모니터링하기 위한 장치.
  11. 클록 신호들을 모니터링하는 방법으로서,
    클록 모니터 회로에서, 프로세서로부터 동작 파라미터를 수신하는 단계;
    상기 동작 파라미터에 기반하여 상기 클록 모니터의 클록 에러 검출 회로를 업데이트하는 단계;
    상기 동작 파라미터에 기반하여 상기 클록 에러 검출 회로를 사용하여 클록 신호에 대한 클록 에러 조건을 검출하는 단계; 및
    상기 클록 에러 조건을 검출하는 것에 대한 응답으로, 상기 클록 에러 조건의 발생을 표시하는 신호를 생성하는 단계를 포함하는, 클록 신호들을 모니터링하는 방법.
  12. 제11항에 있어서,
    상기 클록 에러 조건을 검출하는 단계는,
    상기 클록 신호에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 모니터링하는 단계, 및
    상기 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 검출되었는지를 표시하는 단계를 포함하는, 클록 신호들을 모니터링하는 방법.
  13. 제11항에 있어서,
    상기 클록 에러 조건을 검출하는 단계는,
    복수의 상이한 클록 신호들 각각에 대해 상기 클록 에러 조건을 동시에 모니터링하는 단계, 및
    상기 복수의 클록 신호들 중 상기 에러 조건을 갖는 클록 신호를 표시하는 단계를 포함하는, 클록 신호들을 모니터링하는 방법.
  14. 제13항에 있어서,
    상기 클록 에러 조건을 검출하는 단계는,
    상기 복수의 상이한 클록 신호들 각각에 대해 복수의 상이한 타입들의 클록 에러 조건들을 동시에 모니터링하는 단계, 및
    상기 복수의 상이한 타입들의 클록 에러 조건들 중 어느 것이 상기 복수의 클록 신호들의 각각의 개개의 클록 신호에 대해 검출되었는지를 표시하는 단계를 포함하는, 클록 신호들을 모니터링하는 방법.
  15. 제11항에 있어서,
    상기 신호는 프로세서에 제공되며, 인터럽트를 포함하는, 클록 신호들을 모니터링하는 방법.
KR1020197015779A 2016-11-01 2017-10-26 프로그래밍가능 클록 모니터 KR102381903B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/340,978 US10379927B2 (en) 2016-11-01 2016-11-01 Programmable clock monitor
US15/340,978 2016-11-01
PCT/US2017/058560 WO2018085116A1 (en) 2016-11-01 2017-10-26 Programmable clock monitor

Publications (2)

Publication Number Publication Date
KR20190077058A true KR20190077058A (ko) 2019-07-02
KR102381903B1 KR102381903B1 (ko) 2022-03-31

Family

ID=60409346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197015779A KR102381903B1 (ko) 2016-11-01 2017-10-26 프로그래밍가능 클록 모니터

Country Status (6)

Country Link
US (1) US10379927B2 (ko)
EP (1) EP3535638B1 (ko)
JP (1) JP7004712B2 (ko)
KR (1) KR102381903B1 (ko)
CN (1) CN109923494B (ko)
WO (1) WO2018085116A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102471531B1 (ko) * 2017-12-21 2022-11-28 에스케이하이닉스 주식회사 저속 동작 환경에서 고속 테스트를 수행할 수 있는 반도체 장치 및 시스템
US20190052277A1 (en) * 2018-06-25 2019-02-14 Intel Corporation Functional safety clocking framework for real time systems
US10956249B2 (en) * 2018-11-28 2021-03-23 International Business Machines Corporation Handling clock errors on failure of interrupt mechanism
DE102019109869A1 (de) * 2019-04-15 2020-10-15 Infineon Technologies Ag Elektronische schaltung
US11544160B2 (en) * 2019-06-28 2023-01-03 Intel Corporation IPS SOC PLL monitoring and error reporting
US11556347B2 (en) * 2020-08-19 2023-01-17 Toshiba Tec Kabushiki Kaisha Information processing device and information processing method
EP4009062A1 (en) * 2020-12-01 2022-06-08 Thales DIS France SA System on chip with voltage glitch detection based on clock synchronization monitoring

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230647A1 (en) * 2006-03-31 2007-10-04 Ati Technologies Inc. Clock error detection apparatus and method
US20100225357A1 (en) * 2006-08-08 2010-09-09 Freescale Semiconductor, Inc. Real time clock monitoring method and system
US8937496B1 (en) * 2014-08-20 2015-01-20 Xilinx, Inc. Clock monitor
US20150033101A1 (en) * 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864574A (en) * 1988-02-04 1989-09-05 Rockwell International Corporation Injection lock clock detection apparatus
US5081629A (en) * 1989-05-08 1992-01-14 Unisys Corporation Fault isolation for multiphase clock signals supplied to dual modules which are checked by comparison using residue code generators
DE69027491T2 (de) * 1989-08-01 1997-02-06 Digital Equipment Corp Verfahren zur Softwarefehlerbehandlung
JPH08221150A (ja) * 1995-02-17 1996-08-30 Matsushita Electric Ind Co Ltd クロック異常検出装置
US6000040A (en) * 1996-10-29 1999-12-07 Compaq Computer Corporation Method and apparatus for diagnosing fault states in a computer system
KR100363816B1 (ko) 1998-05-13 2002-12-11 미쓰비시덴키 가부시키가이샤 클록이상검출기 및 클록이상 검출장치
GB2362473B (en) * 2000-05-18 2002-08-21 3Com Corp On-chip detector of clock glitches
CN1147789C (zh) * 2000-06-29 2004-04-28 深圳市中兴通讯股份有限公司 嵌入式微处理器应用系统中时钟丢失和毛刺检测方法
JP2003308131A (ja) 2002-04-16 2003-10-31 Matsushita Electric Ind Co Ltd クロック監視装置
JP2005092303A (ja) 2003-09-12 2005-04-07 Fujitsu Ltd クロック信号の擾乱検出機能を備えたディジタル回路装置
JP2005234972A (ja) 2004-02-20 2005-09-02 Konica Minolta Business Technologies Inc クロック異常検出システム
US7739524B2 (en) 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
CN2922277Y (zh) * 2005-10-25 2007-07-11 中兴通讯股份有限公司 一种时钟毛刺检测电路
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8639987B2 (en) 2011-02-18 2014-01-28 Arm Limited Data processing apparatus and method using monitoring circuitry to control operating parameters
US8473797B2 (en) * 2011-08-12 2013-06-25 Texas Instruments Incorporated Circuits and methods for clock malfunction detection
US9135431B2 (en) 2013-07-26 2015-09-15 Apple Inc. Harmonic detector of critical path monitors
US9589637B1 (en) 2013-12-18 2017-03-07 Nxp Usa, Inc. Storage element with storage and clock tree monitoring circuit and methods therefor
CN104505934B (zh) * 2014-12-01 2017-02-22 国电南瑞科技股份有限公司 一种时钟同步及监测系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070230647A1 (en) * 2006-03-31 2007-10-04 Ati Technologies Inc. Clock error detection apparatus and method
US20100225357A1 (en) * 2006-08-08 2010-09-09 Freescale Semiconductor, Inc. Real time clock monitoring method and system
US20150033101A1 (en) * 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source
US8937496B1 (en) * 2014-08-20 2015-01-20 Xilinx, Inc. Clock monitor

Also Published As

Publication number Publication date
JP2019536146A (ja) 2019-12-12
WO2018085116A1 (en) 2018-05-11
JP7004712B2 (ja) 2022-01-21
CN109923494A (zh) 2019-06-21
KR102381903B1 (ko) 2022-03-31
US20180121280A1 (en) 2018-05-03
US10379927B2 (en) 2019-08-13
EP3535638A1 (en) 2019-09-11
CN109923494B (zh) 2020-11-03
EP3535638B1 (en) 2020-12-09

Similar Documents

Publication Publication Date Title
KR102381903B1 (ko) 프로그래밍가능 클록 모니터
US8937496B1 (en) Clock monitor
EP3105651B1 (en) Calibrating a power supply using power supply monitors
US9772676B2 (en) Adaptive voltage scaling based on stage transitions or ring oscillator revolutions
EP2954615A1 (en) Integrated circuit identification and dependability verification using ring oscillator based physical unclonable function and age detection circuitry
EP2923214B1 (en) Unique and unclonable platform identifiers using data-dependent circuit path responses
US8984538B2 (en) Bidirectional counting of dual outcome events
US20140306746A1 (en) Dynamic clock skew control
US9990454B2 (en) Early analysis and mitigation of self-heating in design flows
US8527925B2 (en) Estimating clock skew
US20180075172A1 (en) Dynamic power reduction in circuit designs and circuits
US8694939B1 (en) Method for determining critical junction temperature
WO2016093891A1 (en) Dynamic voltage scaling in programmable integrated circuits
US8495538B1 (en) Power estimation of a circuit design
US10288496B1 (en) Ring oscillator for temperature or voltage sensing
US8285527B2 (en) Method and system for equivalence checking
US8024168B2 (en) Detecting X state transitions and storing compressed debug information
US10606979B1 (en) Verifying equivalence of design latency
JP2016213637A (ja) プログラマブルロジックデバイスのエラー検証方法、及びプログラマブルロジックデバイスの回路形成方法
JP6303509B2 (ja) 回路検証方法、及び回路検証プログラム
US20200004503A1 (en) Information processing device, information processing method, and computer readable medium
US9268891B1 (en) Compact and efficient circuit implementation of dynamic ranges in hardware description languages
US8484008B2 (en) Methods and systems for performing timing sign-off of an integrated circuit design
US9069762B2 (en) Equivalence classes over parameter state space
Kehl et al. Circuit level concurrent error detection in FSMs

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant