ug902-ch1 Using Vivado HLS

本文详述了Vivado HLS工具的使用流程,包括项目创建、C仿真验证、RTL代码生成及优化等关键步骤。重点介绍了如何通过设置参数和指令改善设计性能,以及如何验证生成的RTL代码正确性。


在Linux平台上调用Vivado HLS(或从Windows上的Vivado HLS命令提示符),在命令提示符下执行以下命令。
$ vivado_hls

创建一个新项目

IMPORTANT! 不要使用add files按钮(或关联的add_files Tcl命令)向项目添加头文件(.h后缀)。

Vivado HLS自动将以下目录添加到搜索路径

  • Working directory
    Note: The working directory contains the Vivado HLS project directory.
  • Any directory that contains C files added to the project
    目录中的头文件将自动包含在项目中。必须使用Edit CFLAGS按钮指定所有其他头文件的路径。

Edit CFLAGS:指定编译C代码所需的C编译器标记选项。
这些编译器标记选项与在gcc或g++中使用的相同。C编译器标记包括头文件的路径名、宏规范和编译器指令,如下面的示例所示

  • -I/project/source/headers:提供相关头文件的搜索路径
    注意:必须指定相对于工作目录的相对路径名而不是项目目录。
  • -DMACRO_1:在编译期间,定义宏MACRO_1
  • -fnested-functions:定义任何包含嵌套函数的设计所需的指令
    TIP:要获得Edit CFLAGS选项支持的的完整列表,请参见GNU编译器集合(gcc)网站上的选项摘要页面(http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html)。
    TIP: You can use $::env(MY_ENV_VAR) to specify environment variables in CFLAGS. For example, to
    include the directory $MY_ENV_VAR/include for compilation, you can specify -I $::env(MY_ENV_VAR)/include in CFLAGS .

Note:对于SystemC设计,其带有与test bench相关(不是与设计文件相关)的头文件,必须使用Add files按钮将头文件添加到项目中。
在这里插入图片描述
在Vivado HLS提供的大多数示例设计中,test bench与设计在单独的文件中。将测试台和要综合的function放在单独的文件中,可以将simulation过程和synthesis.过程清晰地分离开来。如果test bench与要合成的function在同一个文件中,则应该将该文件添加为源文件,并在下一个步骤中添加为test bench文件。
Figure 11: Project Test Bench Files
Figure 11: Project Test Bench Files
与C源文件一样,单击Add files按钮来添加C test bench,单击Edit CFLAGS按钮来包含任何C编译器选项。
除了C源文件之外,test bench读取的所有文件都必须添加到项目中。在上图所示的示例中,测试工作台打开file In .dat来为设计提供输入刺激,然后file out.gold .dat来读取预期的结果。因为test bench访问这些文件,所以这两个文件都必须包含在项目中。
如果测试工作台文件存在于某个目录中,则可以使用Add Folders按钮将整个目录而不是单个文件添加到项目中。
如果没有C测试工作台,就不需要在这里输入任何信息,Next > 按钮将打开项目向导的最后一个窗口,它允许为solution1指定细节,如下图所示。
Figure 12: Initial Solution Settings
Figure 12: Initial Solution Settings
新项目向导中的最后一个窗口允许您指定第一个解决方案的详细信息

  • Clock Period: The clock period specified in units of ns or a frequency value specified with the
    MHz suffix (For example, 150MHz).
  • Uncertainty:用于合成的时钟周期是时钟周期减去时钟不确定性。Vivado HLS使用内部模型来估计每个FPGA的操作延迟。时钟不确定性值提供了一个可控制的裕度,以解释由于RTL逻辑综合、位置和路由而导致的任何净延迟的增加。如果没有指定纳秒(ns)或百分比,时钟不确定性默认为12.5%的时钟周期
  • Part:点击选择合适的工艺。

C simulation

Vivado HLS流中的验证可以分为两个不同的过程。

  • C simulation:Pre-synthesis validation,验证C程序正确实现所需的功能。
  • C/RTL c
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值