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

3092                                  Journal of Software  软件学报 Vol.31, No.10, October 2020

         硬件描述语言大多成为了学术语言,较少在实际生产中得到应用.

                         Table 1  High-level HDLs classified by characteristics of input languages
                                 表 1   根据输入语言特征分类的高级硬件描述语言
                           编程风格        语言          年份        实现语言        实现方式
                                      HML [37]     2000        SML        非内嵌
                           函数式        Lava [38]    2000       Haskell      内嵌
                                      Clash [41]   2009       Haskell     非内嵌
                                      JHDL [39]    2000        Java       非内嵌
                                     MyHDL [43]    2004       Python       内嵌
                           命令式        RHDL [40]    2006        Ruby       非内嵌
                                     PyMTL [44]    2014       Python       内嵌
                                     Pyverilog [45]   2015    Python       内嵌
                                      Chisel [42]  2012        Scala       内嵌
                           混合式             [46]
                                    SpinalHDL      2015        Scala       内嵌
             另一方面,基于 Java、Python、Scala 等支持面向对象编程和命令式语言风格的高级语言构建的硬件描述
         语言,由于本身语言更优秀的生态和更广泛的用户基础,近年来我们能观察到它们持续的更新和更深入的发展.
         尤其是内嵌于高级语言的硬件描述语言,因为继承了原本语言的语法,有更低的学习成本,吸引了更多开发者的
         使用.其中,基于 Scala 语言的 Chisel   [42] ,已经形成了硬件定义与测试一体的集成框架,并通过对 RISC-V 设计的特
         化支持,扩展了自身的硬件设计生态.
             高级硬件描述语言总体来看目前还处于学术研究阶段.一方面是因为这些语言还没有形成充实的生态基
         础,无法吸引硬件工程师付出学习成本进行转型;另一方面则是因为这些语言并不专注于通过提供特定的抽象
         和完整的集成框架来降低开发门槛,因而对软件工程师也未能构成足够的吸引力.如图 2 所示,与高层次综合工
         具正在向应用层特化发展,逐步让底层硬件细节透明化不同,高级硬件描述语言则在确定了寄存器传输级抽象
         的基础上,在扩充自身的硬件实现生态,以形成类似于 C++、Java 等语言的丰富库支持.本文接下来将介绍我们
         在高级硬件描述语言方向上的实践工作,其中包括高级硬件描述语言 ScalaHDL 以及基于 ScalaHDL 的系统集
         成开发框架 VeriScala  [47] .


















                                 Fig.2    The prospectives of high-level HDL and HLS
                                图 2   高层级硬件描述语言和高层次综合的发展方向

         2    基于高级硬件描述语言的 FPGA 加速系统开发框架设计

             在硬件加速的学术研究中,我们经常需要进行微架构的创新,常常遇到 Verilog 或 VHDL 学习门槛高、开发
         周期长、软硬件集成麻烦的困难.Xilinx 推出了 Vitis 工具,通过将高层次综合和细粒度的 RTL 优化集成在一个
         框架下来满足这样的需求.但是,Vitis 虽然提供了统一的框架,开发者依然需要使用多种语言来进行综合开发,
         这显然增加了工程维护和管理的难度.在高层次硬件描述语言的基础上构建集成开发框架可以很好地解决这
   111   112   113   114   115   116   117   118   119   120   121