首页> 中国专利> 具有低静态泄漏的可编程信号路由系统

具有低静态泄漏的可编程信号路由系统

摘要

通过自动地迫使尽可能多的总线进入高阻抗状态,其中线的所有驱动器处于高阻抗输出状态,最小化经过总线访问多路复用器的输入端的寄生静态泄漏电流。从而切断经过总线访问多路复用器的寄生电流接收或电流传送泄漏路径。本方法在期望在静态时具有低静态电流泄漏的低功率FPGA中特别有用。

著录项

  • 公开/公告号CN101826866A

    专利类型发明专利

  • 公开/公告日2010-09-08

    原文格式PDF

  • 申请/专利权人 硅蓝技术公司;

    申请/专利号CN200910258449.7

  • 发明设计人 安德鲁·K·L·钱;

    申请日2009-09-27

  • 分类号H03K19/177(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人胡琪

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 00:44:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-13

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H03K19/177 变更前: 变更后: 申请日:20090927

    专利权人的姓名或者名称、地址的变更

  • 2014-05-14

    授权

    授权

  • 2011-11-16

    实质审查的生效 IPC(主分类):H03K19/177 申请日:20090927

    实质审查的生效

  • 2010-09-08

    公开

    公开

说明书

技术领域

本发明公开通常涉及诸如在现场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)中创建的可编程信号路由系统。本公开更具体地涉及用于减少与这样的可编程信号路由系统相关的静态电流泄漏的结构和方法。

背景技术

现场可编程门阵列(FPGA)器件的特征可以在于由单片、集成电路(IC)构成,该单片、集成电路典型地具有四个主要特征,即:可配置逻辑块(CLB)、可配置信号路由互连、可配置输入/输出块(CIOB)和用于可编程地配置CLB、互连和CIOB的配置部件。

FPGA可以被设计用在各种环境中。一种这样的环境要求至少当FPGA在备用模式时最小化的功耗。迄今为止,还没有密切关注归因于FPGA和类似的可重新配置的逻辑器件的可配置信号路由互连的DC功率泄漏(静态泄漏)。

发明内容

根据本发明公开提供一种结构和方法,用于减少在例如FPGA的可配置信号路由互连中的静态备用电流泄漏。

根据本发明一个方面,一种泄漏减少方法包括:(a)构造FPGA的长线总线以具有可三态(tristateable)的长线,并且构造长线总线以便每一个在给定的可重复片结构(tile structure)中提供2n-1个可分接(tappable)线,其中n是大于1的整数;(b)构造一类FPGA的长线访问多路复用器以具有2n-1个输入端和n个选择控制位,其中例如逻辑0...0选择排列(全零)不选择2n-1个输入端的任何一个(其可替换地可以是全1的排列或另一单值的(unique)排列,在该情形中对下面进一步的步骤进行适当的改变);(c)对于每条长线,提供多个可三态的长线驱动器以驱动该长线,并且在FPGA的加电或重置期间,全局地(globally)迫使全部这样的长线驱动器进入高阻抗(Hi-Z)输出模式(全局输出禁止);(d1)同样在FPGA加电/重置时,全局地重置通过长线驱动器的输入选择多路复用器控制选择的全部配置存储位到“0”逻辑状态;(d2)可选地,在FPGA的加电/重置期间,全局地重置通过长线访问(分接)多路复用器控制选择全部配置存储位到“0”逻辑状态;(e)对配置存储位进行逻辑或(ORring)操作,所述配置存储位通过每个给定的长线驱动器输入多路复用器来控制选择,并使用逻辑或输出来控制对应的长线驱动器的局部输出使能(OE),从而通过各自的输入选择多路复用器控制选择的存储位的0...0配置(或其他预定义的单值排列)将禁止对应的长线驱动器输出;(f1)确定哪个长线将不得不运送活动信号;(f2)选择性地将长线驱动器输入多路复用器的配置存储位的一个或多个设置到“1”逻辑状态,所述配置存储位的一个或多个对应的长线驱动器将不得不将活动信号传送到被确定为不得不运送活动信号的相应长线上;(f3)选择性地把将接收来自对应的可分接长线的信号的长线访问多路复用器的配置存储位的一个或多个设置到“1”逻辑状态,所述配置存储位的一个或多个的长线驱动器输入多路复用器通过将其配置存储位的一个或多个设置到“1”逻辑状态而已经被或将被选择性地激活;以及(g)在完成各个配置存储位的配置之后,释放全局地迫使全部可三态长线驱动器到Hi-Z状态(使全局禁止无效),并且从而允许本地输出使能(OE)来确定哪个长线驱动器保持停止(stuck)在Hi-Z状态,并且其可以将信号传送到它们各自的长线上,从所述长线中活动信号将被分接。

从以下详细的描述,所公开的其他方面将变得显而易见。

附图说明

下面详细描述的部分参考附图,其中:

图1是根据公开的FPGA系统的介绍性框图;

图2A是示出图1的一个长线驱动器和相应的长线总线访问多路复用器之间的相互作用的详情的示意图;

图2B示出当图2A的长线驱动器正在输出高信号(“1”)并且长线总线访问多路复用器的未被选择的输入端仍然活动地被驱动至低(“0”)和高(“1”)状态的一定排列时,静态泄漏如何产生;

