首页> 中国专利> 可编程逻辑器件中多行块支持的行级冗余

可编程逻辑器件中多行块支持的行级冗余

摘要

在可编程逻辑器件(PLD)中,具有行间的内部逻辑连接的一个多行块具有在故障发生时代替内部逻辑连接的行间的冗余内部连接。冗余的内部逻辑连接贯穿行,其连接缺陷行的上下行。如果功能不同,在多行块内的元件可配置为执行缺省功能和邻近行内元件的功能。

著录项

  • 公开/公告号CN101674076A

    专利类型发明专利

  • 公开/公告日2010-03-17

    原文格式PDF

  • 申请/专利权人 阿尔特拉公司;

    申请/专利号CN200910171145.7

  • 发明设计人 D·刘易斯;

    申请日2009-09-08

  • 分类号H03K19/177;

  • 代理机构北京纪凯知识产权代理有限公司;

  • 代理人赵蓉民

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 23:44:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    授权

    授权

  • 2011-10-26

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

    实质审查的生效

  • 2010-03-17

    公开

    公开

说明书

技术领域

【0001】本发明涉及具有冗余电路的可编程逻辑器件。

背景技术

【0002】可编程逻辑器件(“PLD”)(有时也被称为CPLD,PAL,PLA,FPLA,EPLD,EEPLD,LCA,FPGA或其它名称)是一种众所周知的集成电路,其提供固定集成电路的优点,并且具有定制集成电路的灵活性。在本领域里这种器件是众所周知的,并且通常提供一种“现成的”器件,其至少有一部分可以通过编程来满足用户的特定需求。专用集成电路(“ASIC”)传统上是固定集成电路,但是,可以提供一种ASIC,其一部分或者某些部分是可编程的;因此,就可能提供一种具有ASIC和PLD二者的优点的集成电路器件。在此使用的术语PLD可以被认为范围广泛到包括前述这种器件。

【0003】可编程逻辑器件通常包括逻辑元件块,有时也被称为逻辑阵列块(“LAB”;还可以被称为别的名字,如“可配置逻辑块”或“CLB”)。逻辑元件(“LE”,还可以被称为别的名字,如“逻辑单元”),其可包括查找表(LUT)或积项、进位链、寄存器和其它元件。LAB(包括多个LE)可以连接至水平线和垂直线,这些线可能扩展或不扩展PLD的长度。

【0004】PLD具有可以被编程或重复编程的配置元件。配置元件可以实现为RAM位、触发器、EEPROM单元或其它存储元件。放置新数据到配置元件中就编程或重新编程PLD的逻辑功能和相关路由(布线)通道。现场可编程的配置元件通常实施为RAM(随机存取存储器)单元(有时也称为“CRAM”或“配置RAM”)。然而,很多种可编程元件可以被使用,包括静态或动态随机存取存储器、电可擦除只读存储器、闪存、熔丝和反熔丝可编程连接。配置元件的编程可以通过器件制造过程中的掩膜编程来实施。虽然相对于前述的一些现场可编程选项而言,掩膜编程有一些劣势,但是它在某些大批量的应用中是有益的。为了在此的目的,通用术语“可配置元件”用来指任何可编程元件,其可以被配置以确定通过其它的PLD元件间的路由来实现的功能。

【0005】具有冗余电路的PLD可以帮助提高产品的产量,这通过在器件上提供多个区域来实现,所述区域可以通过使用冗余电路来修复。基于行的冗余方案通常在逻辑电路阵列中(如一个LAB阵列和相关布线)提供至少一个冗余或“备用”行。基于行的冗余方案在被共同转让的美国专利6,201,404(专利名称为“具有冗余电路的可编程逻辑器件(Programmable Logic Device withRedundant Circuitry)”)和6,344,755(专利名称为“具有冗余电路的可编程逻辑器件(Programmable Logic Device with Redundant Circuitry)”)中被描述,并且在被共同转让的美国专利6,965,249(专利名称为“具有冗余电路的可编程逻辑器件(Programmable Logic Device with Redundant Circuitry)”)和7,180,324(专利名称为“可编程逻辑器件中的冗余结构和方法(RedundancyStructures and Methods in a Programmable Logic Device)”)中被进一步描述。通常,可修复的区域可以在备用行上如此被定义以至于:如果逻辑阵列的一行是有缺陷的,那么备用行被激活并且从备用行到缺陷行中的每一行代替下一个更高行,从而修复了缺陷区域。

