基于三维可写存储器的可编程门阵列的制作方法

文档序号:15454669发布日期:2018-09-15 00:47阅读:120来源:国知局

本发明涉及集成电路领域,更确切地说,涉及可编程门阵列。



背景技术:

可编程门阵列属于半定制集成电路,在一个芯片上把多个可编程逻辑单元排列成阵列形式,然后通过后端工艺或现场编程,实现对逻辑电路的定制化。美国专利4,870,302披露了一种现场编程门阵列(fpga)。它含有多个可编程逻辑单元(configurablelogicarray或configurablelogicelement)和可编程连接(programmableinterconnect)。其中,可编程逻辑单元在设置信号控制下可以选择性地实现移位、逻辑非、and(逻辑与)、or(逻辑和)、nor(和非)、nand(与非)、xor(异或)、+(算术加)、-(算术减)等功能;可编程连接在设置信号控制下可以选择性地实现两条互连线之间的连接、断开等功能。现有的可编程门阵列只能实现逻辑编程,最多可实现简单算术(如加减法)的编程,即同一硬件在设置信号控制下可以选择性地实现不同的逻辑(或简单算术)功能。遗憾的是,现有的可编程门阵列尚无法实现复杂计算的编程,即同一硬件在设置信号控制下可以选择性地实现不同的复杂计算(如指数、对数、sin、cos等)功能。



技术实现要素:

本发明的主要目的是同一硬件在设置信号控制下可以选择性地实现不同复杂计算功能。

本发明的另一目的是提供一种用户能设置所需复杂计算的可编程门阵列。

本发明的另一目的是提供一种计算能力更灵活的可编程门阵列。

本发明的另一目的是提供一种计算能力更强大的可编程门阵列。

本发明的另一目的是强化传统门阵列和fpga的计算能力。

为了实现这些以及别的目的,本发明提出一种基于三维可写存储器(3d-w)的可编程门阵列。它含有多个可编程计算单元,每个可编程计算单元含有至少一个3d-w阵列,该3d-w阵列存储一种基本复杂计算的查找表(lut)。可编程计算单元的使用分两个阶段:设置阶段和计算阶段。在设置阶段,根据用户需要将所需的基本复杂计算lut存储到3d-w阵列中;在计算阶段,通过查找lut的数值来实现基本复杂计算。由于采用3d-w阵列,同一硬件(可编程计算单元)可以选择性地实现不同的基本复杂计算功能。在本发明中,复杂计算是指除加减法以外的计算,包括指数、对数、sin、cos等计算。

除了可编程计算单元,可编程门阵列还含有多个可编程逻辑单元。在实现过程中,每种复杂计算首先被分解为多个基本复杂计算。然后针对每个基本复杂计算,设置对应的可编程计算单元,使其实现相应的基本复杂计算。最后,通过设置可编程逻辑单元和可编程连接,完成所需的复杂计算。

采用3d-w来实现可编程门阵列有诸多优势。首先,由于3d-w存储容量大,它可以存储较大的lut。其次,3d-w阵列之间可以实现三维集成,因此不同可编程计算单元的3d-w阵列可以相互堆叠在一起,以减少可编程门阵列所需的衬底面积。最后,由于3d-w阵列基本不占衬底面积,可编程逻辑单元和/或可编程连接可以集成在3d-w阵列下方,这样可以进一步减少可编程门阵列所需的衬底面积。

相应地,本发明提出一种可编程门阵列,其特征在于含有多个可编程计算单元,包括;第一可编程计算单元,该第一可编程计算单元含有至少第一三维可写存储器(3d-w)阵列,该第一3d-w阵列存储第一函数的查找表(lut);第二可编程计算单元,该第二可编程计算单元含有至少第二3d-w阵列,该第二3d-w阵列存储第二函数的lut;该第一和该第二函数为不同函数。

附图说明

图1是一种三维可写存储器(3d-w)的截面图。

图2是一种可编程计算单元的符号。

图3是第一种可编程计算单元的衬底电路布局图。

图4是一种可编程门阵列的布局图。

图5a表示一种可编程连接的多种连接方式;图5b表示一种可编程逻辑单元的多种逻辑功能.

图6a是第二种可编程计算单元的衬底电路布局图;图6b是图4中可编程计算单元100aa-100ad的截面图。

图7是一种可编程门阵列具体实现的布局图。

注意到,这些附图仅是概要图,它们不按比例绘图。为了显眼和方便起见,图中的部分尺寸和结构可能做了放大或缩小。在不同实施例中,相同的符号一般表示对应或类似的结构。在本说明书中,“/”表示“和/或”的关系。

具体实施方式

图1是一种三维可写存储器(3d-w)的截面图。3d-w是三维存储器(3d-m)的一种,其存储的信息可以采用电方式编程录入。根据其能编程的次数,3d-w又分为三维一次编程存储器(3d-otp)和三维多次编程存储器(3d-mtp)。其中,3d-otp能编程一次,3d-mtp能编程多次。

