用查找表实现多输入逻辑项之间的运算的装置及方法

文档序号:6356413阅读:266来源:国知局
专利名称:用查找表实现多输入逻辑项之间的运算的装置及方法
技术领域
本发明涉及可编程逻辑阵列(FPGA)领域,更具体地说,涉及一种用查找表(Look Up Table, LUT)实现多输入逻辑项之间的运算的装置及方法。
背景技术
FPGA是由实现用户逻辑的LUT (Lookup Table,查找表)、触发器和锁存器,以及实 现连接关系的MUX和互联线构成。用户的所有非触发器或锁存器的功能单元均在LUT中实 现。传统的N输入LUT是由2N个配置单元和输入对应的译码单元组成。N输入LUT的工作 原理是在FPGA配置完成后的配置单元中存放N元逻辑运算的真值表,然后根据N输入译码 逻辑选通配置单元中的一个输出。这种形式的LUT可以实现任意的N元逻辑,但是实际情 况中,输入所有可能的组合数目可能小于2N,这时候依然采用2N个配置单元就会造成逻辑 的冗余,使得LUT利用率较低;同时,在传统的配置中,一个LUT只能实现N个输入的逻辑运 算,如果要实现N+1个输入时,就算是要实现的逻辑比较特殊(例如,有较多的禁止项)也需 要至少两个LUT ;这在一些情况下同样带来LUT利用率较低的问题。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述LUT的利用率较低的缺陷, 提供一种LUT利用率较高的用查找表实现多输入逻辑项之间的运算的装置及方法。本发明解决其技术问题所采用的技术方案是构造一种用查找表实现多输入逻辑 项之间的运算的装置,包括
配置单元用于存储所述查找表输出内容;
逻辑输入端用于输入不同的逻辑信号,包括查找表输入端和被设定为逻辑输入端的 端子;
译码单元用于依据不同的逻辑输入端输入的逻辑信号的逻辑电平查找其进行设定的 逻辑运算后的结果所在的配置单元,并将所述查找到的配置单元的内容输出并进行设定运 算后输出;
触发器用于接收所述译码单元输出的数据,并在时钟作用下将其输出。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述译码单元 包括多个分为第一级译码器和第二级译码器并相互连接的译码器,所述第一级译码器输入 分别连接不同的逻辑输入端,其输出连接到所述第二级译码器的输入端。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述第一级译 码器包括M个译码器,所述第一级译码器分别为Ki-2Ki译码器,Ki为所述译码器连接的输 入端个数;所述第二级译码器为M-2M译码器;其中,2M+ Σ 2Ki≤2n,N是所述查找表输入端 数。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述第一级译 码器包括一个3-8译码器和一个2-4译码器,所述第二级译码器包括一个2-4译码器;所述译码器分别与所述配置单元中与其输出数量相等的不同配置单元连接。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述逻辑输入 端包括查找表输入端和所述查找表外围电路的通用输入输出端或时钟端。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述译码单元 还包括一实现通常查找表功能的、其输入分别与所述查找表输入端连接的第一译码器,所 述第一译码器与所述第一级译码器复用所述查找表输入端,所述第一译码器还分别与所述 配置单元连接;所述装置还包括其输入分别是所述第一译码器输出和所述第二级译码器输 出、其输出连接在所述触发器输入端的多路选择器。在本发明所述的用查找表实现多输入逻辑项之间的运算的装置中,所述第一译码 器为4-16译码器。本发明还涉及一种用查找表实现多输入逻辑项之间的运算的方法,包括如下步 骤
A)按照要求的逻辑运算设置逻辑输入端;
B)将所述逻辑输入端分组;
C)按照所述分组的输入端数为其设置相应的第一级译码器,按所述第一级译码器 个数及其输出之间的逻辑关系设置第二及译码器,设置其输入端为查找表输入的第一译码 器,并设置用于选择所述第一译码器或第二级译码器输出作为其输出的多路选择器。在本发明所述的用查找表实现多输入逻辑项之间的运算的方法中,所述步骤B)中 按照公式2Μ+ Σ 2Ki ≤ 2N , N是所述查找表输入端数,M是分组的组数,Ki是第i个分组中 的输入端个数。在本发明所述的用查找表实现多输入逻辑项之间的运算的方法中,所述步骤A)中 进一步包括
Al)设置查找表输入为逻辑输入端;
A2)设置所述查找表外围电路的通用输入输出端或时钟端为逻辑输入端。实施本发明的用查找表实现多输入逻辑项之间的运算的装置及方法,具有以下有 益效果由于将通常用于其它功能的闲置端子设置为逻辑输入端,且将多个输入端分别连 接到不同的译码器输入端,并将这些译码器输出通过另一译码器进行逻辑运算后查找其相 应的结果输出,所以在一些特定的情况下可以在一个LUT上实现多于其设定的输入数(通 常是4个输入端)的逻辑运算,提高了 LUT的使用效率。