图2C示出当图2A的长线驱动器正在输出低信号(“0”)并且长线总线访问多路复用器的未被选择的输入端仍然主动地被驱动至高(“1”)和低(“0”)状态的一定排列时,静态泄漏如何产生;

图3是根据公开的泄漏减少方法的流程图;

图4是可以与图3的方法结合使用的泄漏减少互连系统的示意图;

图5是在图4的电路中可使用的SRAM存储单元的示意图;以及

图6是在图4的电路中可使用的长线驱动器的示意图。

具体实施方式

图1是可以应用这里公开的发明的基于FPGA的系统100的方框图。在一个实施例中,例如第三代移动电话的小型化的移动设备包括电路支撑衬底110,其从移动设备的电池112接收电力,并且还包括低功率FPGA 115以及在FPGA 115的外部并可与其互操作的其他电路114。

为了引入一些基本概念,放大图115’示出了FPGA 115的互连结构的部分。可以理解FPGA 115还包括可配置逻辑块(CLB’s,未示出)和可配置输入输出块(CIOB’s,未示出)以及可能的局部互连结构、存储块等(省去其组件以避免介绍性的图1中的示例性混乱)。CLB、可配置互连和FPGA的其他基础部件通常以基本类似和重复的片结构(tile structure)重复,所述片结构分布为例如x和y矩阵(未示出)。

在可配置互连中,提供第一连续导体或“长线”(LL)120,其在一个实施例中由连续的金属导体构成。该第一LL 120在图1中被显示为从第一端片(end-tile)115a延伸到相对的端片115e,其中长线120延伸经过诸如插入在其端片的第一115a和第二115e之间的115b-115d的多个中间片。如本领域的技术人员所理解的,长线具有在可编程逻辑器件内的相对较长的连续距离上运送信号的能力,因此它们的名字为长线。FPGA的可配置互连可以具有其他类型的较短的线,用于在紧密相邻的片之间提供短距离互连性。为了避免在介绍性的图1中的示例性的混乱,这些并未示出。

参见图1的第一端片115a内示例性的部件,长线120的相应的第一端由第一三态长线驱动器121驱动,并且第一端也连接到第一长线总线访问多路复用器131的第一输入端(被标明为大写字母“A”)。访问多路复用器131具有至少三个输入端(A,B,C),每一个输入端连接到第一长线120所属于的长线总线(未示出)中相应的局部可分接(tappable)长线。为了避免在该阶段的示例性混乱,总线的其他长线并未示出(参见图4的简略的总线420)。第一总线访问多路复用器131还具有两个选择控制端,其耦合到各个配置SRAM单元131a和131b(也被表示为单元1和2)。这些存储单元131a和131b的配置由配置位编程电路150来控制,该配置位编程电路150在FPGA115的操作的加电或重置阶段期间配置SRAM单元131a和131b。如本领域的技术人员将可以理解的,对于两个单元可以存在四种可能性或排列:00、01、10和11。多路复用器131的输出端延伸到第一端片115a中的其他电路。该其他电路(未完全示出)可以包括其他长线(例如,类似于160),其在与LL 120的纵向方向(例如,X)不同的方向(例如,Y)延伸和/或延伸经过不同于被LL 120跨越的可配置片的可配置片。除了到Y方向的LL(与160相似)的Y驱动LL驱动器(与162相似)输出之外,片115a中的其他电路(未示出)可以可替换地或另外地包括与局部片115a对应的存储块部分或局部CLB或IOB。

在片115a内,还提供另一个多路复用器141(即输入选择多路复用器),用于选择将被施加到到长线驱动器121的输入端的输入信号。在示例性的实例中,输入多路复用器141具有三个可选择的输入端(标明为小写字母a,b,c),并且通过编号为5和6的配置单元控制这些输入端的选择。第一长线驱动器121具有输出使能端(OE),用于控制其输出的状态为活动驱动模式或高阻抗(Hi-Z)模式。

在LL 120的另一端处的相对端片115e被类似地构造为包括第二长线驱动器122、第二长线总线访问多路复用器132(尤其访问LL 120)和第二驱动输入选择多路复用器142。多路复用器132的选择位被标明为3和4,而多路复用器142的配置位被表示为7和8。在一个可能的实施例中,可能已经使用了表示为9和10的其他配置位(未示出)来控制驱动器121和122的OE端,尽管这样的其他配置位没有出现在该示例性的实施例中。需要指出的是,可以存在与每个长线(例如120)相关联的大量配置位(例如,1,2,...,8和可选的9-10),并且因为长线通常贯穿FPGA在具有许多相似长线的总线中重复地出现,在FPGA 115中使用以管理长线操作的配置位的总数量可以是非常大的。这将在配置位编程电路150上带来负担,当FPGA首次被加电或者被重置时,该配置位编程电路150必须在相对较短的时间内正确地编程全部这些位。以下将看到如何用FPGA可配置位(例如,1,2,...,8等)的单个全局重置来同时注意多个长线管理问题。

