|
4-80 专用软件的硬件化技术
郭晏强
一个专用数据传输、处理系统的全硬件化实现,目标在于掌握基于可编程逻辑器件的硬件设计关键技术,探索用全硬件替代通用CPU加控制电路、软件的软硬结合系统的方法。研究的重点和难点在于怎样实现专用系统软件的逻辑功能的硬件描述,怎样实现软件算法的硬件演化,在计算机中的模拟和验证以及在FPGA中的实现。该系统主要由UART、RAM、积分算法模块和线性多项式计算模块组成。系统参数经由UART传输到RAM中存储以备后续模块取用。采样数据则直接传输到积分算法模块中,与从RAM中取得的相关系统参数进行运算。线性多项式计算模块对积分模块的运算结果和相关系统参数进行多项式运算,得出最终结果输出。 传统的硬件描述语言如VHDL等主要用于描述数字系统的结构、行为、功能和接口,对较为复杂的算法设计实现则支持不够。面对当今数字系统设计中涉及到越多、越复杂的算法描述、建模,开始出现了描述硬件的C/C++语言。Handel-C是其中发展相对成熟的一种FPGA硬件设计语言。由Celoxica公司开发的Handel-C语言是基于ISO/ANSI C的FPGA设计语言,其集成开发环境是DK。使用Handel-C可以将用C开发的算法代码很方便地移植过来,这中间只需做一些和硬件相关的改动。Handel-C提供了硬件设计需求的扩展,它源于ISO/ANSI-C且与其兼容,但它提供了并行处理的额外声明和在并行程序间通讯的结构。它还提供灵活的数据通道宽度,通用的内存体系结构和外部硬件接口。 采用VHDL语言对系统逻辑及时序功能进行描述,对于算法部分,则采用一种新的设计语言(Handel-C)来完成。VHDL部分的设计在EDA工具FPGA Advantage中完成设计输入;算法的设计在基于Handel-C的开发工具DK中实现。综合后,在Xilinx的布局布线工具Design Manager中完成FPGA的布局布线及后端优化,最终完成FPGA芯片的下载实现。 引入一个新的概念是使用硬件C语言来开发FPGA,使用了一种可以直接转化为FPGA设计的硬件C语言Handel-C及其开发环境DK1。由于这种硬件C语言还处在发展阶段,存在着一些有待解决的问题如资源占用率等。但是从本文的研究可以看到,充分发挥VHDL语言对时序及逻辑功能的描述与Handel-C算法的描述特点,将它们有机结合起来对于进行一个既有复杂逻辑时序关系,又有较复杂数学算法的系统设计实现来说还是有相当优越性的。目前较为成熟的类C硬件设计语言有Handel-C,SystemC等。本文的研究对Handel-C和VHDL相结合的设计方式进行了研究和探索,相信在今后的工作中对这方面工作继续开展下去会使可编程逻辑器件的设计以及ASIC设计的质量和效率得到更大的提高,可以为设计出拥有自主知识产权的专用核心芯片提供必要的技术支持。 |