发明内容

【0006】根据一个多行块实例,位于多行块内行间的逻辑连接具有冗余逻辑连接,其容许另一个行的元件来代替块内一行的所有元件,包括代替行分段的所有逻辑连接。这就容许多行块中的行冗余,甚至在内部逻辑连接在块内的行之间延伸的情况。此外,在一行的元件不同于要代替的行的元件的情况下,可配置元件被用来实现其预定(缺省)功能,也实现在上面的行中对应元件的功能。这样,整个行可以被代替,即使其延伸贯穿多行块。

【0007】在一个实例中,可编程逻辑器件包括通过可配置连接互联的多行元件;多个行冗余电路,其用非缺陷行来代替缺陷行;一个多行元件块,其包括第一行、第二行和第三行中的每个元件,位于第一行的第一元件与第二行的第二元件之间的内部逻辑连接;在多行块中的内部冗余连接,内部冗余连接包括一个在第三行的第三元件和所述第一元件之间的内部冗余逻辑连接,以在第二元件有缺陷时来代替第二元件和第一元件之间的内部逻辑连接。

【0008】在另一个实例中,一种运行包括多行块的多行可编程逻辑器件的方法包括:确定可编程逻辑器件的行是有缺陷的;重新路由输入信号以及来自缺陷行的输出信号到一个相邻行;在贯穿缺陷行和相邻行的多行块中,用位于相邻行和邻近行之间的内部逻辑连接来代替位于缺陷行和邻近行之间的内部逻辑连接;以及重新配置相邻行的元件来实现缺陷行的功能。

【0009】在另一个实例中,可编程逻辑器件包括多行元件;多个行冗余电路,其用非缺陷行代替缺陷行;一个贯穿多个行的多行数字信号处理块,其实现不同功能,并且在多行块内的不同行中使用不同的物理元件;位于多行块中行间的多个内部逻辑连接,多行块有多个冗余内部逻辑连接,以在行冗余电路代替多行中的一行时,代替多个内部逻辑连接。

附图说明

【0010】本发明可通过参考以下描述并结合附图得到最佳的理解,这些附图图解说明了本发明的特定实施例。

【0011】图1展示一个包括多行数字信号处理(DSP)块的可编程逻辑器件的框图。

【0012】图2示出一个被输入和输出冗余电路代替的LAB缺陷行的实例。

【0013】图3A示出一个多行块的实例,在此传统的行代替不重新生成多行块的内部逻辑连接,且各个行有不同的元件。

【0014】图3B示出一个有多行块的可编程逻辑器件,在此信号通过位于多行块任一个边上的额外冗余电路被重新路由。

【0015】图3C示出图3B中的额外冗余电路的更为详细的图。

【0016】图4A示出一个从行0的元件至行1的元件的内部逻辑连接。

【0017】图4B示出代替图4A中的内部逻辑连接的冗余内部逻辑连接。

【0018】图4C示出当行1有缺陷时被使用的冗余逻辑连接。

【0019】图4D示出当行0有缺陷时被使用的冗余逻辑连接。

【0020】图5A示出从行1元件至行0元件的一个内部逻辑连接。

【0021】图5B示出代替图5A中的内部逻辑连接的冗余内部逻辑连接。

【0022】图5C示出当行1有缺陷时被使用的冗余逻辑连接。

【0023】图5D示出当行0有缺陷时被使用的冗余逻辑连接。

【0024】图6示出具有行间的冗余内部逻辑连接的一个两行高的多行块,一行中的可配置元件代替上面行的元件。

【0025】图7A示出不同行中有不同功能的四行高的多行块中的元件。

【0026】图7B示出四行高的多行块中的元件,该多行块具有可配置元件以便每个行具有能够实现缺省功能以及上面行元件的功能的元件。

【0027】图8示出一个多行块的特定实例,通过使用两个不同的行分段,其能实现36*36乘法。

