本发明专利技术涉及一种FPGA布线资源数据压缩办法,包括:定义对象、定义数组、通过键值对查找等步骤。本发明专利技术提供的FPGA布线资源数据压缩办法,以Type信息为索引,查找Wire信息;这样可大幅减少内存的占用。内存占用随FPGA规模的增长也会显著变缓。也会显著变缓。
【技术实现步骤摘要】
一种FPGA布线资源数据压缩办法
[0001]本专利技术涉及一种FPGA布线资源数据压缩办法,属于集成电路设计
技术介绍
[0002]现在主流的千万门级FPGA,布线资源规模较大。如xilinx v5系列中95t总共有32568个Tile;每个Tile有几百至几千不等的互联点(Wire Point),整个FPGA中的Tile及PIP组成了一张巨大的图,其中Tile之间都是全连通的。这样就要求相应的布线软件要求能够快速的找到最有路径,同时对布线资源的建模提出了较为严苛的要求。
[0003]在布局布线软件中,如果将FPGA中每个Tile都映射成一个对象实例,会造成较大内存开销。假设一个Wire对象包含string和boolean标记位,估算每个Tile中包含700个Wire、一个string类型的id。在64位操作系统中,string变量大小为32byte,boolean变量大小为1byte。以v5 95t为例,实例化所有Tile所占的内存开销约为700MB;加上布局布线过程的中间变量,软件实际运行的内存开销会超过1GB。对于规模更大的240t,布线资源的内存开销会接近2GB。
[0004]实际生产过程中,考虑到延时及功耗能因素,用户设计的电路所占布线资源往往低于总布线资源的50%。所以在布线过程中,较大的内存开销意味着内存资源的浪费。
技术实现思路
[0005]本专利技术要解决技术问题是:克服上述技术的缺点,提供一种建模方法,在不降低查询速度的前提下,对布线资源进行一定的压缩,达到节省内存的目的。
[0006]为了解决上述技术问题,本专利技术提出的技术方案是:一种FPGA布线资源数据压缩办法,包括如下步骤:步骤1:定义对象Tile,其中存放各Tile在FPGA中的坐标、二值位流wireUsage及类型索引TileTypeIndex;步骤2:定义二维数组TileMap,其中的各数组元素与各TILE在FPGA中的坐标一一对应;步骤3:定义数组WireList,标识Tile与通道的互联信息;步骤4:定义数组TileTypeToWireList,存放所有TileType对应的WireList;步骤5:通过键值对TW能够唯一地定位Tile的位置及Wire端点的位置;通过一组键值对TW,能够唯一地确定一根金属互连线;步骤6:对象Tile中的WireUsage长度与WireList长度一致,其初始值全为0;在布线过程中,当Tile的某个Wire被选用,则将WireUsage中对应的二值位置为1;表示当前Wire被占用。
[0007]上述方案进一步的改进在于:在64位系统下的内存估算公式为:
;其中L
wireList
表示wireList的长度,L
TileTypeList
表示TileTypeList的长度,N
Tile
为Tile的总数。
[0008]上述方案进一步的改进在于:使用数组下标查找信息;查找时间复杂度为O(1)。
[0009]上述方案进一步的改进在于:同一类型的Tile,坐标可能不同但Wire信息完全相同,Tile的某个Wire端点,可以通过其在WireList下标进行索引。
[0010]上述方案进一步的改进在于:所述步骤1中的类型索引TileTypeIndex即为该Tile类型在该数组中的索引。
[0011]本专利技术提供的FPGA布线资源数据压缩办法,适用于岛型的FPGA,FPGA内部的模块结构较为规整适于压缩,其Tile可以按功能及位置分布进行分类;由于Type信息与Wire信息存在强关联且Wire信息比较占内存,故考虑相同Type的Tile共享一份Wire信息,Tile对象只保存坐标、类型等少量字段。以Type信息为索引,查找Wire信息;这样可大幅减少内存的占用。内存占用随FPGA规模的增长也会显著变缓。
具体实施方式实施例
[0012]本实施例的FPGA布线资源数据压缩办法,适用于岛型的FPGA,因此,需要首先判定FPGA类型。在获取FPGA硬件构架信息后,判定是否为岛型,如果是岛型,则继续。并根据需要定义基本类Tile、TileMap、Wire、WireList;定义API GetSegment(TileIndex, WireIndex); GetSource(WireIndex); GetSinks(WireIndex); GetWireInfo(TileTypeIndex)。
[0013]布线算法会频繁的查找Tile、Wire信息;所以本方案使用数组下标查找信息。查找时间复杂度为O(1)。
[0014]按如下步骤对布线资源建模:步骤1:定义对象Tile,其中存放各Tile在FPGA中的坐标、二值位流wireUsage及类型索引TileTypeIndex;步骤2:定义二维数组TileMap,其中的各数组元素与各TILE在FPGA中的坐标一一对应;步骤3:定义数组WireList,标识Tile与通道的互联信息;同一类型的Tile,坐标可能不同但Wire信息完全相同,Tile的某个Wire端点,可以通过其在WireList下标(WireIndex)进行索引;步骤4:定义数组TileTypeToWireList,存放所有TileType对应的WireList;步骤1中的类型索引TileTypeIndex即为该Tile类型在该数组中的索引。
[0015]步骤5:通过键值对TW(WireIndex@Tile)能够唯一地定位Tile的位置及Wire端点的位置;通过一组键值对TW,能够唯一地确定一根金属互连线;例如,Segment[TW0(ES2BEG0@INT_X5Y10), TW1(ES2MID0@INT_X6Y10), TW2(ES2END0@INT_X6Y9)]代表了一条
Begin节点位于INT_X5Y10, Middle节点位于INT_X6Y10, End节点位于INT_X6Y9的互连线;步骤6:对象Tile中的WireUsage长度与WireList长度一致,其初始值全为0;在布线过程中,当Tile的某个Wire被选用,则将WireUsage中对应的二值位置为1;表示当前Wire被占用。
[0016]在64位系统下的内存估算公式为:;其中L
wireList
表示wireList的长度,L
TileTypeList
表示TileTypeList的长度,N
Tile
为Tile的总数。以v5 95t为例,Tile总数为32568;Tile类型数为111;估算平均wireList长度为700;代入上述公式算得布线资源所占内存约为6.2MB; 相较之前为每个Tile建立WireList的方法大大减少了内存的占用。
[0017]本专利技术不局限于上述实施例。凡采用等同替换形成的技术方案,均落在本专利技术要求的保护范围。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种FPGA布线资源数据压缩办法,其特征在于,包括如下步骤:步骤1:定义对象Tile,其中存放各Tile在FPGA中的坐标、二值位流wireUsage及类型索引TileTypeIndex;步骤2:定义二维数组TileMap,其中的各数组元素与各TILE在FPGA中的坐标一一对应;步骤3:定义数组WireList,标识Tile与通道的互联信息;步骤4:定义数组TileTypeToWireList,存放所有TileType对应的WireList;步骤5:通过键值对TW能够唯一地定位Tile的位置及Wire端点的位置;通过一组键值对TW,能够唯一地确定一根金属互连线;步骤6:对象Tile中的WireUsage长度与WireList长度一致,其初始值全为0;在布线过程中,当Tile的某个Wire被选用,则将WireUsage中对应的二值位置为1;表示当前Wire被占用。2.根据...
【专利技术属性】
技术研发人员:杨珂,白利达,
申请(专利权)人:山东芯慧微电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。