本文翻译整理自LegUp Computing 官方网站
介绍
随着FPGA设计的不断扩大和复杂,工程师需要提高他们的生产力,以满足紧凑的设计时间表。本文将以LegUp高层次综合工具为例解释工程师如何通过C++软件语言生成硬件模块来加快FPGA的开发。
在高层次综合设计中,工程师在C++中实现了他们的设计,并用软件测试方法来测试其功能。接下来,他们指定一个顶层C++函数,LegUp会将其编译成一个等效的Verilog硬件模块。LegUp可以运行协同仿真来验证硬件模块行为与软件匹配,然后将Verilog传递给选定的FPGA供应商的EDA工具,以生成FPGA比特流。或者,LegUp可以生成一个硬件IP核,工程师可以使用FPGA供应商的系统构建器在他们的系统中实例化。高层次综合FPGA设计流程如下图所示:
高层次综合设计流程
FPGA设计:RTL vs HLS
对于不熟悉高层次的读者,我们将使用寄存器传输级(RTL)语言(如Verilog/VHDL)传统的FPGA设计和使用C++的高层次语言设计方法进行比较。