该3d-w含有一衬底电路层0k及多个堆叠于其上并相互堆叠的存储层16a、16b。衬底电路层0k含有存储层的周边电路,它包括晶体管0t及其互连线0i。其中,晶体管0t形成在一半导体衬底0中;互连线0i含有互连线层0m1-0m3。每个存储层(如16a)含有多条位线(如2a,沿y方向)、字线(如1a,沿x方向)和存储元(如16aaa)。每个存储层(如16a)含有多个3d-w阵列。一个3d-w阵列中所有地址线是连续的,并不与同一存储层(如16a)中的其它3d-w阵列共享地址线。存储层(如16a)通过接触通道孔(如1av)与衬底0耦合。

3d-w存储元16aaa含有一层编程膜12和一层二极管膜14。编程膜12可以是反熔丝膜,用于3d-otp;也可以是其它多次编程膜,用于3d-mtp。二极管膜14具有如下的广义特征:在读电压下,其电阻较小;当外加电压小于读电压或者与读电压方向相反时,其电阻较大。二极管膜可以是p-i-n二极管,也可以是金属氧化物(如tio2)二极管等。

图2是一种可编程计算单元100的符号。其输入端in包括输入数据115,输出端out包括输出数据135,设置端cfg包括设置数据125。当设置数据125为“写”时,可在可编程计算单元100中写入所需基本复杂计算的lut。当设置数据125为“读”时,可从可编程计算单元100中读出lut中的值,从而实现所设置的基本复杂计算,并产生相应的输出数据135。

图3是第一种可编程计算单元100的衬底电路0k之布局图。由于3d-w阵列堆叠在衬底电路0k上方,不在衬底中,因此只用虚线表示3d-w阵列在衬底0上的投影。在该实施例中,lut存储在至少一个3d-w阵列110中。衬底电路0k包括3d-w阵列110的周边电路:其x解码器15、y解码器+读出电路17以及z解码器19等。

图4表示一种可编程门阵列300。它含有规则排列的a组可编程单元、b组可编程单元、等等。每组可编程单元(如a组)含有多个可编程计算单元(如100aa、100ab、100ac、100ad等)和可编程逻辑单元(如200aa、200ab、200ac、200ad等)。在可编程计算单元和可编程逻辑单元之间具有可编程信道320、340等。在组之间,还含有可编程信道310、330、330等。对于熟悉本领域的专业人士来说,除了可编程信道以外,还可以采用门海(sea-of-gates)等模式。

对可编程信道的编程有两种方式。一种方式类似于传统的可编程门阵列,晶圆仅生产到可编程信道(或门海)之前并囤积起来。当可编程门阵列的功能确定后,可编程信道310-350通过后端工艺来定制。另一种方式类似于传统的现场编程门阵列(fpga),所有的可编程信道由可编程连接构成。晶圆将完成所有工序(包括可编程连接)并切割封装芯片。在编程现场,可通过设置可编程连接来定义可编程门阵列的功能。

图5a表示一种可编程连接的多种连接方式。该可编程连接与美国专利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中披露的可编程逻辑单元类似。该可编程逻辑单元200可以实现以下几种逻辑运算中的至少一种:c=a、a逻辑非、a移位、and(a,b)、or(a,b)、nand(a,b)、nor(a,b)、xor(a,b)等逻辑运算,以及简单算术运算a+b、a-b等。可编程逻辑单元200还可以含有寄存器、触发器等时序电路元件,以实习流水线等操作。对于熟悉本领域的专业人士来说,其它形式的可编程逻辑单元200也是可采用的。

图6a是第二种可编程计算单元100的布局图。由于3d-w阵列110不占衬底面积,因此可编程逻辑单元200可以集成在3d-w阵列110下方,并被3d-w阵列110至少部分覆盖。除此之外,还可以将可编程连接也集成到3d-w阵列110下方,并被3d-w阵列110至少部分覆盖。所有这些措施都可以减少可编程门阵列300的芯片面积。

图6b是图4中可编程计算单元100aa-100ad的截面图。由于对3d-w阵列可以进行三维集成,可编程计算单元100aa中的3d-w阵列110aa(存储luta,存储层16a)可堆叠在衬底电路0k之上(+z方向),可编程计算单元100ab中的3d-w阵列110ab(存储lutb,存储层16b)可堆叠在3d-w阵列110aa之上(+z方向),可编程计算单元100ac中的3d-w阵列110ac(存储lutc,存储层16c)可堆叠在3d-w阵列110ab之上(+z方向),可编程计算单元100ad中的3d-w阵列110ad(存储lutd,存储层16d)可堆叠在3d-w阵列110ac之上(+z方向)。同时,还可以将可编程逻辑单元200aa-200ad集成在衬底电路0k中,被3d-w阵列110aa-210ad至少部分覆盖。所有这些措施将进一步减少可编程门阵列300的芯片面积。

图7是一种可编程门阵列的具体实现,它用于实现一复杂计算:e=a.sin(b)+c.cos(d)。在可编程信道中,交叉点有圆点的可编程连接表示交叉线相连,交叉点无圆点的可编程连接表示交叉线不相连,断开的可编程连接表示断开的互连线被分为两个互不相连的互连线段。在该实施例中,可编程计算单元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。很明显,通过改变其设置,可编程门阵列300还可以实现其它复杂计算功能。

应该了解,在不远离本发明的精神和范围的前提下,可以对本发明的形式和细节进行改动,这并不妨碍它们应用本发明的精神。因此,除了根据附加的权利要求书的精神,本发明不应受到任何限制。

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