图1是现有的4输入LUT的结构示意图2是利用图1中的LUT实现多于其设定输入端数时的一种工艺映射结果示意图; 图3是利用图1中的LUT实现多于其设定输入端数时的另一种工艺映射结果示意图; 图4是本发明用查找表实现多输入逻辑项之间的运算的装置及方法实施例中装置的 结构示意图5是图4中装置的通过综合后的网表片段; 图6是图4中装置的工艺映射结果示意图; 图7是所述实施例中方法的流程图。
具体实施例方式下面将结合附图对本发明实施例作进一步说明。如图1所示,在现有技术中,一个LUT的结构包括4个逻辑输入端A、B、C和D (参 见图1),这4个逻辑输入端分别连接在图1中用虚线框表示的译码逻辑(电路)上,通过译 码逻辑电路的运算,得到当前输入端所对应的运算结果所存储的配置单元(图1中标记为 CAME)部分的位置,读出该位置上的内容并输出。这些配置单元中存储的是上述4个输入在 不同的输入值时对应的逻辑运算结果,这些结果是事先(就是在FPGA上电是时的配置期间 内)存储到上述配置单元中的。图2、3示出了在现有技术中,用上述4个输入的LUT实现5(3+2)个输入端逻辑 运算时的大致结构。又图2、3中可以看出,一般而言,在这种情况下,采取的是利用两个LUT 级联来实现的。此时,LUT的数量多,利用率低。图4是本发明第一实施例中用查找表实现多输入逻辑项之间的运算的装置的结 构示意图,在图4中,该装置包括配置单元即图4中标记为CAME的部分,配置单元的个数与 现有的LUT中配置单元的个数相同,均为16个,这些配置单元同样用于存储所述查找表输 出内容(不同的输入值时对应的逻辑运算结果);也是事先存储到上述配置单元的;逻辑输 入端,在本实施例中,逻辑输入端为5个,多于通常情况下的4个,其中4个使用的是通常的 LUT逻辑输入端,另外一个采用该LUT中没有使用的、其外围电路的通用输入输出端或时钟 端,这些逻辑输入端用于输入不同的逻辑信号;译码单元,即图4中FUNCTION A、FUNCTION B、FUNCTION C和FUNCTION D部分,该译码单元用于依据不同的逻辑输入端输入的逻辑信 号的逻辑电平查找其进行设定的逻辑运算后的结果所在的配置单元,并将所述查找到的配 置单元的内容输出并进行设定运算后输出;在本实施例中,上述逻辑输入端都连接在上述 译码单元,但是并不是每个逻辑输入端都连接到上述译码单元的每个部分,请参见图4 ;触 发器(图中未示出)用于接收所述译码单元输出的数据,并在时钟作用下将其输出。在本实施例中,对比图2、3与图4即可看出,一个较为重要的区别是译码单元的不 同,由于配置单元个数相同而译码单元不同,所以译码单元与配置单元的连接就是不同的。 在本实施例中,译码单元包括译码器,而该译码器包括多个分为第一级译码器(FUNCTION B、FUNCTION C)和第二级译码器(FUNCTION D),上述多个第一级译码器与第二级译码器相 互连接,第一级译码器输入分别连接不同的逻辑输入端,其输出连接到第二级译码器的输 入端。在本实施例中,上述第一级译码器中FUNCTION B的输入连接了 3个逻辑输入端,这 3个逻辑输入端可以是LUT固有的输入端,也可以包括由LUT的未使用的其他输入端设置 的逻辑输入端;而FUNCTION C的输入连接2个逻辑输入端,同样,这两个逻辑输入端可以 是LUT固有的输入端,也可以包括由LUT的未使用的其他输入端设置的逻辑输入端;第一 级译码器(FUNCTION B、FUNCTION C)的输出端连接到上述第二级译码器(FUNCTION D)的 输入端,作为第二级译码器的输入。当然,在其他实施例中,上述第一级译码器和第二级译 码器也可以不是上述输入数字,基本上而言,上述所述第一级译码器可以包括M个译码器, 所述第一级译码器分别为Ki-2Ki译码器,Ki为所述译码器连接的输入端个数;而第二级译 码器为一个,其具有M个输入端,所述第二级译码器为M-2m译码器;其中,2μ+ Σ 2Ki ^ 2n, N是所述查找表输入端数(一般而言,N是4)。在本实施例中,上述第一级译码器包括一个3-8译码器(FUNCTION B)和一个2_4译码器(FUNCTION C),第二级译码器(FUNCTION D)是 一个2-4译码器;这些译码器分别与所述配置单元中与其输出数量相等的不同配置单元连 接。例如,在本实施例中,上述FUNCTION B分别与8个配置单元连接,FUNCTION C分别与4 个配置单元相连接,而FUNCTION D同样与4个配置单元相连接。在本实施例中,上述译码单元还包括一实现通常查找表功能的、其输入分别与所 述查找表输入端连接的第一译码器(FUNCTION A),第一译码器与上述第一级译码器复用所 述查找表输入端,所述第一译码器还分别与所述配置单元连接,由于在本实施例中,上述查 找表输入端为4个,所以,与上述第一译码器连接的配置单元为16个;所述装置还包括其输 入分别是所述第一译码器输出和所述第二级译码器输出、其输出连接在所述触发器输入端 的多路选择器(图4中标记为MUX);该多路选择器用于在上述第一译码器输出和上述第二 级译码器的输出之间做出选择,当上述第一级译码器工作而上述第一级译码器和第二级译 码器不工作时,选择上述第一译码器的输出作为其输出;当上述第一译码器不工作而上述 第一极译码器和第二级译码器工作时,选择上述第二级译码器的输出作为其输出。在本实 施例中,上述第一译码器为4-16译码器。总体而言,在本实施例中用查找表实现多输入逻辑项之间的运算的装置包含 16个配置单元用于存储设定逻辑运算的真值表,FunctionA, FunctionB, FunctionC, FunctionD四个译码器以及一个模式选择的多路选择器MUX。其中FunctionA使用16个配 置单元,FunctionB,FunctionC,FunctionD分别使用8,4,4个配置单元,且与FunctionA复 用上述16个配置单元。FunctionA是4_16译码器,其输入是常规4输入模式(即使用通常 的LUT输入的4个输入端)时的4输入;FunctionB是3_8译码器,其输入是3+2LUT模式 (即上述第一级译码器和第二级译码器工作)时的3输入;FimctionC是2_4译码器,其输入 是3+2LUT模式时的2输入;FunctionD是2_4译码器,其输入是FunctionB和FunctionC 的两个输入。MUX的输入是FunctionA和FunctionD的输出,其输出通过触发器(图中未示 出)作为LUT的输出。图5是本实施例中设计经过综合但是未经过工艺映射的片段,其中F3代表任意 三输入逻辑,F2,G2代表任意二输入逻辑。则F2 (F3 (a, b, c),G2 (d, e))代表部分形如 (a"b&rc) Μ Cd| I e)的五输入逻辑。在需要实现上述逻辑表达式或类似上述逻辑表达式 所表示的运算时,本是实施例中的装置及方法可以取得较好的效果。图2、3和图6表示在通常情况下和在本实施例中网表片段工艺映射完成之后 的结果,可以看出,在本实施例中,同样实现5个输入的逻辑运算,其节省了 1个LUT。图7是本实施例中用查找表实现多输入逻辑项之间的运算的方法的流程图,其包 括如下步骤
步骤Sll设置逻辑输入端在本步骤中,设置作为逻辑输入端的端子。首先,查找表本 身是包括了设定数量的输入端的,例如,4输入、5输入或6输入,表示该查找表本身设置有 4、5或6个输入端;在本步骤中,将这些查找表输入端设置为逻辑输入端;但是,由于我们实 现的是较多的输入,所以,仅仅是查找表输端是不够的,在本实施例中,还必须将上述查找 表外围电路中不用的通用输入输出端或时钟端子设置为逻辑输入端,因此,在本步骤中还 要设置上述通用输入输出端子或时钟端子为逻辑输入端。步骤S12将上述逻辑输入端分组在本步骤中,按照逻辑运算关系和上述逻辑输入端的设置,将上述逻辑输入端分组,基本上而言,上述分组应该满足公式2Μ+ Σ 2Ki ( t ,N是所述查找表输入端数,M是分组的组数,Ki是第i个分组中的输入端个数。步骤S13设置相应的译码器和多路选择器在本步骤中,按照上述分组后每组的 输入个数,设置相应的译码器和多路选择器,这些译码器与分组的输入端连接,同时还与准 备存储这些输入的运算结果的配置单元连接,同时,这些译码器还按照逻辑关系相互连接 (例如,上述的第一级译码器和第二级译码器之间的连接),译码器的最后输出(不是输出到 另一级译码器)作为输入连接到上述多路选择器,多路选择器依据装置的状态选择其输入 中的一个作为输出。在上述实施例中,给出了一个对4输入LUT的实现例子,在其他实施例中,本发明 所描述的方法及其相应的装置也可以用于五输入或六输入的LUT。通常,五输入LUT的LUT 有
F3 (G3 (a, b,c),H 3 (d,e,f ),I 3 (g,h,i ))采用了 3+3+3 的结构,有 9 个输 入,32个配置单元,4组的3-8译码器和二输入的MUX。F2 (F4 (a, b,c, d), F3 (e,f,g))采用了 4+3的结构,有7个输入,沘个配置 单元,4-16译码器,3-8译码器,2-4译码器各一个和二输入的MUX。而六输入的LUT有
F3 (F4 (a,b,c,d ),G4 (e,f,g,h),H4 ( i,j,k,1)):采用了 4+4+4 的结构,有 12 个输入,52个配置单元,3-8译码器一个,3组的4-16译码器和二输入的MUX。或者
F3 (F5 (a,b,c,d,e ),F4 ( f,g,h,i ),G 3 (j,k,l)):采用了 5+4+3 的结构,有 12 个输入,64个配置单元,5-32译码器,4-16译码器各一个,两组3_8译码器和二输入的MUX。由于此时增加的输入过多,可以删除其中的一组输入,变为
F2 (F5 (a,b,c,d,e ),F4 ( f,g,h,i ))采用了 5+4 的结构,有 9 个输入,52 个配 置单元,5-32译码器,4-16译码器,3-8译码器各一个和二输入的MUX。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
权利要求
1.一种用查找表实现多输入逻辑项之间的运算的装置,其特征在于,包括配置单元用于存储所述查找表输出内容;逻辑输入端用于输入不同的逻辑信号,包括查找表输入端和被设定为逻辑输入端的 端子;译码单元用于依据不同的逻辑输入端输入的逻辑信号的逻辑电平查找其进行设定的 逻辑运算后的结果所在的配置单元,并将所述查找到的配置单元的内容输出并进行设定运 算后输出;触发器用于接收所述译码单元输出的数据,并在时钟作用下将其输出。
2.根据权利要求1所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述译码单元包括多个分为第一级译码器和第二级译码器并相互连接的译码器,所述 第一级译码器输入分别连接不同的逻辑输入端,其输出连接到所述第二级译码器的输入端。
3.根据权利要求2所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述第一级译码器包括M个译码器,所述第一级译码器分别为Ki-2Ki译码器,Ki为所述 译码器连接的输入端个数;所述第二级译码器为M-2M译码器;其中,2μ+ Σ 2Ki ^ 2n,N是所 述查找表输入端数。
4.根据权利要求3所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述第一级译码器包括一个3-8译码器和一个2-4译码器,所述第二级译码器包括一个 2-4译码器;所述译码器分别与所述配置单元中与其输出数量相等的不同配置单元连接。
5.根据权利要求4所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述逻辑输入端包括查找表输入端和所述查找表外围电路的通用输入输出端或时钟 端。
6.根据权利要求5所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述译码单元还包括一实现通常查找表功能的、其输入分别与所述查找表输入端连接 的第一译码器,所述第一译码器与所述第一级译码器复用所述查找表输入端,所述第一译 码器还分别与所述配置单元连接;所述装置还包括其输入分别是所述第一译码器输出和所 述第二级译码器输出、其输出连接在所述触发器输入端的多路选择器。
7.根据权利要求6所述的用查找表实现多输入逻辑项之间的运算的装置,其特征在 于,所述第一译码器为4-16译码器。
8.一种用查找表实现多输入逻辑项之间的运算的方法,其特征在于,包括如下步骤A)按照要求的逻辑运算设置逻辑输入端;B)将所述逻辑输入端分组;C)按照所述分组的输入端数为其设置相应的第一级译码器,按所述第一级译码器 个数及其输出之间的逻辑关系设置第二及译码器,设置其输入端为查找表输入的第一译码 器,并设置用于选择所述第一译码器或第二级译码器输出作为其输出的多路选择器。
9.根据权利要求8所述的用查找表实现多输入逻辑项之间的运算的方法,其特征在 于,所述步骤B)中按照公式2μ+ Σ 2Ki ( 2n,N是所述查找表输入端数,M是分组的组数, Ki是第i个分组中的输入端个数。
10.根据权利要求9所述的用查找表实现多输入逻辑项之间的运算的方法,其特征在于,所述步骤Α)中进一步包括Al)设置查找表输入为逻辑输入端;A2)设置所述查找表外围电路的通用输入输出端或时钟端为逻辑输入端。
全文摘要
本发明涉及一种用查找表实现多输入逻辑项之间的运算的装置,包括配置单元用于存储所述查找表输出内容;逻辑输入端用于输入不同的逻辑信号,包括查找表输入端和被设定为逻辑输入端的端子;译码单元用于依据不同的逻辑输入端输入的逻辑信号的逻辑电平查找其进行设定的逻辑运算后的结果所在的配置单元,并将所述查找到的配置单元的内容输出并进行设定运算后输出;触发器用于接收所述译码单元输出的数据,并在时钟作用下将其输出。本发明还涉及一种用查找表实现多输入逻辑项之间的运算的方法。实施本发明的用查找表实现多输入逻辑项之间的运算的装置及方法,具有以下有益效果提高LUT的使用效率。
文档编号G06F9/305GK102147720SQ20111006638
公开日2011年8月10日 申请日期2011年3月18日 优先权日2011年3月18日
发明者傅启攀, 孙铁力 申请人:深圳市国微电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1