级联查找表(LUT)进位逻辑电路的制作方法

文档序号:14392770阅读:911来源:国知局

本公开的示例大体涉及电子电路,且更具体来讲,涉及一种级联查找表(lut)进位逻辑电路。



背景技术:

可编程集成电路(ic)通常用于根据用户可配置的输入实现数字逻辑运算。示例性可编程集成电路包括复杂可编程逻辑器件(cpld)和现场可编程门阵列(fpga)。cpld通常包括若干基于具有积和(sum-of-products)逻辑的可编程逻辑阵列(pla)架构的功能块。可配置的互连矩阵在功能块之间传输信号。

一种类型的fpga包括可编程单元块阵列。可编程单元块包括各种类型的逻辑块,其可包括,例如输入/输出块(iob)、可配置逻辑块(clb)、专用随机存取存储块(bram)、乘法器、数字信号处理块(dsp)、处理器、时钟管理器、延迟锁定环(dll)、总线或网络接口(如外围组件互连高速(pcie)和以太网等)。每个可编程单元块通常包括可编程互连和可编程逻辑。可编程互连通常包括由可编程互连点(pip)互连的大量不同长度的互连线。可编程逻辑使用可编程元件来实现用户设计的逻辑,所述可编程元件可包括,例如函数发生器、寄存器、算术逻辑等等。



技术实现要素:

本公开描述了一种级联查找表(lut)进位逻辑电路。在一个示例中,一种用于可编程集成电路(ic)的可配置逻辑元件包括第一查找表(lut)、第二查找表、以及第一和第二级联多路复用器,所述第一查找表包括第一输入和第一输出、以及耦接在所述第一输入与所述第一输出之间的第一求和逻辑和第一进位逻辑;所述第二查找表包括第二输入和第二输出、以及耦接在所述第二输入与所述第二输出之间的第二求和逻辑;所述第一和第二级联多路复用器分别耦接至所述第一和第二查找表,所述第二级联多路复用器的输入耦接至所述第一查找表中的所述第一进位逻辑的输出。

在另一个示例中,一种可编程集成电路(ic)包括配置存储器和耦接至所述配置存储器的多个可配置逻辑元件。所述多个可配置逻辑元件中的每个包括第一查找表(lut)、第二查找表、以及第一和第二级联多路复用器,所述第一查找表包括第一输入和第一输出、以及耦接在所述第一输入与所述第一输出之间的第一求和逻辑和第一进位逻辑;所述第二查找表包括第二输入和第二输出、以及耦接在所述第二输入与所述第二输出之间的第二求和逻辑;所述第一和第二级联多路复用器分别耦接至所述第一和第二查找表,所述第二级联多路复用器的输入耦接至所述第一查找表中的所述第一进位逻辑的输出。

在另一个示例中,一种配置可编程集成电路(ic)的方法包括:配置可配置逻辑元件中的第一查找表(lut)以计算第一总和,所述第一查找表包括第一输入和第一输出、以及耦接在所述第一输入与所述第一输出之间的第一求和逻辑和第一进位逻辑;配置所述可配置逻辑元件中的第二查找表以计算第二总和,所述第二查找表包括第二输入和第二输出、以及耦接在所述第二输入与所述第二输出之间的第二求和逻辑;以及配置级联多路复用器以将所述第一查找表中的所述第一进位逻辑的输出耦接至所述第二查找表中的所述第二求和逻辑的输入。

在另一个示例中,描述了一种查找表(lut)级联电路。

在一个示例中,一种用于可编程集成电路(ic)的查找表包括多个输入端和耦接至所述可编程集成电路中的至少一个其他查找表的级联输入。所述查找表进一步包括查找表逻辑,所述查找表逻辑具有各自耦接至一组公共输入端的多个查找表。所述查找表进一步包括多个多路复用器和输出多路复用器,所述多个多路复用器具有耦接至所述多个查找表的输出的输入,所述输出多路复用器具有耦接至所述多个多路复用器的输出的输入。所述查找表进一步包括多个级联多路复用器,所述多个级联多路复用器各自具有耦接至所述多个多路复用器中的相应一个的控制输入的输出,所述多个级联多路复用器中的每个包括多个输入,所述多个输入中的至少一个耦接至所述级联输入。

在另一个示例中,一种可编程集成电路包括配置存储器和耦接至所述配置存储器的至少一个可配置逻辑元件(cle)。所述至少一个可配置逻辑元件包括多个。所述多个查找表中的每个包括输出端和级联输入。所述多个查找表的第一查找表的级联输入耦接至所述多个查找表的第二查找表的输出端。

在另一个示例中,一种操作可编程集成电路中查找表的方法包括:将一组公共输入信号耦接至查找表逻辑中的多个查找表;将级联输入耦接至多个级联多路复用器中的每个,所述级联输入耦接至所述可编程集成电路中的至少一个其他查找表;控制所述多个级联多路复用器中的至少一个以选择所述级联输入的信号;以及将所述级联多路复用器的输出耦接至可用于在所述查找表逻辑中的多个查找表的输出之中进行选择的多路复用器逻辑。

参考以下详细描述可以理解这些和其他方面。

附图说明

为了能够详细理解上述特征的方式,可以通过参考示例实施方式来获得上面简要概述的更具体的描述,其中一些示例性实施方式在附图中示出。然而,应当理解,附图仅示出了典型的示例性实施方式,因此不被认为是对其范围的限制。

