一种灵活的包含嵌入式存储器的FPGA结构
1.引言
传统上 FPGA只能实现相对较小的逻辑电路,随着工艺技术的提高, FPGA的容量和性能也不断提高,如今 FPGA已经被用于实现大的逻辑电路甚至整个系统。这些大的系统相对于传统上一直作为 FPGA市场目标的小逻辑分支电路有着很大的不同。其中一个最重要的不同就是这些大的系统中包含存储器。所以,要有效的在 FPGA中实现存储器,结构的支持至关重要。包含大的存储器阵列的 FPGA芯片已经有生产商推出,例如 Xilinx和 Altera。
然而,多数学术性的 FPGA CAD工具只针对于同质的 FPGA,即只包含逻辑模块和布线资源的 FPGA。本文中我们提出了一种灵活的包含嵌入式存储器的 FPGA的结构以及一种建立RRG(布线资源图)的方法。在 FPGA的研究中,我们通常用实验的方法来评估新结构特性的实用性。因此,我们需要灵活的 CAD工具来对多种结构进行比较。 VPR即是这种类型的 FPGA CAD工具,它适用于多种 FPGA结构。我们开发了一种新的布局布线工具, VA。它增强了 VPR的功能,使得 VPR可以有效地处理包含嵌入式存储器的 FPGA结构,而且保证了其灵活性。
2.结构
包含嵌入式存储器的 FPGA结构如图 1所示。整个 FPGA由四种基本资源构成,逻辑模块,I/O模块,布局布线模块和存储器模块。每个存储器模块的存储容量是固定的,但是用户可以对存储器模块进行配置,以实现不同长宽比的存储器。我们假设存储器模块在整个 FPGA芯片中按列排放,如同 Xilinx公司的 Spartan-3系列 FPGA。存储器模块的列数,每列存储器所处的位置、每列存储器模块包含的存储器模块数目以及每列存储器模块中第一个存储器模块的起始物理位置都会在结构描述文件中定义,我们将在 3.1中详细讨论。
图 2所示为我们的 FPGA布线结构,这是一种岛式结构。逻辑模块周围围绕了布线通道。每个逻辑模块的输入或输出引脚可以通过一个由可配置开关组成的连接模块与靠近它的通道中的 8条连线相连。在每一个垂直通道和水平通道交叉处有一个开关模块。开关模块给每条输入信号线提供了三个可能的连接选择。同逻辑模块相同,存储器模块也通过连接模块与逻辑布线相连。在文献 [4]中, S. J. E Wilton等人把模块的灵活性定义为 Fm,即每个存储器引脚可以连接的连线的数目。在图 2中的结构中, Fm=3。Fm的最小值是 1,最大值为 V,这里的 V值即每个布线通道中的连线数目。从存储器模块和逻辑模块之间的连接结构可以清楚的看到,每个存储器模块的引脚可以安排在模块四周,同邻近的布线通道连接。
3.具体实现方式
存储器模块相对于逻辑模块,有一些不同之处,例如模块引脚的分布方式、模块高度等,这使得 RRG的设计非常复杂。在这一部分中,我们将讨论一种简单而且灵活的 RRG设计方法。我们的 RRG设计方法基于 VPR,但是我们作了一些改进使其能够处理包含嵌入式存储器的 FPGA的布线问题。
评论