CN109923494A - 可编程时钟监测器 - Google Patents

可编程时钟监测器 Download PDF

Info

Publication number
CN109923494A
CN109923494A CN201780067039.7A CN201780067039A CN109923494A CN 109923494 A CN109923494 A CN 109923494A CN 201780067039 A CN201780067039 A CN 201780067039A CN 109923494 A CN109923494 A CN 109923494A
Authority
CN
China
Prior art keywords
clock
signal
circuit
clocking error
clock signal
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201780067039.7A
Other languages
English (en)
Other versions
CN109923494B (zh
Inventor
L·S·桑德斯
S·卡塔姆
A·卡塔
J·普维斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN109923494A publication Critical patent/CN109923494A/zh
Application granted granted Critical
Publication of CN109923494B publication Critical patent/CN109923494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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内实现的时钟监测电路。
背景技术
时钟监测是现代电子系统设计的重要元素。例如,在功能安全市场中,系统的容错被视为一种要求。容错通常是指在系统的一个或多个组件发生故障(例如,错误)的情况下系统能够正常地或至少以定义的和预期的方式继续操作的能力。对于被认为是“容错”的系统,通常需要时钟监测以及其他元素。
在安全性方面,时钟监测通常被视为帮助系统抵御攻击的必要条件。例如,一种类型的攻击是在系统的时钟信号中引起毛刺。时钟毛刺可能引起很多问题,诸如引起处理器跳过指令的执行。跳过指令的执行可以阻止程序代码的整个部分执行。程序代码的这些部分可以向系统提供重要的安全特征,诸如登录、加密、解密等。如果黑客能够引起跳过这样的指令的执行,则系统可能容易受到攻击。
发明内容
一个实施例包括一种用于监测时钟信号的装置。该装置可以包括被配置为接收操作参数的接口电路、以及耦合到接口电路并且被配置为存储操作参数的控制电路。该装置还可以包括耦合到控制电路的时钟误差检测电路。时钟误差检测电路可以被配置为基于操作参数来检测时钟信号上的时钟误差情况,并且响应于检测到时钟误差情况,生成指示时钟误差情况的发生的信号。
另一实施例包括一种监测时钟信号的方法。该方法可以包括在时钟监测电路中从处理器接收操作参数,基于操作参数来更新时钟监测电路的时钟误差检测电路,以及基于操作参数使用时钟误差检测电路来检测时钟信号上的时钟误差情况。该方法可以包括响应于检测到时钟误差情况,生成指示时钟误差情况的发生的信号。
提供本“发明内容”部分仅仅是为了介绍某些概念而不是识别所要求保护的主题的任何关键或必要特征。根据附图和以下详细描述,本发明的布置的其他特征将很清楚。
附图说明
在附图中以示例的方式示出了本发明的布置。然而,附图不应当被解释为将本发明的布置仅限于所示的特定实现。通过阅读以下详细描述并且参考附图,各个方面和优点将变得很清楚。
图1是用于集成电路的示例架构。
图2是包括时钟监测电路的集成电路的示例。
图3是时钟监测电路的示例。
图4是时钟误差检测电路的示例。
图5示出了说明用于时钟监测电路的边缘检测器的操作的示例波形。
图6是实现时钟监测电路的示例方法。
图7是用于时钟监测电路的操作的示例方法。
具体实施方式
虽然本公开以限定新颖特征的权利要求作出结论,但是相信通过结合附图考虑说明书将能够更好地理解本公开中描述的各种特征。本文中描述的(多个)过程、(多个)机器、(多个)制造品及其任何变型是出于说明的目的而提供的。本公开中描述的具体结构和功能细节不应当被解释为限制,而仅仅作为权利要求的基础,并且作为教导本领域技术人员以各种方式采用在实际上任何适当详细结构中描述的特征的代表性基础。此外,本公开中使用的术语和短语不旨在是限制性的,而是提供对所描述的特征的可理解的描述。
本公开涉及集成电路(IC),并且更具体地涉及用于在IC内实现的时钟监测电路。本文中描述的一个或多个示例实施例提供了有助于在IC内实现容错系统的一种时钟监测电路。在一个方面,时钟监测电路是可编程的。
在一个或多个实施例中,提供了一种实现时钟监测电路的核。电路设计者(例如,用户)可以向电子设计自动化(EDA)工具提供一个或多个操作参数以对核进行编程和/或参数化。此外,一旦核在IC内物理地实现为功能电路系统,就可以实时编程或控制时钟监测电路。在一个实施例中,时钟监测电路可以使用处理器来控制。例如,处理器可以执行促进与时钟监测电路通信的驱动程序代码。这样,在操作期间,例如,在实时操作期间,处理器可以改变时钟监测电路的一个或多个操作参数。
在一个或多个实施例中,时钟监测电路能够同时监测一个或多个不同的时钟信号。此外,时钟监测电路能够被编程为检测被监测的不同时钟信号中的每个时钟信号上的一种或多种不同类型的时钟误差情况。处理器能够与时钟监测电路交互以处理检测到的时钟误差情况。处理器能够至少部分基于检测到时钟误差情况的特定时钟信号和/或在被监测时钟信号上检测到的时钟误差情况的类型,响应于由时钟监测电路检测到的时钟误差情况而采取动作。
本文中参考附图更详细地描述时钟监测电路的其他方面、时钟监测电路的操作以及时钟监测电路的可编程性。出于简化和说明清楚的目的,图中所示的元件不一定按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被夸大。此外,在认为合适的情况下,在附图中重复附图标记以指示对应的、类似的或相似的特征。
图1示出了用于IC的示例架构100。在一个方面,架构100在可编程IC内实现。例如,架构100可以用于实现现场可编程门阵列(FPGA)。架构100还表示片上系统(SOC)类型的IC。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可以包括可配置逻辑元件(CLE)112,CLE 112可以被编程为实现用户逻辑加上单个INT 111。除了一个或多个INT 111,BRAM 103还可以包括BRAM逻辑元件(BRL)113。通常,瓦片中包括的INT 111的数目取决于瓦片的高度。如图所示,BRAM瓦片具有与五个CLB相同的高度,但是也可以使用其他数目(例如,四个)。除了适当数目的INT 111,DSP瓦片106还可以包括DSP逻辑元件(DSPL)114。例如,除了INT 111的一个实例,IOB 104可以包括I/O逻辑元件(IOL)115的两个实例。如本领域技术人员所清楚的,例如连接到IOL115的实际I/O焊盘通常不限于IOL 115的区域。
在图1所示的示例中,例如由区域105、107和108形成的靠近管芯中央的柱状区域可以用于配置、时钟和其他控制逻辑。从该柱状区域延伸的水平区域109用于跨可编程IC的宽度来分配时钟和配置信号。
利用图1所示的架构的一些IC包括附加逻辑块,附加逻辑块破坏构成IC的大部分的常规柱状结构。附加逻辑块可以是可编程块和/或专用电路。例如,被描绘为PROC 110的处理器块跨越几列CLB和BRAM。
在一个方面,PROC 110被实现为专用电路系统,例如,实现为硬连线处理器,该硬连线处理器被制造为实现IC的可编程电路系统的管芯的一部分。PROC 110可以表示各种不同处理器类型和/或系统中的任何一种,其复杂程度从个体处理器(例如,能够执行程序代码的单个核)到具有一个或多个核、模块、协处理器、接口等的整个处理器系统。
在另一方面,PROC 110从架构100中省略,并且被替换为所描述的可编程块的一个或多个其他种类。此外,这样的块可以用于形成“软处理器”,因为可编程电路系统的各种块可以用于形成可以执行程序代码的处理器,PROC 110正是这种情况。
短语“可编程电路系统”指的是IC内的可编程电路元件,例如,本文中描述的各种可编程或可配置电路块或瓦片、以及根据加载到IC中的配置数据来选择性地耦合各种电路块、瓦片和/或元件的互连电路系统。例如,图1所示的在PROC 110外部的电路块(诸如CLB102和BRAM 103)被认为是IC的可编程电路系统。
通常,在将配置数据加载到IC中之前,不建立可编程电路系统的功能。一组配置位可以用于编程诸如FPGA的IC的可编程电路系统。(多个)配置位通常被称为“配置比特流”。通常,在没有首先将配置比特流加载到IC中的情况下,可编程电路系统不可操作或不起作用。配置比特流有效地实现可编程电路系统内的特定电路设计。例如,电路设计指定可编程电路块的功能方面和各种可编程电路块之间的物理连接。
“硬连线”或“硬化”的电路系统(即,不可编程的电路系统)被制造为IC的一部分。与可编程电路系统不同,在通过加载配置比特流来制造IC之后,不实现硬连线电路系统或电路块。硬连线电路系统通常被认为具有例如在没有首先将配置比特流加载到IC中的情况下是有用的专用电路块和互连件,例如PROC 110。
在一些情况下,硬连线电路系统可以具有一个或多个操作模式,这些操作模式可以根据存储在IC内的一个或多个存储器元件中的寄存器设置或值来设置或选择。例如,操作模式可以通过将配置比特流加载到IC中来设置。尽管具有这种能力,但硬连线电路系统不被认为是可编程电路系统,因为硬连线电路系统是可操作的并且当作为IC的一部分制造时具有特定功能。
在SOC的情况下,配置比特流可以指定要在可编程电路系统内实现的电路系统和要由PROC 110或软处理器执行的程序代码。在一些情况下,架构100包括将配置比特流加载到适当的配置存储器和/或处理器存储器的专用配置处理器。专用配置处理器不执行用户指定的程序代码。在其他情况下,架构100可以利用PROC 110来接收配置比特流,将配置比特流加载到适当的配置存储器中,和/或提取用于执行的程序代码。
图1旨在示出可以用于实现包括可编程电路(例如,可编程结构)的IC的示例性架构。例如,列中逻辑块的数目、列的相对宽度、列的数目和顺序、列中包含的逻辑块的类型、逻辑块的相对大小以及图1的顶部所包括的互连/逻辑实现纯粹是示例性的。在实际的IC中,例如,在CLB出现的任何地方通常都包括多于一个相邻的CLB列,以促进用户电路设计的有效实现。但是,相邻CLB列的数目可以随IC的整体尺寸而变化。此外,IC内的诸如PROC 110的块的尺寸和/或定位仅用于说明的目的,而不是作为限制。
在很多可编程IC中,存在很多时钟,在这些时钟上可能出现时钟误差情况。在SOC的情况下尤其如此。在SOC的情况下,可以存在专用于处理器和/或处理器系统的一个或多个时钟以及专用于在SOC的可编程电路系统内实现的电路的一个或多个其他时钟。尽管如此,可以存在处理器系统和可编程电路系统都使用的时钟。
在一个或多个实施例中,时钟监测电路可以使用架构100的可编程电路系统来实现,并且用于同时监测一个或多个时钟信号上的时钟误差情况的发生,而无论时钟信号是否由处理器系统和/或可编程电路使用。此外,(多个)时钟监测电路能够同时监测多个时钟信号上的不同类型的时钟误差情况。
图2是包括时钟监测电路的IC 200的示例。在一个方面,IC 200是包括可编程电路系统的可编程IC。例如,IC 200可以实现为FPGA或其他种类的可编程IC。在另一示例中,IC200可以实现为SOC。IC 200可以具有与图1所示的架构相同或相似的架构。如图所示,IC200包括处理器205和时钟监测电路210。IC 200可以包括可选的中断控制器215。
处理器205是能够执行程序代码(例如,指令)的电路系统。在一个实施例中,处理器205是硬化电路系统。在另一实施例中,处理器205是响应于将配置数据加载到IC 200的配置存储器单元中而使用IC 200的可编程电路系统实现的软处理器。处理器205可以具有能够执行程序代码的各种不同架构中的任何一种。处理器205可以在与时钟监测电路210相同的管芯上实现。
处理器205可以执行诸如操作系统、用户应用等程序代码。处理器205还可以执行使得处理器205能够经由连接件220与时钟监测电路210通信的驱动程序代码,例如驱动程序。连接件220可以实现为实现各种片上互连件中的任何一种的一条或多条线。
在一个实施例中,连接件220实现为总线。在一个示例中,总线可以是AMBA可扩展接口(AXI)总线。AXI总线是用于在电路块和/或系统之间建立片上连接件的嵌入式微控制器总线接口。应当理解,本文中提供的示例总线类型是出于说明而非限制的目的。本发明的布置不限于所提供的示例,因为可以使用其他总线和/或连接类型。
时钟监测电路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)个不同时钟信号上的多个不同时钟误差情况中的一个或多个或每个。对于时钟信号1-N中的每个,时钟监测电路210能够检测的时钟误差情况的示例包括但不限于时钟超出范围(例如,时钟溢出和/或时钟欠载)、时钟毛刺和/或时钟信号丢失。
对于每个待监测时钟信号,时钟监测电路210被耦合以例如接收被表示为“ref_clk_1”至“ref_clk_N”的参考时钟信号。时钟监测电路210能够针对一种或多种不同类型的时钟误差情况来监测时钟信号中的每个时钟信号。参考时钟信号中的每个时钟信号可以从设备引脚或从另一内部时钟来获取。
响应于检测到时钟误差情况,时钟监测电路210能够生成中断信号,如图所示。此外,时钟监测电路210能够输出指示检测到的时钟误差情况的类型的信号。例如,时钟监测电路210能够在指示检测到时钟停止误差情况的clk_stop信号上生成值,在指示检测到时钟毛刺误差情况的clk_glitch信号上生成值,以及在指示检测到时钟超出范围误差情况的clk_oor信号上生成值。clk_stop、clk_glitch、clk_oor、锁定和中断信号可以统称为信号230。
在一个实施例中,clk_stop、clk_glitch、锁定和clk_oor信号中的每个可以是多位信号,使得时钟监测电路210能够指示1-N个被监测时钟信号中的哪个信号检测到误差情况。“锁定”信号指示被(多个)监测时钟信号是否已经按预期启动或重新启动。时钟监测电路210还能够输出被监测时钟信号1-N中的每个以将这样的信号提供给IC 200内的其他电路和/或系统。
如上所述,IC 200可以包括可选的中断控制器215。中断控制器215能够接收clk_stop、clk_glitch、clk_oor、锁定和中断信号,解码信号,以及向处理器205提供中断信号225。中断控制器215可以在一个或多个不同电路被配置为生成对处理器205的中断的情况下使用。例如,IC 200可以包括多于一个时钟监测电路210、一个或多个时钟监测电路210和被配置为生成中断的一个或多个其他电路等。中断控制器215能够接收、优先化和组合来自两个或更多个中断源(例如,电路)的信号,并且经由已经应用在其中实现的任何优先化方案的中断信号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能够通过信号230接收由误差检测器325生成并且存储在控制寄存器315中的输出数据。
在另一实施例中,控制电路系统310能够生成图1所示的中断信号。例如,控制电路系统310能够监测来自误差检测器325中的每个的个体时钟误差检测信号,这将参考图4更详细地描述。响应于在一个或多个被监测时钟信号上检测到时钟误差情况,控制电路310能够在中断信号上生成适当的(多个)值,例如,根据时钟监测电路210的具体实现而使中断信号为高或低。
图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并且向计数器415提供信号462。图5示出了用于示出边缘检测器430的操作的信号452、456和462的示例波形。
在一个实施例中,计数器415实现为向上/向下计数器。计数器415能够作为在信号460上操作的自由运行计数器进行操作。在一个实施例中,计数器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确定信号462(例如,边缘检测信号)在至少最小量的时间内没有变高,这指示时钟信号452停止(例如,卡在“1”或“0”)。比较器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可以根据时钟监测电路的实现将信号476拉高或拉低以指示时钟信号452上的超出范围时钟误差情况。
由信号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可以根据时钟监测电路的实现将信号478拉高或拉低以指示时钟信号452上的毛刺的发生。
在一个示例实施例中,信号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指定的上限。
(1)
(2)Counter1_value=2Counter1_width
(3)User_clock_counts=(Freference*Counter1_value)/Fuser
(4)Count_stop=User_clock_counts*10
(5)Count_2=User_clock_counts/2
图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。
在框715,响应于检测到时钟误差情况,时钟监测电路向处理器生成中断。中断可以直接提供给处理器,或者可以提供给耦合到处理器的中断控制器。
在框720中,时钟监测电路向处理器提供时钟误差情况数据或以其他方式使这样的数据可用于处理器。例如,已经检测到(多个)时钟误差情况的时钟监测电路知道检测到时钟误差情况的特定时钟信号和检测到的时钟误差情况的类型。在一个实施例中,时钟监测电路经由耦合到处理器的一个或多个信号将数据提供给处理器。在另一实施例中,响应于接收到中断,处理器可以从时钟监测电路读取数据。
应当理解,已经获取时钟误差情况数据的处理器可以实现多个不同中断处理例程中的一个或多个。例如,处理器可以访问多个不同的中断处理例程,并且基于检测到时钟误差情况的(多个)时钟信号和/或检测到的时钟误差情况的(多个)类型来选择特定的中断处理例程用于执行。例如,处理器可以重置时钟信号,关闭目标IC的全部或一部分,或者执行另一动作。检测一个或多个不同时钟上的不同时钟误差情况的能力允许处理器通过自定义或定制响应来响应于每个时钟误差情况或时钟误差情况的组合,而不是使用对所有时钟信号和/或时钟误差情况通用的一种异常处理方法。
在框725中,时钟监测电路确定处理器是否已经提供新的和/或已更新的操作参数。如所讨论的,处理器可以执行驱动程序,该驱动程序允许处理器向时钟监测电路发送新的和/或已更新的操作参数。如果时钟监测电路从处理器接收到操作参数,则方法700继续到框730。如果不是,则时钟监测电路循环回到框705以继续监测被监测时钟信号上的其他时钟误差情况。
在框730中,时钟监测电路利用在框725中从处理器接收的操作参数来更新其中存储的操作参数。在一个实施例中,处理器在执行驱动程序代码时能够计算例如操作参数的已更新值,如本文中描述的,包括但不限于Counter1_width、Counter1_value、User_clock_counts、Count_stop和Count_2。例如,处理器可以在操作期间接收一个或多个时钟信号的输入,诸如被监测时钟信号的已更新频率、参考时钟的已更新频率和/或已更新容差。响应于接收到新的和/或已更新输入,处理器可以针对相关时钟信号计算用于Counter1_width、Counter1_value、User_clock_count、Count_stop和Count_2的已更新值。处理器还能够将所计算的操作参数发送给时钟监测电路。这些值可以存储在控制寄存器中,并且被提供给时钟监测电路的相关电路块,如前所述。
在另一实施例中,处理器可在操作期间接收一个或多个时钟信号的输入,诸如被监测时钟信号的已更新频率、参考时钟信号的已更新频率和/或已更新容差。响应于接收到新的和/或已更新输入,处理器可以将已更新的值提供给时钟监测电路。在这种情况下,控制电路系统可以接收这些值。控制电路系统能够根据所接收的值来计算示例操作参数,如本文中描述,包括但不限于针对相关时钟信号的用于Counter1_width、Counter1_value、User_clock_counts、Count_stop和Count_2的值。已更新的值可以存储在控制寄存器中,并且被提供给时钟监测电路的相关电路块,如前所述。
在又一实施例中,处理器可以获取或读取要在时钟监测电路内更新的操作参数,使得处理器和控制电路系统都不需要计算已更新的值。在图示中,处理器可以获取或读取用于示例操作参数的值,如本文中描述,包括但不限于Counter1_width、Counter1_value、User_clock_count、Count_stop和Count_2。处理器还能够将操作参数发送给时钟监测电路。这些值可以存储在控制寄存器中,并且被提供给时钟监测电路的相关电路块,如前所述。在框730之后,方法700可以循环回到框705以继续操作。
出于解释的目的,阐述了具体术语以提供对本文中公开的各种发明构思的透彻理解。然而,本文中使用的术语仅用于描述本发明装置的特定方面,而不是限制性的。
如本文中定义的,除非上下文另有明确说明,否则单数形式“一个(a)”、“一个(an)”和“该(the)”旨在也包括复数形式。如本文中定义,术语“另一”表示至少第二或更多。如本文中定义的,术语“至少一个”、“一个或多个”和“和/或”是开放式表达,除非另有明确说明,否则它们在操作中既是连接的又是分离的。例如,表达“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)、记忆棒、软盘、机械编码装置(诸如在其上记录有指令的凹槽中的穿孔卡或凸起结构)以及前述的任何合适的组合。
如本文中定义的,除非另有说明,否则术语“耦合”表示连接,而无论是没有任何中间元件的直接连接还是使用一个或多个中间元件的间接连接。两个元件可以通过通信信道、路径、网络或系统机械地、电气地或通信地耦合。如本文中定义,术语“包括(includes)”、“包括(including)”、“包括(comprises)”和/或“包括(comprising)”指定所述特征、整体、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、元素、组件和/或其组的存在或添加。如本文中定义的,术语“输出”表示存储在物理存储器元件(例如,设备)中,写入显示器或其他外围输出设备,发送或传输到另一系统,出口,等等。如本文中定义,术语“多个”表示两个或多于两个。
如本文中定义,取决于上下文,术语“如果”表示“当……时”或“在......时”或“响应于”或“响应”。因此,取决于上下文,短语“如果确定”或“如果检测到[所述条件或事件]”可以被解释为表示“在确定时”或“响应于确定”或“在检测到[所述条件或事件]时”或“响应于检测到[所述条件或事件]”或“响应检测到[所述条件或事件]”。如本文中定义,术语“响应于”表示容易响应于或反应于动作或事件。因此,如果第二动作“响应于”第一动作而执行,则在第一动作的发生与第二动作的发生之间存在因果关系。术语“响应”表示因果关系。
如本文中定义的,术语“一个实施例”、“实施例”或类似语言表示结合该实施例描述的特定特征、结构或特性被包括在本公开内容中描述的至少一个实施例中。因此,贯穿本公开内容的短语“在一个实施例中”、“在实施例中”和类似语言的出现可以但不是必须全部指代相同的实施例。
如本文中定义的,术语“处理器”表示被配置为执行包含在程序代码中的指令的至少一个硬件电路。硬件电路可以是集成电路。处理器的示例包括但不限于中央处理单元(CPU)、阵列处理器、矢量处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、专用集成电路(ASIC)、可编程逻辑电路、图形处理单元(GPU)、控制器等。
如本文中定义的,术语“实时”表示用户或系统感测为对于要进行的特定过程或确定而言充分立即的处理响应性水平、或者使得处理器能够跟上某个外部过程的处理响应性水平。如本文中定义,术语“用户”表示人。本文中可以使用术语第一、第二等来描述各种元素。除非另有说明或上下文另外明确指出,否则这些元素不应当受这些术语的限制,因为这些术语仅用于将一个元素与另一元素区分开。
在一些情况下,术语“信号”可以在本公开内使用以描述诸如端子、引脚、信号线、导线等物理结构。在其他情况下,术语“信号”可以用于指代由线指定的特定值。术语“信号”可以指代单个位的传送,例如单个线,或者可以指代通过多个平行线的多个并行位的传送。此外,每个信号可以表示通过信号连接的两个或更多个组件之间的双向通信。
计算机程序产品可以包括其上具有用于引起处理器执行本文中描述的本发明的布置的各方面的计算机可读程序指令的计算机可读存储介质。在本公开内容中,术语“程序代码”与术语“计算机可读程序指令”可互换地使用。本文中描述的计算机可读程序指令可以经由网络(例如,因特网、LAN、WAN和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或包括边缘服务器的边缘设备。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本文中描述的本发明的布置的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、或者用一种或多种编程语言(包括面向对象的编程语言和/或过程编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以包括状态设置数据。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括LAN或WAN)连接到用户的计算机,或者可以进行到外部计算机(例如,使用因特网服务提供商通过因特网)的连接。在一些情况下,包括例如可编程逻辑电路、FPGA或PLA在内的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个性化电子电路,以便执行本文中描述的本发明的布置的各方面。
本文中参考方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明装置的某些方面。应当理解,对于至少一些流程图,流程图图示和/或框图中的一个或多个或每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读程序指令来实现,例如程序代码。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器来执行的指令能够创建用于实现流程图和/或框图框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其他设备以特定方式起作用,使得其中存储有指令的计算机可读存储介质包括一种制品,该制品包括实现流程图和/或框图框中指定的操作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令能够实现在流程图和/或框图框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的布置的各个方面的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,对于至少一些流程图,流程图或框图中的一个或多个或每个框可以表示指令的模块、段或部分,其包括用于实现指定操作的一个或多个可执行指令。
在一些备选实现中,框中提到的操作可以不按图中所示的顺序发生。例如,连续示出的两个框可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。在其他示例中,框可以通常以递增的数字顺序执行,而在其他示例中,一个或多个框可以以变化的顺序执行,其中结果被存储并且在后续框或不紧随其后的其他框中使用。还应当注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作或者执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
可以在以下权利要求中找到的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于结合具体要求保护的其他要求保护的元素来执行功能的任何结构、材料或动作。
一种用于监测时钟信号的装置可以包括:被配置为接收操作参数的接口电路;耦合到接口电路并且被配置为存储操作参数的控制电路;以及耦合到控制电路的时钟误差检测电路。时钟误差检测电路被配置为基于操作参数检测时钟信号上的时钟误差情况,并且响应于检测到时钟误差情况而生成指示时钟误差情况的发生的信号。
在一个方面,时钟误差检测电路被配置为同时检测时钟信号上的多种不同类型的时钟误差情况,并且指示检测到多种不同类型的时钟误差情况中的哪一种。
在另一方面,时钟误差检测电路被配置为同时检测多个不同时钟信号中的每个时钟信号上的时钟误差情况,并且指示多个时钟信号中具有误差情况的时钟信号。例如,时钟误差检测电路被配置为检测多个不同时钟信号中的每个时钟信号上的多种不同类型的时钟误差情况,并且针对多个时钟信号中的每个相应时钟信号,指示检测到多种不同类型的时钟误差情况中的哪一种。
该信号可以被提供给处理器并且可以包括中断。
接口可以耦合到被配置为发送操作参数的处理器。
操作参数可以用于检测时钟停止误差情况,检测时钟毛刺误差情况,和/或检测时钟超出范围误差情况。
在另一方面,接口电路、控制电路和时钟误差检测电路在集成电路的可编程电路中实现。
一种监测时钟信号的方法可以包括在时钟监测电路中从处理器接收操作参数,基于操作参数更新时钟监测电路的时钟误差检测电路,以及基于操作参数使用时钟误差检测电路来检测时钟信号上的时钟误差情况。该方法还可以包括响应于检测到时钟误差情况而生成指示时钟误差情况的发生的信号。
在一个方面,检测时钟误差情况包括同时监测时钟信号上的多种不同类型的时钟误差情况,并且指示检测到多种不同类型的时钟误差情况中的哪一种。
在另一方面,检测时钟误差情况包括同时监测多个不同时钟信号中的每个时钟信号上的时钟误差情况,并且指示多个时钟信号中具有误差情况的时钟信号。
在另一方面,检测时钟误差情况包括同时监测多个不同时钟信号中的每个时钟信号上的多种不同类型的时钟误差情况,并且针对多个时钟信号中的每个相应时钟信号,指示检测到多种不同类型的时钟误差情况中的哪一种。
信号可以被提供给处理器并且可以包括中断。
操作参数可以从处理器来接收。
操作参数可以用于检测时钟停止误差情况,检测时钟毛刺误差情况,和/或检测时钟超出范围误差情况。
在另一方面,该方法可以包括在集成电路的可编程电路系统中实现时钟监测电路。
本文中提供的本发明的布置的描述是出于说明的目的,并非旨在穷举或限于所公开的形式和示例。选择本文中使用的术语以解释本发明的布置的原理,对市场中发现的技术的实际应用或技术改进,和/或使得本领域其他普通技术人员能够理解本文中公开的本发明的布置。在不脱离所描述的本发明的布置的范围和精神的情况下,修改和变化对于本领域普通技术人员来说是很清楚的。因此,应当参考所附权利要求而不是前述公开内容作为指示这样的特征和实现的范围。

Claims (15)

1.一种用于监测时钟信号的装置,包括:
接口电路,被配置为接收操作参数;
控制电路,被耦合到所述接口电路并且被配置为存储所述操作参数;以及
时钟误差检测电路,被耦合到所述控制电路,其中所述时钟误差检测电路被配置为基于所述操作参数来检测时钟信号上的时钟误差情况,并且响应于检测到所述时钟误差情况,生成指示所述时钟误差情况的发生的信号。
2.根据权利要求1所述的装置,其中所述时钟误差检测电路被配置为同时检测所述时钟信号上的多种不同类型的时钟误差情况,并且指示所述多种不同类型的时钟误差情况中的哪一种被检测到。
3.根据权利要求1所述的装置,其中所述时钟误差检测电路被配置为同时检测多个不同时钟信号中的每个时钟信号上的所述时钟误差情况,并且指示所述多个时钟信号中具有所述误差情况的所述时钟信号。
4.根据权利要求3所述的装置,其中所述时钟误差检测电路被配置为检测所述多个不同时钟信号中的每个时钟信号上的多种不同类型的时钟误差情况,并且针对所述多个时钟信号中的每个相应时钟信号,指示所述多种不同类型的时钟误差情况中的哪一种被检测到。
5.根据权利要求1所述的装置,其中所述信号被提供给处理器并且包括中断。
6.根据权利要求1所述的设备,其中所述接口被耦合到被配置为发送所述操作参数的处理器。
7.根据权利要求1所述的装置,其中所述操作参数被用于检测时钟停止误差情况。
8.根据权利要求1所述的装置,其中所述操作参数被用于检测时钟毛刺误差情况。
9.根据权利要求1所述的装置,其中所述操作参数被用于检测时钟超出范围误差情况。
10.根据权利要求1所述的装置,其中所述接口电路、所述控制电路和所述时钟误差检测电路被实现在集成电路的可编程电路系统中。
11.一种监测时钟信号的方法,包括:
在时钟监测电路中,从处理器接收操作参数;
基于所述操作参数,更新所述时钟监测电路的时钟误差检测电路;
基于所述操作参数,使用所述时钟误差检测电路来检测时钟信号上的时钟误差情况;以及
响应于检测到所述时钟误差情况,生成指示所述时钟误差情况的发生的信号。
12.根据权利要求11所述的方法,其中检测时钟误差情况包括:同时监测所述时钟信号上的多种不同类型的时钟误差情况,并且指示所述多种不同类型的时钟误差情况中的哪一种被检测到。
13.根据权利要求11所述的方法,其中检测时钟误差情况包括同时监测多个不同时钟信号中的每个时钟信号上的所述时钟误差情况,并且指示所述多个时钟信号中具有所述误差情况的所述时钟信号。
14.根据权利要求13所述的方法,其中检测时钟误差情况包括:同时监测所述多个不同时钟信号中的每个时钟信号上的多种不同类型的时钟误差情况,并且针对所述多个时钟信号中的每个相应时钟信号,指示所述多种不同类型的时钟误差情况中的哪一种被检测到。
15.根据权利要求11所述的方法,其中所述信号被提供给处理器并且包括中断。
CN201780067039.7A 2016-11-01 2017-10-26 可编程时钟监测器 Active CN109923494B (zh)

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
CN109923494A true CN109923494A (zh) 2019-06-21
CN109923494B CN109923494B (zh) 2020-11-03

Family

ID=60409346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780067039.7A Active CN109923494B (zh) 2016-11-01 2017-10-26 可编程时钟监测器

Country Status (6)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221150A (ja) * 1995-02-17 1996-08-30 Matsushita Electric Ind Co Ltd クロック異常検出装置
CN1317741A (zh) * 2000-06-29 2001-10-17 深圳市中兴通讯股份有限公司 嵌入式微处理器应用系统中时钟丢失和毛刺检测方法
CN2922277Y (zh) * 2005-10-25 2007-07-11 中兴通讯股份有限公司 一种时钟毛刺检测电路
US20150033101A1 (en) * 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source
CN104505934A (zh) * 2014-12-01 2015-04-08 国电南瑞科技股份有限公司 一种时钟同步及监测系统

Family Cites Families (18)

* 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
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
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
US7929648B2 (en) * 2006-03-31 2011-04-19 Ati Technologies Inc. Clock error detection apparatus and method
WO2008017904A1 (en) 2006-08-08 2008-02-14 Freescale Semiconductor, Inc. Real time clock monitoring method and system
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
US8937496B1 (en) 2014-08-20 2015-01-20 Xilinx, Inc. Clock monitor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221150A (ja) * 1995-02-17 1996-08-30 Matsushita Electric Ind Co Ltd クロック異常検出装置
CN1317741A (zh) * 2000-06-29 2001-10-17 深圳市中兴通讯股份有限公司 嵌入式微处理器应用系统中时钟丢失和毛刺检测方法
CN2922277Y (zh) * 2005-10-25 2007-07-11 中兴通讯股份有限公司 一种时钟毛刺检测电路
US20150033101A1 (en) * 2013-07-26 2015-01-29 Honeywell International, Inc. Apparatus and method for detecting a fault with a clock source
CN104505934A (zh) * 2014-12-01 2015-04-08 国电南瑞科技股份有限公司 一种时钟同步及监测系统

Also Published As

Publication number Publication date
JP2019536146A (ja) 2019-12-12
WO2018085116A1 (en) 2018-05-11
JP7004712B2 (ja) 2022-01-21
KR102381903B1 (ko) 2022-03-31
US20180121280A1 (en) 2018-05-03
KR20190077058A (ko) 2019-07-02
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
CN109923494A (zh) 可编程时钟监测器
US8937496B1 (en) Clock monitor
US9141747B1 (en) System level tools to support FPGA partial reconfiguration
TWI488110B (zh) 狀態機引擎及其方法
KR102170198B1 (ko) 전력 공급 모니터를 사용하여 전력 공급 교정
EP3198725B1 (en) Programmable ic with safety sub-system
CN111052074A (zh) 具有自描述依从性信息的固件组件
CN105393224B (zh) 故障检测装置及方法
CN104035023A (zh) Mcu的测试方法和系统
CN108121842B (zh) 多处理器系统芯片的低功耗工作方式的验证方法和装置
US9954534B2 (en) Methods and circuits for preventing hold time violations
US20170110204A1 (en) Enhanced memory built-in self-test architecture for de-featured memories
Bouajila et al. Autonomic system on chip platform
US20130162036A1 (en) Complementary Detection of Power Supplies Stability and Notifying Multiple Domains Regardless of Other Power Domains Readiness
US8285527B2 (en) Method and system for equivalence checking
US20150082107A1 (en) State machine based functional stress tests
Hall Short-Read DNA Sequence Alignment with Custom Designed FPGA-based Hardware
US8024168B2 (en) Detecting X state transitions and storing compressed debug information
CN105630120B (zh) 一种加载处理器硬件配置字的方法及装置
JP6786449B2 (ja) 半導体装置
Cao et al. The'Best'Valid Safe Protocol Converter
Kharchenko et al. Design and testing technique of FPGA-based critical systems
US9141488B1 (en) Run-time recovery of malformed interconnect response
Pechenko A Method for SoC Protocols Specification and Validation
Bjerregaard Using JTAG for External Scrubbing on the AMD Versal ACAP

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant