前言:这个实例源于赛灵思的官方HLS手册——(UG871),展示了如何基于已存在的Vivado HLS工程来创建一个TCL脚本命令和如何应用TCL接口(已存在的工程为"lab1",使用TCL新建立的工程为“lab2”),软件版本2013.4和2017.4均亲测有效。
一、步骤1:建立TCL文件。
1、打开Vivado HLS 命令提示符
2、在windows系统中,采用“Start>All Programs>Xilinx Design Tools>Vivado2014.2>Vivado HLS>Vivado HLS 2014.2 ”命令提示符,(可能会存在一个问题,即当命令行窗口的默认路径不是要求的路径。此时,可以手动更改,再开始菜单找到“命令行提示符”右键属性,在“快捷方式”一栏中可以更改初始路径)如下图:
3、当创建一个Vivado HLS工程,TCL文件自动保存在项目层次结构中。在打开lab1的用户界面中,查看工程,在工程结构中呈现了两个TCL文件见下图:
4、在打开lab1用户界面中,打开solution1中Constraints文件夹,双击script.tcl文件,相关信息在信息窗口中呈现。
(1)script.tcl文件包含了tcl命令,这命令是为了创建项目在设定和运行综合过程中指定的文件项目。
(2)directives.tcl文件包含了一些应用在设计的优化项。
在这个实验练习中,lab1是一个已经建立的完善的工程(包含.c文件、.h文件、tb文件、和用来给.tb文件输出做对比的正确数据文件.dat),我们可以采用lab1的script.tcl文件(在lab1工程建立时自动生成的文件),来为lab2创建一个tcl文件。
5、在vivado HLS命令提示符中,采用以下的命令(在图19表示)在为lab2创建新的tcl文件。
(1)将目录更改为lab1工程所在的目录:C:\Vivado_HLS_Tutorial\Introduction
(2)用命令cp lab1\fir_pri\solution1\script.tcl lab2\run_hls.tcl 来拷贝存在tcl文件到lab2(在Windows命令提示符下支持使用Tab键自动完成:按tab键多次看到新的选择),此时在lab2工程目录下已经出现run_hls.tcl文件,内容和lab1工程目录中的script.tcl文件一样。
(3)用命令cd lab2 改变成lab2的目录:
(4).使用任何文本编辑器(比如notepad++),请执行下列编辑在lab2目录中的文件run_hls.tcl。最终的编辑如下图
1)添加-reset选项的open_project命令。因为你通常反复在同一个项目中运行Tcl的文件,最好是覆盖任何现有的项目信息。
2)添加-reset选项的open_solution命令。这消除了当Tcl的文件在同一解决方案中重新运行时任何现有解决方案的信息。
3)删除源命令,如果在以前的项目中包含您希望重新使用的任何指令,你可以从该项目中复制directives.tcl文件到本地路径,也可以直接复制指令到该文件中。
4)添加退出命令。
(5) 保存文件。
6、可以用tcl文件在批处理模式下运行vivado HLS(在不启动HLS软件的GUI界面的情况下)。
(1).在vivado HLS命令提示符窗口中(目录精确到\lab2),键入vivado_hls -f run_hls.tcl.
Vivado HLS执行建立工程所有的步骤(C仿真、C综合、C和RTL验证、封装IP)。完成后,结果可在lab2工程目录的fir_prj目录内使用。
1)综合报告在fir_prj\solution1\ syn\report是可用的。
2)仿真结果在fir_prj\solution\sim\report是可用的。
3)输出包在fir_prj\solution1\impl\ IP是可用的。
4)最终输出的RTL在fir_prj\\solution1\impl,然后Verilog或VHDL是可用的。
7、补充:
(1)在一个完整工程目录下,可以通过命令行窗口启动工程(打开Vivado HLS的GUI界面)。在本文的例子中,命令行窗口键入红色字体C:\Vivado_HLS_Tutorial\Introduction\lab2>vivado_hls -p fir_prj,之后则会在GUI界面中启动lab2工程(lab2本身也是由命令行窗口创建的工程);
(2)当从Vivado HLS项目中复制RTL结果,必须使用在impl目录中的RTL;
(3)使用浮点运算符或AXI4接口的设计中,在syn目录中的RTL文件是仅由综合输出的。需要经过HLS软件进行额外的处理(export_design),在可以使用此RTL在其他设计工具中执行之前。
###### 转载请出名出处 https://blog.csdn.net/Gentleman_Qin/article/details/80043042 ########