【0028】图9示出一个可配置行分段的实例,其是可配置的,以象图8中行分段中的任一个那样实现。

【0029】图10示出图9使用两个加法器的可配置行分段的实施例。

【0030】图11示出图9只使用一个加法器的可配置行分段的另一个实施例。

具体实施方式

【0031】本发明现在将参照附图中图示说明的各种实施例进行具体说明。在接下来的描述中,阐明具体细节来提供对本发明的深入理解。但是很明显,对于本领域的技术人员,在不使用本文阐明的某些实施细节的情况下也可实现本发明。应该理解的是,为了避免不必要地模糊本发明,本文没有对众所周知的操作进行细节描述。此外,应该注意的是,本发明的技术可以用于各种系统或电子器件,如可编程器件与专用集成电路(ASIC)器件。

【0032】图1示出一个可编程逻辑器件(PLD)的一个框图实例。PLD 10包括一个基于二维行列的结构,其包括排列在芯片外围周围的多个输入输出元件(IOE)12、贯穿器件分组成行和列的多个逻辑阵列块(LAB)14、位于某些LAB14之间分组成列的随机存取存储器(RAM)块16、贯穿器件分组成列的数字信号处理(DSP)块18、贯穿器件且位于某些LAB 14之间的分组成列的第二RAM块20,和一个或更多个M-RAM存储块22,每个处于贯穿器件的不同位置。

【0033】LAB 14包括预定数目的逻辑模块(图中不可见)。在各种实施例中,逻辑模块的数目可从两个到十六个或者更多变化。RAM块16为具有预定数目的位和额外奇偶校验位的简单双通道(双端口)存储器块。RAM块16为器件提供专用的简单双通道或单通道存储器。DSP块18被提供用来实现数字信号处理功能,例如,有限冲击响应(FIR)与无限冲击响应(IIR)滤波器。第二RAM块20为具有存储位和奇偶校验位的真双通道存储块。最后,M-RAM存储块22为具有存储位和奇偶校验位的大型真双通道存储块。DSP块18和M-RAM存储块22都贯穿LAB的多个行,并且可以被认为是多行块。应该注意PLD 10仅为本发明的示例,绝不应该解释为对本发明的限制。还应该注意的是,这里描述的本发明的实施,不要求PLD具有上面提到的全部功能块。如RAM块16、DSP块18、RAM块20以及M-RAM块22的这些功能块是可选的,并且不是实施本发明所必需的。

【0034】图2示出具有LAB行的PLD中的行级冗余的示例,但是该PLD不具有任何的多行块。当PLD中的一行为缺陷行时,例如如图所示,因为行1中的LAB 24为有缺陷的,所以缺陷行1被替换,尽管存在缺陷行,但是容许PLD的正常运行。尤其要指出的是,在图2中,缺陷行1由其紧邻的行2来代替。输入和输出行冗余电路26、28能够从一行到下一行将通信重新路由,以便对应于行1的I/O焊接点发送或接收的信号被发送给行2。在一个包含缺陷行的阵列中,输入和输出行冗余电路重新路由所有的通信来去缺陷行下面的行,以便行功能住下推一行。在这种阵列中提供一个或更多个冗余行以便所有输入和输出通信被发送到正在工作的行。这种冗余电路的一个优势是提高产量。导致PLD被认为是有缺陷的行中的缺陷可以被旁路,并且PLD能够正常运行。对冗余电路需要增加的任何面积可以由这种冗余行提供的增加的产量而被补偿。

【0035】尽管图2中所示的方案由于在行中只包含有LAB块,其可以良好工作,但是多行块是更有问题的。尤其是,如DSP块的这种多行块可能具有行间的内部逻辑连接,以容许在超过一行上实现复杂功能。图3A示出一个包含有多行DSP块30的阵列示例。内部互联32在行1与行0的元件之间延伸。内部互联32用来容许在两行或更多行上实现复杂计算,并且一般支持相对大数据量的快速通信。例如,多行块通常在大的多位操作数上执行操作,并且重要的是,当操作分布在多行时,将这种大的多位数从一行传到另一行。因此,这种内部互联一般构成多位的数据总线(例如,18位宽总线)。如果输入和输出行冗余电路34、36实现位替换,并且如图所示针对行1的所有信号被重新路由到了行2,那么DSP块中位于行0与行1之间的内部互联就不被替换,并且DSP块不必按所要求的运行。因此,图3A图示说明了为什么传统行冗余一般不对贯穿多行块的行起作用。图3A还示出了链信号,其从一行传送到下一行,提供逻辑块的行间的连接。在多行块的情况下,这些可以是多位的操作数,如18位。虽然LAB还可以具有链信号,但是传统上这些是单个位承载信号。

