ug871-vivado-high-level-synthesis-tutorial第3章lab1中文

给自己学习vivado-HLS留下痕迹

---朱磊

第三章C验证

概述

C算法验证是高层次综合(HLS)过程中的一个重要组成部分。在验证花费时间可以确保C算法执行正确操作并建立一个C验证平台。这个C验证平台可以确认结果正确,减少遇到错误时分析设计的时间,并且保证RTL验证可以被自动的执行。

手册包括三个实验练习

Lab1:查看好的C验证平台等各个方面,以及C验证和C调试器等基本操作。

Lab2:验证和调试使用任意精度的C类型的C设计。

Lab3:验证并调试使用任意精度c++类型的C设计。

教程设计说明
您可以从赛灵思网站下载教程设计文件。看到信息获取教程设计。本教程使用的设计文件在教程路径Vivado_HLS_Tutorial\C_Validation在本教程中使用的实例设计是汉明窗的FIR。有三个版本这样的设计:
•使用原本的C数据类型。

•使用ANSI C的任意精度的数据类型。

•用C+ +任意精度的数据类型。

使用本教程介绍的操作和方法使用在高层次综合的C验证中。本教程没有设计目标。

Lab1:C 验证与调试

概述

这个练习回顾好的C验证平台的各个方面,并解释了高层次综合C调试环境的基本操作。

重要提示:本教程中的数字及命令假定教程数据目录Vivado_HLS_Tutorial被解压缩并放置在路径c:\Vivado_HLS_Tutorial

如果教程数据目录解压缩到不同的位置,或者在Linux系统上,调整一些路径名引用到的位置您选择放置Vivado_HLS_Tutorial目录。

步骤1:创建并打开工程

1.打开Vivado HLS 命令提示符

a.windows系统中,采用Start>All Programs>Xilinx DesignTools>Vivado2014.2>Vivado HLS>Vivado HLS 2014.2 Command Prompt,如下图

b.linux系统下,打开新的shell,

                             

2. 用命令提示符窗口,如33,变为lab1 C验证的路径

3. 执行TCL并建立vivado HLSProject,采用的是vivado_hls –f run_hls.tcl 如图33所示

4. vivado HLS 完成,在用户界面里打开工程。用vivado_hls –p hamming_window_prj 命令打开,如图34

步骤2:回顾测试平台并运行C仿真

1. 在测试平台文件夹下通过双击hamming_window_test.c打开C测试平台。如图35

  

查看此测试平台源代码,显示以下良好做法:

•此测试平台:

创建了一组希望的结果,这组结果可以认为这个函数是正确的。

sw_result数组中存放结果

•测试平台调用此设计,产生结果,结果存储在数组hw_result中。因为综合函数要用到hw_result数组。这个数组保存着RTL生成的结果在后面的设计流程里。

•对实际和希望的数组进行比较。如果比较失败,err_cnt变量的值被设置不为零的值。

•如果比较失败,测试平台发出一个消息发送到控制台,但更重要的是返回比较的结果。如果返回值是零的测试平台验证的结果是好的。

如果RTL自动验证是正确的,则检查结果,并返回一个零值。

您可以执行的C代码和测试平台,以确认代码按预期工作。

2. 点击Run C Simulation 工具栏按钮,打开C仿真对话框,如图36

3. 选择OK 运行C仿真

如图37,当C仿真执行时,下面的动作将发生。

•在控制台窗口中输出仿真结果

•在C代码中一些打印状态在控制台窗口显示,例子说明仿真正确通过。

•在solution子目录csim中,执行C仿真。您可以找到一些输出结果在从C仿真建立的文件夹中,这个文件夹的位于在你能看到输出文件result.dat,采用fprintf命令来写result.dat37

因为C仿真未在项目目录下执行,您必须添加一些数据文件到项目中作为C测试平台文件(这样就可以在仿真运行时复制到csim/ build目录下)。这样的文件都包含了,例如,通过在试验台上读取输入数据。

 

 

步骤3:运行C调试

C调试时高层次综合的一部分

1.  点击工具栏里Run CSimulation按钮,打开C仿真对话框

2.  选择调试选项,如图38

3.  点击OK,运行仿真。

调试项选择后编译C代码,并打开调试环境,如图39在开始之前,请注意以下几点:

•图39左上突显的部分,您可以看到视窗由Synthesis转变为Debug。点击视窗按钮,可以随时返回到综合环境

•默认,代码在调试模式下编译。调试选项自动立即打开调试视窗,准备好开始调试。编译代码时不想有调试信息,在C Simulation对话框中选择Optimizing Compile项。

您也可以用单步按钮(如图40),一行一行调试

4.  扩展变量窗口,可以看到sw_results数组

5.  扩展sw_results数组,如图41所示

6.  重复点击Step Into按钮,或者重复按下键盘上F5,直到您看到变量在变量窗口中跟新。

通过这种方式,你可以分析C代码并调试它,如果行为是不正确。如需更详细的分析,右侧是步骤按钮信息跳过(F6),步骤返程(F7)和恢复(F8)按钮。

7. 在窗口中滚动到源代码的第69行。

8. 双击在左边符号,产生了一个断点。(蓝色点),如图42

9. 激活断点选项卡中,也如图42所示,以确认有一个断点设置在第69行。

10.             点击恢复按钮(图42高亮显示)或F8键执行到断点。

11.        多次点击Step Into 按钮,或者(按键F5)进入到hamming_window函数

12.        点击Step Return按钮,或者F7,返回到主函数

13.        点击红色的Terninate按钮,结束调试

终止键变成了实验C仿真按钮。您可以从Debug视图中重新启动调试会话。

14.        退出Vivado HLS界面并返回到命令提示符

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值