模块生成。在这种使用模式下,HLL 编译器可以将以 C 表示的功能块(例如一个 C 子程序)转换成相应的硬件块。生成的硬件块随后被收入整个硬件/软件设计,这样HLL 编译器生成了整个设计的一个子模块。模块生成通过快速生成,然后集成算法硬件组件,允许软件工程师参与整个系统的设计。那些寻求以更快的方式构建新的、以计算为导向的硬件块的硬件工程师们,也可以使用模块生成。
处理器加速。在这种使用模式下,HLL 编译器允许通过在 FPGA 的可编程结构中创建定制加速器块,来加速在处理器中运行的时间关键功能或瓶颈功能。除创建加速器外,这些工具还可以自动推断存储器并生成所需的硬件-软件接口电路,以及实现处理器与硬件加速器块之间通信的软件设备驱动程序(图 2)。与运行在 CPU 中的代码相比,FPGA 加速的代码其运行速度可以快几个数量级,而消耗的功率则大大降低。
2. 系统建模。对于大型设计,或处理器用作整个设计的一部分时,使用传统的 RTL 模型进行系统仿真可能会非常慢。一种流行的新兴 ESL 方法采用了高速事务级模型,通常使用 C++ 编写,以大大加快系统仿真速度。