图1a示出了fpga的示例性架构。

图1b是根据一个示例,示出图1中fpga的较高级视图的方框图。

图2是示出图1中fpga的可编程结构的平面布置图的方框图。

图3是根据一个示例,示出可配置逻辑元件的方框图。

图4是根据另一个示例,示出可配置逻辑元件的方框图。

图5是根据一个示例,示出一种配置可编程集成电路(ic)的方法的流程图。

图6是示出图1a-1b中fpga的可编程结构的平面布置图一部分的方框图。

图7是根据一个示例,示出查找表的方框图。

图8是示出包括实施宽组合函数的查找表链的示例性电路的方框图。

图9是示出包括实施多路复用器的多个查找表的示例性电路500的方框图。

图10是根据一个示例,示出一种操作可编程集成电路中查找表的方法的流程图。

为了便于理解,在可能的情况下使用相同的附图标记来表示附图中共有的相同元件。预期一个示例的元件可有利地并入其他示例中。

具体实施方式

以下参考附图描述各种特征。应该注意的是,附图可以或不可以按比例绘制,并且整个附图中,类似结构或功能的元件由相同的附图标记表示。应该指出,这些附图只是为了便于描述这些特征。它们不旨在作为对要求保护的发明的详尽描述或作为对要求保护的发明的范围的限制。另外,所示实施例不需要具有所示的所有方面或优点。结合特定实施例描述的方面或优点不一定限于该实施例,且可以在任何其他实施例中实施,即使没有如此说明或如果没有如此明确地描述。

本公开描述了一种级联查找表(lut)进位逻辑电路。在一个示例中,一种用于可编程集成电路(ic)(比如fpga)的可配置逻辑元件(cle)包括一对查找表(lut)。第一查找表(lut)包括第一输入和第一输出、以及耦接在第一输入与第一输出之间的第一求和逻辑和第一进位逻辑。第二查找表包括第二输入和第二输出、以及耦接在第二输入与第二输出之间的第二求和逻辑。可配置逻辑元件包括分别耦接至第一和第二查找表的第一和第二级联多路复用器。第二级联多路复用器的输入耦接至第一查找表中的第一进位逻辑的输出。在另一个示例中,进位逻辑也可并入到查找表对中的第二查找表中。

在本文所述的示例性可配置逻辑元件中,求和和进位逻辑并入到可配置逻辑元件的一个或多个查找表中。进位初始化可以由级联多路复用器执行。级联多路复用器可加速通用查找表至查找表直接连接。求和和进位输出的输出都由查找表直接提供。这使得由这些信号驱动的输出多路复用器的大小得到减小,因为这些输出多路复用器否则将需要单独的输出用于查找表的求和、进位和输出。由于每个查找表包括与其耦接的级联多路复用器,所以可在每个查找表处开启/启动进位链,这使得能够实现更有效的多进位链堆砌。下面将参考下列附图说明这些及进一步的方面。

图1a示出了fpga100的示例性架构,其包括大量不同的可编程单元块,这些单元块包括多千兆位收发器(mgt)101、可配置逻辑块(clb)102、随机存取存储器块(bram)103、输入/输出块(iob)104、配置及定时逻辑(config/clocks)105、数字信号处理块(dsp)106、专用输入/输出块(i/o)107(例如,配置端口和时钟端口)及其他可编程逻辑108,比如数字时钟管理器、模数转换器、系统监控逻辑等等。一些fpga也包括专用处理器块(proc)110。

在一些fpga中,每个可编程单元块都可包括至少一个可编程互连元件(int)111,其具有到同一个单元块内的可编程互连元件的输入和输出端120的连接,如图1a顶部所包括的示例所示。每个可编程互连元件111(也称作“互连元件111”)还可包括到同一个单元块或其他单元块内相邻可编程互连元件的互连段122的连接。每个可编程互连元件111还可包括到逻辑块(未示出)之间通用布线(routing)资源的互连段124的连接。通用布线资源可包括逻辑块(未示出)之间的布线通道,其包括互连段(例如,互连段124)的轨道和用于连接互连段的开关块(未示出)。通用布线资源的互连段(例如,互连段124)可跨越一个或多个逻辑块。可编程互连元件111与通用布线资源一起为所示fpga实施可编程互连结构(“可编程互连”)。如下进一步所述,在一些示例中,一些或所有的互连元件111可包括用于有效实施tcam的附加电路。

在示例性实施方案中,clb102可包括可配置逻辑元件(cle)112,其可经编程以实施用户逻辑加上单个可编程互连元件(int)111。除了一个或多个可编程互连元件外,bram103还可包括bram逻辑元件(brl)113。一般来说,单元块中包括的互连元件的数量取决于单元块的高度。在图示示例中,bram单元块具有如同五个clb的高度,但也可使用其他数量(例如,四个)。除了适当数量的可编程互连元件外,dsp单元块106还可包括dsp逻辑元件(dspl)114。除了可编程互连元件111的一个实例外,iob104还可包括例如两个输入/输出逻辑元件(iol)115的实例。如本领域技术人员将清楚的那样,连接到例如i/o逻辑元件115的实际i/o焊盘通常不限于输入/输出逻辑元件115的区域。

