本申请中描述的实施方式大体涉及集成电路,具体而言,涉及对可编程逻辑器件的电压调节。
背景技术:
可编程逻辑器件作为一种众所周知的集成电路类型而存在,用户可以对其进行编程以执行具体的逻辑功能。现场可编程门阵列(fpga)是一类可编程逻辑器件。fpga通过在可重配置逻辑门内直接实现算法来进行操作。逻辑门的功能和互连由控制存储器定义,按照需要可以对控制存储器进行重新编程。fpga被设计成在制造之后由客户在现场进行配置,以便实现具体的设计功能。
fpga中的电源是十分重要的,这是因为具体的电压和电源要求包括复杂的初始条件、瞬时行为、接通/断开规范以及电压时序(voltagesequencing)。因此,fpga的电源管理是fpga系统设计中最关键的因素之一。
技术实现要素:
一种器件包括:半导体衬底;在所述半导体衬底上的可编程逻辑器件;配电网络,所述配电网络包括在所述半导体衬底上的至少一个电压调节器;以及电源管理总线,其用于在所述至少一个电压调节器和所述可编程逻辑器件之间进行通信;其中,所述可编程逻辑器件包括处理模块,所述处理模块被配置成对所述配电网络执行诊断分析。
可选地,所述可编程逻辑器件包括现场可编程门阵列(fpga)。
可选地,所述可编程逻辑器件包括监测组件,所述监测组件被配置成收集来自配电网络的数据,并且将收集到的所述数据传输至所述处理模块以用于分析。
可选地,所述监测组件包括模数(a/d)转换器。
可选地,所述处理模块包括校验模块,所述校验模块被配置成对所述可编程逻辑器件进行检查,以用于在所述可编程逻辑器件被编程之后的校验。
可选地,所述处理模块被配置成,在所述器件被用于商业用途之后,监测所述可编程逻辑器件的行为。
可选地,所述处理模块包括频率识别器,所述频率识别器被配置成识别在其上会发生工频谐振的一个或多个频率。
可选地,所述处理模块包括时钟修正模块,所述时钟修正模块被配置成修正时钟特征,以防止工频谐振(powerfrequencyresonance)的发生。
可选地,所述处理模块包括时钟修正模块,所述时钟修正模块被配置成调慢时钟、调快所述时钟、用伪随机序列调制所述时钟、以周期性的方式禁用所述时钟或者通过上述的任何组合,从而防止工频谐振的发生。
可选地,所述可编程逻辑器件被配置成,基于对所述配电网络进行诊断分析的结果,控制所述配电网络。
可选地,所述器件还包括硅衬底或者多芯片模块衬底。
一种方法包括:收集来自配电网络的数据,所述配电网络包括在半导体衬底上的至少一个电压调节器,其中所述收集数据的步骤是通过可编程逻辑器件内的监测组件执行的;以及通过所述可编程逻辑器件内的处理模块分析收集到的所述数据,从而以对所述配电网络执行诊断分析。
可选地,所述可编程逻辑器件包括现场可编程门阵列(fpga)。
可选地,所述监测组件包括模数(a/d)转换器,并且通过所述a/d转化器可以执行收集来自配电网络的所述数据的步骤。
可选地,分析收集到的所述数据以对所述配电网络执行诊断分析的步骤包括:对所述可编程逻辑器件进行检查,以用于在所述可编程逻辑器件被编程之后的校验。
可选地,所述方法还包括:在所述器件被用于商业用途之后,通过所述处理模块监测所述可编程逻辑器件的行为。
可选地,分析收集到的所述数据以对所述配电网络执行诊断分析的步骤包括:识别在其上会发生工频谐振的频率。
可选地,所述方法还包括:通过时钟修正模块修正时钟特征,以防止工频谐振的发生。
可选地,所述方法还包括:通过时钟修正模块调慢时钟、调快所述时钟、用伪随机序列调制所述时钟、以周期性的方式禁用所述时钟或者上述的任何组合,从而防止工频谐振的发生。
可选地,所述方法还包括:基于所述诊断分析的结果,通过所述可编程逻辑器件控制所述配电网络。
在具体实施方式中将对其它特征、具体实施方式和优点进行描述。
附图说明
附图展示了一些特征的设计和效用,在这些特征中,相似的元素由相同的参考标记指代。这些附图不必须是按比例绘制的。为了更好地理解如何获得上述和其它的优点和目标,会给出更为具体的描述,这些描述会被展示在附图当中。这些附图不应被认为限定了权利要求书的范围。
图1是示出了带有集成电压调节器的可编程逻辑器件的框图;
图2是示出了用于对配电网络执行诊断分析的方法的流程图;
图3是示出了用于防止发生工频谐振的方法的流程图;
图4示出了作为实施例的可编程逻辑器件;
图5示出了fpga架构,本申请中描述的一个或多个实施方式可以使用该fpga架构予以实现。
具体实施方式
以下通过参考附图描述了各种特征。应当注意,附图并非按比例绘制,并且贯穿所有附图,结构或功能相似的元素由相似的参考标记表示。应当理解,附图仅意图便于描述。其并非意图作为所请求保护发明的详尽描述,或者作为对所请求保护发明的范围的限制。此外,示出的项目不需要具有本申请展示的所有方面或优点。连同具体的项目进行描述的一个方面或优点不必然限定于该项目之上,即使没有进行展示,其也可以被实施在任何其它的项目中。
为了满足电源要求,基于fpga的器件可以使用与该基于fpga的器件分离的独立电压调节器。由于配电网络中的电压调节器在物理上与fpga隔开,所以针对器件需要的电压响应时间较慢,并且电源效率会受到影响。此外,这些fpga不会对配电网络执行任何直接的监测、诊断或者分析。因此,当遇到问题时,需要外部测试设备来分析配电网络,或者该器件不得不被送到多个公司(例如,fpga供应商、电压调节器供应商等)以供分析。因此,故障检修过程花费很多时间和资源。
本申请公开的实施方式提供了一种可编程逻辑器件和电压调节器,其中电压调节器与该可编程逻辑器件集成在同一集成化设计中,并且被构建在同一衬底内。在一些情况下,可编程逻辑器件可以被配置成监测和分析来自配电网络的数据,从而确定、检查和/或校验器件的性能。例如,可编程逻辑器件可以对配电网络执行诊断分析。在一些情况下,可编程逻辑器件可以对电压和电流响应执行频谱分析,而无需使用外部测试装备来检查配电网络或将器件送至第三方公司以分析所出现的电源问题。
在一些实施方式中,可以通过可编程逻辑器件对配电网络执行诊断分析,从而在可编程逻辑器件被编程之后并且在含有该可编程逻辑器件的器件被部署用于正常使用之前,校验该器件的性能。在其它实施方式中,作为在部署之前校验器件的补充或者替代,在器件被部署之后,可编程逻辑器件也可以执行诊断分析,从而检查被部署的器件的性能。
在进一步的实施方式中,可编程逻辑器件可以对配电网络执行诊断分析,并且基于诊断分析的结果控制配电网络。因为电压调节器与可编程逻辑器件被集成在同一集成化设计内,并且因为可编程逻辑器件被配置成基于其对配电网络的分析而利用电压调节器进行操作,所以缩短了电压调节器的响应时间,并且提高了电源效率。可编程逻辑器件对电压调节的控制也可以精确至几个毫伏。
应当理解,本申请公开的实施方式不限于单芯片的器件,并且可以在例如多芯片模块中或者其它电路设计中实现本申请公开的实施方式。
图1示出了根据一些实施方式的器件100。器件100包括在半导体衬底102上的可编程逻辑器件110。器件100还包括在配电网络140内的电压调节器142a-142f,电压调节器142a-142f与器件100内的可编程逻辑器件110相耦接(例如,集成)。电压调节器142a-142f被提供在衬底102的电源区域内。器件100还包括电源管理(pm)总线150,以用于在可编程逻辑器件110和配电网络140之间进行通信。在其它实施方式中,除了电压调节器142a-142f之外,配电网络140可以包括其它组件。
在一些实施方式中,器件100可以包括一个或多个衬底。例如,器件100可以包括硅衬底,或者多芯片模块(mcm)衬底。因此,器件100的任何组件(例如,电压调节器142、可编程逻辑器件110等)可以位于使用mcm实现的封装中。此外,在一些实施方式中,器件100可以包括有机衬底,例如玻璃纤维环氧树脂印刷电路板(pcb)。
在示出的实施方式中,电压调节器142a-142f被配置为向可编程逻辑器件110提供电源。在展示的实施例中,配电网络140包括六个电压调节器142a-142f。在其它实施方式中,配电网络具有的电压调节器142可以多于六个或者少于六个。根据需求,电压调节器142a-142f中的一个、一个子集或者每一个可以是线性电压调节器或开关式电压调节器。这些电压调节器在可编程逻辑器件110中提供了在很宽的负荷状态范围下的额定电压电平(specifiedvoltagelevel)。电源电压可以被维持在可接受的界限之内,以实现可靠操作。如果电源电压大幅改变或者波动至界限之外,那么可编程逻辑器件110会发生故障。根据一些实施方式,可编程逻辑器件110可以被配置成收集并分析配电网络140的信息(这些信息包括来自电压调节器142a-142f的电源电压),并且被配置成提供对电压调节器142a-142f的控制。电压调节器142a-142f能够通过pm总线150与可编程逻辑器件110进行通信。
可编程逻辑器件110是一种集成电路,其可以被编程为执行具体的逻辑功能。在一实施方式中,可编程逻辑器件110可以包括现场可编程门阵列(fpga)。下文将结合图4对示例性的fpga进行详细的讨论。
参考图1,可编程逻辑器件110包括监测组件120和处理模块130。监测组件120可以被配置成监测配电网络140的电源性能(powerperformance)并且收集数据。例如,监测组件120可以监测配电网络140的电平并且随着时间记录电平。在一些情况下,随着时间变化的电平可以被记录在位于器件100的一个或多个非易失性介质中(例如,在可编程逻辑器件110内和/或在可编程逻辑器件110外)。在一具体实现中,监测组件120可以包括一个或多个模数(a/d)转换器,用于收集来自配电网络的数据。监测组件120于是可以将收集到的数据传输至处理模块,以用于分析。作为非限制性的实施例,该数据可以是来自电源轨的信号值(当在器件内出现信号值时),或者该数据可以从来自电源轨的信号得到。此外,在一些实施方式中,监测组件120可以从用于核心逻辑电源供电的第一电源轨(例如,vccint)、用于双端口模块sram电源供电的第二电源轨(例如,vccbram)或者这两者收集数据。
处理模块130可以被配置成对配电网络140执行诊断分析。在示出的实施方式中,处理模块130包括数字信号处理器(dsp)、多个逻辑、块ram(bram),其中,dsp用于处理由监测组件120收集的信号,多个逻辑用于执行诊断分析和/或作出决定,bram用于储存分析的结果。
处理模块130可以被配置成分析由监测组件120收集的数据,并且可以在不同阶段针对指定的功能和/或情况来检查可编程逻辑器件110的行为,例如,在对可编程逻辑器件110进行编程期间、在可编程逻辑器件110被编程之后但是在器件10被部署之前的一段校验过程期间、和/或在器件10被部署用于操作之后对器件10进行现场操作期间。
如讨论的那样,在可编程逻辑器件110被编程之后并且器件110被部署用于操作之前,处理模块130可以被配置成执行分析。在一实施方式中,处理模块130能够可选择地包括校验模块。校验模块可以被配置成检查可编程逻辑器件110,以用于在可编程逻辑器件被编程之后并且在其被部署用于操作之前(例如,用于现场使用)进行校验。因此,处理模块130可以测试对可编程逻辑器件110的设计,并且可以在部署该设计以用于商业使用之前,使用分析结果来修改它(或者协助用户来修改它),以处理诊断问题。此外,在一些实施方式中,处理模块130(例如,校验模块)可以被配置成确定被监测的电压的最小值、最大值或者上述两者,以便验证电压是否在规范之内。
作为补充或者替代,处理模块130可以被配置成在器件100被部署用于操作之后监测可编程逻辑器件110。例如,处理模块130可以包括监测模块,以执行该功能。因此,顾客可以使用由处理模块130提供的分析功能来监测和预测可编程逻辑器件110的行为。在一实施方式中,可以基于由处理模块130提供的实时或者历史分析结果来安排(schedule)维护或者服务。此外,在一些实施方式中,处理模块130(例如,监测模块)可以被配置成通过捕捉数据块和对数据执行频谱分析(例如,fft分析)来确定在一个或多个电源轨上是否有振荡发生。
在一些实施方式中,处理模块130可以输出信号来指示有关于分析结果的状态或情况。在一实施方式中,在多芯片模块中,处理模块130可以将诊断分析的结果传输至其它单元(例如,arm处理器),从而其它单元可以通过通信网络输出结果。此外,在一些情况下,器件100可以包括输出,该输出可以输出诊断分析的结果,以使其显示在屏幕上,以便使诊断结果能够被呈现给用户。可以在可编程逻辑器件110或者在器件100内的其它组件上实现器件100的输出。在另一实施方式中,处理模块130可以被配置成基于诊断结果来自动触发或采取行动,以便处理诊断的问题。例如,可编程逻辑器件110可以基于来自处理模块130的分析结果,控制电压调节器142a-142f并与电压调节器142a-142f进行通信。因此,通过使用处理模块130来监测电压数据并实施各种预防措施,在商业使用期间(例如,在部署器件100之后)可以自动避免电源问题。
使用处理模块130可以解决的一个示例性电源问题是工频谐振(powerfrequencyresonance)。在一些应用中,当电压超过器件100的规格范围时,可能会发生工频谐振。工频谐振可能会引起电源故障,如果没有被合理解决,最终会损坏器件100。在一些实施方式中,处理模块130可以选择性地包括频率识别器(frequencyidentifier),从而识别一个或多个感兴趣的频率,例如与工频谐振相关联的一个或多个频率。处理模块130可以分析收集到的数据确定各个频率上的最大电压。例如,处理模块130可以对收集到的数据执行快速傅里叶变换,从而识别电压响应中的峰值。当电压在规定的范围之外时(即,当工频谐振可能发生时),处理模块130于是可以通过频率识别器来识别一个或多个频率。
在一些实施方式中,处理模块130可以响应于识别的频率采取特定的行动,其中所识别的频率与即将出现的工频谐振相联系。例如,在一些实施方式中,当检测到可能的共振时,处理模块130可以生成并输出反谐振信号。反谐振信号可以被用于分散(breakup)频率,从而防止工频谐振的发生。在一具体实现中,处理模块130可以选择性地包括时钟修正模块,时钟修正模块被配置成生成反谐振信号。反谐振(anti-resonance)信号可以被用于修正时钟特征(例如,时钟分配、时钟参数等),以避免工频谐振。通过调慢内部时钟、调快时钟、用伪随机序列进行调制、以周期性的方式禁用时钟或者上述方式的任何组合可以修正时钟特征。
在进一步的实施方式中,处理模块130可以被配置成以可以影响可编程逻辑器件110与配电网络140的相互作用并由此避免频率共振的方式来自动修正可编程逻辑器件110的配置。
图2是示出了使用图1的可编程逻辑器件110对配电网络执行诊断分析的方法200的流程图。在步骤210,可编程逻辑器件内的监测组件可以执行监测和收集来自配电网络的数据的功能。在一些情况下,监测组件可以是在器件100内的监测组件120,而配电网络可以是器件100内的配电网络140。如上所述,配电网络140包括与可编程逻辑器件110通信耦接的一个或多个电压调节器142。监测组件可以包括一个或多个a/d转换器,用于收集来自配电网络140的数据。
在步骤220,可编程逻辑器件110内的处理模块130分析收集到的数据,以执行对配电网络140的诊断分析。基于分析结果,可以执行各种步骤以提高器件100的性能,并且/或者防止不期望的问题发生。在一些实施方式中,方法200可以选择性地包括:基于诊断分析的结果,通过可编程逻辑器件110来控制配电网络140。
在一些实施方式中,步骤220中分析收集到的数据以对配电网络140进行诊断的步骤可以包括:,检查可编程逻辑器件110以用于在可编程逻辑器件110被编程之后并且在可编程逻辑器件110被部署以用于商业用途(例如,现场操作)之前的校验。
此外,在一些实施方式中,作为校验可编程逻辑器件110的替代或者补充,步骤220内分析收集到的数据以对配电网络140进行诊断的步骤可以包括:在器件100被部署用于商业用途之后,通过处理模块130监测可编程逻辑器件110的行为。
此外,在一些实施方式中,步骤220内分析收集到的数据以对配电网络140进行诊断的步骤可以被执行以检测与即将发生的工频谐振相关联的情况。例如,处理模块130可以识别在其上将会发生工频谐振的频率。
图3是示出了使用图1的可编程逻辑器件110来防止工频谐振发生的方法300的流程图。方法300可以是被实施用于处理潜在工频谐振的方法200的一个实施例。在步骤310,通过可编程逻辑器件110内的监测组件120收集来自配电网络140的数据。在步骤320,通过处理模块130分析收集到的数据,以对配电网络140进行诊断,从而识别在其上会发生工频谐振的频率(例如,通过对收集到的数据执行快速傅里叶变换,以识别电压响应的峰值)。步骤320可以是方法200中的步骤220的一个实施例。在步骤340,处理模块130(例如,处理模块130内的时钟修正模块)可以修正时钟特征,以防止工频谐振发生。例如,处理模块130可以通过如前所述的调慢时钟、调快时钟、用伪随机序列对时钟进行调制、以周期性方式禁用时钟或者上述方式的任何组合来修正时钟特征。因此,可以避免由工频谐振导致的问题。
如前所述,在一些实施方式中,处理模块130可以包括校验模块、频率识别器和时钟修正模块。图4示出了作为实施例的可编程逻辑器件110,具体示出了具有校验模块350、频率识别器352以及时钟修正模块354的可编程逻辑器件110。
图5示出了示例性fpga架构400的图,该fpga架构400可以如上描述的那样在器件中集成配电网络。fpga架构400可以被用于实施本申请中描述的一个或多个特征(例如,监测组件120、处理模块130、校验模块350、频率识别器352和时钟修正模块354等)。
fpga架构(400)包括大量不同的可编程片,这些可编程片包括千兆位收发器(mgt401)、可配置逻辑模块(clb402)、随机存取存储器模块(bram403)、输入/输出模块(iob404)、配置和时钟逻辑(config/clocks405)、数字信号处理模块(dsp406)、专用输入/输出模块(i/o407)(例如,时钟端口)、以及其他可编程逻辑408,例如数字时钟管理器、模数转换器、系统监测逻辑等。一些fpga还包括专用处理器块(proc410)以及内部和外部重配置端口(未显示)。
在一些fpga中,每个可编程片包括可编程互连元件(int411),其具有连接至及来自每个相邻片中的对应互连元件的标准化连接。因此,这些结合到一起的可编程互连元件实现了所示出的fpga的可编程互连结构。可编程互连元件int411还包括连接至及来自同一片内的可编程逻辑元件的连接。
例如,clb402可以包括可配置逻辑元件cle412,cle412可以被编程为执行用户逻辑加单个可编程互连元件int411。除了包括一个或多个可编程互连元件之外,bram403可以包括bram逻辑元件(brl413)。典型地,片内包括的互连元件的数量取决于片的高度。在图示的实施例中,bram片具有的高度和5个clb相同,但是也可以使用其他的数量(例如,4个)。除了适当数量的可编程互连元件之外,dsp片406可以包括dsp逻辑元件(dspl414)。除了一个实例的可编程互连元件411之外,iob404可以包括,例如,两个实例的输入/输出逻辑元件(iol415)。
在图5所示的实施方式中,在裸片(图5阴影部分所示)中部附近的列状区域被用作配置、时钟以及其他控制逻辑。从这些列延伸出来的水平区域409被用于分配横跨fpga宽度的时钟信号和配置信号。
利用图5中所示架构的一些fpga可以包括额外的逻辑模块,这些额外的逻辑模块会打乱组成了大部分fpga的规则的列状结构。额外的逻辑模块可以是可编程模块和/或专用逻辑。例如,图5中显示的处理器模块proc410可以跨越clb和bram的几列。
proc410可以被实施成硬连线的处理器,其被组装成实现裸片的一部分,其中裸片可以实现ic的可编程电路。proc410可以表现为各种不同处理器类型和/或系统中的任何一种,复杂的范围可以从能够执行程序代码的单个处理器,例如单内核,到具有一个或多个内核、模块、协同处理器、接口等等的整个处理系统。
在一些复杂的配置中,例如,proc410可以包括一个或多个内核,例如中央处理器、高速度缓冲存储器、控制存储器、单向和/或双向接口,其中单向和/或双向接口可配置成直接耦接至可编程ic的i/o引脚和/或耦接至可编程ic的可编程电路。术语“可编程电路”可以指代本申请中描述的各种可编程或可配置的电路模块或片,以及根据载入ic中的配置数据而有选择地耦接各种电路模块、片和/或元件的互连电路。在实施方式中,可编程电路也可以被实施成,或者被称作,可编程结构。通过使用将proc410耦接至可编程电路的一个或多个接口,proc410可以为整个ic执行电源管理功能。例如,proc410可以控制可编程电路的电源循环。此外,proc410可以进入或退出睡眠或低功率模式。
如讨论的那样,可编程逻辑器件110可以包括监测组件120、处理模块130、校验模块频率识别器和时钟修正模块等等中的一个或者组合。在一些实施方式中,在fpga中可以使用mgt401、clb402、bram403、iob404、config/clocks405、dsp406、i/o407、可编程逻辑408、proc410、int411、cle412、brl413、dspl414、iol415或者前述的任何组合来实现上述组件中的任何一个。
需要注意的是,图5仅意图示出示例性的fpga架构。例如,一列中逻辑模块的数量、列的相对宽度、列的数量和顺序、列中包括的逻辑模块的类型、逻辑模块的相对大小以及图5顶部包括的互连/逻辑实现方式都仅仅是示例性的。例如,在实际的fpga中,无论clb出现在哪里,一般都包括不止一相邻列的clb,以有助于用户逻辑的高效实现。
此外,应当注意的是,可编程逻辑器件110不限于上面描述的示例性的fpga,并且,使用其它类型的可编程逻辑器件或者其它类型的集成电路可以实现该可编程逻辑器件110。
虽然本申请显示并描述了具体的特征,但是应当理解,它们并非意图限制所请求保护的发明,并且对于本领域的技术人员来说,在不偏离所请求保护发明的精神和范围的情况下,显然可以对其进行变化和修改。因此,说明书和附图被认为是说明性的功能而非限制性的功能。所请求保护的发明意图覆盖所有可选方案、修改或等同方案。