使用可编程装置的存储器控制的方法及设备的制作方法

文档序号:7520301阅读:177来源:国知局
专利名称:使用可编程装置的存储器控制的方法及设备的制作方法
技术领域
本发明的实施例涉及存储器控制。更确切地说,本发明的实施例涉及使用可编程装置的存储器控制。
背景技术
可编程逻辑装置(PLD)是一类众所周知的集成电路,其可经编程而执行指定的逻辑功能。一种类型的PLD,现场可编程门阵列(FPGA),通常包含可编程瓦片阵列。这些可编程瓦片可包含例如输入/输出块(IOB)、可配置逻辑块(CLB)、专用随机存取存储器块 (BRAM)、倍增器、数字信号处理块(DSP)、处理器、时钟管理器、延迟锁定环(DLL)等等。每一可编程瓦片通常包含可编程互连件及可编程逻辑两者。可编程互连件通常包含许多个不同长度的互连线,其通过可编程互连点(PIP)相互连接。可编程逻辑使用可编程元件来实施用户设计的逻辑,可编程元件可包含例如函数产生器、寄存器、算术逻辑等寸。通常通过将配置数据流加载到内部配置存储器单元中来编程可编程互连件及可编程逻辑,所述内部配置存储器单元界定如何配置可编程元件。可从存储器(例如从外部 PR0M)读取配置数据,或者通过外部装置将配置数据写入FPGA中。于是,各个存储器单元的集体状态决定FPGA的功能。另一种类型的PLD是复合可编程逻辑装置,或CPLD。CPLD包含两个或两个以上“功能块”,其通过互连开关矩阵连接在一起,并连接到输入/输出(1/0)资源。CPLD的每一功能块包含类似于可编程逻辑阵列(PLA)及可编程阵列逻辑(PAL)装置中使用的两级与/或 (AND/0R)结构的两级与/或结构。在CPLD中,通常在非易失性存储器中以在芯片上的方式存储配置数据。在一些CPLD中,在非易失性存储器中以在芯片上的方式存储配置数据,接着作为初始配置(编程)序列的一部分将所述配置数据下载到易失性存储器。对于所有这些可编程逻辑装置(PLD),通过提供到所述装置以用于所述用途的数据位来控制装置的功能性。可将所述数据位存储在易失性存储器(例如,静态存储器单元, 如在FPGA及一些CPLD中)中、非易失性存储器(例如,快闪存储器,如在一些CPLD中)中, 或任何其它类型的存储器单元中。
4
通过应用处理层(例如金属层)来编程其它PLD,所述处理层以可编程的方式使装置上的各个元件互连。这些PLD称为掩模可编程装置。还可用其它方式来实施PLD,例如使用熔丝或反熔丝技术。术语“PLD”及“可编程逻辑装置”包含但不限于这些示范性装置,而且涵盖仅部分可编程的装置。举例来说,一种类型的PLD包含硬编码晶体管逻辑与可编程开关结构的组合,所述可编程开关结构用可编程方式使硬编码晶体管逻辑互连。PLD装置内的可编程开关结构可能需要将数据传送到PLD外部的存储器装置或从所述储器装置传送数据,且其可能有益于提供存储器控制器以将PLD内的电路介接到外部存储器装置。一种方法是在PLD外部提供作为独立装置的存储器控制器。另一种方法是实行PLD的现场编程,使得在现场编程期间,在PLD内从通用电路组件产生存储器控制器。虽然这些现有的方法对于其既定用途来说大体上已经足够,但其并非在所有方面均完全令人满意。

发明内容
本发明的一个实施例涉及一种设备,所述设备包含具有可编程电路的装置,所述可编程电路在被现场编程之前包含专用的存储器控制器电路。本发明的另一实施例涉及一种方法,所述方法包含制造一装置,其中所述制造包含形成可编程电路,所述可编程电路在被现场编程之前包含专用的存储器控制器电路。