在图示示例中,使用芯片中心附近的水平区域(如图1a所示)来用于配置、时钟和其他控制逻辑。从该水平区域或柱延伸出的竖直柱109用来在fpga的整个宽度上分配时钟和配置信号。

一些使用图1a所示架构的fpga包括附加逻辑块,其打乱构成fpga大部分的规则柱状结构。附加逻辑块可为可编程块和/或专用逻辑。例如,处理器块110跨过clb和bram的若干柱。处理器块110可包括各种部件,其范围从单个微处理器到完整的由微处理器、存储控制器、外围设备等构成的可编程处理系统。

应注意,图1a旨在仅示出示例性fpga架构。例如,一排逻辑块的数量、这些排的相对宽度、这些排的数量和顺序、这些排中包括的逻辑块类型、逻辑块的相对大小以及图1a顶部所包括的互连/逻辑实施方案都完全是示例性的。例如,在实际的fpga中,clb出现的地方通常包括多于一个相邻clb排,以便于用户逻辑的高效实施,但相邻clb排的数量随fpga的整体大小而变化。在另一个示例中,fpga可包括整个处理系统(例如,处理器、存储器、外围设备等)而替代处理器块110,或者除了处理器块110还包括整个处理系统。在该实施方案中,片上系统(soc)可包括与处理系统通信的可编程结构(如fpga100中示出的可编程逻辑)。

图1b是根据一个示例,示出fpga100的较高级视图的方框图。fpga100包括可编程结构150,其可包括各种如上所述的可编程单元块。可编程结构150耦接至配置存储器152。配置存储器152包括随机存取存储器(ram),比如静态ram(sram)等。可编程结构150还可包括cle112,其具有如本文所述的级联查找表(lut)进位逻辑。配置存储器152可加载用于编程(“配置”)可编程结构150的配置比特流。例如,配置比特流可加载进配置存储器152中以配置可编程结构150的cle112,如本文所述。

图2是示出fpga100的可编程结构150的平面布置图的方框图。图2示出了可编程结构150中可编程单元块的两个柱202和206。柱202和206中的可编程单元块包括cle112。在柱202和206中的每个中,仅示出一个cle112,但柱202和206一般包括多个cle。每个cle112都耦接至互连元件111。

每个cle112都包括四个单元片sm1-sm0和sl0-sl1。单元片sm0-sm1属于一种类型(类型“m”),单元片sl0-sl1属于另一种类型(类型“l”)。m类型单元片sm0和sm1包括查找表(lut)208和支持逻辑210。lut208可被配置为函数发生器以执行具有多个输入和多个输出的任何组合函数。lut208还可被配置为lut-ram,其被配置成存储多个比特。支持逻辑210可包括支持lut208的触发器、多路复用器、进位链逻辑等。l类型单元片sl0和sl1包括lut212和支持逻辑210。lut212可被配置为函数发生器,但不是lut-ram。图2所示的架构仅为一个示例。在其他示例中,cle112中的所有lut都可包括lut-ram(每个单元片都属于类型“m”),或cle112中的所有lut都可包括无法配置为ram的lut(每个单元片都属于类型“l”)。

在示例中,柱202中的l类型单元片sl0和sl1与柱206中的m类型单元片sm0和sm1相邻,其之间具有两个互连元件111。柱202中的单元片sl0-sl1耦接至互连元件111中的一个,且柱206中的单元片sm0-sm1耦接至互连元件111中的另一个。互连元件111可互相耦接。每个互连元件111都可包括多路复用器214。多路复用器214中不同的多路复用器可具有不同的输入,比如,来自柱202中的cle112的输入、来自柱206中的cle112的输入、来自另一个互连元件111中的多路复用器214的输入、或来自互连的输入。相似地,多路复用器214中不同的多路复用器可具有不同的输出,比如,到柱202中的cle112的输出、到柱206中的cle112的输出、到另一个互连元件111的输出、或到互连的输出。

如本文所述,lut208和/或lut212可包括内部求和和进位逻辑,消除对将这样的求和和进位逻辑包括在支持逻辑210中的需要。这减小了cle112的输出多路复用器成本。这也导致可能的关键路径更少,优化了cle112的性能。此外,进位链可在cle112中的任何lut处启动,这能够以更精细的粒度堆砌多个进位链。

图3是根据一个示例,示出可配置逻辑元件112的方框图。在本示例中,可配置逻辑元件112包括一对lut302-0和302-1(统称lut302)。如上所述,虽然示例中仅示出了两个lut,但cle112可具有一个或更多的单元片,每个都具有一个或多个lut。

lut302中的每个中都包括求和逻辑312和进位逻辑310。在示例中,lut302-0包括求和逻辑312-0和进位逻辑310-0,且lut302-1包括求和逻辑312-1和进位逻辑310-1。在示例中,求和逻辑312包括异或(xor)门,且进位逻辑310包括多路复用器。因此,求和逻辑312-0包括逻辑门320,且求和逻辑312-1包括逻辑门308。在示例中,逻辑门308和320中的每个都包括异或门。相似地,进位逻辑310-0包括多路复用器318,且进位逻辑310-1包括多路复用器306。lut302-0进一步包括逻辑门304-0,lut302-1进一步包括逻辑门304-1。在示例中,逻辑门304-0和304-1中的每个都包括异或门。