【0036】图3A中图示的另一个问题就是在多行块中不同行里实现的功能可能在行与行之间是不同的。通常,由于DSP块的本性,DSP块中的内部元件有固定的功能,并且不是以LAB的方式来进行配置。例如,在图3A中,行1包含具有功能A和C的元件,而行2包含具有功能A和B的元件。所以行1不能直接用行2来替换。

【0037】如图3B所示,在一个阵列中提供冗余的方法是包含多行块。图中示出了加在LAB和多行块41之间的额外冗余多路复用器38、40。额外冗余多路复用器38、40从一行到邻近行来重新路由通信。具体是,如图3B所示,额外冗余多路复用器38、40容许通信被重新路由到贯穿一个缺陷行的多行块。在此,由于有缺陷的LAB块43,使得行0是有缺陷的。所以,输入和输出冗余电路44、46改址(改向)从行0至行1的输入和输出通信。输入和输出冗余电路也改址从行1到行2的输入和输出通信。任何较低行可以以这种方式重新路由。额外冗余电路然后为多行块重新路由通信从行1回到行0,为多行块重新理由通信从行2回到行1。因此,即使在行1中存在缺陷,但是不是所有的行1部分都被替换。在多行块中的行1部分仍然被使用。当没有缺陷出现时,多行块42接收它应该接收的同样的输入信号。

【0038】图3C示出重新路由来自多行块42任一边的通信的详细框图。尤其是,图3C示出额外冗余电路38、40,其包括冗余多路复用器46a~d及其连接,这容许通信被重新路由向上通过在多行块42的一行。每一个输入和输出具有一个冗余多路复用器来从同一行或邻近行中选择一个输入或输出。箭头示出来自路由输入区域48以及路由输出区域50(在任一边连接到LAB区域)中的行i+1的通信流,通信流一直到多行块中的行i。

【0039】尽管图3B~C的方案提供了冗余,容许具有有缺陷LAB的逻辑阵列的运行,但是缺陷仍然可能出现在多行块中,而且图3B~C的方案没有提供一种处理这种缺陷的机制。同时,这种方案需要额外的冗余电路,额外的冗余电路占有宝贵的空间并增加了成本。

【0040】另一种可替换的方法是提供具有内部冗余能力的多行块,内部冗余能力容许行分段的替代(在此使用的术语“行分段”用来描述在多行块内的行的那部分)。具有这种内部冗余的多行块的示例有两个方面值得注意。第一,冗余内部逻辑连接被提供在多行块中,其容许行之间的任何内部逻辑连接的替换。第二,在邻近行中功能间存在不同的情况下,提供可以实现它们的预定功能(当无缺陷出现时的缺省情况)的可配置元件,并且可配置元件还可以被重新配置来实现邻近行中元件的功能。

【0041】图4A示出一个每行(尽管实际多行块可能有超过三行,每行超过两个元件,但是图中示出两个元件的三行)显示两个元件的多行块的内部结构的实例。图4A示出位于行0与行1之间的一个逻辑连接52。逻辑连接从行0中一个元件发送数据向下到行1中的下一个元件。这种连接在如DSP块这样的多行块中是常见的,在DSP块中逻辑信号不仅从行中的一个元件传送到同行的下一个元件,还从一行中的一个元件传送到邻近行中的一个元件。对比而言,LAB一般只是具有通过路由结构的行间逻辑通信。应该注意逻辑连接是多位数据总线,其能够快速传递多位的数。

