2. 分享三篇早期的FPGA 布局布线论文

1. PathFinder:一种基于协商和性能驱动的FPGA布线器

Larry MCMURCHIE, Carl EBELING. PathFinder: A Negotiation-Based Performance-Driven Router for FPGAs, February 1996[J/OL]. February 1996

针对FPGA布线中存在的布线性能与可布通性之间的矛盾,该文提出了PathFinder,平衡了这一对矛盾。PathFinder使用一种迭代算法,在给定布局前提下,使布线结果最终可以收敛到这样一个解的状态:所有信号都可以布通,同时取得最高的性能。可不通性目标的达成方法:通过强制信号协商而决定哪个信号最需要资源从而获得相应布线资源。时延目标的达成方法:允许关键信号在协商中具有更大的发言权。该算法由于仅使用了有向图描述布线资源的基础架构,因而其适用的FPGA产品很广。该算法的速度比当时的商业布线工具快11%,在关键路径时延上,只比最优布线增加4.5%。

2. VPR:一种适用于FPGA研究的新型封装、布局布线工具

Vaughn BETZ, Jonathan ROSE. VPR: a new packing, placement and routing tool for FPGA research[M/OL]//Field-Programmable Logic and Applications, 1997.

该文描述了一种用于新型FPGA CAD工具的算法及其能力,该算法被作者命名为VPR(Versatile Place and Route)。从最小化布线面积的角度,VPR优于当时所有FPGA布局布线工具。该算法是对已有的算法的改进和增强,最终在运行时间和取得的性能上都有显著改善。该方法在一些新的大规模电路上进行了基准测试,能适应未来工业设计发展的潮流。该方法适应性广。源代码可以从网上下载,它附带提供的网表翻译/聚类工具VPACK已用于世界范围内的大量研究项目,能用于FPGA架构研究的许多领域。

个人评论:该算法已经在github上公开,是学术研究的必备工具。

3. FPGA布线架构:分段与缓冲-用以优化速度与密度

Vaughn BETZ, Jonathan ROSE. FPGA Routing Architecture: Segmentation and Buffering to Optimize Speed and Density[J/OL]. Proceedings of the 1999 ACM/SIGDA Seventh International Symposium on Field Programmable Gate Arrays, February 1999

这是BETZ的又一篇力作,该文研究了FPGA的布线架构对布线结果的影响,重点在于:确定布线分段长度的最佳分布,PNP晶体管与三态缓冲器的最佳混合比例。大部分商业FPGAs芯片中包含1条导线的长度(跨越1个逻辑块),作者的研究与此想法,FPGA布线分段的长度最佳的范围应该是4至8个逻辑块的长度,50%-80%的布线开关应该采用PNP晶体管,剩下的才是三态缓冲器。按照这样的比例,作者在研究中发现,其速度比与Xilinx XC4000X类似的FPGA要快11%-18%,而且架构更简单。

评述:本文的结果对于FPGAs架构设计工程师有参考价值。

更多论文,后续继续分享。

相关推荐
Nicolas8932 小时前
【大模型实战篇】vllm本地部署阿里最新的QwQ-32B推理模型以及体验
大模型·强化学习·千问·r1·推理模型·32b
LeeConstantine12 小时前
FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别
fpga开发
随机惯性粒子群12 小时前
wheel_legged_genesis 开源项目复现与问题记录
学习·开源·github·强化学习·genesis
ooo-p15 小时前
FPGA学习篇——Verilog学习4
学习·fpga开发
一条九漏鱼16 小时前
模块和端口
fpga开发
Jack.Jia16 小时前
ZYNQ-PL学习实践(二)按键和定时器控制LED闪烁灯
fpga开发
贝塔实验室18 小时前
FPGA 动态部分重配置技术的实现
fpga开发
贝塔实验室1 天前
Virtex-II 系列FPGA 的配置数据处理流程
fpga开发
toonyhe1 天前
FPGA 高速接口Aurora8B/10B 协议详解与仿真
fpga开发·aurora 8b/10b·高速串行接口
FakeOccupational1 天前
【电路笔记 TMS320C6***DSP】外部存储器接口 A EMIFA向FPGA(作为异步存储器)写入数据的示例
笔记·fpga开发