lut302中的每个都包括标注为a1到a6的六个输入。在lut302-0中,输入a3和a4耦接至逻辑门304-0的输入。输入a5耦接至级联多路复用器322-0的输出。所示输入a6连接至参考电压(例如,电气接地)。在本示例中,输入a1和a2未连接。逻辑门304-0的输出标注为prop0。多路复用器318的控制输入经耦接以接收prop0。多路复用器318的输入耦接至输入a4和a5。逻辑门320的输入耦接至输入a5和逻辑门304-0的输出(prop0)。多路复用器318的输出标注为cout0,且逻辑门320的输出标注为sum0。

在lut302-1中,输入a3和a4耦接至逻辑门304-1的输入。输入a5耦接至级联多路复用器322-1的输出。所示输入a6连接至参考电压(例如,电气接地)。在本示例中,输入a1和a2未连接。逻辑门304-1的输出标注为prop1。多路复用器306的控制输入经耦接以接收prop1。多路复用器306的输入耦接至输入a4和a5。逻辑门308的输入耦接至输入a5和逻辑门304-1的输出(prop1)。多路复用器306的输出标注为cout1’,且逻辑门308的输出标注为sum1。

级联多路复用器322-0的一个输入标注为a5’,且级联多路复用器322-0的另一个输入耦接至节点cin。级联多路复用器322-1的一个输入标注为a5’,且级联多路复用器322-1的另一个输入耦接至多路复用器318的输出(cout0)。

在示例中,cle112的支持逻辑210包括进位链多路复用器314。进位链多路复用器314的输出由cout标注。进位链多路复用器314的控制接口可经耦接以接收prop0、prop1或它们二者。进位链多路复用器314的一个输入经耦接以接收cout1’。进位链多路复用器314的其他输入可经耦接以接收级联多路复用器322-0的输出、cin或它们二者。

在操作中,lut302-0和302-1计算数据字a_data和b_data的总和。在本示例中,数据字a_data和b_data各自具有标注为<0>和<1>的两个比特。lut302-0的输入a3和a4分别接收a_data<0>和b_data<0>。lut302-1的输入a3和a4分别接收a_data<1>和b_data<1>。

逻辑门304-0计算a_data<0>和b_data<0>的总和(即prop0=a_data<0>+b_data<0>)。逻辑门320将进位比特加到a_data<0>和b_data<0>的总和上(即sum0=a_data<0>+b_data<0>+进位)。该进位比特由级联多路复用器322-0输出,其可通过a5’或通过cin来输入(到cle112的进位输入)。多路复用器318输出进位比特用于通过lut302-0执行的求和操作(标注为cout0)。

逻辑门304-1计算a_data<1>和b_data<1>的总和(即prop1=a_data<1>+b_data<1>)。逻辑门308将进位比特加到a_data<1>和b_data<1>的总和上(即sum1=a_data<1>+b_data<1>+进位)。该进位比特由级联多路复用器322-1输出,其可通过a5’或通过多路复用器318的输出(例如,cout0)来输入。为了确定a_data+b_data,多路复用器322-1选择cout0作为进位比特。多路复用器306输出进位比特用于通过lut302-1执行的求和操作(标注cout1’)。

进位链多路复用器314输出进位比特用于cle112。该用于cle112的进位比特可以为cout1(用于操作a_data+b_data)。对于其他操作来说,cout也可能为cin(进位通过)或级联多路复用器322-0的输出。图3所示cle112可经复制和链接在一起来计算具有任意数量比特的a_data和b_data的总和。

在图3所示的示例中,求和和进位逻辑并入到cle112的lut302中。进位初始化可由级联多路复用器322来执行。级联多路复用器322加速通用查找表至查找表直接连接。求和和进位输出的输出都由lut302直接提供。这使得由这些信号驱动的输出多路复用器(例如,在互连元件111内)的大小得到减小,因为这些输出多路复用器否则将需要各自的输出用于求和、进位和lut302的输出。由于lut302中的每个都包括与其耦接的级联多路复用器322,所以可在每个lut处开启/启动进位链,这使得能够实现更有效的多进位链堆砌。此外,求和输出并不是专用的,且计算总和的逻辑门304可为异或门之外的一些其他函数。

图4是根据另一个示例,示出可配置逻辑元件112的方框图。与上文描述的元件相同或类似的元件使用相同附图标记来标注。在本示例中,进位逻辑310-0中多路复用器318的输出(cout0)耦接至进位链多路复用器314的输入。此外,进位逻辑310-1从lut302-1中省去。替代地,lut302-1的输入a4耦接至进位链多路复用器314的输入。可配置逻辑元件112的剩余部分则如上所述参考图3实现。

在图4所示的可配置逻辑元件112中,进位链多路复用器314的输入扩展以直接从lut302-0接收进位输出(cout0)。按此方式,来自lut302-0的进位输出(cout0)不必为了到达进位链多路复用器314而传送通过至lut302-1。此外,由于lut302-0的进位输出(cout0)直接连接至多路复用器314,所以进位逻辑310-1可从中移除。

在图3和图4所示的示例中,示出了两个进位比特(cout0和cout1)。一般来说,图3和图4所示的电路可扩展以产生n个进位比特,其中n为正整数。在这些示例中,进位链多路复用器314可包括增加的宽度以容纳由其他lut产生的附加进位比特。此外,在上述示例中,参考附加操作说明了进位逻辑结构。一般来说,可使用本文所述的进位逻辑结构来执行所有或一部分其他类型算法操作。

