一种灵活的包含嵌入式存储器的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值即每个布线通道中的连线数目。从存储器模块和逻辑模块之间的连接结构可以清楚的看到,每个存储器模块的引脚可以安排在模块四周,同邻近的布线通道连接。
500)this.style.width=500;" border="0" />
3.具体实现方式
存储器模块相对于逻辑模块,有一些不同之处,例如模块引脚的分布方式、模块高度等,这使得 RRG的设计非常复杂。在这一部分中,我们将讨论一种简单而且灵活的 RRG设计方法。我们的 RRG设计方法基于 VPR,但是我们作了一些改进使其能够处理包含嵌入式存储器的 FPGA的布线问题。 [!--empirenews.page--]
3.1结构描述
VPR用布线结构描述语言定义 FPGA的布线结构【 5】。VPR通过一个内部的“结构产生器”来产生 RRG。我们扩展了布线结构描述语言来定义包含嵌入式存储器的 FPGA的布线结构,然后我们改进了 VPR的结构产生器以适应这些扩展。
由于嵌入式存储器模块的存在,我们对布线结构描述语言的扩展主要包括:(1)存储器模块的列数,(2)每列存储器模块的相对位置,(3)存储器模块输入和输出引脚的 Fm值,(4)每列存储器模块中的存储器模块数目,(5)每列存储器模块中第一个存储器模块的起始位置,
(6)存储器模块的高度,(7)存储器模块输入输出引脚的数目,(8)存储器模块每个输入或输出引脚对应的边( side)和群( cluster),例如如图 2所示的 FPGA结构中,存储器模块的左边和右边共有 3个群,因为存储器模块的高度是 3个逻辑模块的高度,而上下两边只有一个群。(9)每个存储器模块中的组合逻辑电路延迟和时序电路延时。
500)this.style.width=500;" border="0" />
图 3所示为一个描述包含嵌入式存储器的 FPGA布线结构的文件的一部分,其中逻辑模块由一个 4输入的查找表和一个寄存器构成。图 1和图 2示出了这种 FPGA的结构。VA产生的文件要满足图 3定义的结构,其中需要的布线通道宽度为 5,即 5条连线。这些描述 FPGA结构的图形都是由我们的 VA产生。图 1示出了整个 FPGA的结构,这种情况下,整个 FPGA包含 9x9个逻辑模块,周围围绕 I/O模块。黄色所示的为两列存储器模块,每个存储器模块跨越 3个逻辑模块的高度。图 2所示仅为 FPGA近距离结构的一部分,这样我们能清楚的看到布线结构。黑色线表示布线资源,小的蓝红色矩形分别表示模块的输入和输出引脚,绿色的连线代表连接开关。
3.2布线资源图
虽然上述所列的结构参数使得 FPGA的结构很容易就可以定义,但是对于布线器来说它并不是一个合适的表达方法。在 RRG中,连线、逻辑模块的引脚以及存储器模块的引脚都被表示为节点,开关被表示为连接两个节点的边。
如前所述,我们对 VPR的结构产生器作了改进以建立包含嵌入式存储器的 FPGA的 RRG。由于存储器模块在 Y方向跨越多个逻辑模块,这就使得在 RRG中插入存储器模块的引脚变得复杂,同时连接从存储器模块输出引脚到连线以及从连线到存储器输入引脚的边也更加复杂。但幸运的是如图 2所示,存储器模块的存在并不破坏布线通道的分布。为了方便建立 RRG,我们增加了虚构存储器模块的定义,在建立 RRG的过程中,存储器模块的位置由它的起始位置来表示。剩余的其它被占领的逻辑块位置被分配给虚构存储器模块。当在建立 RRG对所有模块进行扫描的时候,我们对存储器模块以及虚构存储器模块的处理方法和对逻辑块的处理方法是一样的。通过这样的方法,我们简化了创建异质 FPGA布线资源图的过程。
4.结论
本文中,我们提出了一种包含嵌入式存储器的 FPGA的灵活结构以及一种建立 RRG的简化方法。我们对 VPR进行了改进,扩展了其功能,使得它可以处理包含嵌入式存储器的 FPGA结构,同时保持了原有的灵活性。而 VPR原有的布局布线算法完全适用于我们的 FPGA结构。我们继承 VPR的方法来描述包含嵌入式存储器的 FPGA结构,并且扩充了 VPR的自动结构描述器功能。
纵观整个工作,我们着重处理包含嵌入式存储器模块的 FPGA结构,我们假设存储器模块按列排放。我们的这种结构不仅适用于存储器模块,同时也适用于其他的按列排放的功能模块,例如 Spartan-3系列 FPGA中的乘法器模块以及 Stratix系列 FPGA中的 DSP模块。
本文作者创新观点:本文中,我们提出了一种灵活的包含嵌入式存储器的 FPGA结构以及一种建立 RRG的简化方法。我们对 VPR进行了改进,扩展了其功能,使得它可以处理包含嵌入式存储器的 FPGA结构,同时保持了原有的灵活性。