【0042】图4B示出内部冗余逻辑连接54a、b,其被提供以在缺陷发生时代替内部逻辑连接52。具体是,从行0和行1至行2都提供连接54a、b。在正常运行期间,当无缺陷出现时,这些内部冗余逻辑连接不被激活。但是,当在行0或行1中出现缺陷时,这些连接就被用来路由逻辑信号去往或来自一个替换行。多路复用器56提供在冗余逻辑连接54a、b之间选择的能力,以便通往行2元件的冗余连接能够来自于行0或行1。

【0043】图4C示出行1被确定为缺陷行(通过阴影来指示)的一个实施例。在这种情况下,行1中的缺陷可能出现在LAB或其它地方,包括在多行块中。由于行1是缺陷行,所以行2用来代替行1。在这种情况下,整个行2用来代替整个行1。包括多行块中的一个行分段。因为行1是内部逻辑连接的目标行,所以把行2作为目标行的冗余逻辑连接54a取代内部逻辑连接。冗余逻辑连接54a从行0延伸,通过缺陷行1,到达行2,其不通过路由结构,或另外通过多行块外面的路径。在本图以及其它图中没有被使用的逻辑连接被显示为点线。

【0044】图4D示出当行0被确定为缺陷行的另一个实例。在此,行1被用来代替行0(并且行2代替行1等)。由于行0对于内部逻辑连接是源行,并且行0被行1来代替,所以在这种情况下,多路复用器56选择一个以行1作为源行,行2作为目标行的冗余内部逻辑连接54b。这对应着原始内部逻辑连接52向下移动一行(即,源行和目标行都被向下移动一行)。

【0045】图5A示出类似于图4A的内部逻辑连接58的另一个实例,但是在这个实例中从一个较低行(行1)中的元件向一个较高行(行0)中的元件向上延伸。在一些实例中,多行块可以具有内部逻辑连接,其向上、向下或既向上又向下在单个多行块中延伸。应该注意,为了清晰表述,本例子以传统的方式使用“上”和“下”的表达,但是应该理解出于很多目的,这些名称是任意的和可被颠倒的。例如,缺陷行可以被其上面的行来代替,到缺陷行上面的每行的通信被向上推一行,并且冗余行在非冗余行的上面的位置被提供。相似的是,冗余的方向可以是列,而不是描述的行方向,在这种情况下缺陷块可能被相邻的水平邻块所替换。而且,行间的逻辑连接不限于长度为一行。在一些情况下,这种内部逻辑连接可以延伸两个或者是更多行。

【0046】图5B示出内部冗余逻辑连接60a、b,其被提供用来在行0或者行1中出现缺陷时代替内部逻辑连接58。尤其是,即使是缺陷出现在多行块中,内部冗余逻辑连接60a,b容许行0或者行1的替换。

【0047】图5C示出图5B系统在行1有缺陷时的运行。尤其是,图5C示出位于行2和行0之间的用于代替图5A中内部逻辑连接58的内部冗余逻辑连接60a。内部冗余逻辑连接60a来自行2,通过缺陷行1,达到行0。

【0048】图5D示出当行0有缺陷时图5B系统的运行。在这种情况下,由于行0是缺陷行,所以其被行1所替换,行1又被行2所替换,以下类同。因此,从行1到行0的内部逻辑连接58被从行2到行1的冗余内部逻辑连接60b所替换。

【0049】结合图4B和5B中的内部冗余逻辑连接和多路复用器得出内部冗余逻辑电路,其容许通过将内部逻辑连接重新路由通过一个缺陷行,并且将缺陷行下方的所有内部逻辑连接重新路由而以一个行分段替换邻近的行分段。

【0050】图6示出一个多行块的两行高的部分,多行块包括内部冗余逻辑连接61,其对应于通过增加图4B和5B中的冗余内部逻辑连接来改变的图3B或3C中的多行块。具体是,多路复用器62a、b在行i和i+1的元件A的输入处选择冗余内部连接61,以便每行可以从自己的路由输入区域接收输入,或根据多路复用器配置从另一个行的路由输入区域接收输入。例如,行i可以从行i-2、i-1、i+1或者i+2接收输入。这是一个一般性的冗余连接的实例,其在行具有到其紧上行和紧下行的连接的情况下需要。在行具有超过这些紧邻行的内部逻辑连接的情况下,就需要额外冗余内部逻辑连接。一般来说,如果内部逻辑连接延伸n行,那么冗余内部逻辑连接就延伸n+1行,以便连接能够移位一行。

