首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 中央处理器 / 算术逻辑单元 / 可扩展可编程逻辑单元及可编程逻辑块结构

可扩展可编程逻辑单元及可编程逻辑结构

阅读:742发布:2020-05-14

专利汇可以提供可扩展可编程逻辑单元及可编程逻辑结构专利检索,专利查询,专利分析的服务。并且一种可扩展可编程逻辑单元及可编程逻辑 块 结构。其中,可扩展可编程逻辑单元,包括:第二查找表,包含:第一查找表和 算术逻辑单元 (ALU),其中第一查找表的两个输出连接至该ALU的输入;以及第二寄存器组,包含多组第二寄存器,分别与第二查找表的各个输出进行连接;其中,ALU具有算术运算和任意两输入函数功能。可编程逻辑块结构包括可扩展可编程逻辑单元以及细粒度可编程逻辑单元,通过二者的组合和级联,实现所需要的函数操作。该可扩展可编程逻辑单元能够实现两输入函数,避免了采用多输入查找表实现两输入函数的资源浪费以及性能降低的 风 险;不需要再通过互联资源额外连接至第三个k输入查找表,解决了逻辑级数较多和资源的浪费等问题。,下面是可扩展可编程逻辑单元及可编程逻辑结构专利的具体信息内容。

1.一种可扩展可编程逻辑单元(301),其特征在于,包括:
第二查找表(101),包含:第一查找表(100)和算术逻辑单元(ALU),其中第一查找表的两个输出连接至该ALU的输入;以及
第二寄存器组(201),包含多组第二寄存器,分别与第二查找表的各个输出进行连接;
其中,ALU具有算术运算和任意两输入函数功能。
2.根据权利要求1所述的可扩展可编程逻辑单元(301),其特征在于,所述第一查找表(100)为k输入查找表,k为大于等于2的正整数,包括:两个k-1输入查找表和一个受第k的输入端控制的二选一多路选择器;
其中,二选一多路选择器的两个数据输入端分别接两个k-1查找表的输出,控制端接k输入查找表的第k个输入端;该k输入查找表具有两个输出,一个输出为二选一多路选择器的输出,另一个输出为其中一个k-1查找表的输出。
3.根据权利要求1所述的可扩展可编程逻辑单元(301),其特征在于,
所述第一查找表(100)的两个输出有两种路径传输,第一种路径为直接连接至该第二查找表(101)的外部,形成第二查找表(101)的第一输出(1o1)和第三输出(1o3),第二种路径是连接至ALU的输入端,经过ALU处理后输出至该第二查找表(101)的外部,形成第二查找表(101)的第二输出(1o2);
所述第二查找表(101)的第一输出(1o1)、第二输出(1o2)和第三输出(1o3)均有两种路径传输,第一种路径为直接连接至该可扩展可编程逻辑单元(301)的外部,第二种路径是分别连接至三组第二寄存器的数据输入端,经过对应的第二寄存器后输出至该可扩展可编程逻辑单元(301)的外部。
4.根据权利要求1所述的可扩展可编程逻辑单元(301),其特征在于,该可扩展可编程逻辑单元(301)的输出端还连接有N输入查找表,该N输入查找表的可输入个数N至少与可扩展可编程逻辑单元(301)的输出个数对应。
5.一种可编程逻辑结构,其特征在于,包括:权利要求1至4中任一项所述的可扩展可编程逻辑单元(301)以及细粒度可编程逻辑单元(400),其中,可扩展可编程逻辑单元与细粒度可编程逻辑单元进行组合和级联,实现所需要的函数操作。
6.根据权利要求5所述的可编程逻辑块结构,其特征在于,所述细粒度可编程逻辑单元包括:
m输入查找表(401)和第三寄存器(402),其中,m输入查找表的输出端连接至第三寄存器402进行寄存后再输出或者直接输出,m为正整数,m的值小于第一查找表的输入个数。
7.根据权利要求6所述的可编程逻辑块结构,其特征在于,该可编程逻辑块结构包括第一结构,该第一结构的形式方式如下:
第一数量个所述可扩展可编程逻辑单元(301)中第二查找表(101)的输出连接至一细粒度可编程逻辑单元(400)中第一m输入查找表(401)的输入端,形成该第一结构;
其中,第二查找表(101)的输出包括直接输出和经过第二寄存器的输出。
8.根据权利要求7所述的可编程逻辑块结构,其特征在于,该可编程逻辑块结构包括第二结构、第三结构、……、以及多级结构:
该第二结构的形式方式与第一结构的形成方式相同,该第二结构以第一结构作为基本单元,由第二数量个第一结构中的第一m输入查找表(401)的输出连接至一细粒度可编程逻辑单元(400)中第二m输入查找表(401)的输入端,形成该第二结构;
该第三结构以第二结构作为基本单元,由第三数量个第二结构中的第二m输入查找表(401)的输出连接至一细粒度可编程逻辑单元(400)中第三m输入查找表(401)的输入端,形成该第三结构;
多级结构以此类推。
9.根据权利要求6所述的可编程逻辑块结构,其特征在于,该可扩展可编程逻辑单元(301)的输出端连接有N输入查找表,该N输入查找表的可输入个数N至少与可扩展可编程逻辑单元(301)的输出个数对应;
该可编程逻辑块结构包括第一结构,该第一结构的形式方式如下:
第一数量个所述可扩展可编程逻辑单元(301)经过N输入查找表的输出连接至一细粒度可编程逻辑单元(400)中第一m输入查找表(401)的输入端,形成该第一结构。
10.根据权利要求9所述的可编程逻辑块结构,其特征在于,该可编程逻辑块结构包括第二结构、第三结构、……、以及多级结构:
该第二结构的形式方式与第一结构的形成方式相同,该第二结构以第一结构作为基本单元,由第二数量个第一结构中的第一m输入查找表(401)的输出连接至一细粒度可编程逻辑单元(400)中第二m输入查找表(401)的输入端,形成该第二结构;
该第三结构以第二结构作为基本单元,由第三数量个第二结构中的第二m输入查找表(401)的输出连接至一细粒度可编程逻辑单元(400)中第三m输入查找表(401)的输入端,形成该第三结构;
多级结构以此类推。