在一个实施例中,长线驱动器121和122的每一个被构造为将相对较大的充电电流传送(source)到长线120上,并从长线120接收(sink)相对较大的放电电流,使得从而补偿倾向于沿着LL 120出现的相对较大的电容性负载。例如,在一个实施例中,长线驱动器121具有CMOS输出级,其包括每个具有4μm宽度的两个NMOS输出晶体管和具有7μm宽度的PMOS输出晶体管。在相同实施例中的常规逻辑晶体管具有大约0.5μm的通道宽度。因此LL驱动器晶体管宽大约一个数量级。在一个实施例中,中间片115b-115d的数量是11,并且长线120被称为12跨距长线,因为其从第一端片115a(未计数的)到达12个附加片115b-115e。换句话说,本实施例的LL 120延伸到或延伸通过总共13个片。可以使用比12跨距示例短(例如8跨距)或长(例如,16,20,24跨距等)的其他跨距。

每一个中间片(例如115b)可以包括类似于131的其自身的长线总线访问多路复用器(例如133)。每一个中间片还包括类似于121的其自身的长线三态驱动器(例如,123),除了该长线三态驱动器是线驱动中间驱动器,而不是线一端的驱动器。另外,每一个中间片包括类似于片115a的输入选择器141的用于其对应的长线驱动器的输入选择多路复用器(例如143)。此外,每个片可以包括与局部互连的多路复用器(未示出),这些额外的、总体互连的多路复用器(或G-多路复用器)可以与图1中所示的长线总线访问多路复用器(例如,131,133)不同地构造。

各个输入选择多路复用器(例如141-143,...,149)的配置、相应长线驱动器(例如121-123,...,129)的OE端的配置、各个总线访问选择多路复用器(例如,131-133,...,139)的配置可以遵循大量可能排列的任何一个。尽管在通常情况下,可能具有以下长线(例如,120),即使得其长线驱动器(例如,121-123,...,129)与对于FPGA 115的给定编程永久保持在Hi-Z状态中相反,全部是(以互斥为基础)活动的,但更通常的情况是长线驱动器121-123,...,129中仅单个长线驱动器在其相应的长线(120)上是活动的,并且全部的其他驱动器对于给定配置的持续时间将保持在Hi-Z模式。而且,尽管理论上可以使得全部的长线总线访问多路复用器131-133,...,139活动并且访问来自一个给定长线(例如120)的信号,但更通常的情况是除了这些长线分接多路复用器131-133,...,139中一个或两个之外的其他全部多路复用器是不活动的,并且不能用于从相应长线分接出信号。如果未使用的总线访问多路器131-133,...,139动态地加载长线120(作为电容负载)或静态地加载长线120(作为将被简略解释的静态泄漏负载),这将是个问题。

在FGPA115被加电或重置后不久,FPGA中的配置位编程电路150被自动地激活并且其开始选择性地设置配置SRAM单元131a、131b等的每一个,其根据外部提供的配置数据164需要被设置到逻辑“1”状态。在一个特定实施例中,在配置位编程电路150被激活以选择性设置包括131a、131b、132a、132b等的全部SRAM单元的子集之前,所有这些配置SRAM单元被自动地重置为逻辑“0”状态。配置数据164通常包括路由说明部分165,其关于驱动器输入选择多路复用器141-143,...,149中的哪个(如果有的话)应当被配置为具有活动输入端、以及如果是这样的话哪个输入端应当被使能,来指导配置位编程电路150。其也关于总线访问多路复用器131-133,...,139中的哪个(如果有的话)应当被配置为具有活动输入端、以及如果是这样的话哪个输入端应当被使能等,来指导配置位编程电路150。通常,从图1可以看到,结构115’对于每个长线(例如,对于LL 120)可以具有大量可配置多路复用器,并具有连接以驱动每个长线的大量可配置三态缓冲器,以及相应的大量配置位,所述大量配置位需要被适当地设置或重置以定义由每个长线(例如120)和其相关联的互连部件(例如141,121,131等)执行的信号路由功能。

有关方框115’中所示的路由结构的设计和使用,大量考虑是值得更深入(closer)研究的。更具体的,一个问题是当位编程电路150着手配置路由结构115’的多个配置位时,是否可能最小化由配置位编程电路150消耗的电力和时间,并且如果是这样的话如何能有效的进行?第二个问题是当FPGA 115处于低功率备用模式时,是否可能管理位的配置,以使得静态电流泄漏(ILeak)可以被最小化,并且倘若是这样的话如何能有效地进行?当FPGA 115用在例如电路110的电池供电、小型化移动电路环境中(例如,便携式电话、个人数字助理、掌上计算机等)时,第二个问题尤为重要。

图2A在第一放大区域231中示出了诸如131’的总线访问多路复用器的一个可能的实现。这里,多个双向传输栅极TGA-TGE以树形结构来组织,以选择性地将来自四个输入端(即输入端A到输入端X)之一的信号路由到多路复用器的输出端202。在第二放大区域232中示出了每个传输栅极(TG)的可能的内部结构。示例性传输栅极包括背对背的NMOS和PMOS晶体管。该NMOS晶体管接收传输栅极选择信号(TG-Sel)并且PMOS晶体管接收相同的传输栅极选择信号(TG-Sel*)的逆信号(inverse)。在替换实施例中,总线访问多路复用器131’可以使用传输晶体管代替TG晶体管。然而,在传输晶体管的情况下,需要使用增强的栅极驱动电压来克服阈值降低问题。

多路复用器131’在图2A中进一步示出为包括选择解码电路131e,其具有对应于传输栅极TGA-TGE的TG-Sel和它们的逆(TG-Sel*)的多个传输栅极控制线,并且可以理解延伸到各个传输栅极TGA-TGE。选择解码电路131e由选择输入位Sel-1和Sel-2驱动。后面的两个选择位作为Q输出从各个SRAM单元131a’和131b’输出。在一个实施例中,SRAM单元131a’和131b’也具有耦合到选择解码电路131e的Qbar输出。在一个实施例中,选择解码电路131e简单的是多个导体,其取决于Sel-1线的状态使传输栅极TGA和TGC在同一状态(导电低电阻或相对不导电高电阻),并且使TGB和TGX(假定TGX存在)在同一个相反状态(例如,如果TGA和TGC在高电阻(Hi-R)状态,则为低电阻(Low-R)状态)。对于同一个简单实施例,取决于Sel-2线的状态,解码电路131e使传输栅极的第二列TGD和TGE处于彼此相反的状态(例如,如果Sel-2=“0”,则TGD处于Low-R状态,而TGE处于Hi-R状态)。通过将SRAM单元131a’和131b’的Q和Qbar输出路由到传输栅极TGA-TGE的合适的TG-Sel和TG-Sel*端,来简单提供这样的选择。在一个实施例中,随后的输入端根据它们括号中表示的选择码:X(00),C(01),B(10)和A(11)来选择。

在替换实施例中,选择解码电路131e可以更复杂并且例如被构造为响应于Sel-1和Sel-2位的01、10、11和00排列、使除了第一列传输栅极TGA、TGB、TGC、TGX之一以外的全部处于基本不导电的高-电阻状态。如果TGX传输栅极留在电路外(其中响应于Sel-1和Sel-2的00排列来选择TGX),则响应于00排列,全部第一列传输栅极TGA、TGB、TGC都处于基本不导电的高阻状态。各种组合的逻辑设计可以用来实现这样的结果。

在一个实施例中,根据从非易失性存储单元131c和131d载入的配置数据,分别配置SRAM单元131a’和131b’。在一个实施例中,非易失性存储单元131c和131d与FGPA电路的其他部分一样提供在相同的单片电路衬底(例如,硅)上。多路复用器输出端202耦合到电容负载203(CLOAD)。在一些实施例中,可能存在横跨电容负载203提供的寄生静态泄漏电阻204。通常,负载的静态泄漏电阻204是可以忽略的。然而,既使负载泄漏电阻204呈现至不可忽略的扩展,也存在可以引起更大问题的其他潜在寄生泄漏路径。

为了示例说明潜在泄漏路径,这里假定选择解码电路131e已选择输入A作为使用的输入端,该输入A将其相应的输入信号路由到输出端202。这意味着,对于电路131e的简单解码实施例,TGA被驱动到Low-R状态(由白色向上箭头表示)并且TGD也被驱动到Low-R状态,从而提供从输入A端到输出端202的低电阻路径。同时,TGB、TGX和TGE被驱动到Hi-R状态(由黑色填充的向下箭头表示)。TGC被驱动到Low-R状态(由宽的(wide)向上箭头表示)。TGA、TGB、TGC、TGX、TGD和TGE各自的激活通过有关的白色向上(ON)和黑色向下(OFF)箭头在206进一步示出。

为了示例说明的目的进一步假设,由从三态驱动器121’输出的逻辑“1”驱动输入A。当产生逻辑“1”输出时,三态驱动器121’在内部提供从其+Vcc电源端到其输出端的低电阻路径。因为,选择解码电路131e使传输栅极TGA和TGD在它们的导电或低电阻状态中操作,一次(primary)充电电流201可以容易地从驱动器121’的Vcc端流出,经过其输出、经过输入A端、经过相应传输栅极TGA和TGD并且然后经过输出端202,从而将负载电容203充电到逻辑“1”状态。同时,因为沿着从多路复用器131’的剩余输入端(即输入B、输入C和输入X)链接到多路复用器输出节点202的路径存在高电阻状态,因此按照惯例看到这些输入端未被选择,并且忽略在这些端子提供的输入信号。在一个实施例中,多路复用器131’仅具有三个输入端:A、B和C;并且有意地省去传输栅极TGX(为了下面将变得显而易见的原因)。在这种情况中,虚线框205的电路将被移除。

参考图2B,现在将考虑在未被选择的输入端,输入B和输入C的每一个都接收逻辑“0”并且由此提供接地的电流路径、同时输入端X接收逻辑“1”的情况下,关于静态泄漏将发生什么。即,注意在图2B中,TGX和TGC的位置已经交换(为了简化泄漏路径212的示例说明)。回想在驱动器121’的Vcc端和输出端202’之间已经形成低电阻导电路径201’,其经过传输栅极TGA和TGD。同样回想未被选择的传输栅极TGB和TGE展现相对较高、但仍然不是无穷大的阻抗。因为在TGB的右侧存在驱动的“1”和在其左侧存在接地的“0”,第一寄生静态泄漏电流211可以从驱动器121”的+Vcc电源轨道流出,经过导通的(Low-R)传输栅极TGA,然后经过未被选择的传输栅极TGB,到有效接地的输入B端。虽然该第一泄漏电流211(也就是ILeak1)的量值可以是小的,但其流动的持续时间可以无限长,并且从而能量损失量可以是相当大的。而且,在FPGA 115的许多其他长线总线访问多路复用器中将存在大量这种ILeak1电流的复制,并且将累加。

