论文部分内容阅读
现场可编程逻辑门阵列(FPGA)是指在制作完成后仍然可以通过编程实现其特性和功能的集成电路。自被推出以来,FPGA发展迅速,被广泛运用到电子工业的各个领域。FPGA的结构控制着编程逻辑功能的类型以及其可编程连接,直接影响着最终设备的速度、面积效率,以及能耗。为了便于FPGA的建模及CAD研究,一种用于学术研究的开源工具——Verilog-to-Routing(VTR)应运而生。Odin Ⅱ作为VTR系统的核心部分之一,其主要作用包括Verilog的详细描述与硬模块的综合。但是,现阶段,Odin Ⅱ并不完善——不能完全支持Verilog语言,并且所构建电路不够简化。为了完善其功能,提高Odin Ⅱ系统及整个VTR工作流的效率,本文针对Odin Ⅱ展开了相关研究与开发工作。本论文的研究主要是针对Odin Ⅱ系统开发新的功能模块,增强其完整性、提高工作流的效率,使其更好地为FPGA构架模型。具体地,论文的主要工作包括:For循环语句编译功能模块的实现。在Verilog硬件描述语言(HDL)中,for循环是一种重要的语句。Odin Ⅱ作为Verilog HDL的编译器,应该支持for循环语句,但是现阶段却无法实现。本论文的主要工作之一就是通过修改抽象语法树(AST)中for循环语句部分所对应的结构,使之能被紧随其后的工序所识别。抽象语法树(AST)化简功能模块的实现。作为一个编译器,Odin Ⅱ的一项重要任务是化简抽象语法树结构与运算逻辑,以达到精简最终所架构的FPGA电路的目的。本论文采用三种方式来实现这一目标:化简含变量的算术表达式,删除已被定义的参数,用位移运算(《或》)代替乘法或除法运算。硬模块的综合与化简。由于Verilog代码对电路描述的需要,在网络表(netlist)中的硬模块可能具有相同的功能。本文通过对硬模块的综合与化简,从而达到提高工作流效率、精简电路的目标。针对上述工作,本文均使用专门设计的测试用例或基准测试用例(benchmarks)进行测试,展示了测试结果,并对其进行了分析和总结。最后,本文对主要研究工作进行了总结,提出了存在的问题,并展望了未来的研究方向。