一种用于fpga结构设计的系统及其方法

文档序号:6489319阅读:134来源:国知局
一种用于fpga结构设计的系统及其方法
【专利摘要】本发明公开了一种用于FPGA结构设计的系统及其方法,属于微电子领域中集成电路设计和电子设计【技术领域】。该系统包括结构参数编辑模块、详细结构生成模块、局部结构调整模块和全自动结构评估模块。本发明能降低FPGA结构设计的复杂度,提高设计的灵活性,全自动的设计流程可帮助结构设计师快速轻松地设计出性能优异的FPGA结构。
【专利说明】—种用于FPGA结构设计的系统及其方法
【技术领域】
[0001]本发明属于微电子领域中集成电路设计和电子设计【技术领域】,特别涉及一种用于FPGA结构设计的系统及其方法。
【背景技术】
[0002]FPGA (Field Programmable Gate Array,现场可编程门阵列)是一种半定制通用性器件,用户可通过对其编程来实现所需的逻辑功能。FPGA硬件结构直接决定了 FPGA的性能优劣,而设计出一个优秀的FPGA硬件结构是一项非常具有挑战性的工作,因为FPGA包含众多结构参数,这些参数之间的相互影响关系非常复杂,它们共同决定了电路的速度和面积。因此,需要从全局考虑所有结构参数,选取足够多的有代表性的基准电路在所研究的每种FPGA结构上进行实现,并在布局布线之后得出电路的关键路径延时和所需要的面积。统计结果同时考虑面积、延时,或者包括功耗等其它参数,从中选取这些参数组合性能最好的结构,进行版图生成和流片。
[0003]一种生成FPGA结构的方法是通过手工建立一个布线资源图来详细确定逻辑块之间的互连资源,这种方法具有一定的灵活性,但是并不可行,一个描述包含8000个4输入LUT (Look Up Table,查找表)的典型布线资源图大小将高达30MB。另一种可能是人工设计一个基本单元块,它包含一个逻辑块和周围的布线资源。通过程序自动复制和连接这种基本单元块来描述完整的FPGA布线资源图。但是这种方法依然耗时太大,典型的基本单元块包含数百个编程开关和互连线,需要花费数小时甚至数天的时间来描述。而且这种手工描述的基本单元块只能实现某一特定的布线通道高度值W,灵活性差。
[0004]当前普遍流行的做法是用比较抽象的FPGA结构描述语言来描述FPGA较高层次的结构,这种语言的语法规则不固定,具体语法规则需要根据所使用的EDA (ElectronicDesign Automatic,电子设计自动化)工具来确定。一种做法是限定了所有代码与开关模式的交互接口为FcO和F s O这两个例程,通过修改这两个例程可以在不同开关模式的FPGA上进行布线。另外一种是接受的输入为布线结构描述、逻辑块描述和结构详细规则,通过Xdp/ffireC电路图编辑器生成详细的FPGA结构,以供布局布线工具使用。还有一种是读入简要而容易理解的参数化结构描述文件,并采用内嵌的图形生成器产生详尽的布线资源图以供布线器和其它EDA工具使用。但是上述方法都只能基于某种FPGA结构模板来编辑结构描述文件,限定了设计的灵活性。

【发明内容】

