UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

关于Vivado HLS 的三大误读

修改者 Administrator ‎01-08-2018 05:51 PM - 编辑日期 ‎01-16-2018 05:16 PM (315 查看)

 

作者:Lauren Gao 日期:2018/01/08

 

目前,在高层次综合(HLS, High Level Synthesis)领域,Vivado HLS可谓独树一帜。它有效地拉近了软件工程师与FPGA之间的距离,加速了算法开发的进程,缩短了产品上市时间。对于工程师,尤其是软件工程师而言是一个福音。在实际工程中,如何利用好这一工具仍值得考究。本文将介绍使用Vivado HLS时的几个误区。

 

误读1:只要是C或者C++描述的算法都是可综合(可转换成RTL)的。

HLS的可综合功能是有限的,并不是所有的C或者C++语句都可转换成相应的RTL代码。下面这些情形是不可综合的。

  1. 动态内存分配
  2. 涉及操作系统层面的操作
  3. 递归函数
  4. 数组规模可变

误读2:既然Vivado HLS支持CC++System C,那么用三者任意一种都行。

尽管 Vivado HLS支持CC++System C,但支持力度是不一样的。在v2017.4版本ug871 56页有如下描述。可见,当设计中如果使用到任意精度的数据类型时,采用C++ 和System C 是可以使用Vivado HLS的调试环境的,但是C 描述的算法却是不可以的。而实际上很多真实的硬件模型都要使用任意精度的数据类型,所以要想使用Vivado HLS 的调试功能, 建议最好采用 C++System C。

 图一.jpg

   

误读3:只要有源代码即可,没有Test bench也行。

HLS设计开发中,C Test bench起着举足轻重的作用。C层面算法功能的验证需要用到它;当生成RTL代码时,CRTL的协同仿真也要用到它。如下图所示。实际上,协同仿真时,RTL代码的输入激励就是由C Test bench生成的。由此可见,C Test bench是整个设计不可或缺的一部分。

  

 

图二.jpg

 

关于作者: Lauren Gao(高亚军),赛灵思高级战略应用工程师。 Lauren 专注于 C/C++ 高层次综合,拥有多年利用 Xilinx FPGA 实现数字信号处理算法的经验,对 Xilinx FPGA 的架构、开发工具和设计理念有深入的理解。发布网络视频课程“Vivado入门与提高“ 及 “跟 Xilinx SAE 学 HLS”,点击率均15万以上;撰写并出版《基于FPGA的数字信号处理》及《Vivado从此开始》两本专业图书, 广受好评。