另一静态泄漏电流212可以从电源轨道+Vcc端流出,经过导通的传输栅极TGA和TGD,跟随经过高电阻传输栅极TGE的继续流动,并且然后输出到从地面观看导通的TGC。第三静态泄漏电流213(ILeak3)可以从施加“1”到TGX输入端的驱动器的电源轨道+Vcc端(未示出)流出,并且随后流入到TGC的接地输入C端。这些静态泄漏电流211、212和213是DC电流,这些电流在各个输入B和C保持在“0”状态并且A和X保持在“1”状态的所有时间都可以流动。当然,如果输入端B、C和X更改为全都保持在“1”状态、同时输入A也保持在“1”状态,那么泄漏电流211、212和213将不流动。而且,如果TGC更改为置于高电阻状态,则泄漏的总量将减小。更好的考虑是,如果连接到输入B、输入C和输入X端的连接线全部处于高阻抗(Hi-Z)状态,而不是接地或上升到“1”,那么静态泄漏电流211、212和213将充分地减小。此外,从图2B的深入考虑可见,当选择的输入端A被驱动到逻辑高(“1”)并且B和C输入端被同时驱动到低(“0”)以及X输入端被同时驱动到高(“1”)时,最大量的静态泄漏电流可以流动。换句话说,如果至少当所选择的输入端A被驱动到逻辑高(“1”)时其他输入端B、C和X同时保持在Hi-Z状态,则静态泄漏电流可以最小化。

参考图2C,示出了其中输入A驱动器121”’是活动的并且降低其输出端到逻辑“0”电平(本质上为地)的相反情况。然后这使得传输栅极TGA的选择的输入端A接地。传输栅极TGA、TGC和TGD在此仍处于低电阻或导电状态,同时剩余的传输栅极TGB、TGX和TGE处于取消选择(de-selected)或高电阻状态。如举例说明的,这种情况允许一次放电电流201”从负载电容CLoad流出,经过输出端202”、经过TGD和TGA,到达驱动器121”’的输出端,并且从那里通过驱动器121”’内的内部低电阻路径到达驱动器121”’的地电源轨道。从而,图2C的输出端202””获得并保持在“0”状态。

如果同时将未被选择的输入端B和C活动地驱动到逻辑高(“1”)状态,则可以产生向驱动器121”’的接地端前进的相应的泄漏电流。更具体地,第一静态泄漏电流214被示出为从输入B流出,经过TGB(处于高电阻状态)、经过TGA(处于低电阻状态)、经过输入A并最终流入到驱动器121”’的接地端。相似地,另一这样的静态泄漏电流215可以从输入端C的驱动高(“1”)流出,经过TGC、TGE、TGD、TGA,并最终流向驱动器121”’的接地端。而且,第三泄漏电流ILeak6可以从TGC的驱动高(“1”)输入,流到输入端X处的驱动低(“0”)。如从图2B和2C可以意识到的,如果每个多路复用器的全部未被选择的输入端(输入线)都被置于高阻抗(Hi-Z)模式,则静态泄漏电流可以被最小化。可替换地或另外,如果传输栅极TGX从多路复用器结构中移除,则这将消除用于ILeak3和ILeak6的泄漏电流路径。可替换地或另外,如果当选择输入A时,迫使传输栅极TGC进入高电阻状态,其将减小泄漏电流ILeak2和ILeak5。从而大量追加和/或可替换的方法可以用来消除和/或减小静态泄漏电流。

从图2B和2C还可以意识到,当在图2B的情况中、在未被选择的输入端(B-X)处呈现0和1的特定的第一排列(B=0,X=1,C=0),以及在图2C的情况中、在未被选择的输入端(B-X)处呈现0和1的特定的第二排列(B=1,X=0,C=1)时,静态泄漏电流可以被最小化。因此,为了减小或最小化静态泄漏,实践中应当避免泄漏最大化输入状态。更好的,使用的多路复用器的未被使用的输入端在Hi-Z状态(如果可能)应当仅耦合到驱动器,并且未被使用的多路复用器中的全部或大量传输栅极(TG)应当被切换到高电阻状态(Hi-R),从而削减具有相对较小的电阻的可用泄漏路径的数量(例如,在地和Vcc之间的路径中仅具有一个Hi-R传输栅极的那些)。现在将解释如何得到这些泄漏减少的情况中的一个或多个。

参考图3,通过流程图详细描述了用于减少静态泄漏电流的组合的架构和方法300。在架构设计步骤305中,FGPA或类似可编程逻辑器件(PLD)的全部长线总线被构造为在每个总线访问区域(例如,在每个重复的FPGA片区域)中由2n-1个可分接长线组成,其中对于给定总线,n值为大于1的整数。n的数量不需要对于每种类型的长线总线都相同。例如,与用于传统长线总线的传统的2的幂的线数量(如4、8、16等)相反,不同类型的长线总线可以构造为分别在第一种类型的每个LL总线中包含3个可分接长线(每区域)、在第二种类型的每个LL总线中包含7个这种长线、在第三种类型的每个LL总线中包含15个这种长线等等。