图5是根据一个示例,示出一种配置可编程集成电路(ic)的方法500的流程图。方法500在方框502处开始,其中,配置可配置逻辑元件中的第一查找表以计算第一总和,第一查找表包括第一输入和第一输出、以及耦接在第一输入与第一输出之间的第一求和逻辑和第一进位逻辑。在方框504处,配置可配置逻辑元件中的第二查找表以计算第二总和,第二查找表包括第二输入和第二输出、以及耦接在第二输入与第二输出之间的第二求和逻辑和第二进位逻辑。在方框506处,配置级联多路复用器以将第一查找表中的第一进位逻辑的输出耦接至第二查找表中的第二求和逻辑的输入。可重复方法500用于一个或多个附加查找表以计算具有任意数量比特的数据字的总和。

一些其他示例一般涉及电子电路,且更具体来讲,涉及一种查找表(lut)级联电路。

再次参考图1b,在一个示例中,可编程结构150还可包括具有查找表(lut)154的cle112。lut154可包括级联输入,如本文所述。

现在转到参考图6,其示出fpga100的可编程结构150的平面布置图一部分的另一个方框图。图6示出了可编程结构150中可编程单元块的两个柱602和606。柱602和606中的可编程单元块包括cle612。在柱602和606中的每个中,仅示出一个cle612,但柱602和606一般包括多个cle。每个cle612都耦接至互连元件611。

每个cle612都包括四个单元片sm0-sm1和sl0-sl1。单元片sm0-sm1属于一种类型(类型“m”),单元片sl0-sl1属于另一种类型(类型“l”)。m类型的单元片sm0和sm1包括查找表(lut)154a和支持逻辑610。lut154a可被配置为函数发生器以执行具有多个输入和多个输出的组合函数。lut154a还可被配置为lut-ram,其配置成存储多个比特。支持逻辑610可包括支持lut154a的触发器、多路复用器、进位链逻辑等。l类型的单元片sl0和sl1包括lut154b和支持逻辑610。lut154b可被配置为函数发生器,但不是lut-ram。图6所示的架构仅为一个示例。在其他示例中,cle612中的所有lut都可包括lut-ram(每个单元片都属于类型“m”),或cle612中的所有lut都可包括无法配置为ram的lut(每个单元片都属于类型“l”)。

两种类型的lut154a和154b都可具有级联连接620。级联连接620可实现查找表到查找表连接而不使用可编程互连(例如,int611和mux614)。图2中级联连接620大体上示为单元片间连接(例如,两个不同单元片中查找表之间的查找表到查找表连接)。级联连接620还可为cle间连接(例如,两个不同cle612中的lut之间的连接)。级联连接620还可为单元片内连接(例如,相同单元片中查找表之间的查找表到查找表连接)。

在示例中,柱602中的l类型单元片sl0和sl1与柱606中的m类型单元片sm0和sm1靠近,其之间具有两个互连元件611。柱602中的单元片sl0-sl1耦接至互连元件611中的一个,且柱606中的单元片sm0-sm1耦接至互连元件611中的另一个。互连元件611可互相耦接。每个互连元件611都包括多路复用器614。多路复用器214中不同的多路复用器214可具有不同的输入,比如,来自柱602中的cle612的输入、来自柱606中的cle612的输入、来自另一个互连元件611中的多路复用器614的输入、或来自互连的输入。相似地,多路复用器614中不同的多路复用器可具有不同的输出,比如,到柱602中的cle612的输出、到柱606中的cle612的输出、到另一个互连元件611的输出、或到互连的输出。

图7是根据一个示例,示出查找表154的方框图。lut154包括lut逻辑702、多路复用器704、多路复用器706、多路复用器708、多路复用器710和多路复用器712。lut154包括六个标注为a1到a6的输入。lut154还包括标注为casc_in的级联输入。级联输入可为单个输入或可为信号总线。一般来说,级联输入包括n个比特或信号,其中n为正整数。lut154包括标注为o5_1、o5_2及o6的输出。

lut逻辑702包括四个4输入lut702a、702b、702c和702d。在一个示例中,lut逻辑702可包括至少四个lut702。4输入lut在本文中还称为“4lut”。每个4lut702a-702d都耦接至公共输入端722。输入端722向4lut702a-702d中的每个提供输入a1、a2、a3和a4。4lut702a的输出耦接至多路复用器706的输入,4lut702b的输出耦接至多路复用器706的另一个输入。4lut702a和702b一起包括lut154的第一半部分。4lut702c的输出耦接至多路复用器710的输入,4lut702d的输出耦接至多路复用器710的另一个输入。4lut702c和702d一起包括lut154的第二半部分。多路复用器706的输出提供输出o5_1(lut154第一半部分的输出),而多路复用器710的输出提供输出o5_2(lut154第二半部分的输出)。