说明书全文

可扩展可编程逻辑单元及可编程逻辑结构

技术领域

[0001] 本公开属于数字集成电路中现场可编程阵列(FPGA)的可编程逻辑单元及可编程逻辑块设计技术领域,涉及一种可扩展可编程逻辑单元及可编程逻辑块结构。

背景技术

[0002] FPGA是一种通用的逻辑电路,与中央处理器(CPU),数字信号处理器(DSP)并称为三大通用信号处理器件。具有灵活性高、并行性高、开发险低的优点,已广泛的应用于工业控制、航空航天、通信、汽车电子数据中心人工智能等领域,并且占据着越来越多的市场份额。图1为现有技术中典型FPGA的结构组成示意图。如图1所示,作为一种可编程器件,FPGA由可编程逻辑模块(Reconfigurable Logic Module,RLM)、可编程互连资源(Reconfigurable Routing,RR)、可编程输入输出模块(Reconfiguable IO module)和嵌入式IP(块存储器、DSP等)等组成。其中可编程逻辑模块(RLM)是FPGA的核心,用户电路中的通用逻辑功能都要通过配置RLM来实现。而RLM是由可编程逻辑单元(Reconfigurable Logic Element,RLE),有的也称BLE,构成的。因此研究灵活高效的RLE结构对提升FPGA的功能和性能具有重要的意义。
[0003] FPGA中可编程逻辑单元的主要功能是为数字系统提供最基本的逻辑功能、算术功能、数据存储功能等。研究者们曾提出过多种RLE实现结构,包括基于传输管、与非门、多路选择器、查找表和与非锥等的结构。综合考虑面积、速度、功耗和实现功能等因素,目前FPGA中普遍采用的是基于查找表结构的可编程逻辑单元。
[0004] 在现代FPGA中,可编程逻辑块一般用来实现普通的逻辑功能和普通的算术功能。可编程逻辑块一般由若干个可编程逻辑单元组成,而可编程逻辑单元通常采用查找表+寄存器的方式。不妨定义:查找表的输入数为k,可编程逻辑块中可编程逻辑单元的个数为n。
则可编程逻辑单元可以实现任意k输入的功能函数,且可以进行组合输出或寄存输出。将n个这样的可编程逻辑单元放到一个可编程逻辑块中构成一个逻辑簇,目的是实现更复杂的逻辑功能,且实现更好的性能。
[0005] 随着数字系统功能的增强和扩展,FPGA实现的电路更加复杂,可编程逻辑单元的查找表输入个数也由早期的4,增大到现在的6。以Intel公司和Xilinx的可编程逻辑单元为例,Intel公司的Statix采用的变成逻辑单元为四输入查找表+可编程寄存器的方式,Stratix II、Stratix III、Stratix IV、Stratix V均采用自适应逻辑模块(Adaptive Logic Module,ALM)来作为基本逻辑单元,自适应逻辑模块可以实现一个完整的六输入函数,受限的七输入函数,和若干种可能具有公共输入端的双函数。而Xilinx公司的Virtex II则采用Slice作为基本逻辑单元,一个Slice包括4个四输入查找表和4个寄存器,更新的Xilinx FPGA采用的Slice则具有4个六输入查找表。发明内容
[0006] (一)要解决的技术问题
[0007] 本公开提供了一种可扩展可编程逻辑单元及可编程逻辑块结构,以至少部分解决如下技术问题:当实现具有较少输入的逻辑函数时,采用现在的六输入查找表面临资源的浪费;对应两个六输入查找表的输出要产生一个新的函数时,需要通过互连资源传送到第三个6输入查找表的输入,造成逻辑级数较多和资源的浪费。
[0008] (二)技术方案
[0009] 根据本公开的一个方面,提供了一种可扩展可编程逻辑单元301,包括:第二查找表101,包含:第一查找表100和算术逻辑单元(ALU),其中第一查找表的两个输出连接至该ALU的输入;以及第二寄存器组201,包含多组第二寄存器,分别与第二查找表的各个输出进行连接;其中,ALU具有算术运算和任意两输入函数功能。
[0010] 在本公开的一些实施例中,第一查找表100为k输入查找表,k为大于等于2的正整数,包括:两个k-1输入查找表和一个受第k的输入端控制的二选一多路选择器;其中,二选一多路选择器的两个数据输入端分别接两个k-1查找表的输出,控制端接k输入查找表的第k个输入端;该k输入查找表具有两个输出,一个输出为二选一多路选择器的输出,另一个输出为其中一个k-1查找表的输出。
[0011] 在本公开的一些实施例中,第一查找表100的两个输出有两种路径传输,第一种路径为直接连接至该第二查找表101的外部,形成第二查找表101的第一输出1o1和第三输出1o3,第二种路径是连接至ALU的输入端,经过ALU处理后输出至该第二查找表101的外部,形成第二查找表101的第二输出1o2;第二查找表101的第一输出1o1、第二输出1o2和第三输出
1o3均有两种路径传输,第一种路径为直接连接至该可扩展可编程逻辑单元301的外部,第二种路径是分别连接至三组第二寄存器的数据输入端,经过对应的第二寄存器后输出至该可扩展可编程逻辑单元301的外部。
[0012] 在本公开的一些实施例中,该可扩展可编程逻辑单元301的输出端还连接有N输入查找表,该N输入查找表的可输入个数N至少与可扩展可编程逻辑单元301的输出个数对应。
[0013] 根据本公开的另一个方面,提供了一种可编程逻辑块结构,包括:本公开提及的任一种可扩展可编程逻辑单元301以及细粒度可编程逻辑单元400,其中,可扩展可编程逻辑单元301与细粒度可编程逻辑单元400进行组合和级联,实现所需要的函数操作。
[0014] 在本公开的一些实施例中,细粒度可编程逻辑单元包括:m输入查找表401和第三寄存器402,其中,m输入查找表的输出端连接至第三寄存器402进行寄存后再输出或者直接输出,m为正整数,m的值小于第一查找表的输入个数。
[0015] 在本公开的一些实施例中,该可编程逻辑块结构包括第一结构,该第一结构的形式方式如下:第一数量个所述可扩展可编程逻辑单元301中第二查找表101的输出连接至一细粒度可编程逻辑单元400中第一m输入查找表401的输入端,形成该第一结构;其中,第二查找表101的输出包括直接输出和经过第二寄存器的输出。
[0016] 在本公开的一些实施例中,更进一步的,该可编程逻辑块结构还包括第二结构、第三结构、……、以及多级结构:该第二结构的形式方式与第一结构的形成方式相同,该第二结构以第一结构作为基本单元,由第二数量个第一结构中的第一m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第二m输入查找表401的输入端,形成该第二结构;该第三结构以第二结构作为基本单元,由第三数量个第二结构中的第二m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第三m输入查找表401的输入端,形成该第三结构;多级结构以此类推。
[0017] 在本公开的一些实施例中,该可扩展可编程逻辑单元301的输出端连接有N输入查找表,该N输入查找表的可输入个数N至少与可扩展可编程逻辑单元301的输出个数对应;该可编程逻辑块结构包括第一结构,该第一结构的形式方式如下:第一数量个所述可扩展可编程逻辑单元301经过N输入查找表的输出连接至一细粒度可编程逻辑单元400中第一m输入查找表401的输入端,形成该第一结构。
[0018] 在本公开的一些实施例中,该可扩展可编程逻辑单元301的输出端连接有N输入查找表,该N输入查找表的可输入个数N至少与可扩展可编程逻辑单元301的输出个数对应;该可编程逻辑块结构还包括第二结构、第三结构、……、以及多级结构:该第二结构的形式方式与第一结构的形成方式相同,该第二结构以第一结构作为基本单元,由第二数量个第一结构中的第一m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第二m输入查找表401的输入端,形成该第二结构;该第三结构以第二结构作为基本单元,由第三数量个第二结构中的第二m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第三m输入查找表401的输入端,形成该第三结构;多级结构以此类推。
[0019] (三)有益效果
[0020] 从上述技术方案可以看出,本公开提供的可扩展可编程逻辑单元及可编程逻辑块结构,具有以下有益效果:
[0021] 1、在传统k输入(比如6输入)查找表的输出端增加算术逻辑单元(ALU),在算术逻辑单元的输出端还放置了第二寄存器组,得到具有增强型逻辑算术操作功能的可扩展可编程逻辑单元,该可扩展可编程逻辑单元能够实现两输入函数,避免了采用多输入查找表实现两输入函数的资源浪费以及性能降低的风险;
[0022] 2、更进一步,在逻辑簇中增加若干m输入查找表,并在m输入查找表后面放置了第三寄存器,得到细粒度可编程逻辑单元,整体实现了寄存器资源丰富和高度流线设计,将上述可扩展可编程逻辑单元作为基本运算单元,其整体的输出或是内部的第二查找表的输出需要进行逻辑运算时,逻辑簇中的细粒度可编程逻辑单元作为执行函数功能的部分,可以进行任意组合和级联,一种级联方式是通过将m个(m≥2,在m<k时具有有益效果)可扩展可编程逻辑单元中ALU的输出作为细粒度可编程逻辑单元中m输入查找表的输入,实现新的函数功能;另一种级联方式是在每个可扩展可编程逻辑单元的输出后面增加一个N输入查找表,将每个N输入查找表的输出作为细粒度可编程逻辑单元中k输入查找表的输入,实现新的函数功能,后者的运行效果会更优。不需要再通过互联资源额外连接至第三个k输入查找表,解决了逻辑级数较多和资源的浪费等问题。附图说明
[0023] 图1为现有技术中典型FPGA的结构组成示意图。
[0024] 图2为现有技术中典型可编程逻辑单元的结构框图
[0025] 图3为现有技术中典型可编程逻辑块的结构框图。
[0026] 图4为根据本公开一实施例所示的可扩展可编程逻辑单元的结构框图。
[0027] 图5为根据本公开一实施例所示的基于第一查找表改进的第二查找表的结构示意图。
[0028] 图6为根据本公开一实施例所示的第二寄存器组的结构示意图。
[0029] 图7为根据本公开一实施例所示的第一查找表的结构示意图。
[0030] 图8为根据本公开一实施例所示的细粒度可编程逻辑单元的结构示意图。
[0031] 图9为根据本公开一实施例所示的可扩展可编程逻辑单元进行组合和级联的一种形式示意图。
[0032] 图10为由图9所示的结构作为基本单元再次进行级联和组合的一种形式示意图。
[0033] 图11为由图10所示的结构作为基板单元再次进行级联和组合的一种形式示意图。
[0034] 【符号说明】
[0035] 100-第一查找表;           101-第二查找表;
[0036] 201-第二寄存器组;              301-可扩展可编程逻辑单元;
[0037] 400-细粒度可编程逻辑单元;
[0038] 401-m输入查找表;               402-第三寄存器。