图1是包含若干不同类型的可编程逻辑块的高级现场可编程门阵列(FPGA)架构的图解视图。图2是另一 FPGA架构的图解视图,所述FPGA架构是图1的FPGA的替代实施例, 且使用与其相同的总体架构,且所述FPGA架构包含若干不同类型的可编程逻辑块。图3是含有FPGA的集成电路的图解俯视图,所述FPGA是图1及图2的FPGA的替代实施例,且包含专用的存储器控制器电路。图4是绘示图3的FPGA的选定部分的高级框图,且绘示了在集成电路及FPGA外部的存储器装置。图5是绘示图3的集成电路的若干物理连续区段或块的图,其绘示了这些块中的每一者内存在的FPGA的一些电路。图6是图3的集成电路的物理连续区段或块的阵列的图解俯视图。图7是图3的集成电路的细长区的图解俯视图。图8到图13是更详细且用放大标度绘示图7的细长区的相应片段的图解俯视图。
具体实施例方式图1是包含若干不同类型的可编程逻辑块的高级现场可编程门阵列(FPGA)架构 100的图解视图。举例来说,图1中的FPGA架构100具有许多个不同的可编程瓦片,包含多千兆位收发器(MGT) 101、可配置逻辑块(CLB) 102、随机存取存储器块(BRAM) 103、输入/输出块(IOB) 104、配置及计时逻辑(C0NFIG/CL0CK) 105、数字信号处理块(DSP) 106、专用输入 /输出块(I/O) 107 (例如,配置端口及时钟端口),以及其它可编程逻辑108,例如数字时钟管理器、模/数转换器、系统监视逻辑等等。FPGA 100还包含专用处理器块(PROC) 110。在FPGA 100中,每一可编程瓦片包含可编程互连元件(INT) 111,其具有去往及来自每一邻近瓦片中的对应互连元件的标准化连接。因此,所述可编程互连元件在一起实施所说明的FPGA的可编程互连结构。可编程互连元件(INT) 111还包含去往及来自同一瓦片内的可编程逻辑元件的连接,如图1上部所包含的实例所示。举例来说,CLB 102可包含可配置逻辑元件(CLE) 112,其可经编程以实施用户逻辑加上单个可编程互连元件(INT) 111。除了一个或一个以上可编程互连元件之外,BRAM 103还可包含BRAM逻辑元件(BRL)113。通常,瓦片中包含的互连元件的数目取决于瓦片的高度。在图示的实施例中,BRAM瓦片的高度与五个CLB的高度相同,但也可使用其它数目 (例如四个)。除了适当数目个可编程互连元件之外,DSP瓦片106还可包含DSP逻辑元件 (DSPL) 114。除了可编程互连元件(INT)Ill的一个例子外,IOB 104还可包含例如输入/输出逻辑元件(IOL) 115的两个例子。所属领域的技术人员将容易了解,例如连接到I/O逻辑元件115的实际I/O垫通常并不被局限于输入/输出逻辑元件115的区域。在图示的实施例中,裸片(图1中以阴影绘示)的中心附近的列区域用于配置、时钟及其它控制逻辑。从此列延伸的水平区域109用于在FPGA的宽度上分布时钟及配置信号。在其它实施例中,配置逻辑可位于FPGA裸片的不同区域中,例如在裸片的隅角中。利用图1中所说明的架构的一些FPGA包含额外逻辑块,其扰乱构成FPGA的较大部分的规则列结构。额外的逻辑块可为可编程块及/或专用逻辑。举例来说,图1所示的处理器块PROC 110跨越CLB及BRAM的若干个列。图1说明一个示范性FPGA架构。举例来说,列中的逻辑块的数目、列的相对宽度、 列的数目及次序、列中所包含的逻辑块的类型、逻辑块的相对大小、逻辑块在阵列内的位置及图1上部所包含的互连件/逻辑实施方案纯粹是示范性的。在实际的FPGA中,凡在出现 CLB的位置,通常都包含一个以上邻近的CLB列,以促进用户逻辑的高效实施,但邻近CLB列的数目随FPGA的总大小而变。图2是另一 FPGA架构200的图解视图,FPGA架构200是图1的FPGA的替代实施例,且使用与其相同的总体架构,且FPGA架构200包含若干不同类型的可编程逻辑块。图2 的FPGA 200包含CLB 202,BRAM 203、分成“ I/O组”204 (每一者包含40个I/O垫及附带的逻辑)的I/O块、配置及计时逻辑205、DSP块206、时钟I/O 207、时钟管理电路(CMT) 208、 配置I/O 217以及配置及时钟分布区域209。在图2的FPGA 200中,示范性CLB 202包含单个可编程互连元件(INT) 211及两个不同的“切片”切片L(SL)212及切片M(SM)213。在一些实施例中,所述两个切片是相同的(例如,切片L的两个复本,或切片M的两个复本)。在其它实施例中,所述两个切片具有不同能力。在一些实施例中,一些CLB包含两个不同的切片,且一些CLB包含两个类似的切片。举例来说,在一些实施例中,一些CLB列仅包含具有两个不同切片的CLB,而其它CLB 列仅包含具有两个类似切片的CLB。图3是作为含有FPGA 230的集成电路225的设备的图解俯视图。FPGA230是图 1的FPGA 100及图2的FPGA 200的替代实施例。FPGA 230包含FPGA结构235,其实施于集成电路225的中心区236中。FPGA结构235包含多个现场可编程瓦片,例如瓦片237及 238,其是上文结合图1及图2而论述的类型。
集成电路225包含位于中心区236的一侧上的细长矩形区240及Ml,及位于中心区的相对侧上的细长矩形区242及对3。细长区240包含输入/输出(I/O)区251、252 及253,以及安置于I/O区251与252之间的锁相环(PLL)区255。细长区242包含I/O区 261、262及沈3,以及安置于I/O区261与262之间的锁相环(PLL)区沈5。多个IOB (图3 中未图示)实施于I/O区251到253及261到沈3中的每一者中。IOB中的每一者类似于上文结合图1而论述的IOB 104,且包含I/O接收器及驱动器电路。PLL电路267及268分别实施于PLL区域255及沈5中。PLL电路267及268提供稳定的时钟信号。集成电路225还具有时钟分布区域,其包含多个细长时钟分布片段270到279。时钟分布片段270安置于细长区240与241之间。时钟分布片段271安置于细长区242与243 之间。时钟分布片段272到275大致垂直于时钟分布片段270,且沿着时钟分布片段270在隔开位置处与时钟分布片段270相交。细长区Ml的隔开部分与时钟分布片段272到275 的部分重叠。时钟分布片段276到279大致垂直于时钟分布片段271,且沿着时钟分布片段 271在隔开位置处与时钟分布片段271相交。细长区M3的隔开部分与时钟分布片段276 到279的部分重叠。时钟总线(未说明)实施于时钟分布片段270到279内。PLL电路267电耦合到实施于时钟分布片段270及272到275内的时钟总线,使得可通过所述时钟总线来传输由 PLL电路267提供的时钟信号。PLL电路沈8电耦合到实施于时钟分布片段271及276到 279内的时钟总线,使得可通过所述时钟总线来传输由PLL电路268提供的时钟信号。以此方式,由PLL电路267及268提供的相应时钟信号通过时钟总线分布到集成电路225的各个区。FPGA 230包含两个专用的存储器控制器电路,其是分开且独立的。存储器控制器电路在FPGA的现场编程之前存在,且便于在FPGA结构230与相应的外部存储器装置(图3 中未图示)之间传送数据。此处,存储器控制器电路中的一者实施于细长区Ml中不与时钟分布片段272到275重叠的部分,且几乎相同的存储器控制器电路实施于细长区M3中不与时钟分布片段276到279重叠的部分。为了简单清晰起见,将仅详细描述这两个存储器控制器电路中的一者。确切地说,下文将更详细地论述实施于细长区Ml内的存储器控制器电路的操作及物理配置。图4是绘示FPGA结构235、外部存储器装置285及存储器控制器电路四0的高级框图,所述存储器控制器电路是FPGA 230的一部分,且实施于细长区Ml (图3)内。FPGA 结构235可经编程以包含八个电路部分293到300,其各自包含上文结合图1及图2而论述的类型的两个可编程瓦片;以及包含十六个这种可编程瓦片的电路部分313。联合工作的电路部分293到300及313可通过存储器控制器电路四0向存储器装置285传送数据及将数据传送到存储器装置观5。电路部分293到300及313将仅在FPGA 230 (图幻被现场编程时形成。因此,FPGA结构235中的电路部分的具体配置可变化,且图4的电路部分293 到300及313仅代表一种可能的配置,且仅出于示范性目的而绘示。存储器装置285是此项技术中已知的常规存储器装置,符合例如双倍数据速率(DDR、DDR2、DDR3或LPDDR(移动 DDR))等标准。然而,其也可为其它某种类型的存储器装置。存储器控制器电路290包含控制部分或区段301、接口部分314及数据存储部分315。控制部分301耦合到FPGA结构235的电路部分313、数据存储部分315及接口部分314。控制部分301包含命令存储部分302。命令存储部分302具有八个命令端口 303 到310,其存储来自FPGA结构235的命令。供应到命令端口 303到310的命令要求在FPGA 结构235与存储器装置285之间传送数据。八个命令端口 303到310是分开的,且通过多个信号总线耦合到FPGA结构235的电路部分313,所述信号总线累计包含400条以上信号线。控制部分301包含额外电路,其与命令存储部分302联合工作以控制存储器控制器电路290及存储器装置285的操作。接口部分314耦合到控制部分301、数据存储部分315及存储器装置285。接口部分314包含24个接口区段320到343,其中的三个可在图4中在320、321及343处看到。 接口区段320到343各自含有便于在存储器控制器电路290与存储器装置285之间传送控制及数据信号的电路,且因此也可称为I/O区段。举例来说,接口区段320到343中的每一者包含两个IOB 104 (图1)。下文中将更详细地论述接口区段320到343。数据存储部分315包含八个现场可编程且可独立配置的数据端口区段(数据端口)350到357,且耦合到控制部分301、接口部分314及FPGA结构235。具体地说,8位端口启用信号总线358将数据端口 350到357耦合到控制部分301,且八个68位信号总线分别将电路部分293到300耦合到数据端口 350到357。在八个68位信号总线中的每一者中, 68个位中的32个用于存储器读取操作,68个位中的另外32个用于存储器写入操作,且68 个位中的其余4个用于掩蔽操作。下文中将更详细地论述存储器读取及写入操作。掩蔽操作不是本发明的重点,因此本文中不予论述。数据端口 350到357中的每一者包含用于临时存储从FPGA结构235行进到存储器装置285或从存储器装置行进到FPGA结构的数据的电路。具体地说,数据端口 350到357 各自包含充当存储元件的先入先出(FIFO)存储装置。在所揭示的实施例中,每一 FIFO存储装置可存储至多达64个字,其各自为32个位,但这些存储装置也可具有其它某种配置。 数据端口 350到357可各自通过用户现场编程来配置,以将数据供应到FPGA结构235或从所述结构接收数据。在现场编程之后,穿过数据端口 350到357中的每一者的数据流是单向的。数据端口 350到357分别对应于命令端口 303到310。如上文所提到,数据端口 350到357是分开且可独立配置。从FPGA结构235的角度来看,电路部分293到300中的每一者设有独立且分开的接口,所述接口是命令端口 303 到310中的一者与数据端口 350到357中的一者的组合。举例来说,电路部分293设有作为命令端口 303与数据端口 350的组合的接口,电路部分300设有作为命令端口 310与数据端口 357的组合的接口。然而,电路部分293到300不直接与命令端口 303到310通信。 实情为,电路部分293到300与电路部分313通信,电路部分313又与命令端口 303到310 通信。电路部分293到300可各自不知晓其它电路部分的存在及操作,或者不知晓除其自身以外的其它电路部分的接口的存在及操作。举例来说,电路部分293可不知道数据端口 351到357及命令端口 304到310的存在,且可表现得仿佛通过其自身由数据端口 350及命令端口 303以形成的接口而“拥有”整个存储器控制器电路290。同时,电路部分300可不知道数据端口 350到356及命令端口 303到309的存在,且因此可不知道其在与数据端口 357及命令端口 310通信时,电路部分293可能同时在与数据端口 350及命令端口 303通信。此分开且可独立配置的接口的布置可称为多接口结构,或以从接口也可各自被视为一种端口的形式的角度来看而称为多端口结构。
8
存储器接口 370存在于存储器控制器电路290与存储器装置285之间。存储器接口 370包含使存储器控制器电路290与存储器装置285耦合的电导体。各种行业标准信号, 包含上述控制及数据信号,行进穿过存储器接口 370。表1提供这些信号的列表。表 权利要求
1.一种设备,其包括具有可编程电路的装置,所述可编程电路在被现场编程之前包含专用的存储器控制器电路。
2.根据权利要求1所述的设备,其中所述装置包含实施所述电路的集成电路,且所述存储器控制器电路包含多个单独的电路区段,所述电路区段在所述集成电路内彼此物理隔开,所述多个电路区段是以下各项中的一者多个数据端口区段,其临时存储相对于所述存储器控制器电路所传送的数据;多个接口区段,其促进相对于所述存储器控制器电路的数据传送;以及多个现场可编程互连区段,其选择性地路由电信号,且是共用互连结构的相应部分。
3.根据权利要求1所述的设备,其中所述电路包含互连结构,其具有第一、第二及第三现场可编程互连区段,所述现场可编程互连区段中各自具有路由电路,所述路由电路响应于现场编程而路由电信号,所述第一互连区段硬连线到所述存储器控制器电路,其中所述第一互连区段在经过现场编程之后具有以下配置中的一者所述第一互连区段内的所述路由电路在所述存储器控制器电路与所述第二互连区段之间传送电信号;以及所述第一互连区段内的所述路由电路通过所述第一互连区段在所述第二互连区段与第三互连区段之间传送电信号,而旁路所述存储器控制器电路。
4.根据权利要求1所述的设备,其中所述装置包含实施所述电路的集成电路,所述集成电路具有在其内实施所述存储器控制器电路的细长区,所述存储器控制器电路沿所述细长区分布。
5.根据权利要求4所述的设备,其中所述电路包含 时钟产生电路,其产生时钟信号;以及时钟总线,其运载所述时钟信号;且其中所述存储器控制器电路耦合到所述时钟总线。
6.根据权利要求5所述的设备,其中所述集成电路具有时钟分布区,所述时钟总线延伸穿过所述时钟分布区; 其中所述细长区的部分以使得所述细长区具有重叠区及不重叠区的方式被所述时钟分布区域重叠;其中所述重叠区通过所述不重叠区中的至少一者而分离;且其中所述存储器控制器电路实施于所述不重叠区中。
7.根据权利要求1所述的设备,其中所述装置包含实施所述电路的集成电路,所述集成电路具有多个块;且其中所述存储器控制器电路包含多个电路区段,所述电路区段中的每一者实施于所述块中的相应一者内。
8.根据权利要求7所述的设备,其中所述电路包含互连结构,所述互连结构具有多个现场可编程互连区段,以选择性地路由电信号,所述互连区段中的每一者实施于所述块中的相应一者中,且耦合到所述块中的所述电路区段。
9.根据权利要求7所述的设备,其中所述电路具有存储器接口,其耦合到所述存储器控制器电路,且运载相对于所述存储器控制器电路的数据传送,且其中所述电路区段中的每一者是以下各项中的一者接口区段,其具有促进穿过所述存储器接口的数据传送的接口电路;数据端口区段,其具有临时存储穿过所述存储器接口的数据传送中所涉及的数据的存储元件;以及控制区段,其具有控制所述存储器控制器电路的操作的电路。
10.一种方法,其包括制造一装置,所述制造包含在可编程电路被现场编程之前形成包含专用的存储器控制器电路的所述可编程电路。
11.根据权利要求10所述的方法,其中所述形成所述电路包含在集成电路中实施所述电路,且所述实施包含在所述存储器控制器电路中实施多个单独的电路区段,所述形成所述电路区段是以使得所述电路区段在所述集成电路内彼此物理隔开的方式实行,且所述形成所述电路区段包含以下各项中的一者形成多个数据端口区段,其临时存储相对于所述存储器控制器电路所传送的数据,且各自位于所述电路区段中的相应一者中形成多个接口区段,其促进相对于所述存储器控制器电路的数据传送,且各自位于所述电路区段中的相应一者中;以及形成多个现场可编程互连区段,以选择性地路由电信号,所述现场可编程互连区段是共用互连结构的相应部分,且各自位于所述电路区段中的相应一者中。
12.根据权利要求10所述的方法,其中所述形成所述电路包含在具有多个块的集成电路中实施所述存储器控制器电路,所述存储器控制器电路具有多个电路区段,其各自实施于所述块中的相应一者中;以及形成具有多个现场可编程互连区段的互连结构,所述现场可编程互连区段选择性地路由电信号,所述形成所述互连结构是以使得所述互连区段中的每一者实施于所述块中的相应一者中且硬连线到所述块中的所述电路区段的方式来实行。
13.根据权利要求10所述的方法,其进一步包含形成具有现场可编程的第一、第二及第三互连区段的互连结构,所述互连区段中各自具有路由电路;现场编程所述路由电路;以及响应于所述现场编程而使用所述路由电路来路由电信号。
14.根据权利要求13所述的方法,其中所述形成所述互连结构包含将所述第一互连区段硬连线到所述存储器控制器电路;且其中所述编程所述路由电路致使所述路由电路引起以下各项中的一者通过所述第一互连区段在所述存储器控制器电路与所述第二互连区段之间传送电信号;以及通过所述第一互连区段在所述第二互连区段与第三互连区段之间传送电信号,而旁路所述存储器控制器电路。
15.根据权利要求10所述的方法,其中所述形成所述电路包含在具有细长区的集成电路中实施所述电路,所述存储器控制器电路实施于所述细长区内;以及沿着所述细长区分布所述存储器控制器电路。
全文摘要
本发明提供一种用于在具有可编程电路(230)的装置(225)中进行存储器控制的技术,其包含在现场编程所述可编程电路之前先在所述装置中提供专用的存储器控制器电路(290)。另一种技术涉及制造装置(225),其中所述制造涉及在可编程电路(230)被现场编程之前先形成包含专用的存储器控制器电路(290)的所述可编程电路。
文档编号H03K19/177GK102301599SQ201080006091
公开日2011年12月28日 申请日期2010年1月27日 优先权日2009年1月31日
发明者亚丹·伊尔金斯, 伟恩·E·温尼卡普, 史帝芬·E·麦尼尔, 密克黑尔·A·沃夫, 汤玛斯·H·史塔德, 舒伊勒·E·徐玛尼克, 裘·E·雷巴, 钦丹柏·R·库尔卡尼 申请人:吉林克斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1