带有片上用户非易失性存储器的可编程逻辑器件的制作方法
【技术领域】
[0001]本发明涉及集成电路领域,更具体地,涉及一种带有片上用户非易失性存储器的非易失性可编程逻辑器件。
【背景技术】
[0002]在集成电路开发后半个世纪,应用在集成电路领域的可编程逻辑器件就变得无处不在,电脑,手机和其他数字电器成为现代社会结构不可缺少的一部分。这是因为,现代计算,交流,制造和交通系统,包括互联网,全都依赖于集成电路的存在。这些年来,集成电路持续向更小的外型尺寸发展,使得每个芯片可以封装更多的电路。这样增加了每单位面积容量,可以降低成本和增加功能(见摩尔定律),集成电路中的晶体管数量,每1.5年增加一倍。总之,随着外形尺寸缩小,几乎所有的指标都改善了,包括单位成本和开关功率消耗下降,速度提高。
[0003]集成电路的分类方法很多,按照功能可分为存储器(Memory),微处理器(CPU),定制电路(ASICs)和可编程逻辑器件(Programmable Logic Device PLD)。可编程逻辑器件PLD中又可分为SPLD (简单PLD),CPLD (复杂PLD),FPGA现场可编程门阵列(FieldProgrammable Gate Array)。期中FPGA如今已成为主流,下面以FPGA来代替可编程逻辑器件。
[0004]FPAG晶片是一种可以在上电之后再把需要的控制程式输入的晶片,它不是固定的电路,而是一种可以视需要而改变功能的晶片,它的功能可以随着输入的数据而改变。
[0005]FPGA从存储编程数据的特性来讲分为易失性FPGA和非易失性FPGA两种。易失性FPGA通常采用SRAM存储器来存放编程数据流文件。在器件上电时,一般要由外部CPU编程,或者自动由外部的非易失性存储器中加载编程数据流文件。而非易失性FPGA由于自身存储器中已保留编程数据流文件,上电后即可进入工作状态。
[0006]非易失性FPGA的实现主要有两种情景:一种是用非易失性存储器直接控制逻辑电路。目前所有的SPLD,CPLD和部分非易失性FPGA都是采用此方式。
[0007]另一种非易失性FPGA还是以SRAM直接控制逻辑电路,但在芯片上同时有非易失性存储器。在器件上电时,编程数据流文件会从非易失性存储器自动加载到SRAM中。这种技术还有一个变种,就是将易失性FPGA器件和一个非易失性存储器器件封装在一个封装中。使其在外表看来是一个非易失性FPGA。但在上电工作速度方面要明显低于真正的另非易失性FPGA。
[0008]美国专利号US 7,190,190 BI 公开了 “PROGRAMMABLE LOGIC DEVICE WITHON-CHIP NONVOLATILE USER MEMORY”,该文件的所公开的技术内容可参见图1、2。图1中,展示了该专利的主要的创新点;可编程器件中包括一个用户定义的可编程逻辑部分(602)和一个非易失性的存储器部分(606)。非易失性的存储器部分包括一个存储可编程逻辑数据的部分及一个存储用户数据的部分。用户数据可由用户的可编程逻辑部分来读写。而实现这个功能是因为非易失性的存储器阵列有两个接口:一个接口可联接可编程逻辑数据的部分,而第二个接口可联接用户数据的部分。
[0009]在图2中,展示了用户实现对用户数据的部分的存储器进行读写操作的方式。其特点是有移位寄存器(Shift Register)分别控制地址(824)及数据(Data Register 828);一行一行的将数据写入和读出,且以往的片上非易失性存储器操作都是传统的移位寄存器方式,这种移位寄存器方式的数据写入与读出是一行一行的,无法实现“跳转”。
【发明内容】
[0010]为了克服上述现有技术的不足,本发明的提出一种使用方便、成本低且布局灵活的带有片上用户非易失性存储器的可编程逻辑器件。
[0011]为了实现上述目的,本发明的技术方案为:
一种带有片上用户非易失性存储器的可编程逻辑器件,包括:
可编程逻辑阵列,是用户定义的可编程逻辑阵列,包括SRAM阵列和逻辑接口 ;SRAM阵列用于存储外部的编程数据并对可编程逻辑阵列进行实时控制,以使其形成用户定义逻辑,实现用户的功能;
非易失性存储器,包括一个或多个存储可编程逻辑数据和一个或多个存储用户数据;该非易失性存储器只有一个接口,非易失性存储器通过该与编程控制器连接;
编程控制器,通过数据总线及地址总线和对应的控制信号对非易失性存储器进行读写;编程控制器还与用户定义的可编程逻辑阵列连接,实现用户定义逻辑对用户数据的随机读写。
[0012]上述可编程逻辑器件中包括一个用户定义的可编程逻辑部分和片上一个非易失性存储器部分。非易失性存储器只有一个接口,由专门的编程控制器连接。通过这一个接口可管理整个非易失性存储器。非易失性存储器包括一个或多个存储可编程逻辑数据的部分和一个或多个存储用户数据的部分;在具体设置过程中它们的位置没有任何限制;用户数据可由用户的可编程逻辑部分来读写。
[0013]对整个非易失性存储器的读写由编程控制器通过数据总线及地址总线和相应的控制信号来实现。编程控制器连接用户定义的可编程逻辑部分来方便用户逻辑对用户数据的随机读写。
[0014]与现有技术相比,本发明的有益效果为:
I)用户可以使用片上(可编程逻辑器件)的非易失性存储器。其采用了随机存储单元的访问方式,大大方便了用户的使用,并使可存储的数据类型远远超过了现有技术,如可存储并执行CPU的程序代码。
[0015]2)使用一个接口访问片上非易失性存储器的方式,大大简化了芯片设计,有效的降低了芯片成本。
[0016]3)片上(可编程逻辑器件)非易失性存储器各种数据的位置不受限制,方便了芯片整体设计及布局的灵活性。可节省芯片的面积而降低生产成本。
【附图说明】
[0017]图1、2为现有技术的结构示意图。
[0018]图3为本发明的整体架构图。
[0019]图4为一个典型FPGA逻辑阵列架构图。
[0020]图5为一个典型FPGA逻辑阵列架构图。
[0021]图6为非易失性存储器的接口示意图。
[0022]图7为用户逻辑与编程控制模块的接口意图。
【具体实施方式】
[0023]下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。
[0024]如图3,一种带有片上用户非易失性存储器的可编程逻辑器件,包括:
可编程逻辑阵列,是用户定义的可编程逻辑阵列,包括SRAM阵列和逻辑接口 ;SRAM阵列用于存储外部的编程数据并对可编程逻辑阵列进行实时控制,以使其形成用户定义逻辑,实现用户的功能;
非易失性存储器,包括一个或多个存储可编程逻辑数据和一个或多个存储用户数据;该非易失性存储器只有一个接口,非易失性存储器通过该与编程控制器连接;
编程控制器,通过数据总线及地址总线和对应的控制信号对非易失性存储器进行读写;编程控制器还与用户定义的可编程逻辑阵列连接,实现用户定义逻辑对用户数据的随机读写。
[0025]在非易失性存储器中的用户数据可对片上(可编程逻辑器件)的SRAM阵列中存储单元在上电时自动初始化。
[0026]在本实施方式中,非易失性存储器是但不限于E2PROM、快闪存储器、FRAM或一次性可写存储器OTP。
[0027]图3展示了可编程器件中