在一个实施例中,每个长线总线中的长线数量大于2n-1,并且线位置在从一个片区域到下一个片区域的交叉上旋转,因此对于每个片区域,多个长线中的不同长线显现为总线的可分接的2n-1个子集。换句话说,仅仅可分接的2n-1个子集可以由在该片内通过对应的总线访问多路复用器选择性地被分接。这一概念有关在每个片内具有2n-1条线的可分接子集,并且在从一个片跨越到下一个片时旋转可分接子集,该概念首先会是混乱的,并且将偏离基本概念的理解。因此,目前最好认为每个长线总线仅由2n-1条长线组成。

另外,在架构设计步骤305中,每个总线访问多路复用器被构造为在其上具有相似数量2n-1个可选择输入端,用于在各自的片中选择性地访问对应的通过长线总线的2n-1个可分接长线之一。总线访问多路复用器进一步被构造为在其上具有n个选择定义端子,用于指定其2n-1个输入端中的哪个将被用于分接来自对应总线的2n-1个可分接长线之一的信号。总线访问多路复用器的全零选择组合(“0...0”)被解码为不选择任何输入端。在一个实施例中,总线访问多路复用器的全零选择组合(“0...0”)被专门地解码(例如,通过图2A的电路131e)以在总线访问多路复用器的全部2n-1个输入端处导致高电阻(Hi-R)的表示,从而减少可能的泄漏路径的传导性。在可替换或相同的实施例中,全零选择组合(“0...0”)被专门地解码(例如,通过图2A的电路131e),以便如果不使总线访问多路复用器内的全部传输栅极(或导通晶体管)进入Hi-R模式,则至少将连接到总线访问多路复用器的相应输出端的输出传输栅极(或传输晶体管)置于Hi-R模式,从而减小可能的泄漏路径的传导性。

另外在架构设计步骤305中,将每一个选择用于输入到相应长线驱动器的输入信号的输入选择多路复用器构造为对于0...0选择控制组合不选择任何输入。

此外,在架构设计步骤305中,至少通过用于驱动器的对应输入选择多路复用器(例如,图4的441)的输入选择位的设置来控制每个长线驱动器(例如,图4的421)的局部输出使能,从而如果长线驱动器的对应输入选择多路复用器的选择位为全零(“0...0”),则迫使该长线驱动器的输出端进入Hi-Z模式。需要注意,对应于第一长线驱动器的输入选择多路复用器也可以是用于由其他长线驱动器所驱动的长线总线的总线访问多路复用器。换句话说,同一个多路复用器可以既是输入选择多路复用器又是总线访问多路复用器。例如,图4的多路复用器432是用于LL驱动器462(其驱动LL460)的输入选择器,也是分接进总线420在片415e中的可分接部分的访问选择器。

在步骤310中,步骤305的在建筑上如此构造的FPGA或其他PLD(例如,PLD包括一个或多个FPGA)被加电或重置。在响应中,其开始其自己的SRAM配置存储的单元的自动编程。然而,首先在步骤312中,重新启动的PLD全局地(globally)迫使其其全部长线驱动器进入高阻抗(Hi-Z)输出模式。然后,在步骤314中,PLD的全部SRAM配置存储单元被全局地重置到“0”状态。作为这种全局重置的结果,迫使步骤305的全部总线访问多路复用器和输入选择多路复用器(其中给定多路复用器可以是这两种类型)进入它们的无输出被选择的状态(其也可以是对于全部输入端状态和/或高电阻输出状态的高电阻)。然而,作为步骤314的结果,步骤305的全部长线驱动器被朝着它们的Hi-Z输出状态驱动,因为它们的输入选择多路复用器当前具有施加到其上的全零(0...0)选择控制组合。

在步骤316中,全局地重置的SRAM配置存储单元中所选择的SRAM配置存储单元被翻转或设置到逻辑“1”状态。这根据由例如图1的165的配置数据所提供的路由配置数据来完成。在一个实施例中,在步骤316期间,配置数据164/165被存储在芯片内非易失性存储块并且被传输到在芯片上的SRAM配置存储单元。当步骤316完成时,因为其输入选择多路复用器已经被初始化为0...0状态(并且此后不被切换到不同选择状态)而将不被使用的全部三态长线驱动器将保持在Hi-Z模式——即使是在全局输出禁止被去断言(de-assert)之后。在步骤316完成时,仅有因为其输入选择多路复用器已经被有意地初始到与0...0状态不同的选择控制状态而将被活动地使用的三态长线驱动器将可以从Hi-Z模式切换到可能的其他驱动模式(在下一个步骤322中去断言全局输出禁止之后)。

在随后的步骤322中,在根据提供的路由配置数据165完成各个SRAM配置单元的选择性设置之后,释放全局地迫使三态驱动器进入Hi-Z输出模式。这允许各个输入选择多路复用器的各个配置的SRAM配置单元接管控制对应的各个三态线驱动器的输出模式。在一个实施例中,线驱动器也可以通过局部地提供给它们的可选动态输出使能信号来控制。(简要参见图4的DyOE485)

参考结果状态324,全部未使用长线驱动器的输入选择多路复用器将继续保持在无输入被选择的状态,因为它们的对应配置SRAM单元仍然维持为全零(0...0)。对于一类实施例,这意味着至少全部输入传输栅极(例如,图2A的TGA、TGB和TGC——TGX通常不存在)在高R状态和/或全部输出传输栅极(例如,图2A的TGD、TGE)在高R状态,并且从而经过未被使用的多路复用器的静态泄漏路径的传导性减小或最小化。

