赛灵思高层次综合工具加速FPGA设计

赛灵思高层次综合工具加速FPGA设计

ID:41578755

大小:54.37 KB

页数:14页

时间:2019-08-28

赛灵思高层次综合工具加速FPGA设计_第1页
赛灵思高层次综合工具加速FPGA设计_第2页
赛灵思高层次综合工具加速FPGA设计_第3页
赛灵思高层次综合工具加速FPGA设计_第4页
赛灵思高层次综合工具加速FPGA设计_第5页
资源描述:

《赛灵思高层次综合工具加速FPGA设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、赛灵思高层次综合工具加速FPGA设计382顶作者:SharadSinha博士生新加坡南洋理工大学sharad_sinha@pmail.ntu.edu.sgVivadoHLS配合C语言等高级语言能帮助您在FPGA上快速实现算法。高层次综合(HLS)是指自动综合最初用C、C++或SystemC语言描述的数字设计。工程师之所以对高层次综合如此感兴趣,不仅是因为它能让工程师在较高的抽象层面上工作,而且还因为它能方便地生成多种设计解决方案。利用HLS,您能探索各种可能性,分析面积和性能特点,最终确定一个方案在FPGA芯片上实现算法。举例来说,您能探索将存

2、储器映射到BlockRAM(BRAM)或分布式RAM上有什么不同的影响,或者分析回路展开以及其它回路相关优化有什么效果,而且不必手动生成不同的寄存器传输级(RTL)设计。您所要做的仅仅是在C/C++/SystemC设计中设置相关指令而已。赛灵思在其最新发布的Vivado^工具套件中推出了HLS工具。VivadoHLS是AutoESL工具的品牌转型重塑,可提供众多技术帮助您优化C/C++/SystemC代码以实现目标性能。这样的HLS工具就能帮助您在FPGA上快速实现算法,无需借助基于Verilog和VHDL等硬件描述语言的非常耗时的RTL设计方

3、法。为了帮助用户了解VivadoHLS如何工作,我们不妨以矩阵乘法设计为例逐步剖析从设计描述(C/C++/SystemC)到FPGA实现整个端对端综合流程。矩阵乘法在许多应用中都很常见,并广泛用于图像和视频处理、科学计算和数字通信。本项目中的所有结果均使用VivadoHLS2012.4生成,搭配使用赛灵思ISE®软件(14.4版)进行物理综合和布局布线。此夕卜,这一流程还采用了ModelSim和GCC-4.2.1-mingw32vc9进行RTL协同仿真。图1显示了简单的综合流程,从C/C++/SystemC设计开始。C/C++/SystemCt

4、estbench用于验证设计功能的正确性,同时还可用于RTL和C的协同仿真。协同仿真包括验证生成的RTL设计(.v或vhd)功能,这要使用C/C++/SystemC测试平台而不是RTL测试平台或者采用e或Vera验证语言编写的测试平台。时钟周期约束设置了设计应该运行的目标时钟周期。设计将被映射到目标FPGA器彳一赛灵思FPGA上。C/CMSystemCClockPeriodConstraintC/Oi/SystemCTestoenchTargetFPGADevce时仲周期约束C/C+*/SystemCtestbench目标FPGA器件FPGA比

5、特流Ml-采用ViudoHLS进tfFPGAft合的漁程C语言的矩阵乘法为了充分利用我们的矩阵乘法实例,我们将探索矩阵乘法C语言实现方案的各种修订版本,从而展示它们对综合设计的影响。这一过程将凸显您在使用HLS进行原型设计和实际设计时需要注意的重要问题。我们将跳过创建工程的有关步骤,因为您能很方便地在工具文档中找到相关参考材料。我们将重点介绍设计和实现等方面。在典型的VivadoHLS流程中,我们需要三个C/C++文件:源文件(包括待综合的C函数)、头文件和通过main()函数调用描述testbench的文件。头文件不仅包括源文件中使用的函数的

6、声明,也包括支持具有特定位宽的用户定义数据类型的指令。这也使得设计人员能够采用与C/C++所走义标准位宽不同的位宽。举例来说,整形数据类型(int)在C语言中通常为32位长,但是在VivadoHLS中您可指定用户定义的数据类型,例如只使用16位的"data"。图2显示了用于矩阵乘法的简单C函数。两个矩阵mail和mat2进行乘法。为了简单起见,两个矩阵大小一样,都是两行两列。voidmatrixmultiply(datamatleft[2][2]tdatamatright(2](2]rdataproduct[2](2])datak;Cor(i«

7、0;i<2i{for(j«0;j<2;j**)for(k«0;k<2;k**){product(i][j]aproduct[i](j]*matleft(i][k]•matright[k][jl;图2・用于2*2矩阵乘法的简EC代码在HLS流程中执行的步骤如下:•第一步:创建工程•第二步:测试功能•第三步:综合•第四步:RTL协同仿真•第五步:导出RTL/RTL实现第一步编译工程并在不同的设计文件中测试语法错误等。第二步测试待实现的函数(在源文件中)功能是否正确。在这一步骤中您将使用testbench执行函数调用,验证其功能是否正确。如果功能验证

8、失败,您就需要返回来修改设计文件。第三步进行综合,VivadoHLS综合源文件中定义的函数。这一步的输出包括C函数的Verilog和VHDL代码(RT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。