具体实施方式

[0039] 图2所示为一个典型RLE的结构框图。典型的RLE包括一个k输入功能产生单元和一个寄存器。其中k输入功能产生单元通常使用查找表的形式来实现k个输入的任意逻辑操作;寄存器用来实现时序逻辑中的数据寄存。RLE具有的基本功能模式包括逻辑模式、算术模式、时序模式等。
[0040] 查找表输入数目的增加虽然增强了逻辑功能,却也带来新的问题:1、当实现具有较少输入的逻辑函数时,则面临资源的浪费。例如实现2输入函数如果采用一个六输入查找表来实现则不但浪费了资源,而且由于经过多级的延时,存在降低性能的潜在风险。2、当逻辑簇中有2个六输入查找表的输出需要产生另一个函数时,则需要通过互连资源传送到第三个6输入查找表的输入,造成逻辑级数较多和资源的浪费。
[0041] 基于上述发现的技术问题,本公开提出一种可扩展可编程逻辑单元及可编程逻辑块结构,通过在第一查找表的基础上加入算术逻辑单元(ALU),得到第二查找表,在第二查找表的数据输出路径上对应设置寄存器,使得第二查找表的数据可以直接输出或通过寄存器后再输出,利用该ALU可实现算术运算和任意两个输入的函数功能,避免了采用多输入查找表实现两输入函数的资源浪费以及性能降低的风险;更进一步的,基于上述可扩展可编程逻辑单元作为基本单元,将多个基本单元与细粒度可编程逻辑单元进行组合和级联形成逻辑簇,不需要再通过互联资源额外连接至其他k输入功能产生单元,解决了逻辑级数较多和资源的浪费等问题。
[0042] 为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。权利要求书中,“第一m输入查找表”、“第二m输入查找表”和“第三m输入查找表”的含义表示多输入查找表,具体的数量表示至少与前面对应的“第一数量”、“第二数量”和“第三数量”对应。
[0043] 第一实施例
[0044] 在本公开的第一个示例性实施例中,提供了一种可扩展可编程逻辑单元。
[0045] 图4为根据本公开一实施例所示的可扩展可编程逻辑单元的结构框图。
[0046] 参照图4所示,本公开的可扩展可编程逻辑单元301,包括:第二查找表101,包含:第一查找表100和算术逻辑单元(ALU),其中第一查找表的两个输出连接至该ALU的输入;以及第二寄存器组201,包含多组第二寄存器,分别与第二查找表的各个输出进行连接;其中,ALU具有算术运算和任意两输入函数功能。
[0047] 图5为根据本公开一实施例所示的基于第一查找表改进的第二查找表的结构示意图。图6为根据本公开一实施例所示的第二寄存器组的结构示意图。图7为根据本公开一实施例所示的第一查找表的结构示意图。
[0048] 参照图4-图7所示,本实施例的可扩展可编程逻辑单元301,包括:第二查找表101,包含:第一查找表100和算术逻辑单元(ALU),第二寄存器组201,包含三组第二寄存器。
[0049] 本实施例中,参照图4和5所示,第二查找表101,包含:第一查找表100和算术逻辑单元(ALU)。
[0050] 参照图7所示,本实施例中,第一查找表100为k输入查找表,k为k为大于等于2的正整数(例如为4,6),包括两个k-1输入查找表和一个受第k的输入端控制的二选一多路选择器;二选一多路选择器的两个数据输入端分别接两个k-1查找表的输出,控制端接k输入查找表的第k个输入端;该k输入查找表具有两个输出,一个输出o2为二选一多路选择器的输出,即为k查找表输出,另一个输出o1为其中一个k-1查找表的输出。
[0051] 在本公开的一些实施例中,如图4所示,第一查找表100的两个输出有两种路径传输,第一种路径为直接连接至该第二查找表101的外部,形成第二查找表101的第一输出1o1和第三输出1o3,第二种路径是连接至ALU的输入端,经过ALU处理后输出至该第二查找表101的外部,形成第二查找表101的第二输出1o2;第二查找表101的第一输出1o1、第二输出
1o2和第三输出1o3均有两种路径传输,第一种路径为直接连接至该可扩展可编程逻辑单元
301的外部,第二种路径是分别连接至三组第二寄存器的数据输入端,经过对应的第二寄存器后输出至该可扩展可编程逻辑单元301的外部。
[0052] 具体而言,参照图5所示,第一查找表100的两个输出端的第一引线与ALU的输入端连接,作为ALU的输入,经过ALU处理后输出至该第二查找表101的外部,形成第二查找表101的第二输出1o2;第二引线直接连至第二查找表101的外部作为输出1o1和1o3。
[0053] 其中,第二查找表101中,ALU具有如下功能:1、算术运算功能,包括加法、减法、比较、累加等;2、任意两输入函数功能。如图5所示,第二查找表101具有四个输出,分别为1o1、1o2、1o3和cout,分别对应其中一个k-1查找表的输出、ALU输出、k查找表输出(对应o2,二选一多路选择器的输出)和进位输出。
[0054] 参照图6所示,本实施例中,第二寄存器组201包括三组第二寄存器(寄存器:DFF),分别与第二查找表101的三个数据输出(非进位输出),包括第一输出1o1、第二输出1o2和第三输出1o3,对应连接。
[0055] 在k输入查找表的基础上增加算术逻辑单元(ALU),k输入查找表的两个输出可以输入至ALU中输出或直接输出,加上进位输出,得到四输出结构,该算术逻辑单元可实现算术运算和任意两输入函数的功能,并在四输出结构的每个数据输出端(不含进位输出)连接寄存器,得到六输出的可扩展可编程逻辑单元,上述算术逻辑单元的输出可以直接进行输出,或者通过寄存器后再输出,该可扩展可编程逻辑单元能够实现两输入函数,避免了采用多输入查找表实现两输入函数的资源浪费以及由于多级延时引起的性能降低的风险。
[0056] 第二实施例
[0057] 在本公开的第二个示例性实施例中,提供了一种可扩展可编程逻辑单元。
[0058] 第二个实施例中的可扩展可编程逻辑单元基于第一个实施例的可扩展可编程逻辑单元进行了结构的改进和优化,有助于在下述实施例中进行多个可扩展可编程逻辑单元的组合和级联形成逻辑簇的过程中,具有较好的实现效果。
[0059] 第二个实施例中的可扩展可编程逻辑单元在第一个实施例的结构基础上,在可扩展可编程逻辑单元301的输出端还连接有N输入查找表(lut)(图中未作示意),该N输入查找表的可输入个数至少与可扩展可编程逻辑单元301的输出个数对应,比如,本实施例中,可扩展可编程逻辑单元301的输出个数为6个,该N输入查找表至少为6输入查找表,当然,也可以是其他更多输入的查找表,比如7输入查找表,不过会对应涉及资源的空闲和浪费,在实际情况中,可根据实际需要进行适应性设置,以保证性能和资源整体的综合性能。
[0060] 将本公开中的可扩展可编程逻辑单元作为基本运算单元,其整体的输出或是内部的第二查找表的输出需要进行逻辑运算时,逻辑簇中的细粒度可编程逻辑单元(在下面实施例介绍)作为执行函数功能的部分,可以进行任意组合和级联,得到各种组合形式的可编程逻辑块结构。
[0061] 第三实施例
[0062] 在本公开的第三个示例性实施例中,提供了一种可编程逻辑块结构。
[0063] 图8为根据本公开一实施例所示的细粒度可编程逻辑单元的结构示意图。图9为根据本公开一实施例所示的可扩展可编程逻辑单元进行组合和级联的一种形式示意图。
[0064] 参照图8和图9所示,本公开的可编程逻辑块结构,包括:可扩展可编程逻辑单元301和细粒度可编程逻辑单元400,其中,可扩展可编程逻辑单元301与细粒度可编程逻辑单元400进行组合和级联,实现所需要的函数操作。
[0065] 参照图8所示,该细粒度可编程逻辑单元,包括:m输入查找表401和第三寄存器402,其中,m输入查找表的输出端连接至第三寄存器402进行寄存后再输出或者直接输出。
其中,m输入查找表的可输入个数至少与要进行函数操作的可扩展可编程逻辑单元的个数对应,比如,如图9所示的实施例中,有两个可扩展可编程逻辑单元的输出要进行函数操作,则该细粒度可编程逻辑单元中的查找表至少为两输入查找表,当然,也可以是其他更多输入的查找表,比如四输入查找表,不过可能会对应涉及资源的空闲和浪费,在实际情况中,可根据实际需要进行适应性设置,以保证性能和资源整体的综合性能。
[0066] 本公开的可编程逻辑块结构可以由可扩展可编程逻辑单元301与细粒度可编程逻辑单元400进行各种形式的组合和级联,只要能实现所需要的函数操作即可。
[0067] 在本公开的一些实施例中,该可编程逻辑块结构包括:第一结构、第二结构、第三结构、……、多级结构等。其中,可扩展可编程逻辑单元301可以是第一实施例中的结构,也可以是第二实施例中的结构。
[0068] 在第一实施例结构的情况下,该第一结构的形式方式如下:第一数量个可扩展可编程逻辑单元301中第二查找表101的输出连接至一细粒度可编程逻辑单元400中第一m输入查找表401的输入端,形成该第一结构;其中,第二查找表101的输出包括直接输出和经过第二寄存器的输出。
[0069] 在第二实施例结构的情况下,第一结构的形成方式如下:第一数量个可扩展可编程逻辑单元301经过N输入查找表的输出连接至一细粒度可编程逻辑单元400中第一m输入查找表401的输入端,形成该第一结构。
[0070] 该第二结构的形式方式与第一结构的形成方式相同,该第二结构以第一结构作为基本单元,由第二数量个第一结构中的第一m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第二m输入查找表401的输入端,形成该第二结构;该第三结构以第二结构作为基本单元,由第三数量个第二结构中的第二m输入查找表401的输出连接至一细粒度可编程逻辑单元400中第三m输入查找表401的输入端,形成该第三结构;多级结构以此类推。
[0071] 下面介绍具体实例中一种组合和级联的方式。
[0072] 在一实例中,该实例中,可扩展可编程逻辑单元301为第一实施例所示的结构。
[0073] 参照图9所示,可编程逻辑块结构,包括:两个相同的可扩展可编程逻辑单元301,一个细粒度可编程逻辑单元400,该细粒度可编程逻辑单元400,包括:两输入查找表401和第三寄存器402,对应两输入查找表的两个输入端分别示意为a和b。两个可扩展可编程逻辑单元301内部的第二查找表的某一输出,例如为1o2(第二查找表中的ALU输出),分别输入至细粒度可编程逻辑单元400中的两输入查找表401的两个输入端a和b中,然后在两输入查找表401中执行相应的函数操作,得到输出数据2o4,该输出数据2o4能够进行直接输出或者经过寄存器402之后再进行输出。
[0074] 当然,如果实际需要进行两个相同的可扩展可编程逻辑单元301的外部输出之间的函数操作,该实例中的两输入查找表的两个输入端还可以接入两个可扩展可编程逻辑单元301的整体输出(6个输出中的任一个)实现所需要的函数功能。
[0075] 在另一实例中,组合和级联的方式与上述实例相同,与上述实例的区别仅在于该实例中的可扩展可编程逻辑单元301为第二实施例所示的结构,并且两输入查找表401的输入端对应的是每个可扩展可编程逻辑单元301经过N输入查找表之后的输出。此种情况对应形成的逻辑簇具有较好的实现效果,属于优化方案。
[0076] 第四实施例
[0077] 在本公开的第四个示例性实施例中,提供了一种可编程逻辑块结构。
[0078] 图10为由图9所示的结构作为基本单元再次进行级联和组合的一种形式示意图。
[0079] 参照图10所示,本实施例的可编程逻辑块结构是基于第三实施例所示的结构作为一基本单元,利用两个第三实施例所示的结构作为基本运算单元,将两个上述结构未经过第三寄存器402寄存的输出数据2o4输入至细粒度可编程逻辑单元400中的两输入查找表401的两个输入端a和b中,然后在两输入查找表401中执行相应的函数操作,得到输出数据
3o8,该输出数据3o8能够进行直接输出或者经过寄存器402之后再进行输出。
[0080] 当然,按照相同的级联方式还可以进一步进行拓展。
[0081] 例如,图11为由图10所示的结构作为基板单元再次进行级联和组合的一种形式示意图。如图11所示,在图10所示的结构的基础上,将本实施例得到的如图10所示的结构作为基本单元,将两个上述结构经过第三寄存器402寄存后的输出数据3o8输入至细粒度可编程逻辑单元400中的两输入查找表401的两个输入端a和b中,然后在两输入查找表401中执行相应的函数操作,得到输出数据4o16,该输出数据4o16能够进行直接输出或者经过寄存器402之后再进行输出。
[0082] 当然,上述进行组合和级联的方式仅作为示例,还可以是其他形式的组合方式和组合个数,而且各个组合形式之间还可以进一步进行组合和级联。组合和级联的方式包括但不限于以上几种实施例。任何将本公开的可扩展可编程逻辑单元、由其形成的第一结构、第二结构、……、多级结构或者其它未提及的等效变换内容采用细粒度可编程逻辑单元实现函数操作的结构均在本公开中可编程逻辑块结构的保护范围之内。
[0083] 例如,不局限于上述实施例中的两个相同的可扩展可编程逻辑单元进行函数操作,还可以是超过两个的多个可扩展可编程逻辑单元301进行函数操作,当然,对应的细粒度可编程逻辑单元400中的两输入查找表401就对应变为多输入查找表。不过一般而言,考虑到该方案的成本,细粒度可编程逻辑单元400中的m输入查找表401中,m≥2,在m<k时具有较低的成本,在m等于或大于k时,可以通过互联资源额外连接至第三个k输入查找表。本方案主要解决的是个数较少的情况对应资源浪费和逻辑层数较多的问题。
[0084] 即,需要说明的是,m输入查找表中m的值基于所需要进行函数功能的个数进行选择,优选2、3、4,个数太多对应成本太高。
[0085] 综上所述,本公开提供了一种可扩展可编程逻辑单元及可编程逻辑块结构。在传统k输入(比如6输入)查找表的输出端增加算术逻辑单元(ALU),在ALU的输出端还放置了第二寄存器组,得到具有增强型逻辑算术操作功能的可扩展可编程逻辑单元,该可扩展可编程逻辑单元能够实现两输入函数,避免了采用多输入查找表实现两输入函数的资源浪费以及性能降低的风险;更进一步,在逻辑簇中增加若干m输入查找表,并在m输入查找表后面放置了第三寄存器,得到细粒度可编程逻辑单元,整体实现了寄存器资源丰富和高度流水线设计,将上述可扩展可编程逻辑单元作为基本运算单元,其整体的输出或是内部的第二查找表的输出需要进行逻辑运算时,逻辑簇中的细粒度可编程逻辑单元作为执行函数功能的部分,可以进行任意组合和级联,一种级联方式是通过将m个(m≥2,在m<k时具有有益效果)可扩展可编程逻辑单元中ALU的输出作为细粒度可编程逻辑单元中m输入查找表的输入,实现新的函数功能;另一种级联方式是在每个可扩展可编程逻辑单元的输出后面增加一个N输入查找表,将每个N输入查找表的输出作为细粒度可编程逻辑单元中k输入查找表的输入,实现新的函数功能,后者的运行效果会更优。不需要再通过互联资源额外连接至第三个k输入查找表,解决了逻辑级数较多和资源的浪费等问题。
[0086] 说明书与权利要求中所使用的序数例如“第一”、“第二”、“第三”等的用词,以修饰相应的元件,其本身并不意味着该元件有任何的序数,也不代表某一元件与另一元件的顺序、或是制造方法上的顺序,该些序数的使用仅用来使具有某命名的一元件得以和另一具有相同命名的元件能做出清楚区分。
[0087] 再者,单词“包含”或“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。
[0088] 类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
[0089] 以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