论文部分内容阅读
超龙一号系统是国家智能计算机研究开发中心提出的一种以应用为导向的技术路线。其中的算法可重构加速卡基于FPGA实现,是整个系统的一个重要组成部分,关系到整个系统的效率。而验证工作是算法可重构加速卡的开发过程中的一个重要环节,验证质量和效率直接影响了算法可重构加速卡的设计。
在算法可重构加速卡的验证过程中,系统模型的关系到整个设计的正确性,因此必须要有一个方便、快捷的途径来验证系统模型。仿真时间长也是验证过程中的一个问题,为此需要一个加速仿真的方法。另外还需要一个合适的平台整合上述内容,并提高代码和逻辑的可重用性。
由于浮点算法直接由FPGA实现比较消耗资源,因此在算法可重构加速卡中是将浮点算法改写为定点算法而进行计算的。由此而产生的误差很难在HDL代码完成之前事先得知,于是在HDL代码设计的时候也就缺少了一个制定位宽的标准。因此需要一个能够对位宽进行估计的方法,并且还要验证预分配的位宽是否能够将误差控制在指定范围之内。
本文以可重构算法加速卡为背景,重点研究了其中逻辑验证和定点误差分析两个方面的内容。提出了以Simulink和ModelSim联合仿真的验证平台,还有以Simulink和LLVM为基础的定点误差模拟方法。
本文设计的Simulink和ModelSim联合仿真的验证平台具有如下特点:(1)能够在较少修改源代码的基础上进行系统模型的验证;(2)能够使用C/C++代替部分HDL代码对整个验证进行加速,加速比达20倍以上;(3)使用模块化的工具,具有可重用性。
本文还提出了基于Simulink和LLVM的误差分析方法。该方法能够在HDL代码设计之前粗略估出各个计算模块合适的定点位宽,还能够精确验证出使用各种定点位宽所导致的误差值,有助于HDL代码的设计。