【0051】除了冗余内连接之外,图6示出了分别在行i和i+1中的可配置元件64、66。行i中的可配置元件64被指定来实现功能B,但是在缺陷行的情况下必须能够实现这行上面的行的功能C。类似的,在行i+1中的可配置元件66有一个预定的功能C,但是在有缺陷行的情况下是可重新配置的,以还实现功能B。这就容许元件66代替其上面的元件。一般来说,多行块中的某些元件可以是可配置来实现它们的预定功能(缺省功能),并且如果其上面的元件具有一个不同功能,这些元件是可配置来实现上面行中元件的功能。链信号被提供有多路复用器,其从紧上面的行来选择链信号,或在被移除的行中选择,以便如果紧上面的行为缺陷行时,下一行可以被选择。

【0052】应该注意的是,图6的实例在多行块的每一边上不包括额外冗余电路,这是因为甚至在行贯穿多行块的情况下也可以通过使用展示的结构获得全行冗余。因此,不是如图3B中示出的重新路由多行块的任一边的连接,在此整行(包括多行块中的行分段)被替换,使得这种重新路由不是必须的。所以,冗余内部路由和可配置元件所需的任何增加面积通过在多行块的任一边上节约额外的冗余电路来补偿。

【0053】图7A示出一个多行块的四行高的部分。具体是,图7A图示说明了不同行中的元件的不同预定功能。前两行有具有功能A和B的元件,而后两行有具有预定功能A和C的元件。在多行块中一般使用只实现其预定功能并且不可重新配置来实现其它功能的元件。相对比而言,在此描述的实例示出多行块中的可重新配置元件。

【0054】图7B中示出图7A的多行块怎样具有可重新配置的元件,这些元件处在上面的行中的相应元件具有不同功能的位置。尤其是,每个元件能够实现它自己的预定功能,而且还能实现上面这行中相应元件的功能。应该注意的是图7B的模式不重复每一行。各个行可以具有不同的元件。在可配置元件不被需要的情况下(如,在元件具有和上行的对应元件相同的预定功能的情况),具有固定功能的元件就被使用。因此,例如,在行i和i+2中所示的是具有功能B或C的可配置元件68和70,而固定功能元件72和74(分别具有功能B和C)在行i+1和i+3中被示出。如图7B中所示,所有的行都是不同的,而且一些行不包括可配置元件。图7B还示出提供给链信号的多路复用器,以便来自于紧上面的行的链信号或来自于更高行的链信号能够被选取。链信号还是多位信号,其用于行行通信。

【0055】图8示出一个两行高的多行块的特定实例。具体是,图8示出在一个多行DSP块中的两行上实现的36*36乘法器。这个乘法器能够实现两个36位数的乘法,以得到一个72位的结果。这是在一个单行上不能实现的过于复杂的功能实例,因此(在一些设计中)可以要求乘法器占用两行。其它的功能,尤其是更复杂的功能还可能需要多行块中的两行或更多行。

【0056】图8示出两个36位操作数的乘法运算,其中每个操作数分成两部分各18位的数字。在此,第一个操作数是A+B,第二个操作数为C+D,这里每个操作数的第一部分代表最高有效18位,第二部分代表最低有效18位。要计算的结果为(A+B)*(C+D)=A*C+A*D+B*C+B*D,其中右侧的每一项为两个18位数的乘积,为一个36位数。首先,每个行分段中一对18*18乘法器76a-d计算部分操作数的乘积。因此,在上行分段中,计算乘积D*B和D*A。作为两个最低有效部分的乘积的D*B提供一个36位数,其最低有效18位是期望结果的18个最低有效位。一般这个结果以进位保留(carry-save)的格式被提供,包括两个36位数分别用于和与进位。为了内容的简洁,这部分在本说明书中不再描述。这些18个位(B*D)[0:17]作为第一输出Z0提供。这个乘积的最高有效位(B*D)[18:35]作为上行分段中加法器的一个输出提供。传统的三个数相加的方式是使用一个3∶2压缩器执行第一个相加,接下来是CPA 80a,以将两个输出减少到一个单独的和中。和B*D的计算同时的是,18*18乘法器76b计算A*D。最低有效18位(A*D)[0:17]被发送到上行分段中的加法器78a,同时最高有效位(A*D)[18:35]被发送到下行分段中的加法器78b。这是一个多行块中相邻行的元件间的内部逻辑连接的实例。在此提供的内部逻辑连接是18位宽,以支持快速地把18位结果A*D[18:35]传送到下行中的一个后续元件。在下行分段中,一个上乘法器76c将B和C相乘,提供最低有效位(B*C)[0:17]到上行分段中(再一次使用18位数据总线)的加法器78a。这是多行块中相邻行的元件之间的内部逻辑连接的另一实例。最高有效位(B*C)[18:35]被发送到下行中的加法器78b。下乘法器76d将A和C相乘,提供最低有效18位(A*C)[0:17]到下行分段中的加法器78b,并提供最高有效位(A*C)[18:35]到一个进位传送加法器(CPA)80c。只需要CPA 80c来传送来自Z2加法器的任何可能进位。这个结果被提供作为输出Z3,代表结果的18个最高有效位。

