- 3
- 0
- 约5.14千字
- 约 8页
- 2017-10-18 发布于北京
- 举报
可布性驱动的FPGA总体布局优化算法
摘要 自从FPGA问世以来,FPGA布局研究一直是设计自动化研究领域的热点,传统FPGA布局一般要求芯片连线总长最短、芯片面?e最小。随着 IC工艺技术的飞速发展,可布性研究越来越受到关注。而拥挤度是衡量可布性的重要指标,布线中拥挤的出现往往来源于布局不合理,因此需要在布局阶段就考虑可布性。提出了一种考虑水平和垂直溢出的可布性驱动的线长模型,将其与解析式布局的目标函数相结合,以优化布线拥挤和线长,减少运算的复杂度。实验证明,相比FPGA解析式布局算法,线长和拥挤度都有了很大改进。
关键词 FPGA;可布性;拥挤度;总体布局
DOI DOI: 10.11907/rjdk.162490
中图分类号: TP312
文献标识码: A 文章编号 文章编号:2017)002004803
0 引言
随着时代的发展,专用集成电路(ASIC)已远远不能满足用户需求,因而更多的研究者将目光转向了半定制设计模式的器件,成为近期用途最广泛的一种可编程逻辑器件。FPGA(现场可编程门阵列)凭借着灵活性、高集成度、低功耗等特点备受设计人员的瞩目。FPGA通常包含3类可编程资源:二维的可编程逻辑模块(Configuration logic blocks,CLB)、外围的输入输出模块(I/O Blocks,IOB)和可编程互联线资源(Interconnection Resource,IR)。
近年来,FPGA的结构也层出不穷,下列是几种用途比较广泛的结构:对称式、基于行结构、门海式及层次式等。对称型结构,又称为孤岛型结构,是用途最广泛的一种结构。岛型 FPGA 包含了行排和列排的逻辑单元 CLB,水平和垂直的布线通道包含不同长度的布线段。逻辑单元的引脚通过连接盒(Connection Box)连接到水平盒垂直布线通道中的线段上,这些线段再通过开关盒(Switch Box)以一定的方式互相连接。
在FPGA整体设计过程中,布局和布线是非常重要的两大部分,在布线阶段不能实现100%的布通率,需要返回去重新布局,直到完全可布,往返的过程会大大增加设计时间。因此,在布局阶段关注可布性,能够极大提高FPGA的设计效率。本文研究的重点就是在FPGA布局过程中让可布性问题得到更好的解决。
1 布局器介绍
本文的可布性优化策略均在解析式布局器[1]的基础上进行实验。使用最小线长目标,同时尽量减少模块间的重叠。问题表达为:
其中,HPWL(x,y)是所有模块总的半周长,Db(x,y)是密度公式,Mb是期望得到的每个网格里的平均密度。线长和密度公式都不可微,因此首先要对这两个函数进行平滑转换。
使用log-sum-exp方法来近似式(1)中非线性半周长线长。
采用钟形公式[3]来模拟密度部分:
用惩罚函数方法将线长目标和密度约束连接起来,这样,有限制的最优化问题就转化成为一个无约束的优化问题:
最后采用共轭梯度法进行求解。
2 基于线长模型的可布性优化算法
可布性驱动的FPGA布局算法有3方面的核心技术[2]:可布性评价标准、可布性预测和可布性优化。
2.1 可布性评价标准
可布性评价就是当布局完成后进行总体布线,然后根据总体布线结果评价布局结果的可布性。目前最常用的方法就是结合总线长和总体布线的拥挤度作为可布性的评价标准。
在岛型结构上实现布局算法,就是对CLBs进行放置以后,为了能够将电路芯片进行合理的连接运行,这需要了解开关盒资源的利用情况,因此拥挤度的研究将集中在开关盒(Switch Box)上。布线资源Se是一个固定值,根据芯片的技术参数如可用的布线层数、每一层的走线方向以及开关盒的尺寸来进行计算。布线需求De是穿过边开关盒线网的总数。当且仅当De大于Se时 ,即开关盒的布线资源使用量超出布线资源拥有量时,就出现布线拥挤的情况,此时布线溢出量(Overflow)大于零。对于一块FPGA芯片而言,总的布线溢出量可以用来评价一个已知布局的拥挤度情况。
2.2 可布性预测
可布性预测采用布线估计模型设计,布线估算模型主要分为两类:脱离线网拓扑结构模型(Topology-Free Modeling)和基于线网拓扑结构模型(Topology-Based Modeling)。
基于拓扑结构的布线模型一般采用斯坦纳树(Steiner Tree)结构对每个线网进行布线需求建模。但是在布线过程中,对网表中所有的线网建立ST树是一个较为复杂的过程。同时,每次布局更新操作中,布线路径都会发生变化,因此需要重新进行ST树的建立,这样将会引发大量的计算,因此该模型时间代价较高。先对部分网格预先计
原创力文档

文档评论(0)