参考结果状态325,在去断言全局输出禁止之后,路由系统的全部未使用的长线驱动器将保持在Hi-Z模式,这是因为它们的对应输入选择多路复用器仍处于全零(0...0)的配置状态。结果,到总线访问多路复用器的未被选择的输入端的长线链接通常将提供Hi-Z状态并且从而避免提供图2B和2C所示的那种寄生静态泄漏路径。

此外,如在结果状态326中所示,全部未使用的总线访问多路复用器将继续保持在无输入选择状态,这是因为它们的对应配置SRAM单元仍维持为全零(0...0)。对于一类实施例,这意味着至少全部输入传输栅极(例如,图2A的TGA、TGB和TGC,TGX通常不存在)在高R状态和/或全部输出传输栅极(例如,图2A的TGD、TGE)在高R状态,并且从而经过这种未使用的多路复用器的静态泄漏路径的传导性减小或最小化。这减少了对应长线上的动态和静态负载。

参考图4,示出了PLD路由结构400,其可以与图3的方法300结合使用。图4对应于图1,并且其中在“400”世纪系列(century series)中的实际的类似的参考数字被用来代替“100”世纪系列中的对应物,以表示类似元件。因而,对于图4不再提供类似元件的详细的再次说明。

图4中值得注意的是诸如461的逻辑或(OR)电路,其对于给定的LL驱动器将对应的输入选择多路复用器(例如,442)的配置存储位(例如7和8)逻辑地或在一起,从而当对于对应的输入选择多路复用器(442)呈现全零(0...0)选择排列时,迫使对应长线驱动器(例如422)进入Hi-Z状态。另外,当没有断言(assert)全局输出使能时(换句话说,断言了全局输出禁止)时,提供全局输出使能线463横跨系统400,用于迫使诸如421-423...429的全部长线驱动器进入Hi-Z模式。可选地,通过显示为与OR门461组合串联提供的诸如484的AND(与)门,可以对于每个单独长线驱动器提供诸如DyOE信号485的动态输出使能。AND门484也可以接收全局输出使能(GOE)信号463作为第三输入。如果不使用DyOE信号,则迫使其(485)为高(“1”)。

另外,图4示出在一个实施例中,每个长线总线420(具有LL 420a和另外的长线420b)在每个FPGA片区域中由2n-1个可分接长线组成,并且每个对应的总线访问多路复用器(如,433)也具有连接的2n-1个输入端,用于选择性地分接对应的FPGA片区域的2n-1个可分接长线中的一个。保留0...0输入组合用于不选择2n-1个输入可能中的任一个。(再次,在替换实施例中,每个长线总线(例如420)可以具有大于2n-1个长线,其中这些长线被旋转,从而在FPGA的连续片区域的每一个中可以分接不同的2n-1子集)。

诸如431a、431b等的全部配置SRAM单元由全局重置线470驱动,所述全局重置线能够例如在被加电和FPGA重置期间,将全部这些存储单元同时重置为“0”状态。每个SRAM单元是通过例如475处示出的x和y线(行选择和位线列)的单独地址线可进一步单独寻址的,其中475处示出的x和y线可用于通过单独化的寻址来单独设置存储位。

图5示出了可在图4的电路中使用的全局可重置SRAM单元500的一种设计。在被加电或重置时,全局重置线510被断言(驱动为高),由此导通N晶体管523并且从而将N晶体管501和P晶体管502的栅极拉低。这依次驱动Q-bar输出506为高,导通N晶体管511,并由此驱动单元的Q输出端505为低。在全局重置510变为高的同时,其互补的(complement)全局重置条(bar)(连接到P晶体管512)变低,并且由此防止传送电流经过P晶体管512并进入拉低的Q输出端505。

当位线BL(525)驱动为高、BL-bar(520)驱动为低和行-选择(521)驱动为高时,发生SRAM单元500到设置状态(Q=”1”)的翻转。高位线525(BL)使P晶体管503截止,并由此防止其串连连接的下一个P晶体管502传送电流到Q-bar输出端508。驱动的低BL-bar线(520)允许寻址晶体管522响应于行选择(Row Select)521为高而将N晶体管511和P晶体管512的栅极拉低,并且由此当SRAM单元500被选择用于位设置操作时,驱动Q输出端505为高。在全局重置期间,行选择521和位线520(BL)当然保持低,同时BL-bar(525)保持高。对于SRAM单元500可以使用各种其他设计。这仅仅是举例。

图6示出了可以在图4的电路中使用的全局使能的长线驱动器600的一种设计。在被加电或重置器期间,全局OE线被去断言(驱动为低)由此迫使AND门620的输出为低。这转而将N晶体管603切换为截止并且去耦输出端605以防止能够接收电流到地。AND门620的“0”输出状态也迫使从NAND门610输出“1”。这转而将P晶体管602切换为截止并且去耦输出端605以防止能够从Vcc电源轨道(在一个实施例中为1.2V)传送出电流。因此,当全局OE线被去断言(驱动为低)时,输出端605处于高阻抗状态(Hi-Z模式)。在其中另一个三态驱动器(未示出)驱动输出端605到1.2V(在一个实施例中为逻辑高)的情况中,经过N晶体管601和603的电流泄漏最小化,这是因为截止的晶体管603迫使N晶体管601的源极处于相对较高的电压(例如,0.6V之上),并且其从而防止N晶体管601超过导通阈值,即使N晶体管601的栅极为大约1.2V。换句话说,晶体管603工作为N晶体管601的相对较大的源极跟随器电阻,并且从而抵抗流经N晶体管601的电流的增大。