多路复用器706的输出还耦接至多路复用器708的输入,多路复用器710的输出还耦接至多路复用器708的另一个输入。多路复用器708的输出提供lut154的输出o6。输出o5_1、o5_2和o6一起由lut154的输出端724提供。输出端724中的一个或多个可耦接至fpga中一个或多个附加lut的casc_in。多路复用器708在本文中还称作“输出多路复用器”。多路复用器704的输出耦接至多路复用器706的控制输入。多路复用器704的一个输入耦接至输入端720,所述输入端720提供lut154的输入a5。多路复用器704的另一个输入耦接至输入端724,所述输入端724提供lut154的输入a6。多路复用器704的一个或多个附加输入端耦接至提供casc_in的输入718。多路复用器704的控制输入耦接至控制端714。控制端714可从fpga中的另一个电路接收信号,比如从存储器(例如,bram、lutram、配置存储器等)。

多路复用器712的输出耦接至多路复用器710的控制输入。多路复用器712的一个输入耦接至输入端720,所述输入端720提供lut154的输入a5。多路复用器712的另一个输入耦接至输入端724,所述输入端724提供lut154的输入a6。多路复用器712的一个或多个附加输入端耦接至提供casc_in的输入718。多路复用器712的控制输入耦接至控制端716。控制端716可从fpga中的另一个电路接收信号,比如从存储器(例如,bram、lutram、配置存储器等)。多路复用器704和712在本文中还称作“级联多路复用器”。

操作中,4lut702a-702d中的每个都可基于输入a1-a4来实施任意的4-输入函数。多路复用器706从4lut702a或4lut702b中的一个选择输出作为用于lut154第一半部分的输出o5_1。多路复用器710从4lut702c或4lut702d中的一个选择输出作为用于lut154第二半部分的输出o5_2。按此方式,lut154可实施两个5-输入lut,5-输入lut可用来实施两个5-输入函数。多路复用器708在多路复用器706和710的输出中进行选择以提供lut154的输出o6。因此,lut154可实施一个6-输入lut,6-输入lut可用来实施6-输入函数。

在一种配置中,多路复用器704和/或712可选择输入a5来分别控制多路复用器706和/或710。在另一个配置中,多路复用器704和/或712可选择输入a6来分别控制多路复用器706和/或710。在又一个配置中,多路复用器704和/或712可选择casc_in输入中的一个来分别控制多路复用器706和/或710。输入718可耦接至fpga中一个或多个其他lut的一个或多个输出端。按此方式,lut154可通过casc_in直接耦接至fpga中的一个或多个其他lut。因此,lut154可链接在一起以合成多级函数,下面将说明关于此的一些示例。

将casc_in输入与a5输入复用具有以下优点:不会增加最快lut输入的延迟,并使不同的信号能够馈送至lut的上半部分和下半部分。多路复用器704和712使得可通过将一个lut的输出连接至另一个lut的casc_in来创建快速lut到lut连接。在一些示例中,casc_in输入可包括多个信号。在这样的示例中,lut154的上半部分可使用不同于lut154下半部分的casc_in信号,使得宽多路复用器树可实施。

图7所示的lut154可缩放来提供不同数量的lut和输入。例如,lut逻辑702可包括不止四个lut,且lut逻辑702中的lut可包括不止四个输入。多路复用器706和710是在lut逻辑702中lut的输出中进行选择的复用逻辑的一部分。在一些示例中,该复用逻辑可包括不止两个多路复用器,其中每个都耦接至级联多路复用器。因此,虽然示出了两个级联多路复用器704和712,但lut154可包括多个级联多路复用器。

图8是示出包括从lut154-1到154-4的链的示例性电路800的方框图。lut154-1的casc_in输入耦接至lut154-2的输出。lut154-2的casc_in输入耦接至lut154-3的输出。lut154-3的casc_in输入耦接至lut154-4的输出。lut154-1到154-3中的每个lut中的多路复用器604和/或多路复用器612在casc_in输入处选择lut154-2到154-4的各自的输出。在图3所示的示例中,lut154-1到154-3中的每个都包括除casc_in外可使用的五个其他输入a1-a4和a6。lut154-4包括可使用的六个输入a1-a6。因此,电路400可实施21-输入函数,其输出由lut154-1提供。在其他示例中,lut154可具有不同数量的输入端,但一般来说,级联输入可用于级联lut并可实施宽组合函数。

图9是示出包括154-5到154-9的多个lut的示例性电路900的方框图。假设如图7所示进行实施,则电路900实施16:1多路复用器。16:1多路复用器的输入包括lut154-5的输入a1到a4、lut154-6的输入a1到a4、lut154-7的输入a1到a3、lut154-8的输入a1到a3、以及lut154-9的输入a1和a2。16:1多路复用器的输出由lut154-9的输出o6提供。16:1多路复用器的控制输入包括lut154-5的输入a5-a6、lut154-6的输入a5-a6、lut154-7的输入a4和a6、lut154-8的输入a4和a6、lut154-9的输入a4和a6。lut154-5的输出o6耦接至lut154-7的casc_in输入。lut154-6的输出o6耦接至lut154-8的casc_in输入。lut154-7和154-8的输出o6耦接至lut154-9的casc_in输入。本示例假设lut154-9的casc_in输入是包括多个信号的总线。

图8和图9所示的电路800和900仅仅是该类型电路的两个示例,其可使用具有如本文所述的级联输入的lut来形成。一般来说,例如,如图7中的示例所示,每个lut都可包括具有一个或多个比特或信号的casc_in输入。因此,每个lut都可耦接至一个或多个附加lut。附加lut可位于相同单元片上、位于相邻单元片中和/或位于相邻cle中。一组级联lut可用来形成更宽型号的可用单个lut形成的组合函数、多路复用器等。