【0057】如图8所示,上行的加法器78a把三个18位数加在一起来获取结果的紧接着的最低有效位。这个结果作为加法器的两个输出提供。因为加法器78a将三个输入加在一起来提供和作为两个输出,所以加法器78a被认为是一个3∶2加法器。CPA 80a接收加法器的两个输出并且提供结果作为输出Z1。前面所描述的三个数相加的传统方法是使用后跟CPA的一个3∶2加法器。下行的加法器78a还接收三个输入,然后把它们相加,并且提供和作为两个输出给CPA 80b。

【0058】CPA 80b提供输出Z1作为结果的紧接着的最低有效位。因此,四个输出Z0、Z1、Z2和Z3为18位的数,它们为72位结果中的连续的最高有效18位部分。

【0059】实现图8的乘法器的一种方式就是只提供对应于所示的功能块的组件。因此,在上行中,两个乘法器、一个加法器和一个CPA被提供,一个内部逻辑输出被提供到下面的行,并且一个内部逻辑输入从下面的行被接收。在下行中,两个乘法器、一个加法器和两个CPA被提供,一个内部逻辑输出被提供给上面的行,并且一个内部逻辑输入从上面的行被接收。但是,在这种情况中,每个行分段具有不同的硬件并且是不可配置来替换邻近的行分段的。

