Page 117 - 《软件学报》2020年第10期
P. 117

刘焰强  等:FPGA 加速系统开发工具设计:综述与实践                                                     3093


         个问题.本节将介绍我们实现的 ScalaHDL 硬件描述语言,以及基于 ScalaHDL 的开发框架 VeriScala.
         2.1   设计目标
             基于高级硬件描述语言的加速系统开发框架设计目标主要有两方面:充分利用高级语言在开发效率、维护
         管理上的优势并提供简便的集成策略.具体来说有以下几点.
             (1)  支持丰富的代码重用机制.需要提供包括继承、参数化类型在内的特性来提高代码重用率和可维
                 护性.
             (2)  易用的语言抽象.一方面需要通过支持面向对象编程来进行模块化设计,另一方面还需要将 RTL 抽象
                 在高级语言中进行映射以帮助软件工程师的理解.
             (3)  支持库的设计和使用.需要通过支持硬件设计的引用方法,让现有设计逐渐形成丰富的生态,进一步
                 提高生产效率.
             (4)  支持软件模拟.需要设计对接的软件模拟器,让高级语言定义的硬件设计直接利用高级语言的测试框
                 架进行测试.
             (5)  支持快速的系统集成和部署.需要在框架内处理好底层硬件数据传输机制,并提供简洁的软件接口.
             理想的设计流程如图 3 所示,软硬件设计在同一种高级语言的上下文中,其中,软件计算需求可以通过函数
         接口来定义,而硬件设计则可以使用内嵌的高级硬件描述语言来定义.框架本身将包含通信相关经过适配的软
         硬件库,基于基础通信驱动可以实现应用的后端,而基于硬件通信子系统可以实现加速硬件的通信外围.接下
         来,完成的硬件设计可以直接输入给软件模拟器进行硬件功能测试,而软件模拟器又可以作为模拟硬件与驱动
         对接,完成整个加速系统的功能测试.最后用验证过的加速硬件替换模拟硬件,从而完成加速系统的集成.
             面向上文的设计目标和开发流程,我们设计实现了基于 ScalaHDL 语言的 VeriScala 框架.后面将在第 2.2 节
         介绍 ScalaHDL 语言的设计,在第 2.3 节介绍 VeriScala 中软硬件协同的集成支持,在第 2.4 节展示 VeriScala 的代
         码示例和实验结果.
































                                           Fig.3   An ideal workflow
                                             图 3   理想开发流程
   112   113   114   115   116   117   118   119   120   121   122