论文部分内容阅读
与ASIC相比,FPGA的可编程特性使得电路设计具有开发周期短、芯片设计成本低以及电路功能可重配置等优点。随着半导体工艺的发展和市场需求的推动,现代FPGA芯片的可编程结构越来越复杂,其可配置功能也愈来愈强大,这使得用户在利用FPGA进行电路设计时更加依赖计算机辅助设计工具,因此对FPGA计算机辅助设计工具的改进具有重要意义。本文着重研究与FPGA硬件功能实现紧密相关的FPGA软件流程中的装箱算法,分析目前流行装箱算法的研究现状,概括各个算法的优缺点并针对当前装算法所面临的重要挑战,提出相应有效的改进算法。现代FPGA芯片结构更新较快且风格迥异,如何开发适应各种不同的,复杂可编程单元结构且能利用结构本身的优良特性对用户电路进行优化的算法是当前装箱算法的难点。本文针对上述困难提出了一种基于CSP图匹配的装箱算法CSPack,该算法在用户电路中利用图匹配根据XML格式描述的芯片功能配置库找出满足约束的子电路,并基于布通率和时序驱动的思想以指令的形式将子电路映射到可编程逻辑块内。实验表明,该算法能够灵活针对复杂可编程结构FPGA进行装箱,且通过指定电路优化规则,装箱后可编程逻辑块数目减少了5.7%,同时时序性能提升了7.8%。随着FPGA逻辑容量和互连资源的极大丰富,复杂高性能用户电路设计对布通率和时序性能的要求也日益提升。传统装箱算法都是尝试达到100%的逻辑利用率,对于某些应用这样的方法可能会造成电路局部拥堵导致电路无法布通的情况,因此如何开发针对布通率要求和时序性能较高的算法是另一装箱算法难点。本文针对这一困难提出RePack装箱算法,该算法尝试平衡逻辑资源和互连资源的需求,对布线拥挤度较高的区域采用CLB稀疏的方法,将拥挤处的BLE扩展到非拥挤区域,通过迭代的CAD流程不断降低布线通道宽度需求同时改进时序驱动算法的种子及候选BLE的选取方法进行装箱。实验表明,该算法能够将电路时序性能提升8.3%,布线通道宽度减少37%,逻辑利用率提高36%。面向应用多核结构研究是当前的研究热点,因此开发相应的计算机辅助设计软件具有积极意义。本文根据已有研究成果CSPack和RePack(?)将其核心思想应用于多核开发软件辅助设计中,提出总体软件设计流程,基于高层综合工具GAUT生成的控制数据流图,利用图匹配找出相应的数据通路和控制逻辑。实验表明,该软件流程能够映射DSP类的典型应用,如FFT,并能够帮助硬件设计者进行结构评估。