【0060】图9示出组成可配置的行分段81所需的算术元件的集合,行分段81可以被配置来实现作为图8中的上行分段或下行分段。具体是,行分段包含两个乘法器82a、82b,一个3∶2加法器84和两个CPA86a、b,其提供输出Z0和Z1。同图8相比对,可以看出这里包含了足够的资源来实现图8的顶行或底行。行分段还具有内部逻辑连接,连接到上面的行(out_up和in_down)和下面的行((in_up和out_down)。根据它是运行为图8的上行分段或者下行分段,可配置的行分段具有两个不同的模式,顶部(或上)和底部(或下)。根据下面的表,输出和内部逻辑连接在每个这些模式中被配置:

            顶部                    底部

                                    in_down+(X0*X1)

Z0          (X0*

                                    [18:35]+(X0*X2)[0:17]

            (X0*X1)[18:35]+(X0*X2)

Z1                                  (X0*X2)[18:35]

            [0:17]+in_up 

out_up      nil                     (X0*X1)[18:35]

out_down    (X0*X2)[18:35]          nil

因此,在顶部模式下,输出Z0为X0*X1(到顶部乘法器的输入)的18个最低有效位,输出Z1为X0*X1的18个最高有效位加上X0*X2(到底部乘法器的输入)的最低有效位,加上in_up(来自下面的行的输入)的和。在顶部模式下,没有输出提供给上面的行,所以out_up未使用。X0*X2的18个最高有效位被提供作为out_down,即到下面的行的输出。

【0061】在底部模式中,输出Z0为从上面的行接收到的输入in_down加上X0*X1的18个最高有效位,加上X0*X2的18个最低有效位的总和。输出Z1只是X0*X2的18个最高有效位。输出out_up为X0*X1的18个最高有效位,同时在这种模式下不需要输出out_down。

【0062】图9给出了可配置行分段81的元件和期望的输入和输出的简化图,没有显示元件之间的连接。可配置的连接可以通过不同的方式被提供,并且本发明不限于任何特定的实施方式。

【0063】图10示出实施图9的可配置行分段81的硬件的第一示例。尤其是,图10示出两个3∶2的加法器88a、b,其接收来自乘法器的输入,乘法器被配置为根据行分段运行的模式来选择合适的输入。对比于图9,图10包括更多的算术资源来简化创造各种模式所需的乘法器结构。一般对于任何块来说,在逻辑量和连接资源的多路传输的复杂度之间存在着一个折中。图9表示图8块的下界限,而图10使用了比最小资源量多的资源。例如,在顶部模式中,上加法器88a从中间多路复用器接收了输入,这个中间多路复用器选择18个最低有效位(为这个中间多路复用器示出两个输入,对应于X0*X1的最高有效位和最低有效位)。在这种模式下加法器88a的其他输入不被使用。下加法器88b从上乘法器接收X0*X1的最高有效位,从下乘法器接收X0*X2的最低有效位和通过它的输入多路复用器接收up_in(来自下面的行的输入),并且把这些量相加,乘积作为输出Z1。Out_down是来自下乘法器的X0*X2的最高有效位。在本例中,图10的行间逻辑连接(如In_up、In_upr、Out_down等等)为18位数据总线。在其它的多行块中,多行块中的这种内部逻辑连接可以使用不同的多位总线来构成。

【0064】在本例中,在邻近行之间的每个输入和输出包括两个连接,一个连接位于给定行和它的紧邻近行(一行距离)之间,而一个冗余连接位于给定行和相距两行远的行之间。如果顶行是缺陷行,那么顶行和底行都向下移动一行并且继续使用相同的信号。如果底行是缺陷行,那么它向下移动一行并且顶行保持在同样的位置,并使用in_upr信号,同时底行使用in_downr信号。应该注意的是多路复用器选择信号(在此没有示出)是通过模式和冗余信号的组合来驱动的。

【0065】如图11所示,在另一个示例实施中,可以重新安排多路复用以使用较少的加法硬件,而以更多的多路复用为代价。实施方案的选择依赖于各种因素,包括多路复用器或其它组件是否能够用于额外模式(没有示出)以及面积和电路延迟的成本/好处分析。例如,在图10中,可以看到顶部和底部模式包含一种共同的表达式形式{in_up/in_down}+X0*X1[18:35]+X0*X2[0:17],而另一输出是两个操作数部分的未修改的乘积。所以,如图11所示,可以重新安排多路复用以使用较少的加法硬件,而以更多的多路复用为代价。应该注意在这个例子中,图10和图11都包含有6个多路复用器,但是在图11中具有更多级的多路复用(3对1)。

【0066】图11示出单个加法器90,其具有来自每个乘法器的输入,而且多路复用器92给该加法器提供来自in_down或者in_up(或它们的冗余对应物in_downr,in_upr)的一个额外输入。因此,该加法器可以提供一个对应于下面第一表达式的输出:

{in_up/in_down}+X0*X1[18:35]+X0*X2[0:17]

另一个多路复用器94提供一个选自于两个乘法器的输出X0*X1或者X0*X2的输出。加法器的输出和多路复用器的输出然后可以依照行分段正在运行的模式被适当路由到输出Z0和Z1。如图10所示,内部行逻辑输入和输出成对出现,具有相邻行间的连接以及通过行的连接。

【0067】上述实例参考PLD中的物理行,其是用于冗余目的的方便单位。但是本发明的各方面并不限于物理行。在一些实例中为了冗余的目的而选择的单位不同于物理行。在某个方向上重复的逻辑组被认为是一种虚行,即使该逻辑组在物理PLD中不具有直线边界,或即使它在PLD中没有使用邻近带。

【0068】虽然本发明已经详尽示出并参照其具体的实施例进行描述,但是本领域的技术人员理解可修改所公布的实施例的形式与细节而不脱离本发明的精神和范围。因此本发明应该应被理解为包括属于本发明的精神与范围内的全部。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号