[发明专利]一种FPGA布线资源数据压缩办法有效
| 申请号: | 202111354448.X | 申请日: | 2021-11-16 |
| 公开(公告)号: | CN114282474B | 公开(公告)日: | 2022-08-09 |
| 发明(设计)人: | 杨珂;白利达 | 申请(专利权)人: | 山东芯慧微电子科技有限公司 |
| 主分类号: | G06F30/347 | 分类号: | G06F30/347;G06F30/394;G06F115/06 |
| 代理公司: | 南京行高知识产权代理有限公司 32404 | 代理人: | 李晓 |
| 地址: | 250102 山东省济南市历城区高*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 fpga 布线 资源 数据压缩 办法 | ||
本发明涉及一种FPGA布线资源数据压缩办法,包括:定义对象、定义数组、通过键值对查找等步骤。本发明提供的FPGA布线资源数据压缩办法,以Type信息为索引,查找Wire信息;这样可大幅减少内存的占用。内存占用随FPGA规模的增长也会显著变缓。
技术领域
本发明涉及一种FPGA布线资源数据压缩办法,属于集成电路设计技术领域。
背景技术
现在主流的千万门级FPGA,布线资源规模较大。如xilinx v5系列中95t总共有32568个Tile;每个Tile有几百至几千不等的互联点(Wire Point),整个FPGA中的Tile及PIP组成了一张巨大的图,其中Tile之间都是全连通的。这样就要求相应的布线软件要求能够快速的找到最有路径,同时对布线资源的建模提出了较为严苛的要求。
在布局布线软件中,如果将FPGA中每个Tile都映射成一个对象实例,会造成较大内存开销。假设一个Wire对象包含string和boolean标记位,估算每个Tile中包含700个Wire、一个string类型的id。在64位操作系统中,string变量大小为32byte,boolean变量大小为1byte。以v5 95t为例,实例化所有Tile所占的内存开销约为700MB;加上布局布线过程的中间变量,软件实际运行的内存开销会超过1GB。对于规模更大的240t,布线资源的内存开销会接近2GB。
实际生产过程中,考虑到延时及功耗能因素,用户设计的电路所占布线资源往往低于总布线资源的50%。所以在布线过程中,较大的内存开销意味着内存资源的浪费。
发明内容
本发明要解决技术问题是:克服上述技术的缺点,提供一种建模方法,在不降低查询速度的前提下,对布线资源进行一定的压缩,达到节省内存的目的。
为了解决上述技术问题,本发明提出的技术方案是:一种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被占用。
上述方案进一步的改进在于:在64位系统下的内存估算公式为:
;
其中LwireList表示wireList的长度,LTileTypeList表示TileTypeList的长度,NTile为Tile的总数。
上述方案进一步的改进在于:使用数组下标查找信息;查找时间复杂度为O(1)。
上述方案进一步的改进在于:同一类型的Tile,坐标可能不同但Wire信息完全相同,Tile的某个Wire端点,可以通过其在WireList下标进行索引。
上述方案进一步的改进在于:所述步骤1中的类型索引TileTypeIndex即为该Tile类型在该数组中的索引。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东芯慧微电子科技有限公司,未经山东芯慧微电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111354448.X/2.html,转载请声明来源钻瓜专利网。





