CN114364996A - 使用卫星adc在fpga上进行根监视 - Google Patents
使用卫星adc在fpga上进行根监视 Download PDFInfo
- Publication number
- CN114364996A CN114364996A CN202080062705.XA CN202080062705A CN114364996A CN 114364996 A CN114364996 A CN 114364996A CN 202080062705 A CN202080062705 A CN 202080062705A CN 114364996 A CN114364996 A CN 114364996A
- Authority
- CN
- China
- Prior art keywords
- reference voltage
- satellite
- monitor
- analog
- satellite monitors
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/003—Modifications for increasing the reliability for protection
- H03K19/00369—Modifications for compensating variations of temperature, supply voltage or other physical parameters
- H03K19/00384—Modifications for compensating variations of temperature, supply voltage or other physical parameters in field effect transistor circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Microcomputers (AREA)
- Logic Circuits (AREA)
Abstract
公开了用于监视可编程器件的多个操作条件的***和方法。在一些实施例中,所述***可以包括根监视器,其包括被配置为生成参考电压的电路;分布在可编程器件上的多个传感器和卫星监视器;以及耦接到根监视器和多个卫星监视器中的每一个卫星监视器的互连***。每个卫星监视器可以在多个传感器中相应的一个传感器附近,并经由局部互连耦接到所述相应的一个传感器。互连***可以包括一个或多个模拟通道,其被配置为向多个卫星监视器中的每一个卫星监视器分配参考电压,并且可以包括一个或多个数字通道,其被配置为选择性地将来自多个卫星监视器中的每一个卫星监视器的数字数据作为数据包路由到根监视器。
Description
技术领域
本发明总体上涉及集成电路器件,具体地,涉及监视集成电路的一个或多个操作条件。
背景技术
可编程逻辑器件(PLD)是可由用户编程以实现各种用户指定电路设计的器件。PLD的一个示例是现场可编程门阵列(FPGA)。FPGA可能包括一组可配置逻辑块(CLB)、专用随机存取存储器块(BRAM)、输入/输出块(IOB)、数字信号处理器(DSP)、多个处理内核、和其他子***(例如,存储器控制器、器件管理资源和配置电路),它们可以通过可编程互连结构选择性地连接在一起。用户指定的电路设计可以通过将代表用户指定的电路设计的配置数据加载到配置寄存器中来在可编程器件内实现,这些配置寄存器共同确定由可编程器件的各种块、互连结构和子***执行的功能和操作。
可编程器件内的电气部件通常在指定的操作条件下操作。例如,电气部件可以被设计为在指定的温度范围内运行,并且如果运行温度升高超过某一水平,则可以禁用或断电。又例如,电源电压通常保持在最小电压电平和最大电压电平之间,以向可编程器件内提供的其他电气部件提供相对恒定的工作电压。随着可编程器件的尺寸和复杂性增加,同时使用较低的电源电压和较小的器件几何形状,监视其操作条件的准确性变得越来越重要。
发明内容
提供本发明内容以简化形式介绍在以下具体实施例中进一步描述的对概念的选择。发明内容部分无意确定要求保护的主题的关键特征或基本特征,也不旨在限制要求保护的主题的范围。此外,本公开的***、方法和设备均具有若干创新方面,其中没有一个单独负责本文公开的期望属性。
本公开中描述的主题的一个创新方面可以被实施以监视分布在可编程器件上的各种电路和部件的操作条件。在一些实施例中,可编程器件可以包括多个可配置逻辑资源、根监视器、分布在可编程器件的各个位置的多个传感器、分布在可编程器件的各个位置的多个卫星监视器,以及被耦接到可配置逻辑资源、根监视器和多个卫星监视器中的每一个卫星监视器的网络互连***。传感器中的每一个传感器可以被配置为在各个位置中的相应位置处测量关联电路的操作条件,并且可以向卫星监视器中的相应一个卫星监视器提供指示所测量操作条件的模拟信号。在一些方面,操作条件可以包括关联电路的温度或电压电平中的至少一个。
每个卫星监视器可包括模数转换器(ADC),其具有用于接收来自一个或多个关联传感器的模拟信号的输入,且具有用于向网络互连***提供数字数据的输出。ADC可以将模拟信号转换成指示一个或多个关联传感器的操作条件的数字数据,且可以经由网络互连***将数字数据提供给根监视器。
根监视器可以包括被配置为生成参考电压的电路,且可以包括被配置为存储从多个卫星监视器接收的数字数据的存储器。在一些实施例中,根监视器可以包括针对温度变化补偿参考电压的带隙参考电路。此外,或可替换地,根监视器可以包括被配置为确定关联电路的测量操作条件是否在范围内的控制器。在一些方面,控制器还可以被配置为基于指示所测量的操作条件不在该范围内的确定来生成警报。
网络互连***可以被配置为将参考电压从根监视器分配到多个卫星监视器中的每一个卫星监视器,且可以被配置为将数字数据从多个卫星监视器中的每一个卫星监视器选择性地路由到根监视器。在一些实施例中,网络互连***可以包括被配置为将来自根监视器的参考电压分配到多个卫星监视器中的每一个卫星监视器的一个或多个模拟通道,且可以包括被配置为选择性地从卫星监视器路由到根监视器的一个或多个数字通道。在一些方面,数字数据可以作为可单独寻址的数据包通过网络互连***进行路由。在其他方面,数字数据可以作为非分组化数字信号通过网络互连***进行路由。
在一些实施例中,每个卫星监视器可以包括交换机,所述交换机被配置为基于控制信号将互连***分配的参考电压选择性地耦接到卫星监视器。控制信号可以由根监视器生成,且可以通过网络互连***(或通过其他合适的信号互连)分配给相应的卫星监视器。在一些方面,根监视器可以基于时序表选择性地断言控制信号,所述时序表仅允许卫星监视器中的一个卫星监视器在任何给定时间点及时访问来自网络互连***的分配的参考电压。
用于监视可编程器件的多个操作条件的示例***可以包括根监视器、分布在可编程器件上的多个传感器、分布在可编程器件上的多个卫星监视器、以及耦接到至少根监视器和多个卫星监视器中的每一个卫星监视器的网络互连***。根监视器可以包括被配置为生成可用于执行模数转换的参考电压的电路。在一些实施例中,根监视器可以包括针对温度变化补偿参考电压的带隙参考电路。此外,或可替换地,根监视器可以包括被配置为确定关联电路所测量操作条件是否在范围内的控制器。在一些方面,控制器还可以被配置为基于指示所测量的操作条件不在该范围内的确定来生成警报。
每个传感器可以被配置为生成指示关联电路的操作条件的模拟信号,并且每个卫星监视器可以被配置为将由一个或多个关联传感器生成的模拟信号转换成可以通过网络互连***被路由到根监视器的数字数据。
网络互连***可以包括被配置为将参考电压分配给多个卫星监视器中的每一个卫星监视器的一个或多个模拟通道,并且可以包括被配置为选择性地将来自多个卫星监视器中的每一个的数字数据路由到根监视器的一个或多个数字通道。在一些方面,数字数据可以作为可单独寻址的数据包通过网络互连***进行路由。在其他方面,数字数据可以作为非分组化数字信号通过网络互连***进行路由。
每个卫星监视器可以包括被配置为将模拟信号转换为数字数据的模数转换器(ADC)。在一些实施例中,每个卫星监视器可以包括交换机,所述交换机被配置为基于控制信号将互连***分配的参考电压选择性地耦接到卫星监视器。控制信号可以由根监视器生成,并且可以通过网络互连***(或通过其他合适的信号互连)分配给相应的卫星监视器。在一些方面,根监视器可以基于时序表选择性地断言控制信号,所述时序表仅允许卫星监视器中的一个卫星监视器在任何给定时间点及时访问来自网络互连***的分配的参考电压。
本文公开的示例方法可用于监视可编程器件的多个操作条件。所述方法可以包括使用与可编程器件内提供的根监视器相关联的电压发生器生成参考电压,并且使用被集成在可编程器件内的网络互连***的一个或多个模拟通道将参考电压分配给多个卫星监视器中的每一个卫星监视器。在一些实施例中,分配参考电压可以包括基于相应的控制信号将多个卫星监视器中的每一个卫星监视器选择性地耦接到网络互连***。控制信号可以由根监视器生成并通过网络互连***分配到多个卫星监视器。在一些方面,根监视器可以基于时序表选择性地断言控制信号,所述时序表仅允许卫星监视器中的一个卫星监视器在任何给定时间点及时访问来自网络互连***的分配的参考电压。
所述方法还可以包括使用多个传感器中的每一个传感器生成指示关联电路的操作条件的模拟信号,并且将模拟信号提供给多个卫星监视器中的相应的监视器。可以使用多个卫星监视器将模拟信号转换为数字数据,并且可以使用网络互连***的一个或多个数字通道将数字数据从多个卫星监视器选择性地路由到根监视器。在一些方面,数字数据可以作为可单独寻址的数据包通过网络互连***进行路由。在其他方面,数字数据可以作为非分组化数字信号通过网络互连***进行路由。
所述方法还可以包括确定关联电路的操作条件是否在一个范围内,并且基于该确定选择性地生成一个或多个警报。在一些实施例中,当关联电路中的至少一个关联电路的操作条件不在该范围内时可以生成警报,这可以指示关联电路中的至少一个关联电路在特定条件之外操作。
在本公开中描述的主题的一个创新方面可以被实现以监视分布在可编程器件上的各种电路和组件的操作条件。在一些实施例中,可编程器件可以包括可编程逻辑,该可编程逻辑包括多个可配置逻辑资源、根监视器、分布在可编程器件的各个位置的多个传感器、以及分布在可编程器件的各个位置的多个卫星监视器。每个传感器可以被配置为生成模拟信号,该模拟信号指示各种位置中的相应位置附近的一个或多个关联电路的被测量的操作条件,并且可以经由一条或多条本地信号线,将模拟信号提供给卫星监视器中的相关一个卫星监视器。在一些方面,操作条件可以包括关联电路的温度或电压电平中的至少一个。
根监视器可以包括被配置为生成与温度无关的参考电压的带隙电压发生器,并且可以包括用于存储从多个卫星监视器接收的数字数据的存储器。根监视器还可以包括控制器,该控制器被配置为确定所测量的关联电路的操作条件是否在一个范围内。在一些方面,控制器还可以被配置为基于指示所测量的操作条件不在该范围内的确定来生成警报。
每个卫星监视器可以包括被配置为生成本地参考电压的相对较小的本地电压源、模数转换器(ADC)、校准电路和校正电路。ADC可以包括用于接收本地参考电压的参考端,并且可以被配置为将由一个或多个相关联的传感器生成的模拟信号转换成指示所测量的操作条件的数字代码。校准电路可以被配置为生成指示数字代码中的误差的校正因子,并且校正电路可以被配置为基于校正因子校正由ADC生成的数字代码。
在一些实施例中,每个卫星监视器可以包括交换机,该交换机包括被耦接以接收与温度无关的参考电压的第一输入端、被耦接以接收由一个或多个相关联的传感器生成的模拟信号的第二输入端、被耦接以接收控制信号的控制端,以及被耦接到卫星监视器内的ADC的输入端的输出端。在校准操作期间,交换机可以提供与温度无关的参考电压作为输入信号给ADC,并且ADC可以对与温度无关的参考电压进行采样以生成参考码。校准电路可以基于由ADC生成的参考码和指示与温度无关的参考的预定数字码之间的差异来生成校正因子。在监视操作期间,交换机可以将来自传感器的模拟信号作为输入信号提供给ADC,ADC可以对来自一个或多个相关联的传感器的模拟信号进行采样以生成数字代码,并且校正电路可以使用校正因子来校正数字代码。
根监视器可以至少部分地基于用于校准多个卫星监视器的时序表来生成控制信号。在一些实施例中,时序表可以被配置为通过一次仅允许卫星监视器中的一个卫星监视器访问与温度无关的参考电压来顺序地启用多个卫星监视器中的每一个卫星监视器的校准。
在一些实施例中,可编程器件可以包括耦接到可配置逻辑资源、根监视器和多个卫星监视器中的每一个卫星监视器的片上网络(NoC)互连***。NoC互连***可以被配置为将控制信号从根监视器路由到多个卫星监视器中的每一个卫星监视器,并且可以被配置为将数字数据从多个卫星监视器中的每一个卫星监视器选择性地路由到根监视器。此外,或可替换地,可编程器件可以包括一个或多个模拟通道,该模拟通道被配置为将来自根监视器的与温度无关的参考电压分配到多个卫星监视器中的每一个卫星监视器。
本文公开的示例方法可用于监视分布在可编程器件的各个位置的多个电路的操作条件。在一些实施例中,该方法可以包括使用分布在可编程器件的各个位置的多个传感器中的相应的一个传感器来生成指示多个电路中的每一个电路的操作条件的模拟信号;将每个模拟信号提供给分布在可编程器件的各个位置的多个卫星监视器中的相应一个卫星监视器;在多个卫星监视器的每一个卫星监视器中使用本地电压源生成本地参考电压;在多个卫星监视器的每一个卫星监视器中,基于本地参考电压使用模数转换器(ADC)将多个模拟信号中的相应的一个模拟信号转换为数字代码;从根监视器向多个卫星监视器中的每一个卫星监视器分配与温度无关的参考电压;至少部分地基于分配的与温度无关的参考电压来校正由多个卫星监视器中的每一个卫星监视器中的ADC生成的数字代码;并且选择性地地将校正的数字代码从多个卫星监视器的每一个卫星监视器路由到根监视器。在一些实施例中,分配与温度无关的参考电压可以包括基于由根监视器生成的相应的多个控制信号,顺序地使多个卫星监视器中的每一个卫星监视器能够访问与温度无关的参考电压。
在一些实施例中,可以使用跨越可编程逻辑的片上网络(NoC)互连***将校正的数字代码从多个卫星监视器选择性地路由到根监视器,并且可以通过使用跨越可编程逻辑的一个或多个模拟通道将与温度无关的参考电压从根监视器分配到多个卫星监视器。在一些实施例中,校正的数字代码可以包括将与温度无关的参考电压作为输入信号提供给ADC;使用ADC将与温度无关的参考电压转换为参考代码;基于参考代码和指示与温度无关的参考电压的预定数字代码之间的差异生成校正因子;并根据校正因子调整数字代码。
本公开中描述的主题的一个创新方面可以被实现来监视分布在可编程器件上的各种电路和组件的操作条件。在一些实施例中,可编程器件可以包括可编程逻辑,该可编程逻辑包括多个可配置逻辑资源、根监视器、分布在可编程器件的各个位置的多个传感器、以及分布在可编程器件的各个位置的多个卫星监视器。每个传感器可以被配置为生成指示各种位置中的相应位置附近的一个或多个关联电路的测量操作条件的模拟信号,并且可以经由一条或多条本地信号线,将模拟信号提供给卫星监视器中的相应一个卫星监视器。在一些方面,操作条件可以包括关联电路的温度或电压电平中的至少一个。
根监视器可以包括被配置为生成与温度无关的参考电压的带隙电压发生器,并且可以包括用于存储从多个卫星监视器接收的数字数据的存储器。根监视器还可以包括被配置为确定所测量的关联电路的操作条件是否在一个范围内的控制器。在一些方面,控制器还可以被配置为基于指示所测量的操作条件不在该范围内的确定来生成警报。
每个卫星监视器可以包括电压存储器,该电压存储器被配置为基于由带隙电压发生器、模数转换器(ADC)、校准电路和校正电路生成的与温度无关的参考电压来存储本地参考电压。ADC可以包括用于接收本地参考电压的参考端,并且可以被配置为将由一个或多个关联传感器生成的模拟信号转换成指示所测量的操作条件的数字代码。校准电路可以被配置为生成指示数字代码中的误差的校正因子,并且校正电路可以被配置为基于校正因子校正由ADC生成的数字代码。
在一些实施例中,每个卫星监视器可以包括第一交换机和第二交换机。第一交换机可包括被耦接以接收与温度无关的参考电压的第一输入端、被耦接以接收由一个或多个关联传感器生成的模拟信号的第二输入端、被耦接以接收控制信号的控制端,以及被耦接到卫星监视器内的ADC的输入端的输出端。第二交换机可以包括被耦接以接收与温度无关的参考电压的输入端、被耦接以接收控制信号的控制端、以及被耦接到电压存储器的输出端。
在校准操作期间,第一交换机可以将与温度无关的参考电压作为输入信号提供给ADC,第二交换机可以将电压存储器与与温度无关的参考电压隔离,并且ADC可以对与温度无关的参考电压进行采样以生成参考代码。校准电路可以基于由ADC生成的参考代码以及指示与温度无关的参考的预定数字代码之间的差异来生成校正因子。在监视操作期间,第一交换机可以将来自传感器的模拟信号作为输入信号提供给ADC,第二交换机可以向电压存储器提供与温度无关的参考电压,并且ADC可以对来自一个或多个关联传感器的模拟信号进行采样,以生成数字代码,并且校正电路可以使用校正因子来校正数字代码。
根监视器可以至少部分地基于用于校准多个卫星监视器的时序表来生成控制信号。在一些实施例中,时序表可以被配置为通过一次仅允许卫星监视器中的一个卫星监视器访问与温度无关的参考电压来顺序地启用多个卫星监视器中的每一个卫星监视器的校准。
在一些实现方式中,可编程器件可以包括被耦接到可配置逻辑资源、根监视器和多个卫星监视器中的每一个卫星监视器的片上网络(NoC)互连***。NoC互连***可以被配置为将控制信号从根监视器路由到多个卫星监视器中的每一个卫星监视器,并且可以被配置为将数字数据从多个卫星监视器中的每一个卫星监视器选择性地路由到根监视器。此外,或可替换地,可编程器件可以包括一个或多个模拟通道,该通道被配置为将来自根监视器的、与温度无关的参考电压分配到多个卫星监视器中的每一个卫星监视器。
本文公开的示例方法可用于监视分布在可编程器件的各个位置的多个电路的操作条件。在一些实施例中,所述方法可以包括使用分布在可编程器件的各个位置的多个传感器中的相应的一个传感器来生成指示多个电路中的每一个电路的操作条件的模拟信号;将每个模拟信号提供给分布在可编程器件的各个位置的多个卫星监视器中的相应一个卫星监视器;在多个卫星监视器的每一个卫星监视器中,基于与温度无关的参考电压存储本地参考电压;在多个卫星监视器的每一个卫星监视器中,基于本地参考电压使用模数转换器(ADC)将多个模拟信号中的相应的一个模拟信号转换为数字代码;从根监视器向多个卫星监视器中的每一个卫星监视器分配与温度无关的参考电压;至少部分地基于分配的与温度无关参考电压来校正由多个卫星监视器中的每一个卫星监视器中的ADC生成的数字代码;并且选择性地将校正的数字代码从多个卫星监视器的每一个卫星监视器路由到根监视器。在一些实施例中,电压存储器可以是电容器,并且与温度无关的参考电压相比,本地参考电压可能相对不精确。在一些实施例中,分配与温度无关的参考电压可以包括基于由根监视器生成的相应的多个控制信号,顺序地使得多个卫星监视器中的每一个卫星监视器能够访问与温度无关的参考电压。
可以使用跨越可编程逻辑的片上网络(NoC)互连***选择性地将校正的数字代码从多个卫星监视器路由到根监视器,并且可以通过使用跨越可编程逻辑的一个或多个模拟通道,将与温度无关的参考电压从根监视器分配到多个卫星监视器。在一些实施例中,校正数字代码可以包括将与温度无关的参考电压作为输入信号提供给ADC;使用ADC将与温度无关的参考电压转换为参考代码;基于参考代码和指示与温度无关的参考电压的预定数字代码之间的差异生成校正因子;并根据校正因子调整数字代码。
附图说明
示例性实施例通过示例的方式被示出,并且不旨在受附图的图形的限制。在整个附图和说明书中,相同的附图标记表示相同的元件。应当指出,以下图形的相对尺寸可能未按比例绘制。
图1是可以实现本文公开的各个方面的示例性可编程器件的框图。
图2示出了根据一些实施例的图1的可编程器件的一部分的功能框图。
图3示出了根据一些实施例的示例性可编程结构的框图。
图4示出了根据一些实施例的监视***的功能框图。
图5示出了根据一些实施例的示例性根监视器的框图。
图6示出了根据一些实施例的示例性卫星监视器的框图。
图7是根据一些实施例的描绘用于监视可编程器件的多个操作条件的示例性操作的说明性流程图。
图8是可以实现本文公开的各个方面的示例性可编程器件的框图。
图9示出了根据一些实施例的图8的可编程器件的一部分的功能框图。
图10示出了根据一些实施例的示例性可编程结构的框图。
图11示出了根据一些实施例的监视***的功能框图。
图12示出了根据一些实施例的示例性根监视器的框图。
图13示出了根据一些实施例的示例性卫星监视器的框图。
图14是根据一些实施例描绘的用于监视可编程器件的多个操作条件的示例性操作的说明性流程图。
图15是根据一些实施例描绘的用于校正数字代码的示例性操作的说明性流程图。
图16示出了根据一些实施例的示例性卫星监视器的框图。
具体实施方式
本公开中描述的主题的实施例可用于监视可编程器件的多个操作条件。操作条件可以是装置的操作特性或参数的任何合适的量度,包括例如在可编程器件内提供的电路或组件的温度、可编程器件外部的电路或装置的温度、电源电压等。根据本文公开的一些方面,可以在可编程器件中实现监视***,该可编程器件包括可编程逻辑、诸如处理器和DSP那样的专用电路、以及可以通过使用可单独寻址的数据包在可编程逻辑、专用电路、和可编程器件的其他电路或组件之间路由信息的网络互连***。
监视***可以包括根监视器、分布在可编程器件的各个位置的多个传感器、以及分布在可编程器件的各个位置的多个卫星监视器。每个传感器可以生成指示关联电路的一个或多个操作条件的模拟信号,并且可以将模拟信号提供给多个卫星监视器中的相应的一个卫星监视器。每个卫星监视器可以包括用于将模拟信号转换成数字数据的ADC,并且网络互连***可以将数字数据从每个卫星监视器路由到根监视器。在一些实施例中,例如,每个卫星监视器可以位于相应传感器的附近,使得由相应传感器生成的模拟信号不会跨过可编程器件路由到根监视器而转换为数字数据,而是通过本地信号线将其路由相对较短的距离到相应的卫星监视器,从而转换为数字数据。
在其他实施例中,卫星监视器生成的数字数据可以通过使用器件内提供的其他合适的路由资源被路由到根监视器,路由资源包括(但不限于)时钟分配网络、可编程互连结构和/或器件中每个可编程逻辑贴片内提供的路由资源。
根监视器可以通过网络互连***接收每个卫星监视器生成的数字数据,并且可以分析数字数据以确定被监视的一个或多个电路是否不在指定的操作范围内操作。在一些实施例中,根监视器可以生成调整的和温度补偿的参考电压,并且网络互连***可以将调整的和温度补偿的参考电压分配给位于整个器件中的每个卫星监视器。
用于监视分布在可编程器件上的各种电路的操作条件的传统***通常包括中央***监视器和位于要监视的电路附近的多个传感器。每个传感器生成指示关联电路操作条件的模拟信号,并且模拟信号从每个传感器路由到***监视器以转换为数字数据。传感器通常分布在整个器件的各个位置,因此由至少一些传感器生成的模拟信号可以需要穿过器件的大部分路由到达***监视器。因为指示操作条件的模拟信号可能特别容易受到噪声和干扰的影响,所以一些可编程器件可以使用具有屏蔽特性的专用金属层路由资源来将这些模拟信号从各个传感器路由到***监视器以转换为数字数据。
尽管此类专用金属层路由资源的屏蔽特性可以减少信号衰减和数据丢失,但专用金属层路由资源价格昂贵且会消耗大量的器件的金属层。此外,因为可编程逻辑通常被实现为排列在多个行或列中的多个可重复贴片,被嵌入在每个可重复贴片中的信号路由资源通常是基于最坏情况的路由场景(例如,对于被放置在器件密度最大的位置的贴片)。因此,许多可重复贴片过度配备了信号路由资源,这可能导致未使用的路由资源和/或可能限制可编程器件的可扩展性。
本文公开中描述的主题的特定实施例可以被实施为实现以下潜在优势中的一个或多个优势。通过将具有模数转换能力的多个卫星监视器部署在整个可编程器件中靠近监视各种电路的操作条件的传感器的位置,本文公开的监视***可以通过使用本地卫星监视器将传感器生成的模拟信号转换为数字数据,然后将来自整个器件的各个位置的数字数据路由到根监视器。因此,模拟信号不会在器件的大部分区域进行路由,然后转换为数字数据,而是在相对较短的距离被传输到最近的卫星监视器以转换为数字数据,然后使用网络互连***被路由到根监视器。在一些方面,卫星监视器生成的数字数据可以作为可单独寻址的数据包路由到根监视器。在其他方面,卫星监视器生成的数字数据可以作为非分组数据路由到根监视器。通过使用位于传感器附近的卫星监视器将模拟信号转换为数字数据,而不是在根监视器中执行模数转换,本文公开的监视***不需要金属层路由资源,反过来可以降低成本同时增加可编程器件的可扩展性。此外,在本地(例如,在传感器附近)执行模数转换并将结果数字数据从卫星监视器路由到根监视器可以允许根监视器收集和分析更多传感器数据(与将模拟信号从位于整个器件中的各个传感器路由到***监视器内提供的ADC的现有技术相比),例如,因为分布在整个可编程器件中的ADC可以并行(例如,同时)执行模数转换。
在以下描述中,阐述了许多特定细节,例如特定组件、电路和过程的示例,以提供对本文的透彻理解。如本文所用,术语“耦接”意指直接耦接到或通过一个或多个居间组件或电路耦接。此外,在以下描述中且出于解释的目的,阐述了特定术语和/或细节以对示例性实施例提供透彻理解。然而,对于本领域的技术人员而言这些具体细节是显而易见的且可能不是实践示例性实施例所必需的。在其他情况下,公知的电路和器件以框图形式示出,以避免与本文混淆。本文描述的各种总线提供的任何信号可以与其他信号进行时间复用,并通过一个或多个公共总线提供。此外,电路元件或软件块之间的互连可以被显示为总线或单信号线。每条总线可以替换为单条信号线,并且每条单信号线可以替换为总线,并且单线或总线可以代表用于组件之间通信的无数物理或逻辑机制中的任何一个或多个。示例性实施例不应被解释为限于本文描述的特定示例,而是将所附权利要求定义的所有实施例包括在它们的范围内。
图1示出了可以实现本文公开的各个方面的示例性可编程器件100的框图。器件100可以包括多个子***,例如可编程逻辑(PL)110、网络互连***120、处理和管理资源(PMR)130、CCIX和PCIe模块(CPM)140、收发器块150、输入/输出(I/O)块160、存储器控制器170、配置逻辑180、根监视器190、多个卫星监视器192(1)-192(19)和多个传感器(S)。在一个或多个实施例中,器件100可以包括图1中未示出的其他子***或组件。此外,虽然为了简单起见未示出,但是器件100可以被耦接到多个***组件(例如,高性能存储器设备)和/或其他器件或芯片(例如,另一个可编程器件)。
PL 110包括可以被配置或编程以执行多种不同的用户定义功能或操作的可编程电路。例如,如图1所示,在一些实施例中,PL 110可以包括多个可编程电路块,其被实施为在可编程器件100中按列布置的可重复贴片(tile)。可编程电路块也可以称为可编程结构子区域(FSR),每个可编程电路块可以包括可编程互连电路和可编程逻辑电路。在一些实施例中,可编程电路块可以包括(但不限于)可配置逻辑块(CLB)、随机存取存储器块(BRAM)、数字信号处理块(DSP)、时钟管理器、延迟锁环(DLL)、和/或可以被编程或配置以实现用户指定的电路设计的其他逻辑或电路。
每个可编程电路块或贴片内的可编程互连电路可以包括多条不同长度的互连线,这些互连线通过可编程互连点(PIP)互连。互连线可以被配置为提供特定可编程贴片内的组件之间、不同可编程贴片内的组件之间以及可编程贴片的组件与其他子***或器件之间的连接性。可编程互连电路和可编程电路块可以通过将配置数据加载到配置寄存器中来编程或配置,配置寄存器定义了可编程元件如何被配置和操作以实现相应的用户指定的电路设计。在一些方面,多个可编程电路块中的每一个可编程电路块内的可编程互连电路可以形成可编程互连结构的一部分(为了简单起见未示出),其为器件100提供块级和/或器件级信号路由资源。
网络互连***120可以作为器件100的一部分制造,其可以包括连接在一起的任意数量的水平段和垂直段(和/或对角线段)以实现高速、高带宽可编程信号路由网络,该可编程信号路由网络可以选择性地彼此互连各种器件资源(例如,PL 110、PMR 130、CPM 140、收发器块150、I/O块160、存储器控制器170、配置逻辑180、根监视器190、和卫星监视器192(1)–192(19))并且与为了简单起见未显示的其他组件互连。对于图1的示例性实施例,网络互连***120被示为包括两个水平段和四个垂直段。跨越器件100的宽度延伸的第一水平段沿着器件100的底部边界布置,以及跨越器件100的宽度延伸的第二水平段沿着器件100的顶部边界布置。四个垂直段跨越器件100的高度延伸,并且连接到网络互连***120的第一水平段和第二水平段。在一些方面,水平段可以无需任何中间电路或接口允许网络互连***120与I/O块160和存储器控制器170交换信号和数据,以及垂直段可以无需任何中间电路或接口允许网络互连***120与收发器块150、处理和管理资源(PMR)130和CPM 140交换信号和数据。在其他示例性实施例中,网络互连***120可以包括其他数量的水平段和垂直段,反过来它们又可以占据器件100的其他位置。因此,图1中描绘的示例性网络互连***120的特定布局、形状、尺寸、方向和其他物理特性仅仅是本文公开的各种实施例的说明。
网络互连***120可以被配置为在各种器件资源之间传输作为数据包的信息,这些数据包可以被单独寻址并从源位置路由到目的地位置。在一些方面,在网络互连***120上传输的数据包可以是动态可寻址的。在一个或多个实施例中,网络互连***120可以采用合适的数据包协议(例如,令牌环协议)和/或使用存储器映射地址来将数据包从任意数量的源位置路由到任意数量的目的地位置。数据包可以包括报头信息(例如源地址、目的地地址和协议信息),网络互连***120可以使用这些报头信息将数据包路由到它们所指示的目的地。
在一些实施例中,数据包可以包括服务质量(QoS)信息,其允许通过网络互连***120的数据包传输被优先化,例如基于分配的优先级、业务类型、业务流和/或其他标准。在这样的实施例中,网络互连***120可以包括可以确定接收到的数据包的优先级或业务类别的优先级逻辑,并在将数据包排队传输时使用所确定的优先级或业务类别。作为可单独寻址的数据包通过在各种器件资源之间传输信息,网络互连***120可以提供各种器件资源之间的连接性,而不管特定用户指定的电路设计,从而显著增加器件100的信号路由能力(与传统的可编程器件相比)。例如,虽然器件100的可编程互连结构和其他基于贴片的信号路由结构通常被配置为提供指定电路之间的点对点信号连接,但网络互连***120可以同时将多个数据包中的每一个数据包从器件100上的任何源地址路由到任何目的地地址,从而为器件100提供***级连接。
尽管为简单起见未示出,但网络互连***120还可包括调度器和判优逻辑判优逻辑。调度器可用于使用网络互连***120的一个或多个物理通道和/或虚拟通道来调度从源地址到目的地地址的数据包。判优逻辑可用于对网络互连的访问***120判优,例如,最小化冲突和其他与竞争相关的延迟。对于使用堆栈式硅晶互连技术(SSI)技术制造器件100的实施例,网络互连***120的列部分可以提供相邻超级逻辑区域(SLR)之间的信号连接,例如,以允许配置数据在主SLR与从SLR之间路由。
网络互连***120可以通过将配置数据加载到相应的配置寄存器中来编程,该配置寄存器定义了在网络互连***120内的或与网络互连***120相关联的各种交换机、接口和路由器如何被配置为实现特定的用户指定的电路设计。在一些实施例中,网络互连***120可以包括多个节点、端口或其他接口(为简单起见未示出),其为网络互连***120与器件100的各种资源、子***、电路和其他组件之间提供选择性连接。例如,网络互连***120可以允许器件100的多个子***共享对片上存储器(OCM)资源、处理资源、I/O资源和/或收发器块150的访问。网络互连***120的节点、端口或其他接口可以被编程以通过将配置数据加载到多个关联的配置寄存器中来实现特定的连通性配置文件。
通过选择性地互连可能需要和使用大量数据的器件100的各种资源、子***、电路、以及其他组件,网络互连***120可以减轻本地互连资源上的信号路由负担,从而提高器件性能并允许比其他可编程器件具有更好的配置灵活性。此外,通过提供具有比器件级和块级可编程互连更高的数据传输率和更低的误差率的高性能信号路由网络,网络互连***120可以增加器件100的处理能力和数据吞吐量(与其他可编程器件相比)。
处理和管理资源(PMR)130可以为器件100提供专用的数据处理能力和平台管理资源。PMR 130可以包括处理***(PS)和平台管理控制器(PMC),如参照图2更详细的描述。在一些实施例中,PS可以包括多个处理器内核、高速缓存、存储控制器和被配置为直接耦接到器件100的I/O引脚的单向和/或双向接口。在一些方面,每个处理器核心可包括中央处理单元(CPU)或可用于顺序数据处理的标量处理器。PMC可以用于基于外部存储器提供的配置数据(例如,配置比特流)来启动和配置器件100。PMC还可用于配置PL 110并控制器件100的各种加密、认证、根监视和调试能力。
CCIX和PCIe模块(CPM)140可以包括多个接口,这些接口提供器件100和多个***组件(例如,外部器件或芯片)之间的连接性。在一些实施例中,CPM 140可以包括多个***高速互连(PCIe)接口和用于加速器的高速缓存一致互连(CCIX)接口,它们通过收发器块150提供与其他器件或芯片的连接。在一些方面,PCIe和CCIX接口可以被实现为收发器块150的一部分。CPM 140的一个示例性实施例是由图2描述的。
收发器块150可以提供与连接到器件100的一个或多个其他器件或芯片(为简单起见未示出)的信号连接。收发器块150可以包括多个不同的串行收发器,例如,千兆串行收发器(GT)。在一些实施例中,收发器块150可以被实现为沿着器件100的右侧和左侧的不同位置定位的多个可重复贴片,如图1所示。在其他实施例中,收发器块150可以位于器件100的其他合适的位置。在一个或多个实施例中,每个收发器块150可以耦接到一个或多个相关联的电压源(为简单起见未示出)。在一些方面,例如,在给定的收发器块150内的每组收发器电路可以包括或可以耦接到相应的电压源,使得每组收发器电路可以使用单独的电压源供电。
I/O块160耦接到器件的I/O引脚(为简单起见未示出),并且可以为器件100提供I/O能力。例如,I/O块160可以接收来自一个或多个其他器件的数据,并且可以将接收到的数据驱动到器件100中的多个目的地。I/O块160还可以从器件100中的多个源接收数据,并且可以通过器件的I/O引脚将接收到的数据驱动到一个或多个其他器件。在一些实施例中,I/O块160可以被实现为可重复贴片。器件100可以包括任何合适数量的I/O块160,并且因此图1中描绘的示例性实施例仅仅是说明性的。
I/O块160可以包括任何数量的合适的I/O电路或器件。在一些实施例中,I/O块160可以包括极高性能I/O(XPIO)电路、高密度I/O(HDIO)电路、和多路复用I/O(MIO)电路。XPIO电路可以针对高性能通信进行优化,例如向存储器控制器170提供高速、低延迟的接口。在一个或多个实施例中,XPIO电路可以包括在不使用存储控制器170的情况下可以被器件100的其他子***访问的专用的存储器资源。HDIO电路可以提供支持较低速度和较高电压I/O能力的划算的解决方案(与XPIO电路相比)。MIO电路可提供可由各种子***(例如,PL 110、PMR 130和CPM 140)访问的通用I/O资源。
存储控制器170可用于控制对器件100内部和/或外部提供的各种存储器资源的访问。在一些实施例中,存储控制器170可用于访问驻留在一个或多个I/O块160中的专用存储器。存储控制器170可以包括双倍数据速率v4(DDR4)存储控制器、高带宽存储(HBM)控制器和/或其他合适的存储控制器。在一个或多个实施例中,一些或所有存储控制器170可以包括具有可以提高存储器访问效率的事务重新排序能力的调度器。此外,或可替换地,实现存储控制器170的可重复贴片可以彼此不同。例如,第一数量的存储控制器170可以实现DDR4存储控制器,第二数量的存储控制器170可以实现LPDDR4存储控制器,并且第三数量的存储控制器170可以实现HBM控制器。
器件100可以包括任意数量的I/O块160和存储控制器170,因此,图1中所描绘的I/O块160和存储控制器170的数量和位置仅仅是说明性的。在一些实施例中,第一行I/O块160和存储控制器170可以被实现为沿着器件100的底部边缘定位的可重复贴片,并且第二行I/O块160和存储控制器170可以被实现作为沿着器件100的顶部边缘定位的可重复贴片。在一些实施例中,I/O块160和存储控制器170可以相对于彼此交替定位或分布,例如,如图1的示例中所描绘的。在其他实施例中,一对I/O块160和存储控制器170可以在同一个的可重复贴片内实施。
在一些实施例中,沿着器件100底部定位的第一行I/O块160和存储控制器170可以被耦接到网络互连***120的第一水平段,以及沿着器件100顶部定位的第二行I/O块160和存储控制器170可以被耦接到网络互连***120的第二水平段。以这种方式,网络互连***120可以提供器件100的可编程资源和它的I/O引脚之间的连接(为简单起见未显示)。
在一些实施例中,器件100可以包括一列或多列连接结构(为简单起见未示出),该连接结构垂直延伸穿过器件100的高度并且定位在收发器块150附近。连接结构可以包括多个硬连线电路包括(但不限于)USB控制器、以太网MAC、多速率(MR)以太网MAC(MRMAC)、PCIe控制器、CCIX控制器、和/或提供收发器块150和PL 110之间的连接的其他组件。
配置逻辑180可用于从外部存储器加载配置数据(例如,配置位流)并将配置数据的部分(例如帧、字、字节和/或位)路由到定义如何配置器件100的各种可编程资源的适合的配置寄存器。配置逻辑180还可用于部分重新配置器件100和/或内部重新配置器件100的一个或多个部分。在一些实施例中,配置逻辑180可包括配置寄存器、边界扫描测试电路(例如,TAP控制器电路)、用于加密从器件100读出的配置数据的位流的加密电路、以及用于解密加载到器件100中的配置数据的位流的解密电路。
虽然为了简单起见未示出,但是器件100可以包括可编程结构与I/O块160的每一行之间的接口以及位于器件100的边界上的存储控制器170。该接口,在本文中可以被称为作为边界逻辑接口(BLI),可以允许大型和复杂的外部器件(例如,HBM)在器件100的可编程结构中出现更小的块(例如,CLB)。在一些实施例中,BLI可以在可编程结构的顶部和底部边界或边缘排列成行。以此方式,BLI可用于在列状逻辑结构(例如,CLB列或DSP列)和I/O资源行(例如,I/O块160)之间路由信号。
根据本文公开的各个方面,例如,可编程器件100可以包括监视***,该监视***可以监视遍及可编程器件100提供的多个选定电路的一个或多个操作条件,以确保选定电路运行在规定的操作参数范围内。本文公开的监测***可以测量选定电路的任何合适的操作条件,包括例如温度、电压水平和电流水平。如本文所用,术语“选定电路”可以指可被选择用于监视一个或多个操作条件以确保器件100的正确操作的任何电路、组件、电源电压、结构或装置。在一些实施例中,当一个或多个选定电路的被测量的运行条件未落入指定的运行条件范围时,监视***可以生成单个警报(或多个警报)。在一些方面,警报可用于使器件100的多个电路或组件断电。在其他方面,警报可用于使整个器件100断电。
监视***可以包括(或可以由以下部件形成):根监视器190、卫星监视器192(1)-192(19)、传感器(S)和网络互连***120的至少一部分。监视器190耦接到网络互连***120,并且可以包括被配置为生成参考电压的电路。由根监视器190生成的参考电压可以是适合模数转换的修整的和温度补偿的电压。在一些实施例中,根监视器190可以位于器件100的处理器***内,例如,如图1所示。在其他实施例中,根监视器190可以位于器件100中的其他合适位置。
参考电压可以通过网络互连***120分配到每个卫星监视器192(1)-192(19),从而消除了在器件100的各个位置放置多个电压发生器以提供参考电压到每个卫星监视器192(1)–192(19)的需要。在一些实施例中,网络互连***120可以包括将来自根监视器190的参考电压分配到卫星监视器192(1)-192(19)中的每一个卫星监视器的一个或多个模拟通道,还可以包括选择性地将数字数据从卫星监视器192(1)-192(19)路由到根监视器190的一个或多个数字通道。
传感器(S)可以是任何合适的传感电路或装置,其可以生成指示至少一个选定电路的一种或多种操作条件的电信号,并且可以包括(但不限于)温度传感器、电压传感器、和/或电流传感器。在一些实施例中,每个传感器(S)可以测量一个或多个选定电路的操作条件,并且可以向卫星监视器192(1)-192(19)中的相应一个卫星监视器提供指示所测量的操作条件的模拟信号。
卫星监视器192(1)-192(19)可以能将传感器(S)生成的模拟信号转换为指示选定电路的被测量的操作条件的数字数据的任何合适的电路或器件。虽然为简单起见未在图1中示出,在一些实施例中,卫星监视器192(1)-192(19)中的每一个卫星监视器可至少包括模数转换器(ADC)和存储器。ADC可以是可将模拟信号转换为数字数据的任何合适的电路,其可以包括用于接收由多个相关传感器(S)生成的模拟信号的一个或多个输入端;用于提供指示由相关传感器(S)测量的操作条件的一个或多个输出端;和用于接收本地参考电压的一个或多个参考端。在一些实施例中,本地参考电压可以至少部分地基于由根监视器生成的参考电压,并且由网络互连***120分配给卫星监视器192(1)-192(19)。存储器可以存储ADC生成的数字数据,并且可以将数字数据提供给网络互连***120以路由到根监视器。
例如,传感器(S)和卫星监视器192(1)-192(19)可以分布在整个可编程器件100中并位于选定电路附近的各个位置,以便指示选定电路的操作条件的模拟信号可以在各个分布位置被转换为数字信号(而不是传输到中央集线器,然后再转换为数字数据)。在一些实施例中,例如,每个传感器(S)可以位于相应的选定电路的附近,使得传感器(S)和相应的选定电路可以使用本地信号线耦接在一起。类似地,例如,卫星监视器192(1)-192(19)中的每一个卫星监视器可以位于一个或多个相关联的传感器(S)附近,使得卫星监视器192和一个或多个相关联的传感器(S)可以通过使用本地信号线耦接在一起。在一些方面,如本文所使用的术语“附近”可以是指示操作条件的模拟信号通过相对较短的本地信号线以最小的信号劣化被传输的距离。
例如,对于图1的例子,位于收发器块150内的第一组传感器(S)可以放置在与收发器块150相关联的电压源(为简单起见未示出)的相应的附近位置,以及第一组卫星监视器192(1)–192(6)可以放置在第一组传感器(S)的附近位置,这样第一组传感器(S)中的每一个传感器都可以通过相对较短的本地信号线被耦接到相应的电源电压和相应的卫星监视器190。在一些实施例中,第一组传感器(S)中的每一个传感器可以被配置为生成指示相应电压电源的一个或多个操作条件的模拟信号,以及第一组卫星监视器192(1)-192(6)可以被配置为将相关传感器(S)生成的模拟信号转换成数字数据,该数字数据可以通过网络互连***120传输到根监视器190。
例如,位于PL 110内的第二组传感器(S)可以位于PL 110内或与PL 110相关联的多个相应选定电路(为简单起见未示出)的附近,以及第二组卫星监视器192(7)–192(19)可以位于第二组传感器(S)的附近,以便第二组传感器(S)中的每一个传感器都可以通过相对较短的本地信号线被耦接到相应的选定电路和第二组卫星监视器192(7)–192(19)中相应的一个卫星监视器。在一些实施例中,第二组传感器(S)中的每一个传感器可以被配置为生成指示相应选定电路的一个或多个操作条件的模拟信号,以及第二组卫星监视器192(7)-192(19)中的每一个卫星监视器可以被配置为将关联传感器(S)生成的模拟信号转换成数字数据,该数字数据可以通过网络互连***120传输到根监视器190。
卫星监视器192(1)-192(19)中的每一个卫星监视器可以通过本地信号线耦接到任何合适数量的传感器(S)。例如,卫星监视器192(1)可以耦接到位于收发器块150内的单个传感器(S),并且可以生成指示与收发器块150相关联的相应电压电源的一个或多个操作条件的数字信号。又例如,卫星监视器192(16)可以耦接到位于PL 110内的两个传感器(S),并且可以生成指示与位于PL 110内的两个传感器(S)相关联的选定电路的一个或多个操作条件的数字信号。又例如,卫星监视器192(17)可以耦接到位于PL 110内的四个传感器(S),并且可以生成指示与位于PL 110内的四个传感器(S)相关联的选定电路的一个或多个操作条件的数字信号。而且,虽然图1显示的包括18个卫星监视器192(1)-192(19),但可编程器件100可以包括位于可编程器件100的其他合适位置的其他数量的卫星监视器192。
如上所述,卫星监视器192(1)-192(19)可以放置得足够靠近传感器(S),使得每个传感器(S)可以使用相对短的本地信号线被耦接到相应的卫星监视器192,而不是使用中央***监视器在相对较长的距离上传输模拟信号以转换为数字数据。以这种方式,本文公开的监视***的实现可以消除为了将这些模拟信号从分布在整个器件100中的各个位置路由到中央监视器以转换为数字数据而对于金属层信号路由资源的需要,这可以降低器件复杂性和成本,同时也增加了监视***的可扩展性。此外,通过使用分布在整个器件100中的多个卫星监视器192(1)-192(19)来执行模拟传感器数据的模数转换,然后将数字数据路由到根监视器190进行分析,可同时测量的传感器数量不受卫星监视器内提供的ADC输入通道数量的限制。相比之下,通过将模拟传感器数据路由到中央***监视器以转换为数字数据的传统解决方案可以同时测量的传感器数量受到与***监视器相关联的ADC的输入通道数量的限制。因此,通过经由卫星监视器192(1)-192(19)在整个器件100中分配模拟传感器数据到数字信息的转换,可以由本文公开的监测***同时测量的传感器的数量是基于数量卫星监视器的数量192(1)–192(19),而不是任何特定ADC的输入通道的数量。结果,本文公开的监测***可以同时测量比上述传统解决方案多得多的传感器。
根监视器190可以通过网络互连***120接收从卫星监视器192(1)-192(19)中的每一个卫星监视器所路由的数字数据,并且可以处理接收的数字数据以确定由传感器监视的选定电路的操作条件。在一些实施例中,根监视器190可以将测量的操作条件与一个或多个参考值进行比较以确定选定电路中的每一个电路是否在其指定的操作范围内操作。
需要注意的是,图1旨在仅说明可编程器件100的一个示例架构。例如,图1中所示的列(或行)中的逻辑块的数量、列(或行)的相对宽度、列(或行)的数量和顺序、列(或行)中包含的逻辑块的类型、逻辑块的相对大小以及其他体系结构方面仅仅是说明在本文公开的本发明主题的各种实施例。
图2示出了根据一些实施例的可编程器件200的功能框图,该可编程器件200可以是图1的可编程器件100的一个示例。器件200被示为包括收发器块150、可编程逻辑(PL)210、CPM 220、处理***(PS)230、平台管理控制器(PMC)240、和I/O块+存储控制器260。PL210可以是图1的PL 110的一种实施例,它可以与收发器块150、CPM 220、PMC 240和网络互连***120相邻并直接连接。I/O块+存储控制器260可以是图1的I/O块160和存储控制器170的一种实施例,其可以被实现为沿可编程器件200的底部边缘布置的多个可重复的贴片。尽管图2中为了简明起见未示出,但I/O块+存储控制器260也可以被实现为沿着可编程器件200的顶部边缘布置的多个可重复贴片。另外或可替换地,I/O块+存储控制器260可以被实现为沿着可编程器件200的右边缘和左边缘布置的多个可重复贴片。
CPM 220可以是图1的CPM 140的一种实施例,其可以为许多不同的总线标准提供接口能力。在一些实施例中,CPM 220可以包括***高速互联(PCIe)接口222、直接存储器访问(DMA)电路224、和用于加速器的高速缓存一致互连(CCIX)接口226。可以使用PCIe接口222根据PCI协议经由收发器块150在PS 230和一个或多个其他器件或芯片之间交换数据。类似地,CCIX接口226可用于根据CCIX协议经由收发器块150在PS 230和一个或多个其他器件或芯片之间交换数据。
PS 230可以为器件200提供专用的数据处理能力,并被示为包括应用处理单元(APU)232、实时处理单元(RPU)234、高速缓存存储器236、和***级芯片(SoC)接口238。虽然为了简单起见未示出,但PS 230还可以包括用于通信标准的***器件(例如以太网和USB2.0接口)和各种控制器(例如,SPI、I2C、UART和CAN-FD控制器)。APU 232和RPU 234每个可包括可以为器件200提供专用标量处理能力的一个或多个处理核心(例如,CPU)。在一些方面,PS 230可以通过可编程互连结构和网络互连***120选择性地连接到器件200的其他子***。
在一些实施例中,APU 232可以包括支持硬件虚拟化的多核ARM处理器,并且可以具有内置的中断控制器和监控控制单元。中断控制器可以支持虚拟中断,并且可以使用监控控制单元来维持由APU 232和RPU 234使用和/或共享的一个或多个高速缓存之间的一致性。APU 232可以通过使用AXI一致性扩展(ACE)端口与PS 230的其他组件通信,并且可以通过使用加速器一致性端口(ACP)与PL210通信。在一些实施例中,RPU 234可以包括支持实时数据处理的多核ARM处理器,可以包括用于实时单周期访问的紧耦合存储器(TCM)接口,并且可以具有专用中断控制器和浮点单元。RPU 234可以通过使用AXI端口与PS 230的其他组件和/或与PL 210通信。
高速缓存存储器236可以是允许APU 232和RPU 234共享访问的任何合适的高速缓存。SoC接口238可以提供PS 230和网络互连***120的各种资源之间的连接。
PMC 240可以包括图1的安全电路242、启动和重新配置电路244、模拟电路246和根监视器190。安全电路242可以提供数据加密/解密能力和其他安全特征。启动和重新配置电路244可以提供支持非安全和安全启动的多阶段启动过程。模拟电路246可以包括任何合适的模拟电路组件。此外,虽然为简单起见,未在图2中示出,PMC 240可以包括测试和调试资源(例如,JTAG电路)、外部闪存接口和其他组件或电路。在一些实施例中,PMC240可以允许使用部分重新配置操作来重新配置PL 210的一部分。例如,用于PL 210的一部分的新配置比特流可以通过主要或次要启动接口(例如,PCIe或以太网)从PS 230加载,然后存储在与需要重新配置的PL 210的一部分相关联的配置寄存器中。允许对PL 210的一个或多个部分进行部分重新配置的能力可以允许用户更快地重新配置器件200,以反映对用户指定的电路设计的改变或更新(例如,与其他可编程器件相比)。
图3示出了根据一些实施例的示例性可编程结构300的框图。在一些实施例中,可编程结构300可以是图1的PL 110,图2的PL 210,或二者。可编程结构300被示为包括可以排列成列(或行)的多个不同的可编程电路块或贴片。可编程电路块可以包括(但不限于)以柱状架构布置的可编程互连元件(INT)310、可配置逻辑元件(CLE)320、DSP 330、和块RAM(BRAM)340。对于图3的示例,可编程结构300被示为包括十一列可编程互连元件310、五列CLE 320、两列DSP 330和两列BRAM 340。在其他实施例中,可编程结构300可以包括其他列数量的可编程互连元件310、CLE 320、DSP 330和BRAM 340。可编程结构300还可以包括为简单起见在图3中未示出的多个其他子***或组件(例如,处理核心、可编程互连结构等)。
可编程互连元件310、CLE 320、DSP 330、和BRAM 340可以被实现为可以跨可编程结构300重复的贴片。每个贴片可以包括至少一个可编程互连元件310,其可以向同一贴片内的可编程逻辑元件提供本地信号互连,其可以向相邻贴片内的可编程互连元件310提供本地信号互连,和/或其可以向其他信号路由资源提供本地信号互连。可编程互连元件310可以共同形成可编程互连结构的至少一部分(或其他合适的块级和/或器件级信号路由结构)。
在一些实施例中,可编程结构300可以包括跨过可编程结构300的高度垂直延伸的柱状硬块350。硬块350可以包括多个硬连线电路,例如USB控制器、以太网MAC、多速率(MR)以太网MAC、PCIe控制器、CCIX控制器、和/或实现PCIe协议的物理层、数据链路层、和事务层的其他合适的电路或部件。在一些实施例中,硬块350可以是以上关于图1描述的连接结构的一种实施例。
图4示出了根据一些实施例的监视***400的功能框图。可以在图1的可编程器件100中实现的监视***400被显示为包括根监视器410、多个卫星监视器SAT1-SAT15、多个电源电压传感器SV1-SV4、多个温度传感器T5-T15、和多个选定电路CKT5-CKT15。根监视器410可以是图1的根监视器190的一种实施例,其被耦接到网络互连***120,且可以包括生成参考电压(VREF)的电路。在一些实施例中,根监视器410可以包括生成温度补偿参考电压VREF的带隙参考电路(为简单起见未示出)。
卫星监视器SAT1-SAT15可以分布在器件100上并且被布置成使得卫星监视器SAT1-SAT15中的每一个卫星监视器位于传感器SV1-SV4和T5-T15中的相应一个传感器附近。对于图4的示例实施例,卫星监视器SAT1-SAT4通过本地信号线耦接到各自的电源电压传感器SV1-SV4,卫星监视器SAT5-SAT15通过本地信号线耦接到各自的温度传感器T5-T15。以这种方式,由电源电压传感器SV1-SV4生成的模拟信号可以通过本地信号线提供给各个卫星监视器SAT1-SAT4,由温度传感器T5-T15生成的模拟信号可以通过本地信号线提供给各个卫星监视器SAT5-SAT15。通过将卫星监视器SAT5-SAT15靠近(例如,在附近)安置在相关联的传感器SV1-SV4和T5-T15,传感器SV1-SV4和T5-T15生成的模拟信号不必跨器件100的大部分进行路由到根监视器410,从而使得与跨器件100的金属层互连路由相对较小的模拟信号相关的信号劣化程度最小化。此外,因为可以使用附近的一个卫星监视器SAT1-STA15将每个传感器SV1-SV4和T5-T15生成的模拟信号在本地转换成数字数据,所以不需要昂贵的金属层路由资源来在可编程器件(例如,图1的可编程器件100)内实现监视***400。
例如,传感器SV1可以通过生成指示关联电源电压的电压电平的模拟信号来监视关联电源电压的操作条件。通过将相应的卫星监视器SAT1安置在传感器SV1附近,传感器SV1生成的模拟信号不需要通过器件100路由到根监视器410,而是可以通过本地信号线路由相对较短的距离到达卫星监视器SAT1。又例如,传感器T5可以通过生成指示关联电路CKT5的温度的模拟信号来监视关联电路CKT5的操作条件。通过将相应的卫星监视器SAT5安置在传感器T5附近,传感器T5生成的模拟信号不需要穿过器件100路由到根监视器410,而是可以通过本地信号线路由相对较短的距离到达卫星监视器SAT5。
参考电压VREF可以分布在器件100上,并且通过网络互连***120的一个或多个专用模拟通道使得每个卫星监视器SAT1-STA15可访问,并且可以通过网络互连***120的一个或多个数字信道将数字数据从每个卫星监视器SAT1-STA15选择性地路由到根监视器410。在一些实施例中,一个或多个模拟信道可以与一个或多个数字信道物理分离。
图5示出了根据一些实施例的示例性根监视器500的框图。根监视器500可以是图1的根监视器190或图4的根监视器410(或二者)的一种实施例,其被显示为包括电压发生器510、存储器520和控制器530。电压发生器510可以是可生成适合用作参考电压VREF的微调电压的任何合适的电路或器件,其包括被耦接到网络互连***120的一个或多个模拟通道121的输出端。继续参照图1,在一些实施例中,可以通过使用网络互连***120的一个或多个模拟通道121将电压发生器510生成的参考电压VREF分配给位于整个器件100的卫星监视器192(1)-192(19)中的每一个卫星监视器。卫星监视器192(1)-192(19)可以从网络互连***120访问参考电压VREF,并且可以使用分配的参考电压VREF来执行模数转换(或用于其他合适的操作)。
在一些实施例中,例如,电压发生器510可以包括可以生成温度补偿电压的带隙电路512,以便针对温度变化调整参考电压VREF。此外,或可替换地,电压发生器510可以将正参考电压和负参考电压提供到网络互连***120的一个或多个模拟通道121。在一些方面,参考电压VREF可以等于1.25伏,虽然其他合适的电压也可用作VREF。
存储器520包括耦接到网络互连***120的一个或多个数字通道122的数据输入端、耦接到控制器530的控制输入端、耦接到控制器530的数据输出端、以及一个或多个输出端,从该输出端用户可以通过JTAG接口、多路复用输入/输出(MIO)块或AXI接口中的一个或多个访问被存储在其中的数据。在一些实施例中,存储器520可以包括多个状态寄存器521和多个警报寄存器522。状态寄存器521可以存储指示在整个器件100中提供的选定电路的操作条件的数字数据,以及警报寄存器522可以存储定义多个指定操作范围的多个参考值。状态寄存器521可以加载经由网络互连***120从卫星监视器192(1)-192(19)路由到根监视器500的数字数据,并且警报寄存器522可以在可编程器件100的配置(或重新配置)期间加载有参考值。
控制器530可以控制根监视器500的各种操作,可以分析从卫星监视器192(1)-192(19)接收的数字数据以确定是否有任何选定电路没有在其指定的操作范围内操作,并且可以生成用户可以访问的结果数据。在一些实施例中,控制器530可以通过将存储在状态寄存器521中的被测量的操作条件与存储在警报寄存器522中的相应参考值进行比较来确定选定电路是否在指定操作范围内操作。如果选定电路被确定为在其指定的操作范围之外操作,则控制器530可以生成警报。例如,在一些方面,警报可以使选定电路被禁用或断电,直到选定电路的操作条件在其指定操作范围内。例如,在其他方面,警报可以使可编程器件100断电或以低功率水平运行,直到选定电路的操作条件在指定的操作范围内。
存储在警报寄存器522中的一些指定操作范围可以由最小参考值和最大参考值限定。在一些实施例中,指定电压范围可以包括最小电压值和最大电压值。在这些实施例中,控制器530可以将选定电路的测量电压与存储在警报寄存器522中的最小电压值和最大电压值进行比较,并且可以基于比较结果生成一个或多个警报。例如,如果测量的电压在最小电压值和最大电压值之间,则控制器530可以指示选定电路在其指定电压范围内操作。相反,如果测量的电压小于最小电压值或大于最大电压值,则控制器530可生成警报以指示选定电路不在其指定电压范围内操作。
存储在警报寄存器522中的其他指定操作范围可以包括限定操作上限的参考值。在一些实施例中,选定电路的指定温度范围可以由参考温度值限定。在这些实施例中,控制器530可以将选定电路的测量温度与存储在警报寄存器522中的参考温度值进行比较,并且可以基于比较结果生成一个或多个警报。例如,如果测量温度小于(或等于)参考温度值,则控制器530可以指示选定电路在其指定温度范围内操作。相反,如果测量温度大于参考温度值,则控制器530可以生成警报以指示选定电路太热或过热。
图6示出了根据一些实施例的示例卫星监视器600的框图。卫星监视器600可以是图1的任意数量的卫星监视器192(1)-192(19)或图4的卫星监视器SAT1-SAT15(或二者)的一个示例,包括耦接到一个或多个传感器20的数据输入端、耦接到网络互连***120的输出端、以及通过第一交换机SW1耦接到网络互连***120的参考端。继续参考图1和图5,在一些实施例中,卫星监视器600可以接收由根监视器500生成并经由第一交换机SW1由网络互连***120的一个或多个模拟通道121分配的参考电压VREF。在一些方面,传感器20可以包括(但不限于)温度传感器21、电源电压传感器22、和外部传感器23。
在图6的示例中,卫星监视器600被示为包括ADC电路610、存储器620、和本地参考电路630。ADC电路610包括经由第二交换机SW2耦接到一个或多个传感器20的输入端、耦接到存储器620的输出端、以及耦接到本地参考电路630的一个或多个参考端。ADC电路610可以是(或可以包括)任何合适的ADC,其可以将一个或多个传感器20生成的模拟信号转换成数字信号或数字数据。在一些实施例中,ADC电路610可以利用缩放架构来数字化由传感器20提供的模拟传感数据。
存储器620可以是任何合适的存储器件,包括耦接到ADC电路610的输出端的输入端,并且包括耦接到网络互连***120的输出端。存储器620可以响应于由一个或多个传感器20提供的模拟信号,存储由ADC电路610生成的数字数据,并且可以将数字数据提供给网络互连***120的一个或多个数字通道122以路由到图5的根监视器500。在一些实施例中,存储器620可以是或可以包括多个寄存器,每个寄存器用于存储指示被选定用于监视的多个电路中的相应电路的操作条件的数字数据。以这种方式,卫星监视器600可以从传感器20接收指示选定电路中的相应一个电路的操作条件的模拟信号,可以将模拟信号转换成数字数据,并且可以提供指示选定电路的操作条件的数字数据到网络互连***120的一个或多个数字通道122。
耦接在第一交换机SW1和卫星监视器600的一个或多个参考端之间的本地参考电路630可以是能够向ADC电路610提供本地参考电压(VREF_LOCAL)的任何合适的器件或组件。在一些实施例中,本地参考电压VREF_LOCAL可以至少部分地基于由网络互连***120分配的参考电压VREF,可以被ADC电路610用来执行模数转换。
第一交换机SW1可以被配置为基于第一控制信号(CTRL1)将网络互连***120分配的参考电压VREF选择性地耦接到卫星监视器600。在一些实施例中,当第一控制信号CTRL1处于断言状态(例如,逻辑高)时,第一交换机SW1可以将卫星监视器600的参考端耦接到网络互连***120,并且当第一控制信号CTRL1处于解除断言状态(例如,逻辑低)时,第一交换机SW1可以将卫星监视器600与网络互连***120隔离。以此方式,第一交换机SW1可用于控制卫星监视器600何时(以及多长时间)获取由网络互连***120分配的参考电压VREF。
第一控制信号CTRL1可由图5的根监视器500生成,并且可以通过网络互连***120(或通过其他合适的信号互连)路由到卫星监视器600。继续参考图1和图5,在一些实施例中,根监视器500可以基于例如时序表为分布在可编程器件上的多个卫星监视器600中的每一个卫星监视器断言第一控制信号CTRL1,使得只有一个卫星监视器600可以在任何给定的时刻通过网络互连***120获取分配的参考电压VREF。以此方式,根监视器500可防止由多于一个卫星监视器600同时获取分配的参考电压VREF引起的分配的参考电压VREF下降。
第二交换机SW2可以基于第二控制信号(CTRL2)选择性地将传感器21-23中的一个传感器耦接到ADC电路610的输入端。在一些实施例中,第二控制信号CTRL2可以由图5的根监视器500生成,并且可以通过网络互连***120(或通过其他合适的信号互连)路由到卫星监视器600。
图7是描绘根据一些实施例的用于监视可编程器件的多个操作条件的示例性操作700的说明性流程图。下面对于图1的可编程器件100、图4的监视***400、图5的根监视器500、和图6的卫星监视器600描述示例性操作700,仅供说明之用。应当理解,示例性操作700可以由本文公开的其他可编程器件和/或其他合适的器件来执行。
操作700可以通过使用与可编程器件100内提供的根监视器190相关联的电压生成器510生成参考电压(VREF)在方块701处开始。例如,在一些实施例中,根监视器190可以通过使用图5的带隙电路512生成修整的和温度补偿的参考电压VREF。
操作700可以通过使用互连***120的一个或多个模拟通道121将来自根监视器190的参考电压VREF分配给多个卫星监视器192中的每一个在方块702处进行。在一些实施例中,分配参考电压VREF可以包括基于由根监视器190生成的相应控制信号CTRL1将多个卫星监视器192(1)-192(19)中的每一个卫星监视器选择性地耦接到互连***120。在一些方面,图6的第一交换机SW1可以允许卫星监视器600基于CTRL1的第一状态获取来自网络互连***120的参考电压VREF,并且第一交换机SW1可以基于CTRL1的第二状态将卫星监视器600与网络互连***120隔离。
操作700可以通过使用多个传感器20中的每一个传感器生成指示关联电路的操作条件的模拟信号在方块703处进行。在一些实施例中,多个传感器20中的每一个传感器可以位于关联电路的附近。在一些方面,传感器20可以是(或可以包括)温度传感器21、电源电压传感器22、或外部传感器23中的至少一个。
操作700可以通过将多个传感器20生成的模拟信号提供给多个卫星监视器192(1)-192(19)中的相应卫星监视器而在方块704处进行。例如,在一些实施例中,与将指示各种电路的工作条件的模拟信号路由跨过器件并通过使用金属层信号路由结构提供给中央监视器的传统可编程器件相比,传感器20生成的模拟信号可以使用相对较短的本地信号线提供给相应的卫星监视器192(1)-192(19)。
操作700可以通过使用多个卫星监视器192(1)-192(19)将模拟信号转换成数字数据而在方块705处进行。继续参考图6,在每个卫星监视器192(1)-192(19)内提供的ADC电路610可以将模拟信号转换成可以存储在每个卫星监视器192(1)-192的存储器620中的数字数据(19)。存储器620可以选择性地将存储的数字数据提供给互连***120以路由到根监视器190。
操作700可以通过使用互连***120的一个或多个数字通道122选择性地将来自多个卫星监视器192(1)-192(19)的数字数据路由到根监视器190而在方块706处进行。继续参考图4,数字通道122可以与互连***120的模拟通道121物理分离。例如,在一些实施例中,卫星监视器192(1)-192(19)可以响应于由根监视器190生成的信号(例如,触发信号)提供数字数据到互连***120,用于调度或优先处理从多个卫星监视器192(1)-192(19)到根监视器190的数字数据的传送。在其他实施例中,卫星监视器192(1)-192(19)可以在没有提示和/或没有根监视器190控制的情况下向互连***120提供数字数据。
操作700可以通过确定关联电路中的至少一个电路的操作条件是否在范围内而在方块707处进行,并且可以通过基于该确定而选择性地生成警报而在方块708处进行。继续参考图5,根监视器500可以从卫星监视器192(1)-192(19)中选择的一个卫星监视器接收数字数据,并且可以将接收到的数字数据与一个或多个参考值进行比较以确定关联电路的操作条件是否在范围内。在一些实施例中,根监视器500可以生成警报和/或可以关闭可编程器件100的一个或多个部分(或者整个可编程器件100,如果多个不同的电路、块和子***没有保持在它们的指定的操作参数内)。
对于模拟信号指示关联电路(例如,电压供应)的电压的实施例,根监视器500可以将关联电路的测量电压与最小参考电压电平和最大参考电压电平进行比较。如果关联电路的测量电压在最小参考电压电平和最大参考电压电平之间,根监视器190可以确定关联电路在指定电压范围内操作。相反,如果关联电路的测量电压小于最小参考电压电平或大于最大参考电压电平,则根监视器190可以确定相关电路不在指定电压范围内操作。
对于模拟信号指示相关电路的温度的实施例,根监视器500可以将关联电路的测量温度与参考温度值进行比较。如果关联电路的测量温度不大于参考温度值,则根监视器190可以确定关联电路在其指定温度范围内操作。相反,如果关联电路的测量温度大于参考温度值,则根监视器190可以确定关联电路不在指定温度范围内操作。
在本文公开中描述的主题的实施例可以用于监视可编程器件的多个操作条件。操作条件可以是器件的操作特性或参数的任何合适的量度,包括例如在可编程器件内提供的电路或组件的温度、可编程器件外部的电路或器件的温度、电源电压等。根据本文公开的一些方面,监视***可以包括根监视器、分布在可编程器件的各个位置的多个传感器、以及分布在可编程器件的各个位置的多个卫星监视器。根监视器可以包括带隙电压发生器,其被配置为生成高度准确且与温度无关的参考电压,并且与温度无关的参考电压可以从根监视器经由跨越可编程逻辑的一个或多个模拟通道被分配到每个卫星监视器。
每个传感器可以生成指示关联电路的一个或多个操作条件的模拟信号,并且可以通过一个或多个本地信号线将模拟信号提供给卫星监视器中的相应一个卫星监视器。例如,每个卫星监视器可以包括用于将模拟信号转换为数字数据的ADC,并且可以放置在一个或多个关联传感器附近,使得由一个或多个关联传感器生成的模拟信号可以经由本地信号线被路由一段相对较短的距离到相应的卫星监视器以转换为数字数据。在一些实施例中,可编程器件可以包括片上网络(NoC)互连***,该***可以选择性地将来自每个卫星监视器的数字数据路由到根监视器进行处理,并且可以将控制信号和其他信息从根监视器路由到每个卫星监视器。此外,或者可替换地,可以使用器件内提供的其他合适的路由资源将每个卫星监视器生成的数字数据路由到根监视器,这些资源包括(但不限于)时钟分配网络、可编程互连结构、和/或在形成器件的可编程逻辑的可重复贴片内提供的路由资源。
分布在可编程器件上的多个传感器的热和电压监视的准确性取决于分布在可编程器件上的多个卫星监视器中的每一个卫星监视器的准确模数转换。模数转换的准确度可以至少部分地基于提供给每个卫星监视器内的ADC的参考电压的准确度。尽管带隙电压发生器可用于生成高精度且与温度无关的参考电压,但带隙电压发生器消耗大量电路面积并且在可编程器件的制造期间需要昂贵且耗时的修整。
为了避免为跨器件分布的多个卫星监视器中的每一个卫星监视器提供准确参考电压的硅成本,以及消除对相应的多个电压发生器进行修整的需要,每个卫星监视器可以包括被配置为生成用于相应的ADC的本地参考电压的相对较小的电压源(例如,面积效率高的电压源)。与根监视器中提供的带隙电压发生器相比,本地电压源可能相对较小,因此“面积效率高”。在一些实施例中,本地电压源可以包括少于一打的晶体管,并且可以消耗比带隙电压发生器少至少一个数量级的电路面积。在一些实施例中,卫星监视器中的每一个卫星监视器可以包括被配置为存储相应ADC的本地参考电压的本地电压存储器。本地电压存储器可以由耦接到交换机(例如,晶体管)的电容器组成。
与带隙电压发生器生成的高精度且与温度无关的参考电压相比,本地参考电压可能相对不精确,并且可能导致相应卫星监视器中提供的ADC生成的数字代码出现误差。在一些实施例中,每个卫星监视器可以包括被配置为生成指示数字代码中的误差的校正因子的校准电路,还可以包括被配置为基于校正因子来校正数字代码的校正电路。被提供在多个卫星监视器内的ADC可以通过它们相应的校准电路和校正电路相对于高精度和与温度无关的参考电压周期性地被校准,如下文更详细地描述的。
用于监视分布在可编程器件上的各种电路的操作条件的传统***通常包括中央***监视器和位于需要监视的电路附近的多个传感器。每个传感器生成指示关联电路操作条件的模拟信号,并且模拟信号从每个传感器路由到***监视器以转换为数字数据。传感器通常分布在整个器件的各个位置,因此由至少一些传感器生成的模拟信号可以路由穿过器件的大部分到达***监视器。因为指示操作条件的模拟信号可能特别容易受到噪声和干扰的影响,一些可编程器件可以使用具有屏蔽特性的专用金属层路由资源来将这些模拟信号从各种传感器路由到***监视器以转换为数字数据。
虽然这种专用金属层路由资源的屏蔽特性可以减少信号衰减和数据丢失,但专用金属层路由资源价格昂贵,并且会消耗大量的器件金属层。此外,因为可编程逻辑通常被实现为排列在多行或多列中的多个可重复贴片,嵌入在每个可重复贴片中的信号路由资源通常基于最坏情况的路由场景(例如,对于被放置在器件密度最大的位置处的贴片)。结果,许多可重复贴片过度配备了信号路由资源,这可能造成未使用的路由资源和/或可能限制可编程器件的可扩展性。
通过在整个可编程器件的位置部署靠近监视各种电路的操作条件的传感器多个卫星监视器,本文公开的监视***可以通过使用本地卫星监视器将传感器生成的模拟信号转换成数字数据,然后将数字数据从整个器件的各个位置路由到根监视器。因此,模拟信号不会跨越器件的大部分区域路由,然后被转换为数字数据,而是在相对较短的距离被传输到最近的卫星监视器以转换为数字数据,然后通过使用NoC互连***被路由到根监视器。在一些方面,卫星监视器生成的数字数据可以作为可单独寻址的数据包路由到根监视器。在其他方面,由卫星监视器生成的数字数据可以作为非分组数据路由到根监视器。通过使用位于传感器附近的卫星监视器将模拟信号转换为数字数据,而不是在根监视器中执行模数转换,本文公开的监视***不需要金属层路由资源,反过来可以降低成本同时增加可编程器件的可扩展性。此外,例如,在本地(例如,在传感器附近)执行模数转换并将结果数字数据从卫星监视器路由到根监视器可以允许根监视器收集和分析更多传感器数据(与将模拟信号从位于整个器件中的各种传感器路由到***监视器内提供的ADC的现有技术相比),因为分布在整个可编程器件中的ADC可以并行执行模数转换(例如,同时)。
在以下描述中,阐述了许多特定细节,例如特定组件、电路和过程的示例,以提供对本公开的透彻理解。如本文所用,术语“耦接”意指直接耦接到或通过一个或多个居间组件或电路耦接。此外,在以下描述中并且出于解释的目的,阐述了特定命名法和/或细节以提供对示例性实施例的透彻理解。然而,对于本领域的技术人员而言这些具体细节是显而易见的且可能不是实践示例性实施例所必需的。在其他情况下,公知的电路和器件以框图形式示出以避免与本公开混淆。通过本文所述的各种总线提供的任何信号可以与其他信号进行时间复用并通过一个或多个公共总线提供。此外,电路元件或软件块之间的互连可以被显示为总线或单信号线。每条总线可以替换为单信号线,并且每条单信号线可以替换为总线,并且单条线或总线可以代表用于组件之间通信的无数物理或逻辑机制中的任何一个或多个。示例性实施例不应被解释为限于本文描述的特定示例,而是将所附权利要求限定的所有实施例包括在它们的范围内。
图8示出了其中可以实现本公开的各个方面的示例性可编程器件800的框图。器件800可以包括多个子***,例如可编程逻辑(PL)810、跨越PL 810的片上网络(NoC)互连***820、跨越PL 810的一个或多个模拟通道821、专用电路830、CCIX和PCIe模块(CPM)840、收发器块850、输入/输出(I/O)块860、存储器控制器870、配置逻辑880、根监视器890、多个卫星监视器892(1)-892(19),以及多个传感器(S)。在一个或多个实施例中,器件800可以包括图8中未示出的其他子***或组件。此外,虽然为了简单而未示出,但是器件800可以耦接到多个***组件(例如,高性能存储器件)和/或其他器件或芯片(例如,另一个可编程器件)。
PL 810包括可以被配置或编程以执行多种不同的用户定义功能或操作的可编程电路。在一些实施例中,例如,如图8中所述,PL 810可以包括被实施为在可编程器件800中以列排列的可重复贴片的多个可编程电路块。可编程电路块也可以称为可编程结构子区域(FSR),每个都可以包括可编程互连电路和可编程逻辑电路。在一些实施例中,可编程电路块可以包括(但不限于)可配置逻辑块(CLB)、随机存取存储器块(BRAM)、数字信号处理块(DSP)、时钟管理器、延迟锁相环(DLL)、和/或可以被编程或配置以实现用户指定的电路设计的其他逻辑或电路。
每个可编程电路块或贴片内的可编程互连电路可以包括多条不同长度的互连线,这些互连线通过可编程互连点(PIP)互连。互连线可以被配置为提供特定可编程贴片内的组件之间、不同可编程贴片内的组件之间、以及可编程贴片的组件与其他子***或器件之间的连接性。可编程互连电路和可编程电路块可以通过将配置数据加载到配置寄存器中来编程或配置,配置寄存器定义了可编程元件如何被配置和操作以实现相应的用户指定的电路设计。在一些方面,多个可编程电路块中的每一个可编程电路块内的可编程互连电路可以形成可编程互连结构(为了简单起见未示出)的一部分,其为器件800提供块级和/或器件级信号路由资源。
NoC互连***820可以作为器件800的一部分制造,可以包括连接在一起的任意数量的水平段和垂直段(和/或对角线段)以实现高速、高带宽可编程信号路由网络,其可以选择性地将各种器件资源(例如,PL 810、专用电路830、CPM 840、收发器块850、I/O块860、存储控制器870、配置逻辑880、根监视器890、和卫星监视器892(1)–892(19))彼此互连以及与其他为简单起见未显示的组件互连。对于图8的示例实施例,NoC互连***820被示为包括两个水平段和四个垂直段。跨越器件800的宽度延伸的第一水平段沿着器件800的底部边界定位,跨越器件800的宽度延伸的第二水平段沿着器件800的顶部边界定位。四个垂直段跨越器件800的高度延伸并且连接到NoC互连***820的第一水平段和第二水平段。在一些方面,水平段可以允许NoC互连***820在没有任何中间电路或接口的情况下与I/O块860和存储控制器870交换信号和数据,并且垂直段可以允许NoC互连***820在没有任何中间电路或接口的情况下与收发器块850、专用电路830和CPM 840交换信号和数据。在其他实施例中,NoC互连***820可以包括其他数量的水平段和垂直段,它们又可以占据器件800的其他位置。因此,图8中描绘的示例NoC互连***820的特定布局、形状、尺寸、取向和其他物理特性仅仅是本文公开的各种实施例的说明。
NoC互连***820可以被配置为作为数据包在各种器件资源之间传输信息,这些数据包可以被单独寻址并从源位置路由到目的地位置。在一些方面,在NoC互连***820上传输的数据包可以是动态可寻址的。在一个或多个实施例中,NoC互连***820可以采用合适的数据包协议(例如,令牌环协议)和/或使用存储器映射地址来将数据包从任意数量的源位置路由到任意数量的目的地位置。数据包可包括可由NoC互连***820使用以将数据包路由到它们所指示的目的地的报头信息(例如,源地址、目的地地址和协议信息)。
在一些实施例中,数据包可以包括允许通过NoC互连***820的数据包传输被优先化的服务质量(QoS)信息,例如,基于分配的优先级、业务类型、业务流和/或其他标准。在这些实施例中,NoC互连***820可以包括可以确定接收到的数据包的优先级或业务类别的优先级逻辑,并在将数据包排队传输时使用所确定的优先级或业务类别。作为可单独寻址的数据包通过在各种器件资源之间传输信息,NoC互连***820可以提供各种器件资源之间的连接性,而不管特定的用户指定的电路设计,从而显著提高器件800的信号路由能力(与传统的可编程器件相比)。例如,虽然器件800的可编程互连结构和其他基于贴片的信号路由结构通常被配置为提供指定电路之间的点对点信号连接,但NoC互连***820可以同时从器件800上的任何源地址将多个数据中的每一个数据路由到任何目的地地址,从而为器件800提供***级连接。
尽管为了简单没有示出,NoC互连***820还可以包括调度器和判优逻辑。调度器可用于使用NoC互连***820的一个或多个物理和/或虚拟通道来调度从源地址到目的地地址的数据包传输。判优逻辑可用于对NoC互连***820的访问判优,例如,最小化冲突和其他与竞争的相关延迟。对于使用堆栈式硅晶互连技术(SSI)技术制造器件800的实施例,NoC互连***820的列部分可以提供相邻超级逻辑区域(SLR)之间的信号连接,例如,以允许配置数据在主SLR与从SLR之间进行路由。
NoC互连***820可以通过将配置数据加载到相应的配置寄存器而进行编程,该配置寄存器定义NoC互连***820内或与NoC互连***820相关联的各个交换机、接口和路由器如何被配置来实现特定用户指定的电路设计。在一些实施例中,NoC互连***820可以包括在NoC互连***820与器件800的各种资源、子***、电路和其他组件之间提供选择性连接的多个节点、端口或其他接口(为简单起见未示出)。例如,NoC互连***820可以允许器件800的多个子***共享对片上存储器(OCM)资源、处理资源、I/O资源和/或收发器块850的访问。NoC互连***820的节点、端口或其他接口可以被编程以通过将配置数据加载到一个或多个相关联的配置寄存器中来实现特定的连接配置文件。
通过选择性地互连可能需要和使用大量数据的器件800的各种资源、子***、电路和其他的组件,NoC互连***820可以减轻本地互连资源上的信号路由负担,从而提高器件性能并允许比其他可编程器件具有更大的配置灵活性。此外,通过提供比器件级和块级可编程互连具有更高数据传输率和更低误差率的高性能信号路由网络,NoC互连***820可以提高器件800的处理能力和数据吞吐量(如与其他可编程器件相比)。
跨越可编程器件800的模拟通道821可用于从根监视器890向多个卫星监视器892(1)-892(19)中的每一个卫星监视器分配高精度且与温度无关的参考电压。在一些实施例中,模拟通道821可以与NoC互连***820的相应段相邻(或集成在其内)。在其他实施例中,模拟通道821可以与NoC互连***820分开。在一些其他实施例中,模拟通道821可以是时钟分配网络的一部分或器件800内提供的一些其他合适的信号互连***。
专用电路830可以包括任何合适的硬接线电路,包括(但不限于)处理器、串行收发器、数字信号处理器(DSP)、模数转换器(ADC)、数模转换器(DAC)、器件管理资源、器件监视资源、器件测试管理资源等。在一些实施例中,专用电路830可以包括如图9描述的处理***(PS)和平台管理控制器(PMC)。在一些实施例中,PS可以包括一个或多个处理器内核、高速缓存存储器、存储控制器以及可配置为直接耦接到器件800的I/O引脚的单向和/或双向接口。在一些方面,每个处理器核心可包括中央处理单元(CPU)或可用于顺序数据处理的标量处理器。PMC可基于从外部存储器提供的配置数据(例如,配置比特流)来启动和配置器件800。PMC还可用于配置PL 810并控制器件800的各种加密、认证、根监视和调试能力。
CCIX和PCIe模块(CPM)840可以包括在器件800和多个***组件(例如,外部器件或芯片)之间提供连接的多个接口。在一些实施例中,CPM 840可以包括通过收发器块850提供与其他器件或芯片的连接的多个***高速互连(PCIe)接口和用于加速器的高速缓存一致互连(CCIX)接口在一些方面,PCIe和CCIX接口可以被实现为收发器块850的一部分。CPM840的一个示例性实施例是如图9所描述的。
收发器块850可以提供与连接到器件800的一个或多个其他器件或芯片(为简单起见未示出)的信号连接。收发器块850可以包括许多不同的串行收发器,例如,千兆串行收发器(GTs)。在一些实施例中,收发器块850可以被实现为沿着器件800的右侧和左侧放置在各个位置的多个可重复贴片,如图8所示。在其他实施例中,收发器块850可以位于器件800的其他合适位置。在一个或多个实施例中,每个收发器块850可以耦接到一个或多个相关联的电压源(为简单起见未示出)。在一些方面,例如,给定的收发器块850内的每组收发器电路可以包括或可以耦接到相应的电压电源,使得每组收发器电路可以使用单独的电压电源供电。
I/O块860被耦接到器件的I/O引脚(为了简单起见未示出),并且可以为器件800提供I/O能力。例如,I/O块860可以接收来自一个或多个其他器件的数据,并且可以将接收到的数据驱动到器件800中的多个目的地。I/O块860还可以从器件800中的多个源接收数据,并且可以将接收到的数据经由器件的I/O引脚驱动到一个或多个其他器件。在一些实施例中,I/O块860可以被实现为可重复贴片。器件800可以包括任何合适数量的I/O块860,因此图8中描绘的示例性实施方式仅仅是说明性的。
I/O块860可以包括任何数量的合适的I/O电路或器件。在一些实施例中,I/O块860可以包括极高性能I/O(XPIO)电路、高密度I/O(HDIO)电路、和多路复用I/O(MIO)电路。XPIO电路可以被优化用于高性能通信,例如向存储控制器870提供高速、低延迟的接口。在一个或多个实施例中,XPIO电路可以包括在不使用存储控制器870的情况下被器件800的其他子***访问的专用存储器资源。HDIO电路可以提供支持较低速度和较高电压I/O能力的成本经济的解决方案(与XPIO电路相比)。MIO电路可以提供可由各种子***(例如,PL 810、专用电路830和CPM 840)访问的通用I/O资源。
存储控制器870可用于控制对器件800内部和/或外部提供的各种存储器资源的访问。在一些实施例中,存储控制器870可用于访问驻留在一个或多个I/O块860中的专用存储器。存储控制器870可以包括双倍数据速率v4(DDR4)存储控制器、高带宽存储(HBM)控制器、和/或其他合适的存储控制器。在一个或多个实施例中,一些或所有存储控制器870可以包括具有可以提高存储器访问效率的事务重新排序能力的调度器。此外,或可替换地,实现存储控制器870的可重复贴片以彼此不同。例如,第一数量的存储控制器870可以实现为DDR4存储器控制器,第二数量的存储控制器870可以实现为LPDDR4存储器控制器,并且第三数量的存储控制器870可以实现为HBM控制器。
器件800可以包括任何数量的I/O块860和存储控制器870,因此图8中描绘的I/O块860和存储控制器870的数量和位置仅仅是说明性的。在一些实施例中,第一行的I/O块860和存储控制器870可以被实现为沿着器件800的底部边缘安置的可重复贴片,并且第二行的I/O块860和存储器控制器870可以被实现为沿着器件800的顶部边缘安置的可重复贴片。在一些实施例中,I/O块860和存储控制器870可以相对于彼此交替安置或分布,例如,如图8的示例中所描绘的。在其他实施例中,一对I/O块860和存储器控制器870可以在同一个可重复贴片内实施。
在一些实施例中,沿着器件800底部安置的I/O块860和存储控制器870的第一行可以耦接到NoC互连***820的第一水平段,以及沿着器件800顶部安置的I/O块860和存储控制器870的第二行可以耦接到NoC互连***820的第二水平段。以这种方式,NoC互连***820可以提供器件800的可编程资源与其I/O引脚(为简单起见未显示)之间的连接。
在一些实施例中,器件800可以包括垂直延伸穿过器件800的高度并且位于收发器块850附近的一列或多列连接结构(为简单起见未显示)。连接结构可以包括一个或多个硬连线电路,包括(但不限于)USB控制器、以太网MAC、多速率(MR)以太网MAC(MRMAC)、PCIe控制器、CCIX控制器和/或用来提供收发器块850和PL 810之间的连接的其他组件。
配置逻辑880可用于从外部存储器加载配置数据(例如,配置比特流)并将配置数据的部分(例如帧、字、字节和/或比特)路由到适当的配置寄存器,这些寄存器限定如何配置器件800的各种可编程资源。配置逻辑880还可以用于部分地重新配置器件800和/或内部重新配置器件800的一个或多个部分。在一些实施例中,配置逻辑880可以包括配置寄存器、边界扫描测试电路(例如,TAP控制器电路)、用来加密从器件800读出的配置数据的比特流的加密电路,以及用来解密加载到器件800中的配置数据的比特流的解密电路。
尽管为了简单起见未示出,但是器件800可以包括在可编程结构与I/O块860的每一行之间的接口以及位于器件800的边界上的存储控制器870。该接口在本文中可以被称为边界逻辑接口(BLI),其可以允许大型和复杂的外部器件(例如,HBM)出现为器件800的可编程结构中的更小的块(例如,CLB)。在一些实施例中,BLI可以是位于可编程结构的顶部和底部边界或边缘排列成行。以此方式,BLI可用于在列状逻辑结构(例如,CLB列或DSP列)和I/O资源行(例如,I/O块860)之间路由信号。
根据本公开的各个方面,可编程器件800可以包括可以监视遍及可编程器件800提供的多个选定电路的一个或多个操作条件的监视***,例如以确保选定电路操作在规定的操作参数范围内。本文公开的监视***可以测量选定电路的任何合适的操作条件,包括例如温度、电压水平和电流水平。如本文所用,术语“选定电路”可指可被选择用于监视一个或多个操作条件以确保器件800的正确操作的任何电路、组件、电源电压、结构或器件。在一些实施例中,当一个或多个选定电路的测量操作条件未落入指定的操作条件范围时,监视***可以生成一个警报(或多个警报)。在一些方面,警报可用于使器件800的一个或多个电路或组件断电。在其他方面,警报可用于使整个器件800断电。
监视***可以包括(或可以由)根监视器890、卫星监视器892(1)-892(19)和传感器(S)。根监视器890耦接到NoC互连***820和模拟通道821,并且可以包括被配置为生成高精度且与温度无关的参考电压的电路。与温度无关的参考电压可以通过一个或多个模拟通道821分配到每个卫星监视器892(1)-892(19),从而消除对每个卫星监视器892(1)-892(19)生成自己的高精度和与温度无关的参考电压的需要。例如,如图8所示,在一些实施例中,根监视器890可以位于器件800的处理器***内。在其他实施例中,根监视器890可以位于器件800中的其他合适位置。
传感器(S)可以是可以生成指示选定电路中的至少一个电路的一种或多种操作条件的电信号的任何合适的传感电路或器件,并且可以包括(但不限于)温度传感器、电压传感器、和/或电流传感器。在一些实施例中,每个传感器(S)可以测量一个或多个选定电路的操作条件,并且可以向卫星监视器892(1)-892(19)中的相应一个卫星监视器提供指示所测量的操作条件的模拟信号。
卫星监视器892(1)-892(19)可以是可以将传感器(S)生成的模拟信号转换为指示选定电路的测量操作条件的数字数据的任何合适的电路或器件。虽然未在图8中示出,但为了简单起见,在一些实施例中,卫星监视器892(1)-892(19)中的每一个卫星监视器可以包括至少一个模数转换器(ADC)、具有相对较小尺寸的本地电压源(例如,与带隙电压发生器相比)、校准电路和校正电路。ADC可以是可将模拟信号转换为数字数据的任何合适的电路,其可以包括用于接收由一个或多个相关联的传感器(S)生成的模拟信号的一个或多个输入端、用于提供指示由关联传感器(S)测量的操作条件的数字数据的一个或多个输出端、以及用于接收本地参考电压的一个或多个参考端。在一些实施例中,卫星监视器192(1)-192(19)中的每一个卫星监视器可以至少包括模数转换器(ADC)、被配置为存储相应ADC的本地参考电压的本地电压存储器、校准电路和校正电路。对于本地电压存储器可以是电容器或是采用电容器的一些实施例,与带隙电压发生器相比,本地电压存储器具有相对小的尺寸。在一些实施例中,本地电压存储器消耗的电路面积可以比带隙电压发生器消耗的电路面积小至少一个数量级。电压存储器可以选择性地耦接到一个或多个模拟通道以将电压存储器充电到大约等于与温度无关的参考电压的值。被存储在电压存储器中的产生的电荷可以是提供给ADC的参考端的本地参考电压。
本地电压源可以生成本地参考电压,该本地参考电压与由根监视器890提供的高度准确且与温度无关的参考电压相比可能相对不精确。在一些实施例中,本地参考电压可以是比起由带隙电压发生器生成的与温度无关的参考电压的准确度低至少一个数量级。在一种或多种实施例中,本地参考电压可以在目标电压内具有大约5%的准确度,而与温度无关的参考电压可以在目标电压内具有大约0.5%的准确度。校准电路可以生成指示由ADC生成的数字代码中的误差的校正因子,并且校正电路可以基于校正因子来校正数字代码。
例如,传感器(S)和卫星监视器892(1)-892(19)可以分布在整个可编程器件800中,并位于选定电路附近的各个位置,以便指示选定电路的操作条件的模拟信号可以在各个分布位置转换为数字信号(而不是传输到中央集线器,然后再转换为数字数据)。例如,在一些实施例中,每个传感器(S)可以位于相应的选定电路的附近,使得传感器(S)和相应的选定电路可以通过使用本地信号线被耦接在一起。类似地,例如,卫星监视器892(1)-892(19)中的每一个卫星监视器可以位于一个或多个相关联的传感器(S)附近,使得卫星监视器892和一个或多个相关联的传感器(S)可以通过使用本地信号线耦接在一起。在一些方面,如本文所使用的术语“附近”可以是指表示操作条件的模拟信号可以通过相对较短的本地信号线以最小的信号劣化被传输的距离。
对于图8的示例,位于收发器块850内的第一组传感器(S)可以位于与收发器块850相关联的电源(为简单起见未示出)的各个邻近点,以及第一组卫星监视器892(1)–892(6)可以位于第一组传感器(S)的附近,例如,这样第一组传感器(S)中的每一个传感器都可以通过相对较短的本地信号线耦接到相应的电源电压和相应的卫星监视器890。在一些实施例中,第一组传感器(S)中的每一个传感器可以被配置为生成指示相应电源的一个或多个操作条件的模拟信号,并且第一组卫星监视器892(1)-892(6)中的每一个卫星监视器可以被配置为将相关传感器(S)生成的模拟信号转换成数字数据,该数字数据可以通过NoC互连***820传输到根监视器890。
例如,位于PL 810内的第二组传感器(S)可以位于PL 810内或与PL 810相关联的一个或多个相应的选定电路(为简单起见未示出)的附近,以及第二组卫星监视器892(7)–892(19)可以位于第二组传感器(S)的附近,以便第二组传感器(S)中的每一个传感器都可以通过相对较短的本地信号线耦接到相应的选定电路和第二组卫星监视器892(7)–892(19)中的相应的一个传感器。在一些实施例中,第二组传感器(S)中的每一个传感器可以被配置为生成指示相应选定电路的一个或多个操作条件的模拟信号,以及第二组卫星监视器892(7)-892(19)中的每一个卫星监视器可以被配置为将关联传感器(S)生成的模拟信号转换成数字数据,该数字数据可以通过NoC互连***820传输到根监视器890。
卫星监视器892(1)-892(19)中的每一个卫星监视器可以通过本地信号线耦接到任何合适数量的传感器(S)。例如,卫星监视器892(1)可以耦接到位于收发器块850内的单个传感器(S),并且可以生成指示与收发器块850相关联的相应电源的一个或多个操作条件的数字信号。又例如,卫星监视器892(16)可以耦接到位于PL 810内的两个传感器(S),并且可以生成指示与位于PL 810内的两个传感器(S)相关联的选定电路的一个或多个操作条件的数字信号。又例如,卫星监视器892(17)可以耦接到位于PL 810内的四个传感器(S),并且可以生成指示与位于PL 810内的四个传感器相关联的选定电路的一个或多个操作条件的数字信号(S)。此外,虽然在图8中示出包括19个卫星监视器892(1)-892(19),但可编程器件800可以包括位于可编程器件800的其他合适位置的其他数量的卫星监视器892。
如上所述,卫星监视器892(1)-892(19)可以安置得足够靠近传感器(S),使得每个传感器(S)可以通过使用相对较短的本地信号线耦接到相应的卫星监视器892,而不是通过相当长的距离传输模拟信号以使用中央***监视器转换为数字数据。这样,本文公开的监视***的实施例可以消除为了将这些模拟信号从分布在整个器件800中的各个位置路由到中央监视器以用于转换为数字数据而对金属层信号路由资源的需要,这可以降低器件复杂性和成本,同时也增加了监视***的可扩展性。此外,通过使用分布在整个器件800中的多个卫星监视器892(1)-892(19)来执行模拟传感器数据的模数转换,然后将数字数据路由到根监视器890进行分析,可同时测量的传感器数量不受卫星监视器内提供的ADC输入通道数量的限制。相比之下,通过将模拟传感器数据路由到中央***监视器以转换为数字数据的传统解决方案可以同时测量的传感器数量受到与***监视器相关联的ADC的输入通道数量的限制。因此,通过经由卫星监视器892(1)-892(19)在整个器件800的各个位置分配模拟传感器数据到数字信息的转换,可以由本文公开的监视***同时测量的传感器的数量可以是基于卫星监视器892(1)–892(19)的数量,而不是基于接收来自分布在器件上的传感器的模拟信号的位于中央位置的ADC的输入通道数量。因此,本文公开的监视***可以同时测量比上述传统解决方案多得多的传感器。
根监视器890可以接收由NoC互连***820从卫星监视器892(1)-892(19)中的每一个卫星监视器路由的数字数据,并且可以处理接收的数字数据以确定由传感器监视的选定电路的操作条件。在一些实施例中,根监视器890可以将测量的操作条件与一个或多个参考值进行比较以确定选定电路中的每一个电路是否在其指定的操作范围内操作。
应当指出,图8仅仅旨在说明可编程器件800的一个示例性架构。例如,列(或行)中的逻辑块的数量、列(或行)的相对宽度、列(或行)的数量和顺序、列(或行)中包含的逻辑块的类型、逻辑块的相对大小、以及图8中所示的其他体系结构方面仅仅是对本文公开的发明主题的各种实施方式的说明。
图9示出了根据一些实施例的可编程器件900的功能框图,该可编程器件900可以是图8的可编程器件800的一个示例。器件900被示为包括收发器块850、可编程逻辑(PL)910、CPM 920、处理***(PS)930、平台管理控制器(PMC)940、和I/O块+存储控制器960。PL910可以是图8的PL 810的一种实施例,其可以与收发器块850、CPM 920、PMC 940和NoC互连***820相邻并直接连接。I/O块+存储控制器960可以是图8的I/O块860和存储控制器870的一种实施例,其可以被实现为将多个可重复贴片沿可编程器件900的底部边缘布置。虽然在图9中为了简单起见未示出,I/O块+存储控制器960也可以被实现为沿着可编程器件900的顶部边缘布置的多个可重复贴片。另外或可替换地,I/O块+存储控制器960可以被实现为沿着可编程器件900的左右边缘布置的多个可重复贴片。
CPM 920可以是图8的CPM 840的一种实施例,其可以为多种不同的总线标准提供接口能力。在一些实施例中,CPM 920可以包括***高速互连(PCIe)接口922、直接存储器访问(DMA)电路924、和用于加速器的高速缓存互连一致性(CCIX)接口926。PCIe接口922可以被使用来根据PCI协议经由收发器块850在PS 930和一个或多个其他器件或芯片之间交换数据。类似地,CCIX接口926可用于根据CCIX协议经由收发器块850在PS 930与一个或多个其他器件或芯片之间交换数据。
PS 930可以为器件900提供专用的数据处理能力,并且被示为包括应用处理单元(APU)932、实时处理单元(RPU)934、高速缓存存储器936和***级芯片(SoC)接口938。虽然为了简单起见未示出,但PS 930还可以包括用于通信标准的***器件(例如,以太网和USB2.0接口)和各种控制器(例如,SPI、I2C、UART和CAN-FD控制器)。APU 932和RPU 934可以各自包括可以为器件900提供专用标量处理能力的一个或多个处理核心(例如,CPU)。在一些方面,PS 930可以通过可编程互连结构和NoC互连***820选择性地连接到器件900的其他子***。
在一些实施例中,APU 932可以包括支持硬件虚拟化的多核ARM处理器,并且可以具有内置的中断控制器和监控控制单元。中断控制器可以支持虚拟中断,并且可以使用监控控制单元来维持由APU 932和RPU 934使用和/或共享的一个或多个高速缓存之间的一致性。APU 932可以通过使用AXI一致性扩展(ACE)端口而与PS 930的其他组件通信,并且可以通过使用加速器一致性端口(ACP)而与PL 910通信。在一些实施例中,RPU 934可以包括支持实时数据处理的多核ARM处理器,可以包括用于实时单周期访问的紧耦接存储器(TCM)接口,并且可以具有专用中断控制器和浮点单元。RPU 934可以通过使用AXI端口而与PS 930的其他组件和/或与PL 910通信。
高速缓存存储器936可以是允许由APU 932和RPU 934共享访问的任何合适的高速缓存。SoC接口938可以提供PS 930和NoC互连***820的各种资源之间的连接。
PMC 940可以包括安全电路942、启动和重新配置电路944、模拟电路946、和图8的根监视器890。安全电路942可以提供数据加密/解密能力和其他安全特征。启动和重新配置电路944可以提供支持非安全和安全启动的多阶段引导过程。模拟电路946可以包括任何合适的模拟电路组件。此外,虽然为简单起见在图9中未示出,PMC 940可以包括测试和调试资源(例如,JTAG电路)、外部闪存接口、和其他组件或电路。在一些实施例中,PMC 940可以允许使用部分重新配置操作来重新配置PL 910的部分。例如,PL 910一部分的新配置比特流可以通过主要或次要启动接口(例如,PCIe或以太网)从PS 930加载,然后存储在与需要重新配置的PL 910的部分相关联的配置寄存器中。允许对PL 910的一个或多个部分进行部分重新配置的能力可以允许用户更快地重新配置器件900以反映对用户指定的电路设计的改变或更新(例如,与其他可编程器件相比)。
图10示出了根据一些实施例的示例性可编程结构1000的框图。在一些实施例中,可编程结构1000可以是图8的PL 810、图9的PL 910、或两者都有。可编程结构1000被示为包括可以排列成列(或行)的多个不同的可编程电路块或贴片。可编程电路块可以包括(但不限于)以柱状架构布置的可编程互连元件(INT)1010、可配置逻辑元件(CLE)1020、DSP 1030和块RAM(BRAM)1040。对于图10的示例,可编程结构1000被示为包括十一列可编程互连元件1010、五列CLE 1020、两列DSP 1030和两列BRAM 1040。在其他实施例中,可编程结构1000可以包括其他数量列的可编程互连元件1010、CLE 1020、DSP 1030和BRAM 31040。可编程结构1000还可以包括图10中为简单起见未示出的许多其他子***或组件(例如,处理核心、可编程互连结构等)。
可编程互连元件1010、CLE 1020、DSP 1030和BRAM 1040可以被实现为可以在可编程结构1000上重复的贴片。每一个贴片可以包括至少一个可编程互连元件1010,其提供本地信号互连到同一块内的可编程逻辑元件,其提供本地信号互连到相邻块内的可编程互连元件1010,和/或其提供本地信号互连到其他信号路由资源。可编程互连元件1010可以共同形成可编程互连结构的至少一部分(或其他合适的块级和/或器件级信号路由结构)。
在一些实施例中,可编程结构1000可以包括垂直地延伸穿过可编程结构1000的高度的柱状硬块1050。硬块1050可以包括多个硬连线电路,例如USB控制器、以太网MAC、多速率(MR)以太网MAC、PCIe控制器、CCIX控制器、和/或实现PCIe协议的物理层、数据链路层、和事务层的其他合适的电路或组件。在一些实施例中,硬块1050可以是以上关于图8描述的连接结构的一种实施例。
图11示出了根据一些实施例的监视***1100的功能框图。可以在图8的可编程器件800中实现的监视***1100被显示为包括根监视器1110、多个卫星监视器SAT1-SAT15、多个电源电压传感器SV1-SV4、多个温度传感器T5-T15、和多个选定电路CKT5-CKT15。根监视器1110可以是图8的根监视器890的一种实施例,其被耦接到NoC互连***820和一个或多个模拟通道821。在一些实施例中,根监视器1110可以包括带隙电压发生器(为简单起见未示出)以生成与温度无关的参考电压VREF。
卫星监视器SAT1-SAT15可以分布在器件800上并且被布置成使得卫星监视器SAT1-SAT15中的每一个卫星监视器都位于传感器SV1-SV4和T5-T15中的相应一个传感器附近。对于图11的示例性实施例,卫星监视器SAT1-SAT4通过本地信号线耦接到各自的电源电压传感器SV1-SV4,卫星监视器SAT5-SAT15通过本地信号线耦接到各自的温度传感器T5-T15。以这种方式,电源电压传感器SV1-SV4生成的模拟信号可以通过本地信号线提供给各个卫星监视器SAT1-SAT4,温度传感器T5-T15生成的模拟信号可以通过本地信号线提供给各个卫星监视器SAT5-SAT15。通过将卫星监视器SAT5-SAT15安置在靠近(例如,在附近)相关联的传感器V1-SV4和T5-T15,传感器SV1-SV4和T5-T15生成的模拟信号不必跨越器件800的大部分被路由到达根监视器1110,从而使得经过与跨越器件800的金属层互连路由相对较小的模拟信号相关联的信号劣化最小化。此外,因为由每个传感器SV1-SV4和T5-T15可以使用附近的一个卫星监视器SAT1-STA15在本地转换成数字数据,不需要昂贵的金属层路由资源来实现可编程器件(例如,图8的可编程器件800)内的监视***1100。
例如,传感器SV1可以通过生成指示关联电源电压的电压电平的模拟信号来监视关联电源电压的操作条件。通过将相应的卫星监视器SAT1安置在传感器SV1附近,传感器SV1生成的模拟信号不需要穿过器件800被路由到根监视器1110,而是可以通过本地信号线被路由相对较短的距离到卫星监视器SAT1。又例如,传感器T5可以通过生成指示关联电路CKT5的温度的模拟信号来监视关联电路CKT5的操作条件。通过将相应的卫星监视器SAT5安置在传感器T5附近,传感器T5生成的模拟信号不需要穿过器件800路由到根监视器1110,而是可以通过本地信号线被路由相对较短的距离到卫星监视器SAT5。
与温度无关的参考电压VREF可以分布在器件800上,并且可以通过一个或多个模拟通道821访问每个卫星监视器SAT1-STA15,并且可以通过NoC互连***820选择性地从每个卫星监视器SAT1-STA15路由数字数据到根监视器1110。在一些实施例中,一个或多个模拟通道821可以沿着NoC互连***820的相应部分延伸。在其他实施例中,一个或多个模拟通道821可以是与NoC互连***820分开的。
图12示出了根据一些实施例的示例性根监视器1200的框图。根监视器500可以是图8的根监视器890或图11的根监视器1110(或两者),其被显示为包括带隙电压发生器1210、存储器1220和控制器1230。带隙电压发生器1210可以是可以生成高精度且与温度无关的参考电压VREF的任何合适的电路或器件,其包括耦接到一个或多个模拟通道821的输出端。在一些实施例中,带隙电压发生器1210可以将与温度无关的参考电压VREF作为差分电压(例如,包括正参考电压和负参考电压)提供到一个或多个模拟通道821。在一些方面,与温度无关的参考电压VREF可以等于1.25伏,尽管其他合适的电压也可以用作VREF。
再次参考图8,在一些实施例中,由带隙电压发生器1210生成的与温度无关的参考电压VREF可以通过使用一个或多个模拟通道821被分布到位于整个器件800的卫星监视器892(1)-892(19)中的每一个卫星监视器。例如,卫星监视器892(1)-892(19)可以选择性地访问来自一个或多个模拟通道821的与温度无关的参考电压VREF,以对它们各自的电压存储器充电并定期校准它们的ADC,以对使用相对不精确的本地参考电压(而不是使用高精度且与温度无关的参考电压VREF)来采样模拟信号相关的模数转换误差进行补偿。
存储器1220包括耦接到NoC互连***820的数据输入端、耦接到控制器1230的控制输入端、耦接到控制器1230的数据输出端、以及一个或多个输出端,通过该输出端用户可以经由JTAG接口、多路复用输入/输出(MIO)块、或AXI接口中的一个或多个访问被存储在其中的数据。在一些实施例中,存储器1220可以包括多个状态寄存器1221和多个警报寄存器1222。状态寄存器1221可以存储指示在整个器件800中提供的选定电路的操作条件的数字数据,以及警报寄存器1222可以存储定义多个指定操作范围的多个参考值。状态寄存器1221可以经由NoC互连***820加载从卫星监视器892(1)-892(19)路由到根监视器1200的数字数据,并且警报寄存器1222可以在可编程器件800配置(或重新配置)期间加载有参考值。
控制器1230可以控制根监视器1200的各种操作,可以分析从卫星监视器892(1)-892(19)接收的数字数据以确定是否有任何选定电路没有在它们指定的操作范围内操作,并且可以生成用户可以访问的结果数据。在一些实施例中,控制器1230可以通过将存储在状态寄存器1221中的测量的操作条件与存储在警报寄存器1222中的相应参考值进行比较,从而确定选定电路是否在指定操作范围内操作。如果确定选定电路为在其指定的操作范围之外操作,则控制器1230可以生成警报。例如,在一些方面,警报可以使选定电路被禁用或断电,直到选定电路的操作条件在其指定操作范围内。例如,在其他方面,警报可以使可编程器件800断电或以降低的功率水平运行,直到选定电路的运行条件在指定的运行范围内。
被存储在警报寄存器1222中的一些指定操作范围可以由最小参考值和最大参考值限定。在一些实施例中,指定电压范围可以包括最小电压值和最大电压值。在这些实施例中,控制器1230可以将选定电路的测量电压与存储在警报寄存器1222中的最小电压值和最大电压值进行比较,并且可以基于比较结果生成一个或多个警报。例如,如果测量的电压在最小电压值和最大电压值之间,则控制器1230可以指示选定电路是在其指定电压范围内操作。相反,如果测量的电压小于最小电压值或大于最大电压值,则控制器1230可生成警报以指示选定电路不在其指定电压范围内操作。
被存储在警报寄存器1222中的其他指定操作范围可以包括限定操作上限的参考值。在一些实施例中,选定电路的指定温度范围可以由参考温度值限定。在这些实施例中,控制器1230可以将选定电路的测量温度与存储在警报寄存器1222中的参考温度值进行比较,并且可以基于比较结果生成一个或多个警报。例如,如果测量温度小于(或等于)参考温度值,则控制器1230可以指示选定电路在其指定温度范围内操作。相反,如果测量温度大于参考温度值,则控制器1230可以生成警报以指示选定电路太热或过热。
在一些实施例中,控制器1230可以被配置为生成控制信号CTRL[1:19],其可以被各个卫星监视器892(1)-892(19)使用以在校准模式或监视模式中操作。当在校准模式下操作时,相应的卫星监视器892可以从一个或多个模拟通道821访问与温度无关的参考电压VREF,并且可以使用VREF来生成指示由于相对不精确的本地参考电压的不准确性(例如,如图13所描述的)引起的模数转换误差的校正因子。当在监视模式下操作时,相应的卫星监视器892可以将由一个或多个传感器(S)生成的模拟信号转换成数字代码,并且可以基于校正因子来校正数字代码(例如,如图13所描述的)。在一些实施例中,控制器1230可以基于时序表选择性地断言控制信号CTRL[1:19],使得卫星监视器892(1)-892(19)中的只有一个卫星监视器可以同时从一个或多个模拟通道821访问VREF。这样,根监视器1200可防止由多个卫星监视器892(1)-892(19)同时访问温度无关的参考电压VREF引起的温度无关参考电压VREF下降。
例如,可被存储在存储器1220中的时序表也可以包括用于使用VREF定期校准每个卫星监视器892(1)-892(19)的时间表,以确保由每个卫星监视器892(1)-892(19)使用和/或被存储在其中的本地参考电压的任何周期性漂移通过对校正因子的相应更新来补偿。例如,在一个或多个实施例中,控制器1230可以每N毫秒顺序地断言控制信号CTRL[1:19],使得卫星监视器892(1)-892(19)中的每一个N毫秒执行一次校准操作,其中N可以是任何合适的数字。例如,时序表还可以包括使用VREF对每个卫星监视器192(1)-192(19)内的电压存储器进行周期性充电的安排,以将电压存储器保持的本地参考电压保持在一个范围内(例如,在与温度无关的参考电压值内)。
图13示出了根据一些实施例的示例性卫星监视器1300的框图。卫星监视器1300可以是任意数量的图8中的卫星监视器892(1)-892(19)或图11中的卫星监视器SAT1-SAT15(或两者),其被显示为包括ADC 1310、存储器1320、本地电压源1330、校准电路1340、校正电路1345和交换机SW。交换机SW包括被耦接以从一个或多个模拟通道821接收与温度无关的参考电压VREF的第一输入端、被耦接以接收由一个或多个相关联的传感器20生成的模拟信号的第二输入端、被耦接以接收由根监视器1200生成的相应控制信号CTRL的控制端、以及被耦接到ADC 1310的输入端的输出端。在一些方面,传感器20可以包括(但不限于)温度传感器21、电源电压传感器22和外部传感器23。
ADC 1310包括耦接到存储器1320的输出端,还包括耦接到本地电压源1330的一个或多个参考端。ADC 1310可以是(或可以包括)可以将由一个或多个传感器20生成的模拟信号转换为数字数据或数字代码的任何合适的ADC。在一些实施例中,ADC 1310可以利用缩放架构将由传感器20提供的模拟传感器数据数字化。
存储器1320可以是任何合适的存储器件,其包括被耦接到ADC 1310的输出端的输入端,还包括被耦接到NoC互连***820的输出端。存储器1320可以响应于由一个或多个传感器20提供的模拟信号存储由ADC 1310生成的数字数据,并且可以将数字数据提供给NoC互连***820以路由到图12的根监视器1200。在一些实施例中,存储器1320可以是或可以包括多个寄存器,每个寄存器用于存储指示被选择用于监视的多个电路中的相应电路的操作条件的数字数据。以此方式,卫星监视器1300可以从传感器20接收指示选定电路中的相应一个电路的操作条件的模拟信号,可以将模拟信号转换成数字数据,以及可以经由NoC互连***820将指示选定电路的操作条件的数字数据提供到根监视器1200。
本地电压源1330可以是任何合适的相对较小或面积效率高的电压源,其可以生成适合由ADC 1310使用的本地参考电压VREF_LOCAL(并且不需要在制造期间修整)。本地电压源1330可以使用少于10个晶体管来构造,并且与图12的带隙电压发生器1210相比,只占用显著减少的电路面积。在一些实施例中,本地电压源1330可以占据比图12的带隙电压发生器1210少至少一个数量级的电路面积。例如,在一种或多种实施例中,本地电压源所占据的电路面积可以是几十平方微米的数量级。
与带隙电压发生器1210产生的与温度无关的参考电压VREF相比,本地参考电压VREF_LOCAL可能相对不精确,并且可能导致ADC 1310生成的数字代码中的误差。在一些实施例中,由本地电压源1330提供的本地参考电压的准确度可能比带隙电压发生器1210生成的与温度无关的参考电压低至少一个数量级。在一个或多个实施例中,本地参考电压可以具有目标电压范围内的大约5%的准确度,而与温度无关的参考电压可能具有在目标电压范围内的大约0.5%的精度。
校准电路1340可以包括被耦接以从ADC 1310的输出端接收数字代码的输入端、向校正电路1345提供校正因子的输出端、以及从根监视器1200接收相应的控制信号CTRL的控制端。可以被耦接在ADC 1310和存储器1320之间的校正电路1345包括用于接收由校准电路1340提供的校正因子的端子。在一些实施例中,校准电路1340可以被配置为生成校正因子来补偿由ADC 1310生成的数字代码中的误差,并且校正电路1345可以被配置为基于校正因子来校正由ADC 1310生成的数字代码。
例如,在校准操作期间,控制信号CTRL的断言状态可以使交换机SW将与温度无关的参考电压VREF作为输入信号提供到ADC 1310,并且还可以启用校准电路1340。ADC 1310可以采样与温度无关的参考电压VREF以生成参考代码,并且校准电路1340可以基于由ADC1310生成的参考代码与指示VREF的已知值的预定数字代码之间的差异来生成校正因子。在监视操作期间,控制信号CTRL的解除断言状态可以使交换机SW将来自传感器20的模拟信号作为输入信号提供给ADC 1310,并且可以将卫星监视器1300与VREF和/或NoC互连***820隔离。ADC 1310可以对传感器20提供的模拟信号进行采样并生成数字代码。校正电路1345可以使用校正因子来校正数字代码,例如通过基于校正因子调整数字代码。以此方式,卫星监视器1300可补偿因相对较不精确的本地参考电压VREF_LOCAL的不准确性而导致的模数转换误差。
图14是描绘根据一些实施例的、用于监视分布在可编程器件的各个位置的多个电路的操作条件的示例性操作1400的说明性流程图。下面描述的操作1400是对于图8的可编程器件800、图11的监视***1100、图12的根监视器1200和图13的卫星监视器1300进行的,仅供说明之用。应当理解,示例性操作1400可以由这里公开的其他可编程器件和/或其他合适的器件来执行。
操作1400可以在方块1401开始,通过使用分布在可编程器件的各个位置的多个传感器中的相应一个传感器来生成指示多个电路中的每一个电路的操作条件的模拟信号。在一些实施例中,多个传感器20中的每一个电路可以位于关联电路的附近。在一些方面,传感器20可以是(或可以包括)温度传感器21、电源电压传感器22或外部传感器23中的至少一个。例如,在一些实施例中,根监视器890可以通过使用图12的带隙电路1212生成修整的和与温度无关的参考电压VREF。
操作1400可以在方块1402处通过将每个模拟信号提供给分布在可编程器件的各个位置的多个卫星监视器中的相应一个卫星监视器来进行。例如,在一些实施例中,与通过使用金属层信号路由结构将指示各种电路的操作条件的模拟信号穿过器件路由并提供给中央监视器的传统可编程器件相比,传感器20生成的模拟信号可以使用相对较短的本地信号线提供给相应的卫星监视器892(1)-892(19)。
操作1400可以在方块1403处通过使用本地电压源1330(例如,基于与温度无关的参考电压)在多个卫星监视器892(1)-892(19)中的每一个卫星监视器中生成本地参考电压来进行。与根监视器1200中提供的带隙电压发生器1210相比,本地电压源1330可以是相当小的,并且“面积效率高”。在一些实施例中,本地电压源1330可以包括少于一打晶体管,并且可以消耗比带隙电压发生器1210小至少一个数量级的电路面积。在一个或多个实施例中,本地电压源1330占据的电路面积可以在几十平方微米的数量级,而带隙电压发生器1210占据的电路面积可以是数百平方微米的数量级(或甚至一千平方微米)。
与由带隙电压发生器1210生成的与温度无关的参考电压相比,本地参考电压可能相对不精确。在一些实施例中,由本地电压源1330提供的和/或被存储在本地电压源1330中的本地参考电压可以是比由带隙电压发生器1210生成的与温度无关参考电压的精确度至少低一个数量级。在一个或多个实施例中,本地参考电压可以具有目标电压范围内大约5%的精确度,而与温度无关参考电压可以具有目标电压范围内大约0.5%的精确度。
操作1400可以基于本地参考电压在方块1404处通过使用模数转换器(ADC)将多个卫星监视器892(1)-892(19)中的每一个卫星监视器中的相应模拟信号转换成数字代码来进行。继续参考图13,在每个卫星监视器892(1)-892(19)内提供的ADC电路1310可以将模拟信号转换成可以存储在每个卫星监视器892(1)-892的存储器1320中的数字数据(19)。存储器1320可以选择性地将存储的数字数据提供给互连***820以路由到根监视器890。
操作1400可以通过将与温度无关的参考电压从根监视器890分配到多个卫星监视器892(1)-892(19)中的每一个卫星监视器来在方块1405处进行。在一些实施例中,与温度无关的参考电压可以通过使用跨越可编程结构的一个或多个模拟通道821被分配给多个卫星监视器892(1)-892(19)中的每一个卫星监视器。
操作1400可以通过至少部分地基于分配的与温度无关参考电压来校正由多个卫星监视器892(1)-892(19)中的每一个卫星监视器内的ADC 1310生成的数字代码来在方块1406处进行。在一些实施例中,可以基于指示由本地参考电压的不准确导致的模数转换误差的校正因子来调整数字代码。
操作1400可以通过将校正的数字代码从多个卫星监视器892(1)-892(19)选择性地路由到根监视器890而在方块1407处进行。校正的数字代码可以通过使用NoC互连***820从多个卫星监视器892(1)-892(19)选择性地路由到根监视器890。在一些实施例中,卫星监视器892(1)-892(19)中的每一个卫星监视器可以响应于由根监视器890生成的信号(例如,触发信号)向NoC互连***820提供校正的数字代码,例如,调度或优先考虑从卫星监视器892(1)-892(19)到根监视器890的数字数据的传送。在其他实施例中,卫星监视器892(1)-892(19)可以在没有提示和/或没有根监视器890控制的情况下向NoC互连***820提供数字数据。
图15是描绘用于校正由在每个卫星监视器内提供的ADC生成的数字代码的示例性操作1500的说明性流程图。出于说明的目的,示例性操作1500是下面描述的关于图8的可编程器件800,图11的监视***1100,图12的根监视器1200,和图13的卫星监视器1300。应当理解,示例性操作1500可以由这里公开的其他可编程器件和/或其他合适的器件来执行。在一些实施例中,示例性操作可以是以上关于图14描述的操作1400的过程1408的示例。
操作1500可以通过将与温度无关的参考电压作为输入信号提供给ADC 1310而在方块1501处开始。操作1500可以通过使用ADC 1310将与温度无关的参考电压转换成参考代码而在方块1502处进行。操作1500可以通过基于参考代码和指示与温度无关的参考电压的预定数字代码之间的差异生成校正因子而在方块1503处进行。操作1500可以通过基于校正因子调整数字代码而在方块1504处进行。
图16示出了根据一些实施例的示例性卫星监视器1600的框图。卫星监视器1600可以是图8的任意数量的卫星监视器892(1)-892(19)或图4的卫星监视器SAT1-SAT15(或两者),其被显示为包括ADC 1610、存储器1620、电压存储器1630、校准电路1640、校正电路1645、第一交换机SW1和第二交换机SW2。第一交换机SW1包括被耦接以从一个或多个模拟通道821接收与温度无关的参考电压VREF的第一输入端、被耦接以接收由一个或多个相关联的传感器20产生的模拟信号的第二输入端、被耦接以接收第一控制信号CTRL1中相应的一个控制信号的控制输入端、以及耦接到ADC 1610的输入端的输出端。第二交换机SW2包括被耦接以从一个或多个模拟通道接收与温度无关的参考电压的输入端、被耦接以接收第二控制信号CTRL2中的相应一个控制信号的控制端、以及耦接到电压存储器1630的输出端。在一些方面,传感器20可以包括(但不限于)温度传感器21、电源电压传感器22和外部传感器23。
ADC 1610包括耦接到存储器1620的输出端,还包括耦接到电压存储器1630的一个或多个参考端。ADC 1610可以是(或可以包括)可以将由一个或多个传感器20生成的模拟信号转换成数字数据或数字代码任何合适的ADC。在一些实施例中,ADC 1610可以利用缩放架构来数字化由传感器20提供的模拟传感数据。
存储器1620可以是任何合适的存储器件,其包括被耦接到ADC 1610的输出端的输入端,还包括耦接到NoC互连***820的输出端。存储器1620可以响应由一个或多个传感器20提供的模拟信号存储由ADC 1610生成的数字数据,还可以将数字数据提供给NoC互连***820以路由到图12的根监视器1200。在一些实施例中,存储器1620可以是或可以包括多个寄存器,每个寄存器用于存储指示选定的用于监视的多个电路中的相应电路的操作条件的数字数据。以这种方式,卫星监视器1600可以接收来自传感器20的指示选定电路中的相应一个电路的操作条件的模拟信号,可以将模拟信号转换成数字数据,并且可以经由NoC互连***820将指示选定电路的操作条件的数字数据提供到根监视器1200。
电压存储器1630可以是可以存储适合ADC 1610使用的本地参考电压VREF_LOCAL的任何合适的器件或组件。在一些实施例中,例如,如图16所示,电压存储器1630可以是电容器。更具体地,在一些实施例中,电压存储器1630可以被实施为电容器C1,并且第二交换机SW2可以被实施为CMOS晶体管M1。电容器C1耦接在晶体管M1(用作第二交换机SW2)和ADC 1610的参考端之间,并且可以比图12的带隙电压发生器1210占据少得多的电路面积。此外,例如,电容器不需要在制造过程中进行修整,如带隙电压发生器1210之类的精确电压参考值也是如此。在一些实施例中,电压存储器1630可以占据比图12的带隙电压发生器1210小至少一个数量级的电路面积。例如,在一个或多个实施例中,本地电压存储器1630占据的电路面积可以在几十平方微米的数量级。
与带隙电压发生器1210生成的与温度无关的参考电压VREF相比,本地参考电压VREF_LOCAL可能相对不精确,并且可能导致ADC 1610生成的数字代码中的误差。在一些实施例中,由本地电压存储器提供的本地参考电压1630可以比带隙电压发生器1210生成的与温度无关的参考电压精度低至少一个数量级。在一个或多个实施例中,本地参考电压可以具有目标电压范围内大约5%的精度,而与温度无关的参考电压可以具有目标电压范围内大约0.5%的精度。
校准电路1640可以包括被耦接以从ADC 1610的输出端接收数字代码的输入端、向校正电路1645提供校正因子的输出端、以及从根监视器1200接收相应的第一控制信号CTRL1的控制端。可以被耦接在ADC 1610和存储器1620之间的校正电路1645包括用于接收由校准电路1640提供的校正因子的端子。在一些实施例中,校准电路1640可以被配置为生成校正因子以补偿由ADC 1610生成的数字代码中的误差,并且校正电路1645可以被配置为基于校正因子校正由ADC 1610生成的数字代码。
例如,在校准操作期间,第一控制信号CTRL1可以被断言(例如,逻辑高),且第二控制信号CTRL2可以被断言(例如,逻辑高)。第一控制信号CTRL1的断言状态可以使第一交换机SW1向ADC 1610提供与温度无关的参考电压VREF作为输入信号,且还可以使能校准电路1640。第二控制信号的断言状态CTRL2可以打开第二交换机SW2并且将电压存储器1630耦接到一个或多个模拟通道821,从而允许电压存储器1630被充电到大约等于与温度无关的参考电压的值(使得存储的电荷可以被ADC 1610用作为本地参考电压VREF_LOCAL)。交换机SW1和SW2的导通状态可能造成对与温度无关的参考电压的干扰(例如,骤降),例如,由被耦接到ADC 1610的输入端和耦接到电压存储器1630的VREF引起。
一旦电压存储器1630被充分充电并存储本地参考电压VREF_LOCAL,第二控制信号CTRL2可以被解除断言(例如,到逻辑低)。第二控制信号CTRL2的解除断言状态可以闭合第二交换机SW2并且防止电压存储器1630从一个或多个模拟通道821访问与温度无关的参考电压。第二控制信号CTRL2的解除断言还可能会在与温度无关的参考电压VREF中引起干扰(例如,骤降)。在一些实施例中,第一控制信号CTRL1可以保持在断言状态直到温度无关参考电压VREF中的干扰稳定。此后,第一控制信号CTRL1可以被接触断言(例如,到逻辑低),并且ADC 1610可以对与温度无关的参考电压VREF进行采样以生成参考代码。校准电路1640可以基于由ADC 1610生成的参考代码与指示VREF的已知值的预定数字代码之间的差来生成校正因子。校正因子可以提供给(并存储在)校正电路1645。
在监视操作期间,第一控制信号CTRL1可以保持在解除断言状态,从而允许第一交换机SW1将传感器20生成的模拟信号作为输入信号提供给ADC 1610(并且还可以禁用校准电路1640)。ADC 1610可以对传感器20提供的模拟信号进行采样并且生成表示采样的模拟信号的数字代码。校正电路1645可以使用在校准操作期间生成的校正因子来校正数字代码,例如通过基于校正因子调整数字代码。以此方式,卫星监视器1600可补偿因相对不精确的本地参考电压VREF_LOCAL的不准确而导致的模数转换误差。
在一些实施例中,校准操作可以周期性地执行(例如每N毫秒,其中N是大于零的任何合适的数)以维持由电压存储器1630存储的最小电压电平(如VREF_LOCAL)并确保卫星监视器1600保持校准正确。
示例
示例1:一种可编程器件,包括:多个可配置的逻辑资源;根监视器,其包括被配置为生成参考电压的电路;多个传感器,其分布在可编程器件的各个位置,每个传感器被配置为在各个位置的相应位置测量关联电路的操作条件;多个卫星监视器,其分布在可编程器件的各个位置,每个卫星监视器被耦接到位于相应卫星监视器附近的一个或多个相关联的传感器;互连***,其被耦接到可配置逻辑资源、根监视器和多个卫星监视器中的每一个卫星监视器,其中互连***被配置为:将参考电压从根监视器分配到多个卫星监视器中的每一个卫星监视器;并且选择性地将数字数据从多个卫星监视器中的每一个卫星监视器路由到根监视器,其中数字数据指示所测量的操作条件。
示例2:示例1所述的可编程器件,其中所述操作条件包括温度或电压电平中的至少一个。
示例3:示例1的可编程器件,其中根监视器包括带隙电路,其被配置为针对温度变化补偿参考电压。
示例4:示例1的可编程器件,其中每个卫星监视器包括:模数转换器(ADC),其包括用于接收指示由一个或多个相关联的传感器测量的操作条件的模拟信号的输入端、向互连***提供数字数据的输出端、以及接收本地参考电压的参考端。
示例5:示例4的可编程器件,其中本地参考电压至少部分地基于由互连***分配的参考电压。
示例6:示例4的可编程器件,其中每个卫星监视器还包括:存储器,其包括耦接到ADC的输出端的输入端,耦接到互连***的输出端,以及被配置为存储由ADC提供的数字数据。
示例7:示例4的可编程器件,其中每个卫星监视器还包括:交换机,其被配置为基于由根监视器生成的控制信号将互连***分配的参考电压选择性地耦接到卫星监视器。
示例8:示例7的可编程器件,其中控制信号被配置为将互连***分配的参考电压同时耦接到唯一一个卫星监视器。
示例9:示例1的可编程器件,其中多个卫星监视器中的至少一些卫星监视器被集成在互连***内。
示例10:示例1的可编程器件,其中互连***还包括:一个或多个模拟通道,其被配置为将来自根监视器的参考电压分配到多个卫星监视器中的每一个卫星监视器;一个或多个数字通道,其被配置为选择性地将数字数据从卫星监视器路由到根监视器作为可单独寻址的数据包。
示例11:示例1的可编程器件,其中根监视器还包括:存储器,被配置为存储从多个卫星监视器中的每一个卫星监视器接收到的数字数据;控制器,被配置为确定所测量的至少一个关联电路的操作条件是否在一范围内。
示例12:一种用于监控可编程器件的多个操作条件的***,该***包括:根监视器,其包括被配置为生成参考电压的电路、分布在可编程器件上的多个传感器,每个传感器被配置为生成指示关联电路的操作条件的模拟信号、分布在可编程器件上的多个卫星监视器,每个卫星监视器被配置为将一个或多个相应传感器生成的模拟信号转换成数字数据;以及互连***,其至少被耦接到根监视器和多个卫星监视器中的每一个,该互连***包括:一个或多个模拟通道,被配置为将参考电压从根监视器分配到多个卫星监视器中的每一个卫星监视器;和一个或多个数字通道,其被配置为选择性地将数字数据从多个卫星监视器的每一个卫星监视器路由到根监视器。
示例13:示例12的***,其中操作条件包括温度或电压电平中的至少一个。
示例14:示例12的***,其中每个卫星监视器包括:模数转换器(ADC),其被配置为将一个或多个相关联的传感器生成的模拟信号转换为数字数据。
示例15:示例14的***,其中每个卫星监视器还包括:交换机,其被配置为基于由根监视器生成的控制信号将互连***分配的参考电压选择性地耦接到卫星监视器。
示例16:示例15的***,其中控制信号被配置为将互连***分配的参考电压同时耦接到唯一一个卫星监视器。
示例17:一种监视可编程器件的多个操作条件的方法,所述方法包括:通过使用与可编程器件内提供的根监视器相关联的电压发生器生成参考电压;通过使用集成在可编程器件内的互连***的一个或多个模拟通道将参考电压分配给多个卫星监视器中的每一个卫星监视器;通过使用多个传感器中的每一个传感器生成指示关联电路的操作条件的模拟信号;将多个传感器生成的模拟信号提供给多个卫星监视器中的相应的一个卫星监视器;使用多个卫星监视器将模拟信号转换为数字数据;并且使用互连***的一个或多个数字通道将数字数据从多个卫星监视器选择性地路由到根监视器。
示例18:示例17的方法,其中操作条件包括温度或电压电平中的至少一个。
示例19:示例17的方法,其中分配参考电压还包括:基于由根监视器生成的相应控制信号,将多个卫星监视器中的每一个卫星监视器选择性地耦接到互连***。
示例20:示例19的方法,其中控制信号被配置为将互连***分配的参考电压同时耦接到唯一一个卫星监视器。
示例21:一种可编程器件,包括:可编程逻辑,其包括多个可配置逻辑资源;根监视器,其包括被配置为生成与温度无关的参考电压的带隙电压发生器;多个传感器,其分布在可编程器件的各个位置,每个传感器被配置为生成指示各个位置中的相应位置附近的一个或多个关联电路的被测量的操作条件的模拟信号;以及多个卫星监视器,其分布在各个位置的可编程器件上,每个卫星监视器通过一条或多条本地信号线被耦接到一个或多个相关联的传感器,并且包括:相对较小的本地电压源,其被配置为生成本地参考电压;模数转换器(ADC),其包括用于接收本地参考电压的参考端,并被配置为将由一个或多个相关联的传感器生成的模拟信号转换为指示所测量的操作条件的数字代码;校准电路,其被配置为生成指示数字代码中的误差的校正因子;以及校正电路,其被配置为基于校正因子校正数字代码。
示例22:示例21的可编程器件,其中本地电压源由少于一打晶体管组成,并且消耗的电路面积比带隙电压发生器少至少一个数量级。
示例23:示例21的可编程器件,其中数字代码中的误差与本地参考电压和与温度无关的参考电压的偏差相关联。
示例24:示例21的可编程器件,其中所述校正因子是基于由ADC响应于采样所述与温度无关参考电压而生成的参考代码和指示所述与温度无关的参考电压的预定数字代码之间的差。
示例25:示例21的可编程器件,还包括:片上网络(NoC)互连***,其跨越可编程逻辑并且被配置为选择性地将数字数据从多个卫星监视器中的每一个卫星监视器路由到根监视器。
示例26:示例25的可编程器件,其中根监视器还包括:存储器,其被配置为存储经由NoC互连***从多个卫星监视器接收的数字数据;控制器,其被配置为确定由数字数据体现的测量的操作条件是否在范围内。
示例27:示例25的可编程器件,还包括:一个或多个模拟通道,其被配置为将来自根监视器的与温度无关参考电压分配到多个卫星监视器中的每一个卫星监视器。
示例28:示例27的可编程器件,其中NoC互连***包括一个或多个模拟通道。
示例29:示例27的可编程器件,其中每个卫星监视器还包括:交换机,其包括被耦接以从一个或多个模拟通道接收与温度无关的参考电压的第一输入端、被耦接以接收由一个或多个相关联的传感器生成的模拟信号的第二输入端、被耦接以接收控制信号的控制端、以及被耦接到卫星监视器内的ADC的输入端的输出端。
示例30:示例29的可编程器件,其中:在校准操作期间,交换机将与温度无关的参考电压作为输入信号提供给ADC;在监控操作期间,交换机将来自传感器的模拟信号作为输入信号提供给ADC。
示例31:示例30的可编程器件,其中:在校准操作期间,ADC采样与温度无关的参考电压以生成参考代码;并且在监控操作期间,ADC对来自一个或多个相关联的传感器的模拟信号进行采样以生成数字代码。
示例32:示例31的可编程器件,其中校准电路被配置为基于由ADC生成的参考代码与指示与温度无关的参考电压的预定数字代码之间的差来生成校正因子。
示例33:示例29的可编程器件,其中根监视器被配置为至少部分地基于时序表来生成用于校准多个卫星监视器的控制信号。
示例34:示例33的可编程器件,其中所述时序表被配置为通过一次仅向卫星监视器中的一个卫星监视器提供与温度无关的参考电压来顺序地启用多个卫星监视器中的每一个卫星监视器的校准。
示例35:一种监视被分布在可编程器件的各个位置的多个电路的操作条件的方法,所述方法包括:通过使用被分布在可编程器件的各个位置的多个传感器中的相应一个传感器生成指示多个电路中的每个电路的操作条件的模拟信号;将每个模拟信号提供给分布在可编程器件不同位置的多个卫星监视器中的相应一个卫星监视器;使用相对较小的本地电压源在多个卫星监视器的每一个卫星监视器中生成本地参考电压;在多个卫星监视器的每一个卫星监视器中,基于本地参考电压使用模数转换器(ADC)将多个模拟信号中的相应一个转换为数字代码;从根监视器向多个卫星监视器中的每一个卫星监视器分配与温度无关的参考电压;至少部分地基于分配的与温度无关的参考电压来校正由多个卫星监视器中的每一个卫星监视器中的ADC生成的数字代码;以及选择性地将校正的数字代码从多个卫星监视器的每一个卫星监视器路由到根监视器。
示例36:示例35的方法,其中本地电压源由少于一打晶体管组成,并且消耗的电路面积比带隙电压发生器少至少一个数量级。
示例37:示例35的方法,其中:使用跨越可编程器件的片上网络(NoC)互连***将校正的数字代码从多个卫星监视器选择性地路由到根监视器;并且通过使用跨越可编程器件的一个或多个模拟通道将与温度无关的参考电压从根监视器分配到多个卫星监视器。
示例38:示例35的方法,其中分配的与温度无关的参考电压还包括:基于由根监视器生成的相应的多个控制信号,顺序地使多个卫星监视器中的每一个卫星监视器能够访问温度无关的参考电压。
示例39:示例35的方法,其中所述校正包括:将温度无关的参考电压作为输入信号提供给ADC;以及使用ADC将与温度无关的参考电压转换为参考代码;基于参考代码和指示与温度无关的参考电压的预定数字代码之间的差生成校正因子;并根据校正因子调整数字代码。
示例40:示例39的方法,其中校正因子被配置为补偿与本地参考电压和来自与温度无关参考电压的偏差相关联的数字代码中的误差。
示例41:一种可编程器件,包括:可编程逻辑,其包括多个可配置逻辑资源;根监视器,其包括被配置为生成与温度无关的参考电压的带隙电压发生器;多个传感器,其被分布在可编程器件的各个位置处,每个传感器被配置为生成指示各个位置中的相应位置附近的一个或多个关联电路的测量操作条件的模拟信号;以及多个卫星监视器,其分布在可编程器件的各个位置上,每个卫星监视器通过一条或多条本地信号线耦接到一个或多个相关联的传感器,并且包括:电压存储器,其被配置为基于带隙电压发生器生成的与温度无关的参考电压存储本地参考电压;模数转换器(ADC),其包括用于接收本地参考电压的参考端,并被配置为将由一个或多个相关联的传感器生成的模拟信号转换为指示所测量操作条件的数字代码;校准电路,其被配置为生成指示数字代码中的误差的校正因子;以及校正电路,其被配置为基于校正因子校正数字代码。
示例42:示例41的可编程器件,其中本地参考电压比带隙电压发生器生成的与温度无关的参考电压的准确度低至少一个数量级。
示例43:示例41的可编程器件,其中电压存储器包括电容器。
示例44:示例41的可编程器件,其中数字代码中的误差是与本地参考电压同与温度无关参考电压的偏差相关联。
示例45:示例41的可编程器件,其中所述校正因子是基于在由ADC响应于采样所述与温度无关的参考电压而生成的参考代码与指示所述与温度无关的参考电压的预定数字代码之间的差。
示例46:示例41的可编程器件,还包括:片上网络(NoC)互连***,其跨越可编程逻辑并且被配置为选择性地将数字数据从多个卫星监视器中的每一个卫星监视器路由到根监视器。
示例47:示例46的可编程器件,其中根监视器还包括:存储器,其被配置为存储经由NoC互连***从多个卫星监视器接收的数字数据;以及控制器,其被配置为确定由数字数据体现的所测量的操作条件是否在范围内。
示例48:示例46的可编程器件,还包括:一个或多个模拟通道,其被配置为将来自根监视器的与温度无关参考电压分配到多个卫星监视器中的每一个卫星监视器。
示例49:示例48的可编程器件,其中NoC互连***包括一个或多个模拟通道。
示例50:示例48的可编程器件,其中每个卫星监视器还包括:第一交换机,其包括被耦接以从一个或多个模拟通道接收与温度无关的参考电压的第一输入端,被耦接以接收由一个或多个相关联的传感器生成的模拟信号的第二输入端、被耦接以接收控制信号的控制端、以及被耦接到卫星监视器内的ADC的输入端的输出端。
示例51:示例50的可编程器件,其中每个卫星监视器还包括:第二交换机,其包括被耦接以从一个或多个模拟通道接收与温度无关的参考电压的输入端、被耦接以接收控制信号的控制端、以及被耦接到电压存储器的输出端。
示例52:示例51的可编程器件,其中在校准操作期间:第一交换机将温度无关的参考电压作为输入信号提供给ADC;第二交换机对电压存储器充电,然后将电压存储器与与温度无关的参考电压隔离;以及ADC采样与温度无关的参考电压以生成参考代码。
示例53:示例52的可编程器件,其中在监控操作期间,第一交换机将来自传感器的模拟信号作为输入信号提供给ADC;第二交换机周期性地向电压存储器提供与温度无关的参考电压;以及ADC对来自一个或多个关联传感器的模拟信号进行采样以生成数字代码。
示例54:示例51所述的可编程器件,其中根监视器被配置为至少部分地基于用于校准多个卫星监视器的时序安排来生成控制信号。
示例55:示例54所述的可编程器件,其中所述时序表被配置为通过一次仅向所述卫星监视器中的一个卫星监视器提供所述与温度无关的参考电压来顺序地启用所述多个卫星监视器中的每一个卫星监视器的校准。
示例56:一种监视分布在可编程器件的各个位置的多个电路的操作条件的方法,所述方法包括:通过使用分布在可编程器件各个位置的多个传感器中的相应一个传感器,生成指示多个电路中的每个电路的操作条件的模拟信号;将每个模拟信号提供给分布在可编程器件的各个位置的多个卫星监视器中的相应一个卫星监视器;基于与温度无关的参考电压,在多个卫星监视器的每一个卫星监视器中存储本地参考电压;在多个卫星监视器的每一个卫星监视器中,基于本地参考电压使用模数转换器(ADC)将多个模拟信号中的相应一个模拟信号转换为数字代码;将与温度无关的参考电压从根监视器分配到多个卫星监视器中的每一个卫星监视器;至少部分地基于分配的与温度无关的参考电压来校正由多个卫星监视器中的每一个卫星监视器中的ADC生成的数字代码;并且将校正的数字代码从多个卫星监视器的每一个卫星监视器选择性地路由到根监视器。
示例57:示例56的方法,其中:通过使用跨越可编程器件的片上网络(NoC)互连***将校正的数字代码从多个卫星监视器选择性地路由到根监视器;并且通过使用跨越可编程器件的一个或多个模拟通道,将与温度无关的参考电压从根监视器分配到多个卫星监视器。
示例58:示例57的方法,其中所述存储包括:通过使用由所述一个或多个模拟通道分配的与温度无关的参考电压选择性地对设置在相应卫星监视器内的电容器充电。
示例59:示例56的方法,其中分配与温度无关的参考电压还包括:基于由根监视器生成的相应的多个控制信号,顺序地使多个卫星监视器中的每一个卫星监视器能够访问与温度无关的参考电压.
示例60:示例56的方法,其中所述校正包括:将所述与温度无关的参考电压作为输入信号提供给所述ADC;使用ADC将与温度无关的参考电压转换为参考代码;基于参考代码和指示与温度无关的参考电压的预定数字代码之间的差生成校正因子;并根据校正因子调整数字代码。
本领域技术人员将理解,可以使用多种不同工艺和技术中的任何一种来表示信息和信号。例如,贯穿以上描述中可能被引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子、或它们的任何组合表示。
此外,本领域技术人员将理解,结合本文公开的方面描述的各种说明性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性组件、块、模块、电路和步骤已经在上面大体上根据它们的功能进行了描述。这种功能是作为硬件还是软件来实现的,取决于特定的应用程序和对整个***施加的设计约束。本领域技术人员可以针对每个特定应用以不同方式实现所描述的功能,但是这种实现决定不应被解释为导致偏离本公开的范围。
结合本文公开的方面描述的方法、序列或算法可以直接体现在硬件中、由处理器执行的软件模块中、或两者的组合中。软件模块可以驻留在RAM锁存器、闪存锁存器、ROM锁存器、EPROM锁存器、EEPROM锁存器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的存储介质中。示例存储介质被耦接到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。可替换地,存储介质可以与处理器集成在一起。
在上述说明书中,已经参考其具体的示例实施例描述了示例实施方式。然而,很明显,在不脱离所附权利要求中阐述的本文公开的更广泛范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的。
Claims (18)
1.一种可编程器件,其特征在于,所述可编程器件包括:
多个可配置逻辑资源;
根监视器,所述根监视器包括被配置为生成参考电压的电路;
多个传感器,所述传感器分布在所述可编程器件的多个位置,每个所述传感器被配置为测量在多个位置的一个相应位置处的关联电路的操作条件;
多个卫星监视器,所述卫星监视器分布在所述可编程器件的多个位置,每个所述卫星监视器耦接到位于相应卫星监视器附近的一个或多个关联传感器;以及
互连***,所述互连***耦接到所述可配置逻辑资源、所述根监视器、和所述多个卫星监视器中的每一个卫星监视器,其中所述互连***被配置为:
将来自所述根监视器的参考电压分配给所述多个卫星监视器中的每一个卫星监视器;和
选择性地将来自所述多个卫星监视器中的每一个卫星监视器的数字数据路由到所述根监视器,其中所述数字数据指示所述测量的操作条件。
2.根据权利要求1所述的可编程器件,其特征在于,所述根监视器包括以下至少一项:
带隙电路,所述带隙电路被配置为针对温度变化补偿所述参考电压;
存储器,所述存储器被配置为存储从所述多个卫星监视器中的每一个卫星监视器接收的所述数字数据;以及
控制器,所述控制器被配置为确定所述至少一个关联电路被测量的操作条件是否处于一个范围内。
3.根据权利要求1所述的可编程器件,其特征在于,每个所述卫星监视器包括以下至少一项:
模数转换器,所述模数转换器包括输入、输出和参考端,所述输入用于接收指示由一个或多个关联传感器测量的操作条件的模拟信号;所述输出用于向所述互连***提供所述数字数据;以及所述参考端用于接收局部参考电压;
存储器,所述存储器包括耦接到所述模数转换器的输出的输入,耦接到所述互连***的输出,所述存储器被配置为存储由所述模数转换器提供的所述数字数据;以及
交换机,所述交换机被配置为基于由所述根监视器生成的控制信号选择性地将所述互连***分配的所述参考电压耦接到所述卫星监视器,其中所述控制信号被配置为将所述互连***分配的所述参考电压同时耦接到所述卫星监视器中的唯一一个卫星监视器。
4.根据权利要求3所述的可编程器件,其特征在于,所述局部参考电压至少部分地是基于由所述互连***分配的所述参考电压。
5.根据权利要求1所述的可编程器件,其特征在于,所述互连***还包括:
一个或多个模拟通道,所述模拟通道被配置为将来自所述根监视器的所述参考电压分配给所述多个卫星监视器中的每一个卫星监视器;以及
一个或多个数字通道,所述数字通道被配置为将来自所述卫星监视器的所述数字数据作为单独可寻址的数据包选择性地路由到所述根监视器。
6.根据权利要求1所述的可编程器件,其特征在于,
每个所述卫星监视器通过一条或多条局部信号线连接到一个或多个关联传感器,所述卫星监视器还包括:
局部电压源;
模数转换器,所述模数转换器包括接收局部参考电压的参考端,并被配置为将所述一个或多个关联传感器生成的模拟信号转换为指示所述测量的操作条件的数字代码;
校准电路,所述校准电路被配置为生成指示所述数字代码中的误差的校正因子;以及
校正电路,所述校正电路被配置为基于所述校正因子校正所述数字代码。
7.根据权利要求6所述的可编程器件,其特征在于,所述电压源被配置为:
生成所述局部参考电压;或
基于与温度无关的参考电压存储所述局部参考电压,所述与温度无关的参考电压由带隙电压发生器生成。
8.根据权利要求6所述的可编程器件,其特征在于,还包括:
片上网络互连***,所述片上网络互连电路跨越可编程逻辑,并被配置为将来自所述多个卫星监视器中的每一个卫星监视器的数字数据选择性地路由到所述根监视器。
9.根据权利要求6所述的可编程器件,其特征在于,每个所述卫星监视器还包括:
第一交换机,所述第一交换机包括:第一输入端,所述第一输入端被耦接以从所述一个或多个模拟通道接收与温度无关的参考电压;第二输入端,所述第二输入端被耦接以接收由一个或多个关联传感器生成的模拟信号;控制端,所述控制端被耦接以接收控制信号;以及输出端,所述输出端被耦接到所述卫星监视器内的所述模数转换器的输入端。
10.根据权利要求9所述的可编程器件,其特征在于,
在校准操作期间,所述第一交换机提供所述与温度无关的参考电压作为所述模数转换器的输入信号;以及
在监视操作期间,所述第一交换机将来自所述传感器的模拟信号作为输入信号提供给所述模数转换器。
11.根据权利要求10所述的可编程器件,其特征在于,
在所述校准操作期间,所述模数转换器对所述与温度无关的参考电压进行采样以生成参考代码;以及
在所述监视操作期间,所述模数转换器对来自所述一个或多个关联传感器的模拟信号进行采样以生成所述数字代码。
12.根据权利要求9所述的可编程器件,其特征在于,每个所述卫星监视器还包括:
第二交换机,所述第二交换机包括输入端,所述输入端被耦接以从所述一个或多个模拟通道接收所述与温度无关的参考电压;控制端,所述控制端被耦接以接收所述控制信号;以及输出端,所述输出端被耦接到所述电压存储器。
13.根据权利要求12所述的可编程器件,其特征在于,在校准操作期间:
所述第二交换机为所述电压存储器充电,并将所述电压存储器和所述与温度无关的参考电压隔离;以及
所述模数转换器对所述与温度无关的参考电压进行采样以生成参考代码。
14.一种用于监视可编程器件的多个操作条件的***,其特征在于,所述***包括:
根监视器,所述根监视器包括被配置为生成参考电压的电路;
多个传感器,所述多个传感器分布在所述可编程器件上,每个所述传感器被配置为生成指示关联电路的操作条件的模拟信号;
多个卫星监视器,所述多个卫星监视器分布在所述可编程器件上,每个所述卫星监视器被配置为将一个或多个关联传感器产生的模拟信号转换成数字数据;以及
互连***,所述互连***至少被耦接到所述根监视器和所述多个卫星监视器中的每一个卫星监视器,所述互连***包括:
一个或多个模拟通道,所述模拟通道被配置为将来自所述根监视器的所述参考电压分配给所述多个卫星监视器中的每一个卫星监视器;以及
一个或多个数字通道,所述数字通道被配置为将来自所述多个卫星监视器的每一个卫星监视器的所述数字数据选择性地路由到所述根监视器。
15.根据权利要求14所述的***,其特征在于,每个所述卫星监视器包括以下至少一个:
模数转换器,所述模数转换器被配置为将所述多个传感器生成的所述模拟信号转换为所述数字数据;
交换机,所述交换机被配置为基于由所述根监视器生成的控制信号,将由所述互连***分配的所述参考电压选择性地耦接到所述卫星监视器;
其中所述控制信号被配置为将由所述互连***分配的所述参考电压同时耦接到所述卫星监视器中的唯一一个卫星监视器。
16.一种监视可编程器件的多个操作条件的方法,其特征在于,所述方法包括:
通过使用与可编程器件内提供的根监视器关联的电压发生器生成参考电压;
通过使用集成在所述可编程器件内的互连***的一个或多个模拟通道,将所述参考电压分配给多个卫星监视器中的每一个卫星监视器;
通过使用多个传感器中的每一个传感器生成指示关联电路的操作条件的模拟信号;
将由所述多个传感器生成的所述模拟信号提供给所述多个卫星监视器中的相应的一个卫星监视器;
通过使用所述多个卫星监视器将所述模拟信号转换为所述数字数据;以及
通过使用所述互连***的一个或多个数字通道,将来自所述多个卫星监视器的所述数字数据选择性地路由到所述根监视器。
17.根据权利要求16所述的方法,其特征在于,分配所述参考电压还包括:
基于由所述根监视器生成的一个相应的控制信号,将所述多个卫星监视器中的每一个卫星监视器选择性地耦接到所述互连***,其中所述控制信号被配置为将由所述互连***分配的所述参考电压同时耦接到所述卫星监视器中的一个卫星监视器。
18.根据权利要求16所述的方法,其特征在于,所述方法还包括:
从所述根监视器向所述多个卫星监视器中的每一个卫星监视器分配与温度无关的参考电压;
至少部分地基于所述分配的且与温度无关的参考电压来校正由所述多个卫星监视器中的每一个卫星监视器内的模数转换器生成的所述数字代码。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/506,064 | 2019-07-09 | ||
US16/506,064 US11709275B2 (en) | 2019-07-09 | 2019-07-09 | Root monitoring on an FPGA using satellite ADCs |
US16/535,713 | 2019-08-08 | ||
US16/535,713 US10705144B1 (en) | 2019-08-08 | 2019-08-08 | Device monitoring using satellite ADCs having local capacitors |
US16/535,726 US10598729B1 (en) | 2019-08-08 | 2019-08-08 | Device monitoring using satellite ADCs having local voltage reference |
US16/535,726 | 2019-08-08 | ||
PCT/US2020/041287 WO2021007376A1 (en) | 2019-07-09 | 2020-07-08 | Root monitoring on an fpga using satellite adcs |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114364996A true CN114364996A (zh) | 2022-04-15 |
Family
ID=71784736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080062705.XA Pending CN114364996A (zh) | 2019-07-09 | 2020-07-08 | 使用卫星adc在fpga上进行根监视 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3981074A1 (zh) |
JP (1) | JP2022540420A (zh) |
KR (1) | KR20220031022A (zh) |
CN (1) | CN114364996A (zh) |
WO (1) | WO2021007376A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372021B (zh) * | 2022-01-13 | 2023-03-24 | 中国人民解放军国防科技大学 | 一种支持高一致多信道并行收发的数字信号处理*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170272073A1 (en) * | 2016-03-18 | 2017-09-21 | Altera Corporation | Dynamic parameter operation of an fpga |
US10228294B2 (en) * | 2016-05-12 | 2019-03-12 | Infineon Technologies Ag | System and method for temperature sensing |
US20180097825A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | System monitor |
US10557894B2 (en) * | 2017-08-07 | 2020-02-11 | Linear Technology Holding Llc | Reference signal correction circuit |
-
2020
- 2020-07-08 JP JP2022500668A patent/JP2022540420A/ja active Pending
- 2020-07-08 WO PCT/US2020/041287 patent/WO2021007376A1/en unknown
- 2020-07-08 CN CN202080062705.XA patent/CN114364996A/zh active Pending
- 2020-07-08 KR KR1020227002161A patent/KR20220031022A/ko unknown
- 2020-07-08 EP EP20745456.2A patent/EP3981074A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3981074A1 (en) | 2022-04-13 |
KR20220031022A (ko) | 2022-03-11 |
JP2022540420A (ja) | 2022-09-15 |
WO2021007376A1 (en) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11199581B1 (en) | Device monitoring using satellite ADCS having local voltage reference | |
US11709275B2 (en) | Root monitoring on an FPGA using satellite ADCs | |
US11063594B1 (en) | Adaptive integrated programmable device platform | |
EP4202713A1 (en) | Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems | |
US5504670A (en) | Method and apparatus for allocating resources in a multiprocessor system | |
US7257723B2 (en) | Reducing power consumption in embedded systems by controlling voltage based on system state and partition designation | |
US10673745B2 (en) | End-to-end quality-of-service in a network-on-chip | |
US11257526B2 (en) | Sector-aligned memory accessible to programmable logic fabric of programmable logic device | |
US10963411B1 (en) | Integrating rows of input/output blocks with memory controllers in a columnar programmable fabric archeture | |
KR20130080305A (ko) | 온도 관리 회로, 이를 포함하는 시스템 온 칩 및 온도 관리 방법 | |
EP3611625A1 (en) | Inter-die communication of programmable logic devices | |
EP3238388A1 (en) | Link delay based routing apparatus for a network-on-chip | |
US7426709B1 (en) | Auto-generation and placement of arbitration logic in a multi-master multi-slave embedded system | |
CN114364996A (zh) | 使用卫星adc在fpga上进行根监视 | |
US10262096B2 (en) | Component placement with repacking for programmable logic devices | |
US10705144B1 (en) | Device monitoring using satellite ADCs having local capacitors | |
CN107112994B (zh) | 用于集成电路的电源管理*** | |
US11012072B1 (en) | Thermal load balancing of programmable devices | |
US9639646B2 (en) | System-on-chip intellectual property block discovery | |
Hagemeyer et al. | A scalable platform for run-time reconfigurable satellite payload processing | |
EP4020810A2 (en) | Debug trace microsectors | |
US20150178436A1 (en) | Clock assignments for programmable logic device | |
US12063037B2 (en) | Embedded network on chip accessible to programmable logic fabric of programmable logic device in multi-dimensional die systems | |
US20240020449A1 (en) | Fast CAD Compilation Through Coarse Macro Lowering | |
US11755511B2 (en) | Data bus inversion using multiple transforms |
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 |