CN102831268B - 支持用户定制的可编程逻辑器件版图快速生成方法 - Google Patents

支持用户定制的可编程逻辑器件版图快速生成方法 Download PDF

Info

Publication number
CN102831268B
CN102831268B CN201210291806.1A CN201210291806A CN102831268B CN 102831268 B CN102831268 B CN 102831268B CN 201210291806 A CN201210291806 A CN 201210291806A CN 102831268 B CN102831268 B CN 102831268B
Authority
CN
China
Prior art keywords
tile
domain
file
intermediate form
fpga
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210291806.1A
Other languages
English (en)
Other versions
CN102831268A (zh
Inventor
王伶俐
周学功
童家榕
余超凡
李兆彤
杨文龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN201210291806.1A priority Critical patent/CN102831268B/zh
Publication of CN102831268A publication Critical patent/CN102831268A/zh
Application granted granted Critical
Publication of CN102831268B publication Critical patent/CN102831268B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明属于电子设计自动化技术领域,具体为一种支持用户定制的可编程逻辑阵列版图快速生成方法。本发明方法步骤为:准备单元版图并且为单元版图建立配置文件;计算单元版图的规模大小;将单元子版图进行拼接;预留用户设定的版图形状。本发明基于已有的单元版图库,能够在快速生成任意指定规模的版图文件的同时使得所生成的版图性能接近人工定制生成的版图性能。本方法生成的版图主要特点在于:一是所生成的可编程逻辑阵列版图规模大小是可定制的,即用户能够指定版图的阵列规模大小;二是根据用户设定的版图形状要求,可以自动在版图上预留这些区域,便于在可编程逻辑阵列版图中嵌入其他IP核。

Description

支持用户定制的可编程逻辑器件版图快速生成方法
技术领域
本发明属于电子设计自动化技术领域,具体涉及一种支持用户定制的可编程逻辑阵列版图快速生成方法。
背景技术
现场可编程门阵列(Field Programmable Gate Array,FPGA),它是在可编程阵列逻辑(Programmable Array Logic,PAL)、通用阵列逻辑(Generic Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件的基础上进一步发展的产物。它最初作为专用集成电路(Application Specific Integrated Circuit,ASIC)原型功能验证的途径而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点[1]。
由于FPGA设计周期短,上市时间快,非重复工程费用(Non-Recursive Engineering,NRE)低的特点,加之具有动态可重配置的特性,越来越多的片上系统SoC(System On a Chip)将考虑嵌入FPGA核。国际半导体技术蓝图在2007年预测了在2014年SoC将会有48%的功能具有重配置的特点[2]。在SoC中嵌入FPGA IP(Intellectual Property)核的电路设计有很多优点[3]:由于FPGA的可配置功能,逻辑错误更容易被修复;在不同时刻,FPGA可以被配置成不同的功能已达到复用芯片硬件资源的特点;一些通信领域的可能会升级的通信协议可以用FPGA来实现可以避免重新设计芯片以适应新的协议需求。总之,在SoC中嵌入FPGA IP核的需求在工业界越来越明显。
不同的SoC设计对逻辑资源的需求往往是不同,这就造成了规模过大的FPGA IP核可能造成资源浪费,规模太小的FPGA IP核又不足以满足资源需求。因此,一种可以根据用户规模需求的FPGA版图生成工具是非常必要的,在本发明工具提出之前,多伦多大学的一些研究小组做过一些FPGA的版图生成工具[4],但是该工具从头开始生成版图,没有很好利用人工定制的高效率的版图的优势,生成版图所需的时间长,而且生成的版图效率较低,离商业化需求还有相当长的距离。
本发明提出的版图生成方法克服了上述方法的缺点,利用了预先优化好的单元子版图,再根据用户的阵列需求进行版图扩充和拼接,最终得到指定规模的版图。本发明提出的方法复用了人工定制版图高效的特点,能够快速生成指定规模的版图,无论在面积方面,还是性能方面,都能得到与原有版图十分接近的效果。另外,本发明提出的方法允许用户设定一些面积用于嵌入其他IP核到所生成的FPGA版图中。现代的FPGA版图常常需要嵌入乘法器,DSP(Digital Signal Processor)等IP核, 因此本发明支持版图面积的预留功能。
参考文献
[1]     Betz V, Rose J, Marquardt A. 深亚微米FPGA结构与CAD设计,王伶俐等, 译. 北京: 电子工业出版社, 2008.
[2]     International  Technology  Roadmap Semiconductors, 2007 Edition  - Design , http://www.itrs.netl.  December 2007
[3]     Abramovici M., Stroud C. and Emmert M., "Using Embedded FPGAs for  SoC Yield Improvement", IEEE 39th Design Automation Conference Proceedings,2002
[4]     K. Padalia, R. Fung, M. Bourgeault, A. Egier, and J. Rose, "Automatic transistor and physical design of FPGA tiles from an architectural specification.", in Proceedings of the  2003 ACMlSIGDA eleventh international  symposium  on Field programmable gate arrays, pp. 164-172, 2003。
发明内容
本发明的目的在于提出一种可以快速生成用户定制的可编程逻辑阵列版图的方法。使用该方法所生成的版图具有面积小、性能高的特点,同时能满足用户添加不同尺寸的可定制IP核的要求。
本发明所提出的可编程逻辑阵列版图生成方法,主要用途是把FPGA作为IP核嵌入到SoC系统中以实现SoC的高度可配置性。通过拼接单元子版图,使得生成的版图具有保持人工定制版图的高效性。在本发明中,用户可以根据不同SoC设计的资源需求,自定义版图的阵列规模。另外用户能够在生成的FPGA的版图上预留面积,可以方便地在预留部分嵌入其他IP核。通过FPGA单元的子版图参数信息的配置文件描述方式,可以将本发明提出的方法应用到不同的可编程阵列单元结构。
本发明提出的方法主要特征在于:一是根据可编程阵列单元结构的配置文件,结合用户要求的阵列大小,生成相应规模的可编程逻辑阵列版图文件;二是根据用户设定的版图形状,本发明可以自动在版图上预留一些区域,便于在可编程逻辑阵列版图中嵌入用户定制的其他IP核。用户要求的阵列大小,以行数和列数的形式描述。根据用户的阵列大小需求,结合配置文件描述的单元版图位置关系,分两个步骤生成所需的版图:第一步是合成所有的单元子版图的版图文件内容,以保证最终的版图文件能够引用单元子版图;第二步根据配置文件的参数信息,计算出每个单元子版图的位置并实现自动拼接,以生成第一阶段的版图文件。
为了便于用户能够嵌入各种IP核,本发明在生成的版图中预留用户设定的IP核形状,该形状以多个点坐标的形式描述,可用于描述任意多边形的形状。根据描述出来的多边形位置是否与已有的TILE(这里的TILE是指FPGA的单元子版图)相交,移除掉与之相交的TILE,从而生成预留面积的第二阶段的版图文件。
为了表示用户的各种可定制信息,本发明采用可编程阵列单元结构的配置文件描述方式。针对不同的可编程阵列单元结构,只要对此结构建立起相应的配置文件,就可以将本发明提出的方法应用到各种各样的可编程阵列单元结构。
可编程阵列单元结构配置文件主要描述了岛型结构FPGA芯片的9种单元子版图的信息及其相互的位置关系。所述9种单元子版图是针对岛型FPGA结构而言,分别是:中间,左边,右边,上边,下边,左上角,右上角,左下角,右下角这9种子TILE对应的版图。配置文件主以ini为文件扩展名,分4个部分(section)分别予以描述:[LIB]、[CHECK]、[OFFSET]以及[TILE]。所述[LIB]部分,描述了库描述的可编程阵列名称,版图文件的单位等信息;所述[CHECK]部分,描述了子版图是否已经合成过,子版图的规模是否有效等信息;所述[OFFSET]部分,描述了子版图之间的位置间距信息;所述[TILE] 部分,描述了9种子版图的规模信息以及存放路径。
单元子版图合成过程是对GDS(Graphic Design System)格式的版图文件所进行的操作。GDS的版图文件是一个层次化的结构,最后生成的版图需要引用到所有的子版图,因此需要先合成所有的子版图,生成一个含有所有子版图信息但未拼接的版图文件。该文件生成过一次就可,不必重复生成。本发明提出的方法可以自动判断单元子版图是否已经合成过。
单元子版图的规模信息用于描述子版图的左边界、右边界、上边界、下边界四个值。该值可以由用户手动测量版图得出,并记录到配置文件里,也可以由本发明提出的方法自动计算得到。
本发明提出的方法具体分为以下四个步骤:
1、输入单元子版图,为可编程阵列单元结构建立配置文件
本发明提出的版图生成方法是基于已有的单元子版图,进行拼接完成。以经典岛型结构为例,首先需要输入岛型结构FPGA芯片的9种单元子版图的GDS版图文件。传统的岛型FPGA结构如图1所示,主要由9种类型的单元子版图组成。这些子版图在版图上是矩形的形状,简称为TILE。所述9种子版图分别是:中间(Center),左边(Left),右边(Right),上边(Top),下边(Bottom),左上角(Up-Left),右上角(Up-Right),左下角(Bot-Left),右下角(Bot-Right)对应的版图。
根据已有的单元子版图,本方法为可编程阵列单元结构建立配置文件。配置文件主要描述了岛型结构FPGA芯片的9种单元子版图的信息及其相互的位置关系。本发明提出的配置文件具有高度移植性,通过修改相应的参数就可以应用到不同的FPGA结构。配置文件的组成部分描述如下:
配置文件主以ini为文件扩展名,图2显示了配置文件的组成部分,主要由四部分(section)组成:[LIB]、[CHECK]、[OFFSET]以及[TILE]。
[LIB] 部分用于描述库名等信息,其包含的参数如下:
(1)Name:描述该库的名字。
(2)User_Unit:描述该库的用户单位,是一个继承于GDS文件的参数。
(3)DB_Unit:描述该库的基本单位,是一个继承于GDS文件的参数。
[CHECK] 部分主要用于检测库文件的某些参数是否有效,包括以下三个参数:
(1)has_size_info:表明[TILE] 部分里描述TILE大小的参数是否有效,如果此参数无效,本方法会利用程序自动计算每种TILE大小并更新此[TILE] 部分的相关参数,并将此参数设置为1。
(2)has_merge_file:每个GDS文件由多个子结构组成,其中只有一个结构是顶层结构,每次合成版图时需要将这些子结构的内容拼接到最后生成的版图文件中。因此本发明事先生成这个合并好的版图文件。如果这个合并好的版图文件存在,则此参数为1。如果合并文件不存在,则本方法会调用程序自动合并文件,然后设置此参数为1,并且设定合并文件的路径(即下面所述的merge_file_path参数)。
(3)merge_file_path:指定已合并的版图文件的路径。
[OFFSET] 部分用于确定各个TILE的摆放位置。其item的格式为key = x y,就是9种类型的TILE对应于中间类型TILE的偏移坐标。它们的意义分别描述如下。
(1)Center:位于岛型FPGA结构中间类型TILE的偏移量, x代表中间类型TILE的水平间距,y代表中间类型TILE的垂直间距。
(2)Left:FPGA阵列中最左边的输入输出TILE相对于中间类型TILE的偏移量。这里的中间类型TILE是指与Left 类型TILE在同一行且在其右边的中间类型 TILE。
(3)Right:FPGA阵列中最右边的输入输出TILE相对于中间类型TILE的偏移量。这里的中间类型TILE是指与Right类型 TILE在同一行且在其左边的中间类型TILE。
(4)Bottom:FPGA阵列中底部的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Bottom类型TILE在同一列且在其上边的中间类型TILE。
(5)Top:FPGA阵列中顶部的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Top 类型TILE在同一列且在其下边的中间类型TILE。
(6)UL:FPGA阵列中左上角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中左上角的中间类型 TILE。
(7)UR:FPGA阵列中右上角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中右上角的中间类型 TILE。
(8)BL:FPGA阵列中左下角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中左下角的中间类型TILE。
(9)BR:FPGA阵列中右下角的TILE的相对于中间类型TILE偏移量,这里的中间类型TILE是指FPGA阵列中右下角的中间类型TILE。
[TILE] 部分描述了9种TILE的详细信息,以下以中间类型TILE的信息参数为例说明:
(1)Center_Name:TILE的顶层结构名。
(2)Center_Path:TILE对应的版图文件的路径。
(3)Center_Left:TILE版图的左边边界。
(4)Center_Right:TILE版图的右边边界。
(5)Center_Bottom:TILE版图的下边边界。
(6)Center_Top:TILE版图的上边边界。
根据已有的9种单元版图,采用人工的方法确定上面[LIB]部分,[OFFSET]部分、[CHECK]部分的内容以及[TILE]部分里关于版图位置设定的内容。其中[TILE]部分里的版图规模计算亦可由人工测量的方法得到。本方法的第二步骤就是通过计算机程序的方法自动计算单元子版图的规模。
2、单元子版图的规模自动计算方法
本发明提出的方法所操作的版图文件均为GDS格式,GDS版图文件格式的BNF(Backus-Naur Form)描述如图3所示,一个GDS文件就是一个流结构,记作<stream format>,它主要由一系列的结构(structure)构成。结构则由元素(element)构成。元素共有7种,分别为:
(1)BOUNDARY:用于描述多边形;
(2)BOX:用于描述矩形;
(3)PATH:用于描述走线;
(4)NODE:描述节点;
(5)SREF:引用一个结构;
(6)AREF:引用一个结构阵列;
(7)TEXT:用于描述辅助的文本元素,对版图实际功能不起作用,只是起到注释和标记的作用。
GDS文件由很多结构组成。每一个结构都可以通过SREF或者AREF引用其他结构作为自己结构的一部分,且结构的定义顺序是随机的。
上面介绍的GDS格式的7种元素里,本方法不考虑TEXT元素类型。在剩下的6种元素里,BOUNDARY、PATH、BOX、NODE这四种元素的边界值可以直接用坐标点算出其边界,而引用类元素AREF和SREF则需要通过它对其他结构的引用方式来决定。
对于SREF来说,结构引用方式需要考虑以下因素:
(1)引用的结构是否关于X轴镜像对称;
(2)在哪个坐标点引用结构;
(3)引用的结构是否需要旋转,旋转的角度为多少;
(4)引用的结构是否需要缩放。
而AREF相当于多个SREF的重复引用,只需要分析AREF的规模就可以算出其边界。
计算机程序通过解析GDS文件,存储每个结构以及其引用元素的内容。除了引用类型的元素外,其余元素的边界值均可以直接计算出来。引用类型的元素的边界值计算可以通过递归算法将其计算出来。为了计算一个引用元素的版图规模,可以依次遍历该版图的所有子版图,通过递归计算子版图的规模,直到子版图本身是个最小的,不可继续划分的单元为止。这样就计算出该引用元素的版图的规模。
将计算好的版图规模写入到配置文件里,并将配置文件的[CHECK]部分的has_size_info置为1,以避免后续重复计算,提高生成效率。
3、单元版图拼接
得到了单元版图的规模后,结合配置文件里关于版图之间的位置相对关系即可进行版图拼接。版图拼接可以采用SREF元素的形式实现,这个元素可以在某个位置引用一个结构。通过使用SREF元素,我们就可以在指定坐标放置指定的版图。
单元版图的拼接主要通过SREF元素实现,生成的版图要用到所有的结构。因此,首先需要将所有版图文件的已有内容合并到一个文件里,然后创建一个新的顶层结构,在该结构里引用上面9种TILE,包括引用的坐标和数目。引用由库文件的 [OFFSET] 部分的参数内容提供,就可以知道每个TILE的位置坐标,结合用户要生成的版图阵列规模,就可以确定出所有待引用的TILE位置。最后采取SREF引用的方法,即可实现版图拼接。
经过拼接步骤,我们可以得到指定规模的可编程逻辑阵列版图文件。
4、用户预留面积设置
在经过拼接以后,可以进行第二个功能的实现,即用户预留面积设置,也就是用户指定要在版图上留下一个多边形区域,为插入其他的IP核设置版图面积。因此,与此多边形相交的所有TILE要被移除掉。
用户将以点坐标的形式描述多边形,判断多边形是否与矩形相交,只要判断多边形是否有顶点在矩形内即可。因此,可以得到与用户设定的预留面积相交的所有TILE,然后取消这些TILE的引用,即可得到最终阶段的版图。
经过预留面积步骤,就可以得到最终的指定规模的并且带预留面积配置的GDS版图文件。
附图说明
图1 为传统岛型的FPGA结构图。
图2 为版图生成的配置文件格式。
图3 为GDS文件的BNF格式描述。
图4 为生成的16x20阵列规模的版图示意图。
图5 为根据本发明版设计的图生成软件流程示意图。
图6 为本发明提出的版图生成方法流程示意图。
具体实施方式
由于商业FPGA芯片版图是不公开的,我们无法得到其版图文件。因此,本发明选用复旦大学专用集成电路与系统国家重点实验室研制出的FDP3P7系列FPGA芯片的单元版图作为示例,说明如何利用本发明所提出的方法生成一个用户设置的16 x 20阵列规模的FPGA版图。
首先,为FDP3P7型号FPGA芯片建立芯片配置文件,通过手动测量各个TILE之间的位置偏移,记录到配置文件中,完成[OFFSET] 部分内容的记录,具体见图2;通过记录9种子版图文件的存放路径,记录到[TILE] 部分里,在程序运行时会自动计算9种子版图的规模大小并自动保存到配置文件里,以免下次重复计算,加快生成速度;其他部分的信息较为简单,记录好以后,配置文件建立完成。
接下来根据本专利提出的版图生成方法编写了相应的计算机软件,软件运行流程示意图如图5所示。启动该软件,选中相应的芯片配置文件,载入后会在文本框里显示芯片配置文件的内容;确认无误后,在row和col整数框分别填入16和20,即生成16 x 20的 版图阵列规模。在预留面积描述文本框里输入如下数据“344000 312000 528000 304000 514000 599000 447000 599000 447000 430000 307000 422000 344000 312000”,用以描述待预留面积的多边形;确认无误后,点击“Start Layout Gen”按钮,选择输出版图存放的路径和文件名,例如“./fdp3_16x20.gds”。程序开始启动生成,在本地路径生成出了fdp3_16x20.gds的文件,用版图显示工具查看版图,得到如图4的版图文件,符合预期要求,生成成功,耗时仅为30秒。

Claims (1)

1.一种支持用户定制的可编程逻辑阵列版图快速生成方法,其特征在于具体步骤如下:
步骤一、输入单元子版图,为可编程阵列单元结构建立配置文件
以经典岛型结构为例,首先输入岛型结构FPGA芯片的9种单元子版图的GDS版图文件;所述单元子版图在版图上是矩形的形状,简称为TILE,所述9种子版图分别是:中间,左边,右边,上边,下边,左上角,右上角,左下角,右下角对应的版图;
根据已有的单元子版图,为可编程阵列单元结构建立配置文件;所述配置文件主要描述岛型结构FPGA芯片的9种单元子版图的信息及其相互的位置关系;配置文件的组成描述如下:
配置文件以ini为文件扩展名,由四部分组成:[LIB]、[CHECK]、[OFFSET]以及[TILE];其中:
[LIB] 部分用于描述库名等信息,其包含的参数如下:
(1)Name:描述该库的名字;
(2)User_Unit:描述该库的用户单位,是一个继承于GDS文件的参数;
(3)DB_Unit:描述该库的基本单位,是一个继承于GDS文件的参数;
[CHECK] 部分主要用于检测库文件的某些参数是否有效,包括以下三个参数:
(1)has_size_info:表明[TILE] 部分里描述TILE大小的参数是否有效,如果此参数无效,本方法利用程序自动计算每种TILE大小并更新此[TILE] 部分的相关参数,并将此参数设置为1;
(2)has_merge_file:每个GDS文件由多个子结构组成,其中只有一个结构是顶层结构,每次合成版图时需要将这些子结构的内容拼接到最后生成的版图文件中;因此本发明事先生成这个合并好的版图文件;如果这个合并好的版图文件存在,则此参数为1;如果合并文件不存在,则本发明调用程序自动合并文件,然后设置此参数为1,并且设定合并文件的路径,即下面所述的merge_file_path参数;
(3)merge_file_path:指定已合并的版图文件的路径;
[OFFSET] 部分用于确定各个TILE的摆放位置,其item的格式为key = x y,就是9种类型的TILE对应于中间类型TILE的偏移坐标;它们的意义分别描述如下:
(1)Center:位于岛型FPGA结构中间类型TILE的偏移量, x代表中间类型TILE的水平间距,y代表中间类型TILE的垂直间距;
(2)Left:FPGA阵列中最左边的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Left 类型TILE在同一行且在其右边的中间类型 TILE;
(3)Right:FPGA阵列中最右边的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Right类型 TILE在同一行且在其左边的中间类型TILE;
(4)Bottom:FPGA阵列中底部的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Bottom类型TILE在同一列且在其上边的中间类型TILE;
(5)Top:FPGA阵列中顶部的输入输出TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指与Top 类型TILE在同一列且在其下边的中间类型TILE;
(6)UL:FPGA阵列中左上角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中左上角的中间类型 TILE;
(7)UR:FPGA阵列中右上角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中右上角的中间类型 TILE;
(8)BL:FPGA阵列中左下角的TILE相对于中间类型TILE的偏移量,这里的中间类型TILE是指FPGA阵列中左下角的中间类型TILE;
(9)BR:FPGA阵列中右下角的TILE的相对于中间类型TILE偏移量,这里的中间类型TILE是指FPGA阵列中右下角的中间类型TILE;
[TILE] 部分描述了9种TILE的详细信息,以中间类型TILE的信息参数为例说明:
(1)Center_Name:TILE的顶层结构名;
(2)Center_Path:TILE对应的版图文件的路径;
(3)Center_Left:TILE版图的左边边界;
(4)Center_Right:TILE版图的右边边界;
(5)Center_Bottom:TILE版图的下边边界;
(6)Center_Top:TILE版图的上边边界;
根据已有的9种单元版图,采用人工的方法确定上面[LIB]部分,[OFFSET]部分、[CHECK]部分的内容以及[TILE]部分里关于版图位置设定的内容;
步骤二、单元子版图的规模自动计算
所述版图文件均为GDS格式,一个GDS文件就是一个流结构,记作<stream format>,它主要由一系列的结构构成,结构则由元素构成;元素共有7种,分别为:
(1)BOUNDARY:用于描述多边形;
(2)BOX:用于描述矩形;
(3)PATH:用于描述走线;
(4)NODE:描述节点;
(5)SREF:引用一个结构;
(6)AREF:引用一个结构阵列;
(7)TEXT:用于描述辅助的文本元素,对版图实际功能不起作用,只是起到注释和标记的作用;
GDS文件由很多结构组成,每一个结构都可以通过SREF或者AREF引用其他结构作为自己结构的一部分,且结构的定义顺序是随机的;
所述的GDS格式的7种元素里,不考虑TEXT元素类型,在剩下的6种元素里,BOUNDARY、PATH、BOX、NODE四种元素的边界值直接用坐标点算出其边界,而引用类元素AREF和SREF则通过它对其他结构的引用方式来决定;
对于SREF来说,结构引用方式需要考虑以下因素:
(1)引用的结构是否关于X轴镜像对称;
(2)在哪个坐标点引用结构;
(3)引用的结构是否需要旋转,旋转的角度为多少;
(4)引用的结构是否需要缩放;
 而AREF相当于多个SREF的重复引用,只需要分析AREF的规模就可以算出其边界;
 计算机程序通过解析GDS文件,存储每个结构以及其引用元素的内容;除了引用类型的元素外,其余元素的边界值均可以直接计算出来,引用类型的元素的边界值计算可以通过递归算法将其计算出来;
将计算好的版图规模写入到配置文件里,并将配置文件的[CHECK]部分的has_size_info置为1,以避免后续重复计算,提高生成效率;
步骤三、单元版图拼接
得到了单元版图的规模后,结合配置文件里关于版图之间的位置相对关系进行版图拼接;
单元版图的拼接主要通过SREF元素实现,生成的版图要用到所有的结构;因此,首先需要将所有版图文件的已有内容合并到一个文件里,然后创建一个新的顶层结构,在该结构里引用上面9种TILE,包括引用的坐标和数目;引用由库文件的 [OFFSET] 部分的参数内容提供,根据每个TILE的位置坐标,结合用户要生成的版图阵列规模,确定出所有待引用的TILE位置;最后采取SREF引用的方法,即可实现版图拼接;
经过拼接步骤,得到指定规模的可编程逻辑阵列版图文件;
步骤四、用户预留面积设置
在经过拼接以后,进行用户预留面积设置,也就是用户指定要在版图上留下一个多边形区域,为插入其他的IP核设置版图面积,为此,将与此多边形区域相交的所有TILE移除掉,得到最终的指定规模的并且带预留面积配置的GDS版图文件;
所述GDS为Graphic Design System。
CN201210291806.1A 2012-08-16 2012-08-16 支持用户定制的可编程逻辑器件版图快速生成方法 Expired - Fee Related CN102831268B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210291806.1A CN102831268B (zh) 2012-08-16 2012-08-16 支持用户定制的可编程逻辑器件版图快速生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210291806.1A CN102831268B (zh) 2012-08-16 2012-08-16 支持用户定制的可编程逻辑器件版图快速生成方法

Publications (2)

Publication Number Publication Date
CN102831268A CN102831268A (zh) 2012-12-19
CN102831268B true CN102831268B (zh) 2015-07-29

Family

ID=47334403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210291806.1A Expired - Fee Related CN102831268B (zh) 2012-08-16 2012-08-16 支持用户定制的可编程逻辑器件版图快速生成方法

Country Status (1)

Country Link
CN (1) CN102831268B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103106294B (zh) * 2012-12-24 2015-12-02 西安华芯半导体有限公司 一种用于静态随机存储器编译器的版图编程方法
CN105824679A (zh) * 2015-01-07 2016-08-03 展讯通信(上海)有限公司 一种存储器编译器版图编程系统及方法
CN106649894A (zh) * 2015-10-28 2017-05-10 北京华大九天软件有限公司 一种集成电路版图中快速生成器件阵列方法
CN105843982B (zh) * 2016-03-07 2019-04-12 深圳市紫光同创电子有限公司 用于可编程逻辑器件的位流生成方法、装置及设计系统
CN108133094B (zh) * 2017-12-14 2021-08-24 中国电子科技集团公司第四十七研究所 用于反熔丝的现场可编程门阵列的布局布线显示方法
CN108509725B (zh) * 2018-04-02 2021-06-29 中国科学院电子学研究所 可定制逻辑器件版图和网表的自动生成方法
CN109271677B (zh) * 2018-08-27 2023-04-21 北方电子研究院安徽有限公司 一种在线层次化修复版图格点问题的方法
CN109214114B (zh) * 2018-10-02 2023-02-10 复旦大学 Fpga重复单元tile关键子电路解析方法
CN110164489B (zh) * 2019-05-28 2021-05-07 珠海创飞芯科技有限公司 优化Nor Flash存储阵列面积的相关方法及系统
CN111753476B (zh) * 2020-06-30 2021-12-24 无锡中微亿芯有限公司 一种基于fpga的asic快速定制方法
CN111753485B (zh) * 2020-06-30 2022-02-15 无锡中微亿芯有限公司 基于fpga的掩膜可编程逻辑门阵列定制方法
CN112949242B (zh) * 2021-03-05 2023-07-25 深圳市华星光电半导体显示技术有限公司 遮光带版图绘制方法、光罩版图绘制方法及光罩版图
CN113505361A (zh) * 2021-07-16 2021-10-15 无锡安可芯信息技术有限公司 面向asic和fpga器件的加密数字ip核授权方法
CN117422040B (zh) * 2023-12-18 2024-02-27 沐曦集成电路(上海)有限公司 一种片上网络在芯片版图上的生成方法
CN117521587B (zh) * 2024-01-03 2024-04-05 北京开源芯片研究院 系统级芯片的设计方法、装置、电子设备及存储介质
CN118709615A (zh) * 2024-08-27 2024-09-27 苏州宽温电子科技有限公司 存储器网表或版图的多线程拼接方法、系统、介质和设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FPGA互连结构与布局布线算法研究;谈珺;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090315;全文 *
Using embedded fpgas for soc yield improvement;Miron Abramovici 等;《IEEE 39th Design Automation conference proceedings》;20020614;全文 *
VAUGHN BETZ 等.深亚微米FPGA结构与CAD设计.《深亚微米FPGA结构与CAD设计》.2008, *
温宇杰.可编程逻辑核版图自动生成方法研究.《中国优秀博硕士学位论文全文数据库(博士) 信息可以辑》.2005, *

Also Published As

Publication number Publication date
CN102831268A (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN102831268B (zh) 支持用户定制的可编程逻辑器件版图快速生成方法
CN109684755B (zh) 一种数模混合芯片异步电路全定制方法及系统
US11418409B2 (en) System-on-chip (SoC) assembly, configurable IP generation and IP integration utilizing distributed computer systems
US6829754B1 (en) Method and system for checking for power errors in ASIC designs
US6823501B1 (en) Method of generating the padring layout design using automation
Dolgov et al. 2019 cad contest: Lef/def based global routing
US7117469B1 (en) Method of optimizing placement and routing of edge logic in padring layout design
CN105138769B (zh) 一种用于可编程电路的时序模型生成方法及装置
CN111027266A (zh) 一种多个fpga的设计分割的方法、系统、存储介质及终端
US8510702B2 (en) Interactive routing editor with symbolic and geometric views for integrated circuit layout
CN104239595B (zh) 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置
US8312405B1 (en) Method of placing input/output blocks on an integrated circuit device
White et al. Tincr—A custom CAD tool framework for Vivado
CN114492282A (zh) 贯穿信号线布局处理方法及装置、芯片和存储介质
CN105447215B (zh) 数字电路设计方法及相关的系统
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
JP2006190149A (ja) 半導体集積回路の低消費電力設計方法
Tseng et al. A power delivery network (PDN) engineering change order (ECO) approach for repairing IR-drop failures after the routing stage
CN109885850B (zh) 一种局部寄存器的生成方法及生成系统
CN105843993A (zh) 一种ip生成方法及工具
CN111930504B (zh) 处理器时钟频率的确定方法、装置及计算机可读存储介质
US6734046B1 (en) Method of customizing and using maps in generating the padring layout design
CN105989210B (zh) 定制化虚拟图案填充方法
Glick et al. Maverick: A stand-alone CAD flow for partially reconfigurable FPGA modules
CN107957896A (zh) 不同项目自适应布局方法及系统、存储介质及车载终端

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150729

Termination date: 20200816