图10是根据一个示例,示出一种在可编程集成电路中操作查找表的方法1000的流程图。方法1000在步骤1002处开始,其中一组公共输入信号耦接至lut逻辑中的多个lut。例如,如图7所示,输入a1到a4耦接至lut702a到702b。

在步骤604处,级联输入耦接至多个级联多路复用器中的每个,其中该级联输入耦接至可编程集成电路中的至少一个其他lut。例如,如图3所示,输入casc_in耦接至lut154中的多路复用器304和312。

在步骤1006处,级联多路复用器中的至少一个受到控制以选择级联输入的信号。例如,多路复用器704和712中的任一个或二者可受到控制以选择casc_in的信号。在一个示例中,多路复用器304和312可使用可编程集成电路中的存储器来控制,比如配置存储器。

在步骤1008处,第一和第二级联多路复用器受到控制以选择级联输入的第一和第二信号。第一信号可与第二信号不同。例如,如图7所示,casc_in输入可为具有多个信号的总线,多路复用器704可选择该casc_in信号中的一个,而多路复用器312选择该casc_in信号中的另一个。

在步骤1010处,级联多路复用器的输出耦接至多路复用器逻辑以在lut逻辑中的多个lut的输出中进行选择。例如,如图7所示,多路复用器704和712的输出耦接至多路复用器706和710以在lut702a到702d的输出中进行选择。

下面是其他示例。

在一个示例中,可提供一种用于可编程集成电路(ic)的可配置逻辑元件。该可配置逻辑元件可包括:第一查找表(lut)、第二查找表以及第一和第二级联多路复用器;第一查找表包括第一输入和第一输出、以及耦接在第一输入与第一输出之间的第一求和逻辑和第一进位逻辑;第二查找表包括第二输入和第二输出、以及耦接在第二输入与第二输出之间的第二求和逻辑;第一和第二级联多路复用器分别耦接至第一和第二查找表,第二级联多路复用器的输入耦接至第一查找表中的第一进位逻辑的输出。

该可配置逻辑元件可进一步包括进位链多路复用器,其耦接至第一查找表和第二查找表中的至少一个。

在一些该可配置逻辑元件中,第二查找表可包括第二进位逻辑,且进位链多路复用器的输入可耦接至第二查找表中第二进位逻辑的输出。

该可配置逻辑元件可进一步包括耦接至第一级联多路复用器的进位输入。

在一些该可配置逻辑元件中,进位输入可进一步耦接至进位链多路复用器的输入。

在一些该可配置逻辑元件中,进位链多路复用器的输入可耦接至第一级联多路复用器的输出。

在一些该可配置逻辑元件中,第一和第二求和逻辑中的每个包括异或门,并且,第一进位逻辑包括多路复用器。

在一些该可配置逻辑元件中,第一进位逻辑的多路复用器的控制端可耦接至第一查找表中的第一逻辑门。

一些该可配置逻辑元件可进一步包括:进位链多路复用器,其耦接至第一查找表或第二查找表中的至少一个,进位链多路复用器的控制接口耦接至第一逻辑门或第二逻辑门中的至少一个。

在一些该可配置逻辑元件中,第一和第二级联多路复用器的控制端可耦接至可编程集成电路中的可配置存储单元。

在另一个示例中,可提供一种可编程集成电路(ic)。该可编程集成电路可包括:配置存储器;以及耦接至配置存储器的多个可配置逻辑元件,该多个可配置逻辑元件中的每一个包括第一查找表(lut)、第二查找表以及第一和第二级联多路复用器;第一查找表包括第一输入和第一输出、以及耦接在第一输入与第一输出之间的第一求和逻辑和第一进位逻辑;第二查找表包括第二输入和第二输出、以及耦接在第二输入与第二输出之间的第二求和逻辑;第一和第二级联多路复用器分别耦接至第一和第二查找表,第二级联多路复用器的输入耦接至第一查找表中的第一进位逻辑的输出。

该可编程集成电路可进一步包括进位链多路复用器,其耦接至第一查找表或第二查找表中的至少一个。

在一些该可编程集成电路中,第二查找表可包括第二进位链逻辑,并且,进位链多路复用器的输入可耦接至第二查找表中第二进位逻辑的输出。

一些该可编程集成电路可进一步包括耦接至第一级联多路复用器的进位输入。

在一些该可编程集成电路中,进位输入可进一步耦接至进位链多路复用器的输入。

在一些该可编程集成电路中,进位链多路复用器的输入可耦接至第一级联多路复用器的输出。

在一些该可编程集成电路中,第一和第二求和逻辑中的每个可包括异或门,且第一进位逻辑可包括多路复用器。

在一些该可编程集成电路中,第一进位逻辑的多路复用器的控制端可耦接至第一查找表中的第一逻辑门。

在一些该可编程集成电路中,第一和第二级联多路复用器的控制端可耦接至可编程集成电路中的可配置存储单元。

在另一个示例中,可提供一种配置可编程集成电路(ic)的方法。该方法可包括:配置可配置逻辑元件中的第一查找表(lut)以计算第一总和,第一查找表包括第一输入和第一输出、以及耦接在第一输入与第一输出之间的第一求和逻辑和第一进位逻辑;配置可配置逻辑元件中的第二查找表以计算第二总和,第二查找表包括第二输入和第二输出、以及耦接在第二输入与第二输出之间的第二求和逻辑;以及配置级联多路复用器以将第一查找表中的第一进位逻辑的输出耦接至第二查找表中的第二求和逻辑的输入。