[0005]本发明所要解决的技术问题是提供一种用于FPGA结构设计的系统及其方法,解决了现有技术中的FPGA结构设计工具设计灵活度不够、在编辑FPGA结构描述文件容易出错和不能调整FPGA局部结构的功能的技术问题。
[0006]为解决上述技术问题,本发明提供了一种用于FPGA结构设计的系统,包括结构参数编辑模块、详细结构生成模块、局部结构调整模块和全自动结构评估模块;[0007]其中,所述结构参数编辑模块,用于选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件;
[0008]所述详细结构生成模块,根据所述结构项目,读取所述FPGA结构参数,然后建立布线资源图,根据所述布线资源图,产生FPGA详细结构图;
[0009]所述局部结构调整模块,用于局部调整所述FPGA详细结构图,重新建立新布线资源图,根据所述新布线资源图,重新建立新FPGA详细结构图;所述全自动结构评估模块,用于对所述新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
[0010]进一步地,所述FPGA结构参数包括通用型结构参数和特有型结构参数。
[0011]进一步地,所述通用型结构参数包括编程结构的参数、配置阵列结构的参数、全局模块阵列的参数、输入输出模块阵列的参数、逻辑模块阵列的参数、存储器模块阵列的参数、乘法器模块阵列的参数、数字时钟模块阵列的参数、边界扫描模块阵列的参数、布线通道模块阵列的参数、开关模块阵列的参数、布线开关列表的参数、时序的参数或功耗的参数中的任种或几种。
[0012]进一步地,所述特有型结构参数包括封装结构的参数、芯片规模的参数或配置结构的参数中的任--种或几种。
[0013]一种用于FPGA结构设计的方法,包括如下步骤:
[0014]步骤101:选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件;
[0015]步骤102:根据所述结构项目,读取所述FPGA结构参数,然后建立布线资源图,根据所述布线资源图,产生FPGA详细结构图;
[0016]步骤103:局部调整所述FPGA详细结构图,重新建立新布线资源图,根据所述新布线资源图,重新建立新FPGA详细结构图;
[0017]步骤104:对所述新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
[0018]进一步地,在所述步骤101中,所述选定所需编辑的结构项目的方法是通过GUI向导图。
[0019]进一步地,在步骤102中,所述建立布线资源图的方法包括如下步骤:
[0020]分别获取所述FPGA结构内部的逻辑块与所述FPGA结构内部的互连线的连接关系和所述互连线与所述互连线之间的连接关系,然后建立布线资源图,根据所述布线资源图,产生所述FPGA详细结构图。
[0021]进一步地,在所述步骤103中,所述局部调整FPGA详细结构图的方法包括如下步骤中的任--步:
[0022]步骤1031:调整任一所述逻辑块的一个引脚所能连接的布线轨道数目;
[0023]步骤1032:调整所述FPGA详细结构图的开关模块的拓扑类型;
[0024]步骤1033:调整所述开关模块内的任一开关的类型和尺寸。
[0025]进一步地,在所述步骤104中,所述评估的方法包括如下步骤:
[0026]步骤1041:选择多个基准电路; [0027]步骤1042:对所述基准电路进行逻辑综合和工艺映射,得到包含寄存器和查找表的网表,然后将所述网表打包到所述逻辑块中;
[0028]步骤1043:使用布局布线器对所述基准电路进行布局和布线,在布局和布线过程中通过自动遍历所述FPGA结构参数的的值来迭代调用所述布局布线器;
[0029]步骤1044:当所述布局和布线结束后,提取所述基准电路在所述新FPGA详细结构图上使用的面积和关键路径延时,然后根据所述面积和所述关键路径延时,借助数据分析绘图工具得出面积延时积随所述FPGA结构参数的的值的改变而变化的趋势图,从所述趋势图中选出面积延时积最小的所述FPGA结构参数;
[0030]步骤1045:调整所述面积延时积最小的FPGA结构参数,从而对面积延时积最小的所述FPGA结构参数,找到所述面积延时积最小的FPGA结构参数的最佳值,将所述最佳值替换为所述面积延时积最小的FPGA结构参数,重新执行步骤1041至步骤1044,建立最优的FPGA详细结构图。
[0031]本发明提供的一种用于FPGA结构设计的系统及其方法,能降低FPGA结构设计的复杂度,提高设计的灵活性,全自动的设计流程可帮助结构设计师快速轻松地设计出性能优异的FPGA结构。
【专利附图】

