论文部分内容阅读
随着集成电路制造工艺的发展,集成电路产品的一次性工程费用(NRE,NonRecurring Engineering Cost)越来越高,对设计的通用性和灵活性需求加强。相对ASIC(ASIC,Application Specific Integrated Circuit)和处理器,FPGA(FieldProgrammable Gate Array)以其开发成本低、周期短、具有灵活性、硬件加速等优点,在越来越多的领域中被广泛应用,如通信、消费电子、国防、航空航天等。 另一方面,目前国外Xilinx、Altera等几家公司从市场和技术上垄断了该领域。国内高校和企业在处理器和ASIC设计领域均有研究和应用基础,但是针对针对面向未来应用的、新型结构的和具有自主知识产权的FPGA研究相对较少。 本文基于可重构技术和算子设计方法提出一种粒度更大且功能可配置的单元“可重构算子”替代FPGA中细粒度的可编程逻辑单元,从而获得一种新型FPGA——可重构算子阵列FPGA。该结构具有可编程的特性,可支撑数字集成电路的实现,并且不受现有FPGA结构的专利限制。由于改变基本逻辑单元,导致互连需求、设计输入以及综合过程均不同于现有的FPGA,所以本文针对可重构算子阵列FPGA的体系结构、综合、布局布线流程进行相关研究。论文的主要工作和创新点如下: (1)提出一种可重构算子阵列FPGA。该结构由算术类可重构算子、逻辑类可重构算子、移位类可重构算子、乘法类可重构算子、寄存器类可重构算子、路径类可重构算子和存储类可重构算子组成。互连结构由全局互连、局部互连和IO互连组成,采用岛型的结构组织方式,具有双时钟网络可满足多时钟的设计需求。可重构算子相对细粒度的可编程单元在功能粒度和数据处理粒度方面均进行了扩展,可编程,功能集完备,可支持数字集成电路的设计实现。 (2)一种可重构算子阵列FPGA的建模方法。将可重构算子、互连结构和阵列结构的组织架构抽象成可描述、参数化的形式,在结构文件中创建具有不同属性的可重构算子和互连结构,并对阵列结构的形状、尺寸、单元排列、IO数目等进行描述。采用Visual C++开发了模型生成器,读入结构文件生成可视化的可重构算子阵列FPGA模型。 (3)提出一种基于可重构算子的综合方法。提出一种类Verilog的设计输入语言APU RTL和一种描述可重构算子网表的底层语言APU A,并定义了一种APU RTL到APU A的中间语言APU M。APU RTL到APU M完成设计到可重构算子的功能转换,APU M到APU A完成功能到可重构算子执行的转换。采用Visual C++开发了从APU RTL到APU A的综合器。 (4)完成一款布局布线工具。采用基于广度优先搜索的布局算法,基于Dijkstra最短路径搜索的布线算法,结合APU M中功能的相关性进行布局约束,提高布局效率。采用Visual C++开发布局布线工具。将8种算法的综合结果映射到基于不同拓扑结构的通用互连开关盒和布线通道宽度的可重构算子阵列FPGA模型上。实验结果表明,当采用Wilton拓扑结构的开关盒时,8种测例的布线成本总和最小;互连线段数目为2/2时,8种测例的布线成本最小。 (5)一种可重构算子阵列FPGA的功耗评估方法。提出一种基于最大功耗的评估策略,采用自动测试矢量生成(ATPG)的方法获得可重构算子和互连单元的最大功耗,采用RC等效模型获得互连线段的功耗。对特定设计的功耗评估,则将所有被使用的资源的功耗进行求和,得到该设计所对应的最大功耗值。功耗评估的结果可作为结构探索和在实际应用中阵列规模选取、布局布线优化的指导。