CN105573178B - 带内部反馈的自适应查找表模块 - Google Patents
带内部反馈的自适应查找表模块 Download PDFInfo
- Publication number
- CN105573178B CN105573178B CN201410524565.XA CN201410524565A CN105573178B CN 105573178 B CN105573178 B CN 105573178B CN 201410524565 A CN201410524565 A CN 201410524565A CN 105573178 B CN105573178 B CN 105573178B
- Authority
- CN
- China
- Prior art keywords
- input
- look
- adaptive
- port
- multiplexer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title claims description 39
- 238000013507 mapping Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000000034 method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Logic Circuits (AREA)
Abstract
本发明提供了一种带内部反馈的自适应查找表模块。该自适应查找表模块包括:第一查找表;第二查找表;第一2选1多路选择器,其第一输入端口连接至第一查找表的输出端口,其第二输入端口连接至自适应查找表模块的输入端[2k‑3],其控制端口作为自适应查找表模块的模式选择端;以及第二2选1多路选择器,其第一输入端口连接至第一查找表的输出端口,其第二输入端口连接至第二查找表的输出端口,其控制端口连接至自适应查找表模块的输入端[2k‑2],其输出端口作为自适应查找表模块的输出端。本发明在现有的LUT模块中增加了一多路选择器和反馈路径,从而在普通模式之外,实现了级联模式,在LUT模块中实现了更多的功能。
Description
技术领域
本发明涉及电子行业现场可编程逻辑门阵列(FPGA)技术领域,尤其涉及一种带内部反馈的自适应查找表模块(Look Up Table,简称LUT)。
背景技术
现行的现场可编程逻辑门阵列(FPGA)多为孤岛式结构,其基本单元如图1所示。15称为逻辑阵列块(Logic Array Block,简称LAB),LAB包含多个逻辑单元(Logic Element,简称LE)14,LE中一般由一个k输入查找表(Look Up Table,LUT)11和一个寄存器12连接而成,完整的k输入LUT意味着2k位sram(静态随机存储器)和相应的地址选通逻辑。11和12的输出端均可输出到LAB之外,上到通道互联结构中,可以连接到其他逻辑资源。从通道下来的输入信号进入LE之前先通过输入多路选择器(Input Multiplexer,Input Mux)13,与反馈(Feed back)信号选择后输入LE内部。该反馈信号可能来自11或12的输出,也可能来自本LAB中的其他LE的输出,从而构成逻辑资源级联或反馈的结构。
随着FPGA包含逻辑资源规模的不断增长,以及工艺节点不断缩小,连线延时问题凸显,即LAB之间的通道互联延时所占比例逐渐升高。降低关键路径延时的一种策略是将更多的资源放入单个LE中,因此LUT的规模相应增加,输入端个数k由早期的小于等于4增加到如今的以6为主。各FPGA采用的LUT的内部结构多有不同,以兼顾功能的灵活和面积延时性能的优化。
图2所示为美国专利(US7671625 B1)提出的自适应逻辑模块(Adaptive LogicModule,简称ALM)结构抽象级别示意图,ALM的地位等同于前文的LE。和传统LE结构显著不同,ALM包含两个寄存器23a和23b,与之相对应的两个k输入LUT被拆分为21a、21b、21c和21d四个k-1输入的LUT。21a和21b通过多路选择器22a组成实质上等效的k输入LUT,同理21c和21d通过多路选择器22b组成等效的k输入LUT。上下两部分通过多路选择器22c和22d分别选通到各自的寄存器23a和23b的输入端。LUT输入端之前存在组合互联结构24,意在复用各个k-1输入LUT的输入端口,改变ALM可实现的LUT拓扑结构。ALM的输入端个数为2m,一般满足:
1≤m≤2k-1 (1)
从而最多实现两个部分功能的2k-1输入LUT,或一个部分功能的2·(2k-1)+1=4k-1输入LUT。
图3为图2所示ALM中基本结构-可拆分LUT模块的结构示意图。请参照图3,只取ALM的上半部分的两个LUT讨论,省略上下LUT之间的连接关系,31a、31b、32a等价于图2中的21a、21b、22a。该结构在LUT有效面积(sram数量)上与图1的LE结构等同,而实现的功能因真实输入端数量的不同而变化。在实际的电路中,k-1输入LUT还可以继续拆分为两个k-2输入LUT和后端的选通Mux,以此类推,但基本思想没有发生变化。
映射作为FPGA对应的EDA流程中一个重要的步骤,其实现结果的优劣与FPGA的逻辑资源有密切的关系,特别是随着FPGA体系结构的进步和工艺的发展,映射算法也在发生相应的演进,用于契合FPGA基本逻辑单元实现高性能的需求。当前学术上流行的映射工具ABC在实现各种映射算法时,特别是在对应用电路的深度做优化的时候往往认为LUT或者ALM的延时为单位“1”。
然而,在实际情况中,存在可能有自适应LUT的两个k-1输入LUT的总输入端m大于k的情况。这种情况要求两级或者多级LUT或者ALM进行级联模,此时ABC仍将总延时看作两个单位延时的叠加,即总延时为2,无法区分内部级联和通过Input Mux(图1中13)的外部级联。但是,结合实际情况,如果从软件优化的角度讲,设计一种能够处理两级或者多级LUT或者ALM级联的基本逻辑结构,有可能实现深度最优映射结果的优化,进而实现应用电路性能的提升。
图3所示的ALM基本结构(可拆分LUT单元)可以实现至多2k-1输入的LUT的部分功能,但由于该单元只包含2k个sram,因此当输入端为m个(m不超过2k-1)时,该结构能实现的功能占完整m输入LUT总功能数的比例为:
式(2)
k不变时,输入端m个数越大,该单元实现的m输入LUT功能越不完整。此外,映射是FPGA对应的EDA工具流程中一个重要的步骤,现有的映射算法已经能够做到深度最优。但是这些算法在实现深度最优的时候,LUT或者ALM对应的映射模型默认的将单级的LUT或者ALM的深度当作“1”。这样的话,两级或者多级LUT级联在映射之后的深度是大于等于2的。
发明内容
(一)要解决的技术问题
鉴于上述技术问题,本发明提供了一种带内部反馈的自适应查找表模块,以用尽可能少的代价增加逻辑单元实现的功能,同时,希望通过本发明能够对映射算法LUT或者ALM对应的时序模型有所改进,以期减小两级或者多级LUT级联映射之后对应的深度,进而提升应用电路的性能。
(二)技术方案
本发明提供了一种带内部反馈的自适应查找表模块。该自适应查找表模块具有2k-1个输入端和一个模式控制端,包括:第一查找表41a,其具有k-1个输入端口以及一个输出端口,该k-1个输入端口连接至所述自适应查找表模块的输入端[0:k-2];第二查找表41b,其具有k-1个输入端口以及一个输出端口,该k-1个输入端口中的k-2个输入端口连接至所述自适应查找表模块的输入端[k-1:2k-4];第一2选1多路选择器42b,其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至所述第一查找表41a的输出端口,其第二输入端口连接至所述自适应查找表模块的输入端[2k-3],其控制端口作为所述自适应查找表模块的模式选择端;以及第二2选1多路选择器42a,其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至所述第一查找表41a的输出端口,其第二输入端口连接至所述第二查找表的输出端口,其控制端口连接至所述自适应查找表模块的输入端[2k-2],其输出端口作为所述自适应查找表模块的输出端;其中,所述第一查找表(41a)的输出端口和第一2选1多路选择器(42b)的第一输入端口之间构成反馈路径。
(三)有益效果
从上述技术方案可以看出,本发明带内部反馈的自适应查找表模块在现有的LUT模块中增加了一多路选择器和反馈路径,从而在普通模式之外,实现了级联模式,在LUT模块中实现了更多的功能。
附图说明
图1为现有技术中FPGA基本逻辑单元的结构示意图;
图2为现有技术中可配置逻辑模块(ALM)的结构示意图;
图3为图2所示ALM中基本结构-可拆分LUT模块的结构示意图;
图4为根据本发明实施例带内部反馈的自适应查找表模块的结构示意图;
图5A和图5B为可拆分LUT单元和本发明LUT单元的比较示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本发明的保护范围。
本发明带内部反馈的自适应查找表模块在现有的LUT模块中增加了一多路选择器和反馈路径,在普通模式之外,实现了级联模式,从而在LUT模块中实现了更多的功能。
在本发明的一个示例性实施例中,提供了一种带内部反馈的自适应查找表。图4为根据本发明实施例带内部反馈的自适应查找表模块的结构示意图。如图4所示,本实施例带内部反馈的自适应查找表模块,其具有2k-1个输入端和1个模式控制端,包括:
第一LUT(41a),其具有k-1个输入端口以及一个输出端口,该k-1个输入端口连接至本实施例自适应查找表模块的输入端[0:k-2];
第二LUT(41b),其具有k-1个输入端口以及一个输出端口,该k-1个输入端口中的k-2个输入端口连接至本实施例自适应查找表模块的输入端[k-1:2k-4];
第一2选1多路选择器42b,其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至第一LUT的输出端,其第二输入端口连接至本实施例自适应查找表模块的输入端[2k-3],其控制端口作为本实施例自适应查找表模块的模式选择端(图4的Control bit);
第二2选1多路选择器42a,其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至第一LUT的输出端口,其第二输入端口连接至第二LUT的输出端口,其控制端口连接至本实施例自适应查找表模块的输入端[2k-2],其输出端口作为本实施例自适应查找表模块的输出端。
在本实施例中,第一LUT(41a)、第二LUT(41b)、第二2选1多路选择器42a均与图3所示可拆分自适应查找表模块中相应的结构相同,分别对应与图3中的LUT(31a)、LUT(31b)和多路选择器32a。不同之处在于,本实施例增加了第一2选1多路选择器42b,并且在第一查找表41a的输出端口和第一2选1多路选择器42b的第一输入端口之间形成了反馈路径45。可见,第二LUT(41b)的k-1个输入信号是由k-2个直接输入信号和第一2选1多路选择器42b的选择输出构成,而第一LUT(41a)的k-1个输入信号全部为直接输出信号。
本实施例自适应查找表模块具有两种工作模式,由第一2选1多路选择器42b的控制端进行控制:
(1)普通模式下,第一2选1多路选择器42b的第二输入端被选通,该自适应查找表模块实现与图3所示可拆分LUT模块相同的功能;
(2)级联模式下,第一2选1多路选择器42b的第一输入端被选通,第一查找表41a的输出端口和第一2选1多路选择器42b的第一输入端口之间的反馈路径被选通,构成两个k-1输入LUT级联模式。
由于LUT有效面积(sram)总数没有改变,图3所示可拆分LUT模块和本实施例自适应查找表模块均无法实现完整的2k-1输入LUT。对于本实施例,输入端m超过k以后,第一2选1多路选择器42b在两种选通模式之间的转换不会改变自适应LUT实现的逻辑功能数占完整m输入LUT功能的比例,但却可以改变具体实现的功能,即普通模式和级联模式实现的组合逻辑功能不完全重叠。因此两种模式的总和可以覆盖大于式(2)所示比例的逻辑功能,代价是增加的反馈路径45、第一2选1多路选择器42b带来的面积和延时增加以及模式控制位占用的sram资源,两个k-1输入LUT级联模式的延时视LUT结构而定,也往往大于一个k输入LUT的延时。
为了具体说明本实施例的有益效果,以下在具体场景下对图3所示的可拆分LUT模块和图4所述的自适应查找表模块进行说明:
(1)将图3中k取4,得到图5A所示结构,其最多有a、b、c、d、e、f、g共7个输入端口,
(2)将图4中k取4,在级联模式下,第一2选1多路选择器42b切换到反馈路径45,得到图5B所示结构,由于上方的3输入LUT的输出端口连接到下方3输入LUT的d端,因此其最多有a、b、c、e、f、g共6个输入端口。
对于图5B所示结构,在级联模式下,虽然输入端口减少,但在输入端口大于4以后,当输入端口的数目为5、6时却可以实现新的功能,如5输入与门a·b·c·e·f,只需上下LUT各实现3输入与门,g取0即可;而图5A无论如何也做不到这一点。因此可知反馈通路45和多路选择器42b的存在增加了k输入LUT覆盖的逻辑功能。
再看另外的例子:5输入或门(a+b+c+e+f),图5B只需上下LUT各实现3输入或门,g取0;5输入异或门图5B只需上下LUT各实现3输入异或门,g取0;对于一随机的5输入逻辑,如图5B也只需将上方LUT配置为(a·b+c),下方LUT配置为即可。以上几种逻辑图5A均无法实现。
至此,已经结合附图对本实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明带内部反馈的自适应查找表模块有了清楚的认识。
此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:两个k-1输入LUT还可以进一步拆分为2N个k-N输入LUT的形式,拆分后,2输入MUX 42b可以用多输入MUX来代替,从而根据需要,搭建不同的反馈路径。
综上所述,本发明带内部反馈的自适应查找表模块在现有的LUT模块中增加了一多路选择器和反馈路径,在普通模式之外,实现了级联模式,从而在LUT模块中实现了更多的功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种带内部反馈的自适应查找表模块,其特征在于,具有2k-1个输入端和一个模式控制端,包括:
第一查找表(41a),其具有k-1个输入端口以及一个输出端口,该k-1个输入端口连接至所述自适应查找表模块的输入端[0:k-2];
第二查找表(41b),其具有k-1个输入端口以及一个输出端口,该k-1个输入端口中的k-2个输入端口连接至所述自适应查找表模块的输入端[k-1:2k-4];
第一2选1多路选择器(42b),其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至所述第一查找表(41a)的输出端口,其第二输入端口连接至所述自适应查找表模块的输入端[2k-3],其控制端口作为所述自适应查找表模块的模式选择端;以及
第二2选1多路选择器(42a),其具有两个输入端口、一个输出端口和一个控制端口,其第一输入端口连接至所述第一查找表(41a)的输出端口,其第二输入端口连接至所述第二查找表的输出端口,其控制端口连接至所述自适应查找表模块的输入端[2k-2],其输出端口作为所述自适应查找表模块的输出端;
其中,所述第一查找表(41a)的输出端口和第一2选1多路选择器(42b)的第一输入端口之间构成反馈路径;
所述自适应查找表模块工作于以下两种模式其中之一:
(1)普通模式下,所述第一2选1多路选择器(42b)的第二输入端口被选通,该自适应查找表模块实现可拆分LUT模块的功能;
(2)级联模式下,所述第一2选1多路选择器(42b)的第一输入端口被选通,所述第一查找表(41a)的输出端口和第一2选1多路选择器(42b)的第一输入端口之间的反馈路径被选通,构成两个k-1输入LUT级联的模式。
2.根据权利要求1所述的自适应查找表模块,其特征在于,所述k大于4。
3.根据权利要求2所述的自适应查找表模块,其特征在于,实现5输入与门功能,所述第一查找表(41a)和第二查找表(41b)均为三输入与门,其中:
所述第一2选1多路选择器(42b)经由其控制端口选通第一输入端口;
所述第二2选1多路选择器(42a)经由其控制端口选通第二输入端口;
所述第一查找表(41a)的三个输入端口连接至所述自适应查找表模块的输入端[a,b,c];
所述第二查找表(41b)的未与第一2选1多路选择器(42b)相连接的两个输入端口连接至所述自适应查找表模块的输入端[e,f]。
4.根据权利要求2所述的自适应查找表模块,其特征在于,实现5输入或门功能,所述第一查找表(41a)和第二查找表(41b)均为三输入或门,其中:
所述第一2选1多路选择器(42b)的第一输入端口被选通;
所述第二2选1多路选择器(42a)的第二输入端口被选通;
所述第一查找表(41a)的三个输入端口连接至所述自适应查找表模块的输入端[a,b,c];
所述第二查找表(41b)的未与第一2选1多路选择器(42b)相连接的两个输入端口连接至所述自适应查找表模块的输入端[e,f]。
5.根据权利要求2所述的自适应查找表模块,其特征在于,实现5输入异或门功能,所述第一查找表(41a)和第二查找表(41b)均为三输入异或门,其中:
所述第一2选1多路选择器(42b)的第一输入端口被选通;
所述第二2选1多路选择器(42a)的第二输入端口被选通;
所述第一查找表(41a)的三个输入端口连接至所述自适应查找表模块的输入端[a,b,c];
所述第二查找表(41b)的未与第一2选1多路选择器(42b)相连接的两个输入端口连接至所述自适应查找表模块的输入端[e,f]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410524565.XA CN105573178B (zh) | 2014-10-08 | 2014-10-08 | 带内部反馈的自适应查找表模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410524565.XA CN105573178B (zh) | 2014-10-08 | 2014-10-08 | 带内部反馈的自适应查找表模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105573178A CN105573178A (zh) | 2016-05-11 |
CN105573178B true CN105573178B (zh) | 2018-12-18 |
Family
ID=55883441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410524565.XA Active CN105573178B (zh) | 2014-10-08 | 2014-10-08 | 带内部反馈的自适应查找表模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105573178B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070556A (zh) * | 2021-11-01 | 2023-05-05 | 华为技术有限公司 | 一种多级查找表电路、函数求解方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462507A (zh) * | 2001-05-16 | 2003-12-17 | 皇家菲利浦电子有限公司 | 可重新配置的逻辑器件 |
CN1547324A (zh) * | 2003-12-16 | 2004-11-17 | 复旦大学 | 可编程逻辑单元结构 |
US7671625B1 (en) * | 2004-03-25 | 2010-03-02 | Altera Corporation | Omnibus logic element |
US7812635B1 (en) * | 2006-05-08 | 2010-10-12 | Altera Corporation | Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions |
CN103366034A (zh) * | 2012-03-29 | 2013-10-23 | 阿尔特拉公司 | 具有多级逻辑区域的集成电路 |
-
2014
- 2014-10-08 CN CN201410524565.XA patent/CN105573178B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1462507A (zh) * | 2001-05-16 | 2003-12-17 | 皇家菲利浦电子有限公司 | 可重新配置的逻辑器件 |
CN1547324A (zh) * | 2003-12-16 | 2004-11-17 | 复旦大学 | 可编程逻辑单元结构 |
US7671625B1 (en) * | 2004-03-25 | 2010-03-02 | Altera Corporation | Omnibus logic element |
US7812635B1 (en) * | 2006-05-08 | 2010-10-12 | Altera Corporation | Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions |
CN103366034A (zh) * | 2012-03-29 | 2013-10-23 | 阿尔特拉公司 | 具有多级逻辑区域的集成电路 |
Also Published As
Publication number | Publication date |
---|---|
CN105573178A (zh) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6364015B2 (ja) | 構成可能な混載メモリシステム | |
US7439768B2 (en) | Dedicated logic cells employing configurable logic and dedicated logic functions | |
US7274211B1 (en) | Structures and methods for implementing ternary adders/subtractors in programmable logic devices | |
US7075333B1 (en) | Programmable circuit optionally configurable as a lookup table or a wide multiplexer | |
US6873182B2 (en) | Programmable logic devices having enhanced cascade functions to provide increased flexibility | |
US7675319B2 (en) | Programmable logic device having complex logic blocks with improved logic cell functionality | |
US8082526B2 (en) | Dedicated crossbar and barrel shifter block on programmable logic resources | |
CN105391443B (zh) | 用于可编程逻辑装置的逻辑单元 | |
US7746112B1 (en) | Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same | |
US20070080711A1 (en) | Dedicated Logic Cells Employing Sequential Logic and Contol Logic Functions | |
US7746102B1 (en) | Bus-based logic blocks for self-timed integrated circuits | |
US7746106B1 (en) | Circuits for enabling feedback paths in a self-timed integrated circuit | |
US7746108B1 (en) | Compute-centric architecture for integrated circuits | |
US7573291B1 (en) | Programmable logic device with enhanced logic block architecture | |
JP2017530652A (ja) | 集積回路デバイスにおいて電圧レベルシフトを行うための回路および方法 | |
US20080288909A1 (en) | Template-Based Domain-Specific Reconfigurable Logic | |
US20160098059A1 (en) | Circuits for and methods of processing data in an integrated circuit device | |
US7746104B1 (en) | Dynamically controlled output multiplexer circuits in a programmable integrated circuit | |
US9002915B1 (en) | Circuits for shifting bussed data | |
US7042248B1 (en) | Dedicated crossbar and barrel shifter block on programmable logic resources | |
US7746101B1 (en) | Cascading input structure for logic blocks in integrated circuits | |
CN105573178B (zh) | 带内部反馈的自适应查找表模块 | |
US9577615B1 (en) | Circuits for and methods of reducing duty-cycle distortion in an integrated circuit implementing dual-edge clocking | |
US8988125B1 (en) | Circuits for and methods of routing signals in an integrated circuit | |
US9235498B1 (en) | Circuits for and methods of enabling the modification of an input data stream |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |