CN109697293A - 含有可编程计算单元的可编程门阵列 - Google Patents
含有可编程计算单元的可编程门阵列 Download PDFInfo
- Publication number
- CN109697293A CN109697293A CN201710980827.7A CN201710980827A CN109697293A CN 109697293 A CN109697293 A CN 109697293A CN 201710980827 A CN201710980827 A CN 201710980827A CN 109697293 A CN109697293 A CN 109697293A
- Authority
- CN
- China
- Prior art keywords
- programmable
- gate array
- computing unit
- programmable gate
- logic cells
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
含有可编程计算单元的可编程门阵列,本发明提出一种可编程门阵列,它是一单芯(monolithic)芯片并含有多个可编程计算单元、多个可编程逻辑单元和多个可编程连接。每个可编程计算单元含有至少一存储一函数查找表(LUT)的可写存储阵列。所述可编程计算单元和所述可编程逻辑单元均基于晶体管,并肩并肩地集成在同一半导体衬底上。
Description
技术领域
本发明涉及集成电路领域,更确切地说,涉及可编程门阵列。
背景技术
可编程门阵列属于半定制集成电路,即通过后端工艺或现场编程,实现对逻辑电路的定制化。美国专利4,870,302披露了一种可编程门阵列。它含有多个可编程逻辑单元(configurable logic element,或configurable logic block)和可编程连接(configurable interconnect,或programmable interconnect)。其中,可编程逻辑单元在设置信号控制下可以选择性地实现移位、逻辑非、AND(逻辑与)、OR(逻辑和)、NOR(和非)、NAND(与非)、XOR(异或)、+(算术加)、-(算术减)等功能;可编程连接在设置信号控制下可以选择性地实现两条互连线之间的连接、断开等功能。
目前,很多应用均涉及复杂函数的计算。复杂函数一般含有多个自变量,它是基本函数的一种组合。基本函数含有一个或少数自变量,其例子包括超越函数,如指数(exp)、对数(log)、三角函数(sina、cos)等。为了保证执行速度,高性能应用要求用硬件来实现复杂函数。在现有的可编程门阵列中,复杂函数均通过来固化计算单元来实现。这些固化计算单元为硬核(hard block)的一部分,其电路已经固化、不能对其进行再配置。很明显,固化计算单元将限制可编程门阵列的进一步应用。为了克服这个困难,本发明将可编程门电路的概念推广,使固化计算单元可编程化。具体说来,可编程门电路除了含有可编程逻辑单元以外,还含有可编程计算单元。该可编程计算单元可以选择性地实现多种函数中的任何一种。
发明内容
本发明的主要目的是推广可编程门电路在复杂计算领域的应用。
本发明的另一目的是提供一种可编程门电路,不仅其逻辑功能可以被定制,其计算功能也可以被定制。
本发明的另一目的是提供一种计算能力更灵活、更强大的可编程门阵列。
本发明的另一目的是提供一种芯片面积更小、成本更低的可编程门阵列。
为了实现这些以及别的目的,本发明提出一种可编程门阵列。它是一单芯(monolithic)芯片并含有多个可编程计算单元、多个可编程逻辑单元和多个可编程连接,它们均水平集成在同一芯片中,即这些单元肩并肩地分布在同一半导体衬底上。
每个可编程计算单元含有至少一可写存储阵列,该可写存储阵列存储一基本函数的查找表(LUT)。可编程计算单元的使用分两个阶段:设置阶段和计算阶段。在设置阶段,根据用户需要将该基本函数的LUT加载到可写存储阵列中;在计算阶段,通过查找LUT来获得该函数的值。由于采用可写存储阵列,即使同一批次的芯片也可以实现不同的函数。而且,对于基于多次编程存储(MTP)阵列的可编程门阵列,由于在不同时段可对MTP阵列加载不同函数的LUT,该可编程门阵列能实现可重构计算。
此外,每个可编程逻辑单元从一逻辑运算库中选择性地实现一种逻辑运算,每个可编程连接从一连接库中选择性地实现一种连接。在复杂函数的实现过程中,复杂函数首先被分解为多个基本函数。然后针对每个基本函数设置对应的可编程计算单元,使其实现相应的基本函数。最后,通过设置可编程逻辑单元和可编程连接,实现所需的复杂函数。
相应地,本发明提出一种可编程门阵列(400),其特征在于含有:多个可编程计算单元 (100, 100AA-100AD),该可编程计算单元(100)含有一可写存储阵列(110),该可写存储阵列(110)存储一基本函数的至少部分查找表(LUT);多个可编程逻辑单元 (200,200AA-200AD),该可编程逻辑单元(200)从一逻辑运算库中选择性地实现一种逻辑运算;多个将该可编程计算单元(100AA-100AD)和该可编程逻辑单元(200AA-200AD)选择性耦合的可编程连接(300);通过对该可编程计算单元(100AA-100AD)、该可编程逻辑单元(200AA-200AD)和该可编程连接(300)进行编程以实现一复杂函数,该复杂函数是所述基本函数的一种组合。
本发明还提出一种可编程门阵列(400),其特征在于含有:一半导体衬底(0);多个可编程计算单元 (100, 100AA-100AD),该可编程计算单元(100)含有一可写存储阵列(110),该可写存储阵列(110)存储一基本函数的至少部分查找表(LUT);多个可编程逻辑单元 (200, 200AA-200AD),该可编程逻辑单元(200)从一逻辑运算库中选择性地实现一种逻辑运算;多个将该可编程计算单元(100AA-100AD)和该可编程逻辑单元(200AA-200AD)选择性耦合的可编程连接(300);通过对该可编程计算单元(100AA-100AD)、该可编程逻辑单元(200AA-200AD)和该可编程连接(300)进行编程以实现一复杂函数,该复杂函数是所述基本函数的一种组合;该可写存储阵列(110)含有第一晶体管(0t1),该可编程逻辑单元(200)含有第二晶体管(0t2),所述第一和第二晶体管(0t1, 0t2)均形成在该半导体衬底(0)中。
附图说明
图1是一种可编程计算单元的符号。
图2是一种可编程计算单元的衬底电路布局图。
图3是一种可编程门阵列的布局图。
图4表示一种可重构门阵列的两个使用周期。
图5A披露一种可编程连接实现的连接库;图5B披露一种可编程逻辑单元实现的逻辑运算库。
图6是该种可编程门阵列具体实现的一种布局图。
图7是一种可编程门阵列芯片的截面图。
注意到,这些附图仅是概要图,它们不按比例绘图。为了显眼和方便起见,图中的部分尺寸和结构可能做了放大或缩小。在不同实施例中,相同的符号一般表示对应或类似的结构。
具体实施方式
图1是一种可编程计算单元100的符号。其输入端IN包括输入数据115,输出端OUT包括输出数据135,设置端CFG包括设置信号125。当设置信号125为“写”时,在可编程计算单元100中写入所需基本函数的LUT。当设置信号125为“读”时,从可编程计算单元100中读出LUT中的值。图2是一种可编程计算单元100的电路布局图。在该实施例中,LUT存储在至少一个可写存储阵列110中。该电路还包括可写存储阵列110的周边电路:X解码器15和Y解码器(包括读出电路)17等。可写存储阵列110可以是RAM或ROM。RAM的例子包括SRAM、DRAM等;ROM的例子包括OTP(一次编程)、MTP(多次编程)等。其中,MTP包括EPROM、EEPROM、闪存等。
图3表示一种可编程门阵列400。它含有规则排列的可编程模块400A、400B等。每个可编程模块(如400A)含有多个可编程计算单元(如100AA-100AD)和多个可编程逻辑单元(如200AA-200AD)。在可编程计算单元(如100AA-100AD)和可编程逻辑单元(如200AA-200AD)之间含有多个可编程信道320、340;在可编程模块400A和可编程模块400B之间,也含有多个可编程信道310、330、350。可编程信道310-350含有多个可编程连接300。对于熟悉本领域的专业人士来说,除了可编程信道以外,还可以采用门海(sea-of-gates)等设计。
图4表示可重构门阵列400的两个使用周期620和660。第一使用周期620分为两个阶段:设置阶段610和计算阶段630。在设置阶段610,根据用户需要将与一基本函数相关的LUT加载到MTP阵列110中;在计算阶段630,在MTP阵列110中查找相应的LUT来获得该函数的值。类似地,第二使用周期660也含有相同的设置阶段650和计算阶段670。可重构计算特别适合SIMD(单指令多数据流)的数据处理。一旦在设置阶段610将LUT加载到MTP阵列110之后,可以将大量数据送入可编程计算单元100进行处理,并获得较高的处理速度。SIMD的应用例子很多,如图像处理中对多个像素的同样操作或矢量操作,科学计算中使用的大规模平行计算等。此外,可编程门阵列还可以将其可编程计算单元中的计算流水线化,以进一步提高吞吐率。
图5A披露一种可编程连接300能实现的连接库。该可编程连接300与美国专利4,870,302中披露的可编程连接类似。它采用下述连接库的一种连接方式:a)互连线302/304相连,互连线306/308相连, 但302/304与306/308不相连;b)互连线302/304/306/308均相连;c)互连线306/308相连,互连线302、304不相连,也不与306/308相连;d)互连线302/304相连,互连线306、306不相连,也不与302/304相连;e)互连线302、304、306、306均不相连。在本说明书中,两条互连线之间的符号“/”表示该两条互连线相连,两条互连线之间的符号“、”表示该两条互连线不相连。
图5B披露一种可编程逻辑单元200能实现的逻辑运算库。其输入A和B为输入数据210、220,输出C为输出数据230。该可编程逻辑单元200与美国专利4,870,302中披露的可编程逻辑单元类似。它可以实现下述逻辑运算库中的至少一种:C=A、A逻辑非、A移位、AND(A,B)、OR(A,B)、NAND(A,B)、NOR(A,B)、XOR(A,B)、算术加A+B、算术减A-B等。可编程逻辑单元200还可以含有寄存器、触发器等时序电路元件,以实习流水线等操作。
图6是一种可编程门阵列400的具体实现,它用于实现一复杂函数:e=a.sin(b)+c.cos(d)。在可编程信道310-350中可编程连接300采用图5A中的表示方式:交叉点有圆点的可编程连接表示交叉线相连,交叉点无圆点的可编程连接表示交叉线不相连,断开的可编程连接表示断开的互连线被分为两个互不相连的互连线段。在该实施例中,可编程计算单元100AA被设置为log(),其计算结果log(a)被送到可编程逻辑单元200AA的第一输入。可编程计算单元100AB被设置为log[sin()],其计算结果log[sin(b)]被送到可编程逻辑单元200AA的第二输入。可编程逻辑单元200AA被设置为“算术加”,其计算结果log(a)+log[sin(b)]被送到可编程计算单元100BA。可编程计算单元100BA被设置为exp(),其计算结果exp{log(a)+log[sin(b)]}=a.sin(b)被送到可编程逻辑单元200BA的第一输入。类似地,通过适当的设置,可编程计算单元100AC、100AD、可编程逻辑单元200AC、可编程计算单元100BC的结果c.cos(d)被送到可编程逻辑单元200BA的第二输入。可编程逻辑单元200BA被设置为“算术加”,a.sin(b)和c.cos(d)在此相加,最终结果送到输出e。很明显,通过改变设置,可编程门阵列400还可以实现其它复杂函数。
图7是一种可编程门阵列400芯片的截面图,它是一单芯(monolithic)芯片并含有规则排列的可编程模块400A等。可编程模块400A含有可编程计算单元100AA和可编程逻辑单元200AA等。可编程计算单元100AA中的可写存储阵列110基于第一类晶体管0t1,该类晶体管0t1适合完成存储功能。可编程逻辑单元200AA中的逻辑电路基于第二类晶体管0t2,该类晶体管0t2适合完成逻辑功能。两类晶体管0t1、0t2均形成在同一单晶半导体衬底0中,它们通过互连线0i相互耦合。由于可编程计算单元100AA和可编程逻辑单元200AA基于晶体管0t1、0t2,它们均可通过传统的CMOS工艺流程形成,不需要开发新的工艺,因此本发明提出的可编程门阵列(400)具有较短研发周期和极佳可制造性。而且,由于晶体管0t1是单晶晶体管,可编程计算单元100AA中的可写存储阵列110具有较快读取速度,适合高性能计算的实现。
本说明书均以现场编程门阵列(FPGA)为例。在FPGA中,晶圆将完成所有工序(包括所有可编程计算单元、可编程逻辑单元和可编程连接)。在编程现场,可通过设置可编程连接来定义FPGA的功能。上述FPGA的例子可以很容易地推广到传统的可编程门阵列。在传统可编程门阵列中,晶圆仅半完工,即晶圆生产仅完成可编程计算单元和可编程逻辑单元,但未完成可编程连接。当芯片的功能确定后,可编程信道310-350通过后端工艺来定制。
应该了解,在不远离本发明的精神和范围的前提下,可以对本发明的形式和细节进行改动,这并不妨碍它们应用本发明的精神。因此,除了根据附加的权利要求书的精神,本发明不应受到任何限制。
Claims (10)
1.一种可编程门阵列(400),其特征在于含有:
多个可编程计算单元 (100, 100AA-100AD),该可编程计算单元(100)含有一可写存储阵列(110),该可写存储阵列(110)存储一基本函数的至少部分查找表(LUT);
多个可编程逻辑单元 (200, 200AA-200AD),该可编程逻辑单元(200)从一逻辑运算库中选择性地实现一种逻辑运算;
多个将该可编程计算单元(100AA-100AD)和该可编程逻辑单元(200AA-200AD)选择性耦合的可编程连接(300);
通过对该可编程计算单元(100AA-100AD)、该可编程逻辑单元(200AA-200AD)和该可编程连接(300)进行编程以实现一复杂函数,该复杂函数是所述基本函数的一种组合。
2.根据权利要求1所述的可编程门阵列(400),其特征还在于:该可写存储阵列(110)为一次编程存储器(OTP)。
3.根据权利要求1所述的可编程门阵列(400),其特征还在于:该可写存储阵列(110)为多次编程存储器(MTP)。
4.根据权利要求1所述的可编程门阵列(400),其特征还在于:其使用过程包括一设置阶段(610),在该阶段根据用户需要将一函数的LUT加载到该可写存储阵列(110)中。
5.根据权利要求4所述的可编程门阵列(400),其特征还在于:其使用过程包括一使用阶段(630),在该阶段查找该LUT来获得该函数的值。
6.一种可编程门阵列(400),其特征在于含有:
一半导体衬底(0);
多个可编程计算单元 (100, 100AA-100AD),该可编程计算单元(100)含有一可写存储阵列(110),该可写存储阵列(110)存储一基本函数的至少部分查找表(LUT);
多个可编程逻辑单元 (200, 200AA-200AD),该可编程逻辑单元(200)从一逻辑运算库中选择性地实现一种逻辑运算;
多个将该可编程计算单元(100AA-100AD)和该可编程逻辑单元(200AA-200AD)选择性耦合的可编程连接(300);
通过对该可编程计算单元(100AA-100AD)、该可编程逻辑单元(200AA-200AD)和该可编程连接(300)进行编程以实现一复杂函数,该复杂函数是所述基本函数的一种组合;
该可写存储阵列(110)含有第一晶体管(0t1),该可编程逻辑单元(200)含有第二晶体管(0t2),所述第一和第二晶体管(0t1, 0t2)均形成在该半导体衬底(0)中。
7.根据权利要求6所述的可编程门阵列(400),其特征还在于:该可写存储阵列(110)为一次编程存储器(OTP)。
8.根据权利要求6所述的可编程门阵列(400),其特征还在于:该可写存储阵列(110)为多次编程存储器(MTP)。
9.根据权利要求6所述的可编程门阵列(400),其特征还在于:其使用过程包括一设置阶段(610),在该阶段根据用户需要将一函数的LUT加载到可写存储阵列(110)中。
10.根据权利要求9所述的可编程门阵列(400),其特征还在于:其使用过程包括一使用阶段(630),在该阶段查找该LUT来获得该函数的值。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710980827.7A CN109697293A (zh) | 2017-10-20 | 2017-10-20 | 含有可编程计算单元的可编程门阵列 |
US15/793,920 US10084453B2 (en) | 2016-03-05 | 2017-10-25 | Configurable computing array |
US16/186,571 US10700686B2 (en) | 2016-03-05 | 2018-11-11 | Configurable computing array |
US16/693,370 US10848158B2 (en) | 2016-02-13 | 2019-11-24 | Configurable processor |
US17/065,632 US11128303B2 (en) | 2016-02-13 | 2020-10-08 | Three-dimensional memory (3D-M)-based configurable processor singlet |
US17/065,604 US11128302B2 (en) | 2016-02-13 | 2020-10-08 | Configurable processor doublet based on three-dimensional memory (3D-M) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710980827.7A CN109697293A (zh) | 2017-10-20 | 2017-10-20 | 含有可编程计算单元的可编程门阵列 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109697293A true CN109697293A (zh) | 2019-04-30 |
Family
ID=66225116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710980827.7A Pending CN109697293A (zh) | 2016-02-13 | 2017-10-20 | 含有可编程计算单元的可编程门阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109697293A (zh) |
-
2017
- 2017-10-20 CN CN201710980827.7A patent/CN109697293A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9564902B2 (en) | Dynamically configurable and re-configurable data path | |
US6476636B1 (en) | Tileable field-programmable gate array architecture | |
CN107154798B (zh) | 基于三维可写存储器的可编程门阵列 | |
US5727229A (en) | Method and apparatus for moving data in a parallel processor | |
US6800884B1 (en) | Inter-tile buffer system for a field programmable gate array | |
US6215327B1 (en) | Molecular field programmable gate array | |
US7843215B2 (en) | Reconfigurable array to compute digital algorithms | |
Hiibner et al. | New 2-dimensional partial dynamic reconfiguration techniques for real-time adaptive microelectronic circuits | |
US7906987B2 (en) | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus | |
CN107924428A (zh) | 可编程逻辑ic的块存储器布局和体系架构及其操作方法 | |
JP2006004345A (ja) | データフローグラフ処理方法、リコンフィギュラブル回路および処理装置 | |
US10693466B2 (en) | Self-adaptive chip and configuration method | |
US9081060B2 (en) | Buffer testing for reconfigurable instruction cell arrays | |
WO2021216882A2 (en) | Compute dataflow architecture | |
CN109698693A (zh) | 采用双面集成的可编程门阵列 | |
CN109697293A (zh) | 含有可编程计算单元的可编程门阵列 | |
CN109687864A (zh) | 含有可编程计算单元的可编程门阵列 | |
CN109698692A (zh) | 采用双面集成的可编程门阵列 | |
US7768301B2 (en) | Reconfigurable integrated circuits with scalable architecture including a plurality of special function elements | |
CN109698690A (zh) | 基于三维纵向可写存储阵列的可编程门阵列 | |
CN109902040A (zh) | 一种集成fpga和人工智能模块的系统芯片 | |
CN109696942A (zh) | 可编程计算阵列 | |
CN109698694A (zh) | 可编程计算阵列 | |
CN109684653A (zh) | 含有可编程计算单元的可编程门阵列封装 | |
CN109698691A (zh) | 含有可编程计算芯片的可编程门阵列封装 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190430 |
|
WD01 | Invention patent application deemed withdrawn after publication |