论文部分内容阅读
随着通信、计算机、消费电子等领域的快速发展,对现有IC芯片的要求越来越高。ASIC开发周期长,更新能力差;DSP/CPU处理能力对于复杂运算有局限性;FPGA开发语言的层级限制,给高效率的IC设计带来了挑战。 为了实现数字IC快速设计,降低设计周期,节省设计成本,北京大学集成微系统科学工程与应用重点实验室提出一种基于并行计算技术的统一架构的可重构算子阵列结构APU(Array Processing for Unification Architecture)。该APU结构由算术类可重构算子、路径类可重构算子、调度类可重构算子、DSP类可重构算子、存储类可重构算子以及IO组成。在APU结构的内部,算术类可重构算子、路径类可重构算子、调度类可重构算子、DSP类可重构算子、存储类可重构算子按照一定的比例,按照类型独立地以列为单位,分布式交叉排列。APU支持大量数据并行/串行的运算和传输需求,并且能够支撑多种应用实现的需要。 APU应用设计描述语言为高级语言(类似于C语言),抽象层次较高,缩短了应用开发时间。经过高级综合方法综合以后,可以转换成APtJ内算子能执行的语言,我们称之为APU-A语言。为了能与FPGA比较与联系,需要一个硬件综合器把生成的APU-A语言转换成能在FPGA上运用的硬件描述语言。这样我们就可以通过语言编译器和硬件综合器把用户设计的高层次语言自动转换成在APU上执行的APU-A语言和在FPGA上执行的硬件描述语言,真正实现了高层次语言编程。 本文将对APU硬件综合器做详细的说明,硬件综合器包括一个代码转换器和各类算子的Verilog代码。其中代码转换器采用c++语言编写,它的功能是读入APU-A语言的每条代码,将其按一定顺序转换成verilog的top文件。此文件中包括每个端口的声明,端口的属性,时钟的定义和每个模块的例化。各类算子的verilog代码里面包含各类算子的端口声明,实现功能,运行模式。这样通过这个硬件综合器就可以自动的将经过高层次综合后得到的APU-A语言再一次转换成FPGA能直接识别的硬件描述语言,增强了实际的应用范围,提供了用户更多的选择,极大的降低了编程的工作量。