【附图说明】
[0032]图1为本发明实施例提供的一种用于FPGA结构设计的系统结构示意图;
[0033]图2为本发明实施例提供的一种用于FPGA结构设计的方法步骤流程图。
【具体实施方式】
[0034]参见图1,本发明实施例提供的一种用于FPGA结构设计的系统,包括结构参数编辑模块、详细结构生成模块、局部结构调整模块和全自动结构评估模块;
[0035]其中,结构参数编辑模块,用于选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件;
[0036]详细结构生成模块,根据结构项目,读取FPGA结构参数,然后建立布线资源图,根据布线资源图,产生FPGA详细结构图;
[0037]局部结构调整模块,局部调整FPGA详细结构图中,然后建立布线资源图,根据布线资源图,产生FPGA详细结构图;
[0038]全自动结构评估模块,用于对新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
[0039]参见图2,一种用于FPGA结构设计的方法,包括如下步骤:
[0040]步骤101:选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件;
[0041](I)选定需要编辑的结构项目。
[0042]FPGA结构参数可分为通用型结构参数、特有型结构参数两大项。其中通用型结构参数包括:编程结构的参数、配置阵列结构的参数、全局模块阵列的参数、输入输出模块阵列的参数、逻辑模块阵列的参数、存储器模块阵列的参数、乘法器模块阵列的参数、数字时钟模块阵列的参数、边界扫描模块阵列的参数、布线通道模块阵列的参数、开关模块阵列的参数、布线开关列表的参数、时序的参数、功耗的参数等几大项;特有型结构参数包括:封装结构的参数、芯片规模的参数、配置结构的参数中的一种或几种。
[0043]在FPGA结构项目中,通过GUI (graphical user interface,用户图形界面)向导图选择需要编辑的项目。
[0044](2)在⑶I中设定FPGA结构参数。
[0045]步骤(I)中选定的结构项目在⑶I中以树形结构列出,每一项单独一页,以芯片规模项为例,该项包括FPGA中逻辑模块阵列、存储器模块阵列、乘法器模块阵列的列数和逻辑模块阵列的行数以及存储器模块阵列、乘法器模块阵列的高度。结构参数编辑页面列举了所有必须的FPGA结构参数,避免了参数的遗漏,同时提供了默认值,并允许修改。
[0046](3)生成XML格式或普通文本格式结构描述文件。
[0047]将步骤(I)和(2)编辑的所有结构参数组装在一起,生成普通文本格式结构描述文件;或者利用程序中内嵌的XML解析器,将结构描述文件保存为XML格式。
[0048]步骤102:根据步骤101生成的结构描述文件,读取FPGA结构参数,然后建立布线资源图,根据布线资源图,产生FPGA详细结构图;
[0049]布线资源图,用于记录FPGA中所有可用的连接,在布线阶段为布线器寻找合适路径提供选择;
[0050]在布线资源图中,金属线和逻辑块的各个端口用结点表示,开关用一条有向边(对于单向开关,如缓冲器)或一对有向边(对于双向开关,如传输管)表示。每个结点的容量是指在合法的布线结果中,一个结点所能容纳的不同线网的最大数目。由于金属线和逻辑块弓I脚只能被一个线网使用一次,所以结点的容量是I。
[0051]通过读取描述水平方向布线通道模块和垂直方向布线通道模块的结构参数获取FPGA结构内部的逻辑块与互连线的连接关系,通过读取描述开关模块阵列的结构参数获取FPGA结构内部的所有互连线与互连线的连接关系,从而建立布线资源图,根据布线资源图,产生FPGA详细结构图。
[0052]步骤103:在FPGA详细结构图中进行局部结构调整,重新建立新FPGA详细结构图;
[0053](4)根据步骤102的布线资源图,在⑶I中产生FPGA详细结构图。
[0054](5)调整Fe (引脚所能连接的布线轨道数目)。
[0055]双击FPGA详细结构图中任一逻辑块的一个引脚,会弹出一个窗口,允许结构设计师修改该引脚的Fe,并可选择是将修改应用于当前逻辑块或所有逻辑块或设计师自己选定应用逻辑块的坐标范围。
[0056](6)调整FPGA详细结构图的开关模块的拓扑类型。
[0057]双击FPGA详细结构图中任一开关模块,会弹出一个窗口,允许结构设计师从Subset, Universal, Wilton, Wilton 3 这四种开关拓扑结构(switch block topology)中选择修改该开关模块的拓扑类型,默认是Wilton类型。该窗口还列出了该开关模块所连接的所有布线轨道,从中任选一条,则会显示出该布线轨道通过该开关模块所连接的所有布线轨道,设计师可通过该界面建立或取消布线轨道之间的连接。并且设计师可选择是将修改应用于当前开关模块或所有开关模块或设计师自己选定应用开关模块坐标范围。
[0058](7)调整开关模块内的任一开关的类型和尺寸等。
[0059]双击FPGA详细结构图中开关模块内的任一开关的类型和尺寸,会弹出一个窗口,允许结构设计师修改该开关的类型(buffered或pass gate)、尺寸等,设计师可选择是将修改应用于当前开关或当前逻辑片中的所有开关或设计师自己选定逻辑片的坐标范围,并将修改应用于选定逻辑片的同一位置的开关。
[0060](8)重新建立布线资源图。
[0061]所有修改完成后,为让修改生效,需要重新建立布线资源图,从而产生新的FPGA详细结构。
[0062]步骤104:对新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
[0063](9)选择一系列将要对FPGA结构进行评估的基准电路。
[0064](10)对基准电路进行逻辑综合和工艺映射。
[0065](11)将(10)中生成的包含寄存器和查找表的网表打包到逻辑块中。
[0066](12)使用布局布线器对基准电路进行布局和布线,在布局和布线过程中通过自动遍历选定的FPGA结构参数的值来迭代调用布局布线器。
[0067](13)当布局和布线结束后,提取基准电路在新FPGA详细结构图上使用的面积和关键路径延时,然后根据面积和关键路径延时,借助数据分析绘图工具得出面积延时积随FPGA结构参数的的值的改变而变化的趋势图,从趋势图中选出面积延时积最小的FPGA结构参数的值。
[0068](14)对于不同的FPGA结构,可以用面积延时积来评估它们的性能,面积延时积最小的FPGA结构为最优结构。主要有两个原因:一是通常使用FPGA进行电路设计时,会用面积换取速度,或者用速度换取面积。因此把这两个参数结合到一个曲线来寻找最佳平衡点是非常有意义的。二是FPGA的吞吐量通常用逻辑功能单元的数量乘以时钟速度来计算,另外一种是 throughput= (1/area per functiona I unit) * (1/delay)。因此,减小面积延时积,就能增大吞吐量。
[0069]因此,改变需要评估的结构参数。从一些比较重要的或受其它参数影响较小的参数开始,每次只改变一到两个参数,从而可以对N维结构空间中的一条线进行优化,一旦找到这个参数的最佳值,就固定这个参数值,并将其代入后续实验中,然后改变待评估的结构参数,重新进行步骤(9) - (13),逐步建立复杂的结构。
[0070]在本发明实施例中,使用GUI编辑FPGA结构参数,使结构设计师不必过多关心结构描述文件的语法格式,降低了设计的复杂度,并可避免结构参数的遗漏;在6瓜上进行局部结构调整,这种灵活性使设计非均匀型FPGA结构成为可能;本发明还将FPGA结构设计和评估集成在一起,全自动的评估流程可帮助结构设计师快速轻松地设计出性能最优的FPGA结构。
[0071]本发明的实施例为设计和评估FPGA结构提供一个有效方法,可有效的改善设计效率,降低设计成本,减少设计人员的工作量,缩短设计周期,具有广阔的市场前景和应用价值。
[0072]最后所应说明的是,以上【具体实施方式】仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种用于FPGA结构设计的系统,其特征在于,包括结构参数编辑模块、详细结构生成模块、局部结构调整模块和全自动结构评估模块; 其中,所述结构参数编辑模块,用于选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件; 所述详细结构生成模块,根据所述结构项目,读取所述FPGA结构参数,然后建立布线资源图,根据所述布线资源图,产生FPGA详细结构图; 所述局部结构调整模块,用于局部调整所述FPGA详细结构图,重新建立新布线资源图,根据所述新布线资源图,重新建立新FPGA详细结构图; 所述全自动结构评估模块,用于对所述新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
2.根据权利要求1所述的系统,其特征在于,所述FPGA结构参数包括通用型结构参数和特有型结构参数。
3.根据权利要求2所述的系统,其特征在于,所述通用型结构参数包括编程结构的参数、配置阵列结构的参数、全局模块阵列的参数、输入输出模块阵列的参数、逻辑模块阵列的参数、存储器模块阵列的参数、乘法器模块阵列的参数、数字时钟模块阵列的参数、边界扫描模块阵列的参数、布线通道模块阵列的参数、开关模块阵列的参数、布线开关列表的参数、时序的参数或功耗的参数中的任--种或几种。
4.根据权利要求2所述的系统,其特征在于,所述特有型结构参数包括封装结构的参数、芯片规模的参数或配置结构的参数中的任--种或几种。
5.一种用于FPGA结构设计的方法,其特征在于,包括如下步骤: 步骤101:选定所需编辑的结构项目,然后设定FPGA结构参数,生成结构描述文件;步骤102:根据所述结构项目,读取所述FPGA结构参数,然后建立布线资源图,根据所述布线资源图,产生FPGA详细结构图; 步骤103:局部调整所述FPGA详细结构图,重新建立新布线资源图,根据所述新布线资源图,重新建立新FPGA详细结构图; 步骤104:对所述新FPGA详细结构图进行评估,从而确定性能最优的FPGA结构。
6.根据权利要求5所述的方法,其特征在于,在所述步骤101中,所述选定所需编辑的结构项目的方法是通过⑶I向导图。
7.根据权利要求5所述的方法,其特征在于,在步骤102中,所述建立布线资源图的方法包括如下步骤: 分别获取所述FPGA结构内部的逻辑块与所述FPGA结构内部的互连线的连接关系和所述互连线与所述互连线之间的连接关系,然后建立布线资源图,根据所述布线资源图,产生所述FPGA详细结构图。
8.根据权利要求2所述的方法,其特征在于,在所述步骤103中,所述局部调整FPGA详细结构图的方法包括如下步骤中的任一一步: 步骤1031:调整任一所述逻辑块的一个引脚所能连接的布线轨道数目; 步骤1032:调整所述FPGA详细结构图的开关模块的拓扑类型; 步骤1033:调整所述开关模块内的任一开关的类型和尺寸。
9.根据权利要求2所述的方法,其特征在于,在所述步骤104中,所述评估的方法包括如下步骤: 步骤1041:选择多个基准电路; 步骤1042:对所述基准电路进行逻辑综合和工艺映射,得到包含寄存器和查找表的网表,然后将所述网表打包到所述逻辑块中; 步骤1043:使用布局布线器对所述基准电路进行布局和布线,在布局和布线过程中通过自动遍历所述FPGA结构参数的值来迭代调用所述布局布线器; 步骤1044:当所述布局和布线结束后,提取所述基准电路在所述新FPGA详细结构图上使用的面积和关键路径延时,然后根据所述面积和所述关键路径延时,借助数据分析绘图工具得出面积延时积随所述FPGA结构参数的值的改变而变化的趋势图,从所述趋势图中选出面积延时积最小的所述FPGA结构参数; 步骤1045:调整所述面积延时积最小的FPGA结构参数,从而对面积延时积最小的所述FPGA结构参数,找到所述面积延时积最小的FPGA结构参数的最佳值,将所述最佳值替换为所述面积延时积最小的FPGA结构参数,重新执行步骤1041至步骤1044,建立最优的FPGA详细结构图。
【文档编号】G06F17/50GK103699705SQ201210366291
【公开日】2014年4月2日 申请日期:2012年9月27日 优先权日:2012年9月27日
【发明者】张峰, 李艳, 陈亮, 李明, 于芳 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1