在另一个示例中,一种用于可编程集成电路(ic)的查找表包括多个输入端和耦接至可编程集成电路中的至少一个其他查找表的级联输入。该查找表进一步包括查找表逻辑,查找表逻辑具有各自耦接至一组公共输入端的多个查找表。查找表进一步包括多个多路复用器和输出多路复用器,该多个多路复用器具有耦接至该多个查找表的输出的输入,输出多路复用器具有耦接至该多个多路复用器的输出的输入。查找表进一步包括多个级联多路复用器,该多个级联多路复用器各自具有耦接至该多个多路复用器中的相应一个的控制输入的输出,该多个级联多路复用器中的每个包括多个输入,该多个输入中的至少一个耦接至级联输入。

在另一个示例中,可提供一种用于可编程集成电路(ic)的查找表(lut)。该查找表可包括:多个输入端;级联输入,其耦接至可编程集成电路中的至少一个其他查找表;查找表逻辑,其具有各自耦接至一组公共输入端的多个查找表;多个多路复用器,其具有耦接至该多个查找表的输出的输入;输出多路复用器,其具有耦接至该多个多路复用器的输出的输入;以及多个级联多路复用器,其中每个具有耦接至该多个多路复用器中相应一个的控制输入的输出,该多个级联多路复用器中的每个包括多个输入,该多个输入中的至少一个耦接至级联输入。

在一些该查找表中,该多个查找表包括至少四个查找表;该多个多路复用器包括耦接至该至少四个查找表的至少两个多路复用器;且该多个级联多路复用器包括经耦接以控制该至少两个多路复用器的至少两个级联多路复用器。

在一些该查找表中,该至少四个查找表中的每个可包括4-输入查找表;该多个输入端包括耦接至4-输入查找表中的每个的四个输入。

在一些该查找表中,该多个级联多路复用器中的每个的多个输入中的至少一个可耦接至该多个输入端中的至少一个。

在一些该查找表中,级联输入可包括具有多个信号的总线。

在一些该查找表中,该多个级联多路复用器的控制输入可耦接至可编程集成电路中的存储器。

在一些该查找表中,存储器可包括可编程集成电路的配置存储器。

在一些该查找表中,输出多路复用器的控制输入可耦接至该多个输入端的一个端。

一些该查找表可进一步包括多个输出端,该多个输出端耦接至该多个多路复用器和输出多路复用器的输出。

在另一个示例中,可提供一种可编程集成电路。该可编程集成电路可包括:配置存储器;以及至少一个可配置逻辑元件(cle),其耦接至配置存储器并具有多个查找表(lut),该多个查找表中的每个包括输出端和级联输入;其中,该多个查找表中的第一查找表的级联输入耦接至该多个查找表中的第二查找表的输出端。

在一些该可编程集成电路中,该多个查找表中的每个进一步包括:多个输入端;查找表逻辑,其具有各自耦接至一组公共输入端的多个查找表;多个多路复用器,其具有耦接至该多个查找表的输出的输入;输出多路复用器,其具有耦接至该多个多路复用器的输出的输入和耦接至输出端的输出;以及多个级联多路复用器,其中每个具有耦接至该多个多路复用器中相应一个的控制输入的输出,该多个级联多路复用器中的每个包括多个输入,该多个输入中的至少一个耦接至级联输入。

在一些该可编程集成电路中,对于该多个查找表中的每个来说,该多个级联多路复用器中的每个的多个输入中的至少一个可耦接至该多个输入端中的至少一个。

在一些该可编程集成电路中,对于该多个查找表中的每个来说,级联输入可包括具有多个信号的总线。

在一些该可编程集成电路中,对于该多个查找表中的每个来说,该多个级联多路复用器的控制输入可耦接至可编程集成电路中的存储器。

在一些该可编程集成电路中,存储器可包括配置存储器。

在一些该可编程集成电路中,对于该多个查找表中的每个来说,输出多路复用器的控制输入可耦接至该多个输入端的一个端。

在一些该可编程集成电路中,第一查找表和第二查找表经配置以实施组合函数。

在一些该可编程集成电路中,第一查找表和第二查找表可经配置以实施多路复用器。

在另一个示例中,可提供一种操作可编程集成电路中的查找表的方法。该操作查找表的方法可包括:将一组公共输入信号耦接至查找表逻辑中的多个查找表;将级联输入耦接至多个级联多路复用器中的每个,级联输入耦接至可编程集成电路中的至少一个其他查找表;控制该多个级联多路复用器中的至少一个以选择级联输入的信号;以及将级联多路复用器的输出耦接至可用于在查找表逻辑中的多个查找表的输出之中进行选择的多路复用器逻辑。

在一些该方法中,控制操作可包括:控制该多个多路复用器的第一级联多路复用器以选择级联输入的第一信号;以及控制该多个多路复用器的第二级联多路复用器以选择级联输入中不同于第一信号的第二信号。

虽然前述内容针对具体示例,但是在不脱离所述具体示例的基本范围的情况下可以设计其他和进一步的示例,并且其范围由所附的权利要求确定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1