相反,如果全部输入(例如,全局OE、局部OE和可选动态OE)被驱动为高,那么AND门620输出逻辑“1”(高)。这导通N晶体管603,并且在N晶体管601也导通(因为Data IN为低并且因此NAND门610输出逻辑“1”以导通N晶体管601)的情况下创建到地的电流接收(sinking)路径。在该情况中,Data IN端变为升高,NAND门610输出逻辑“0”,并且这首先截止N晶体管601(由于穿过603的正向压降)随后使P晶体管602导通,从而驱动输出端605为高。可以对于LL驱动器600使用各种其他设计。这仅仅是举例。

返回参见图4,尽管总线访问多路复用器(例如433...439)的每一个仅具有2n-1个输入端,用于从相应FPGA片区域中的2n-1个可分接长线中选择,但是在一个实施例中,在每个片区域中还提供额外的(多个)通用G多路复用器,其中所述G多路复用器(未示出)具有用于它们各自的m个选择位(m=2,3,4等)的对应的2m个输入端,并且当额外的相应的输出使能配置位为低时,G多路复用器通过针对其输入和输出切换到高R状态来响应所述输出使能配置位。从而通过在加电或设备重置的开始时对于全部配置位的全局重置,G多路复用器(未示出)也自动地进入低功率模式。然而,G多路复用器的每一个具有输入端,其除了局部分接长线之外还耦合到源节点。在一个实施例中,每个G多路复用器具有16个输入端、用于输入选择的4个配置位、加上用于保存功率的额外的输出使能位。每个G多路复用器的16个输入端中的某些输入端连接到相邻片区域中的非长线节点。

本公开将被理解为说明性的而不是理解为对下面要求的主题的范围、类型或精神的限制。在研究本公开后,各种修改和变化对于本领域的技术人员来说将变得显而易见,包括对于这里所描述的元件使用等同功能和/或结构的替换、对于这里描述的耦合使用等同功能的耦合、和/或对于这里描述的步骤使用等同功能的步骤。这种非实质的变化将认为在这里所构思的范围内。而且,如果对于特定部件、或步骤给出多个示例,以及在这种给出的示例之间和/或之上的推断由本公开看来是显而易见的,那么本发明将被认为是有效地公开并且因此覆盖至少这样的推断。

作为示例,可以理解,诸如根据本公开的图4的415的PLD器件的配置可以包括在编程控制电路450中使用固件,其中后者的电路450执行图3中所示的方法300的一部分或大部分。可以使用多种方案来组织位线和行选择,以便尝试和最小化用于设置全部配置位的平均时间,所述配置位需要在全局重置之后进行设置。因此,可以使用计算机(未示出)来组织编程控制电路450的固件操作。可以使用例如磁盘的计算机可读介质来将配置数据加载到FGPA的非易失性存储部分,用于随后在全局重置之后和在每次加电期间传输到SRAM存储单元。除了重新设置未使用的长线驱动器的输入选择器之外,静态功率拉升的减小可以需要设置其他特定模式。鉴于此,应当理解下面的方式在本公开的范围内,即设计编程控制电路450以便加速用于设置各个配置位的时间,从而实现所希望的FPGA的功能,同时仍最小化静态电流泄漏,以及相应地设计提供配置位的计算机可读介质。

额外专利权利的保留、抵触的解决、和术语的解释

在本公开合法公开之后,本专利申请的拥有者不反对其它人再现此处包括的文本和图形材料,假设这种再现是为了理解本发明公开以及从而促进有用的技术和科学的有限目的。然而,拥有者不放弃可能与公开的材料法律上相关的任何其他权利,包括但是不限于:在任何计算机程序清单或原图或这里提供的其他作品中的版权,与这里提供的原图或新创术语相关的商标或商业外观权利,以及这里包括的其他另外可保护的主题或另外可从此处推出的。

如果在这里通过引用并入任何公开并且这种并入的公开与本公开部分或全部抵触,那么对于抵触的范围和/或更宽的公开和/或术语更宽的定义,由本公开控制。如果这种并入的公开与另外一个部分或全部相抵触,则对于抵触的范围,由在后日期的公开所控制。

除非这里另外清楚地进行了规定,否则普通术语在它们的表示的各个上下文中具有它们对应的通常含义,并且普通技术术语在相关技术领域内和在这里它们的表示的各个上下文中具有它们对应的通常含义。上面关于相关技术的描述不是许可,本公开最紧密相关的谋求领域内的普通技术人员理解它们之间的可能关联或技术。

给出总体概念和特定实施例的上述公开,要求保护的范围将由所附的权利要求来定义。公开的权利要求不应考虑为将申请人的权利限制为公开的权利要求,而是还未通过包括那些遵循35U.S.C§120和/或35U.S.C§251提交的一个或多个进一步的申请字面地要求权利的主题。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号