① 批处理中如何用dir来显示当前目录下的文件名和路径,不包含要子目录中的东西,只要当前目录的文件名和路径
给你个示例:dir /B /S ( *.s *.c *.lib ) > file.txt则在file.txt文件中的内容是当前目录(包括子目录)下,所有*.c *.s *.lib的绝对路径的集合
② 如何在Vivado中使用Tcl脚本替代约束
Vivado是Xilinx最新的FPGA设计工具,支持7系列以后的FPGA及Zynq 7000的开发。与之前的ISE设计套件相比,Vivado可以说是全新设计的。无论从界面、设置、算法,还是从对使用者思路的要求,都是全新的。看了大家很多的博文,基本上都是用GUI创建工程,那我就简单介绍一下Vivado的脚本使用。
在ISE设计套件中,支持多种脚本: 可以用xperl来运行perl脚本,可以用xtclsh来运行Tcl脚本,还可以用windows批处理脚本来运行设计流程。
ISE集成的Tcl脚本解释器为8.4版本。同时,ISE GUI中的Tcl console功能不够强大,部分组件使用的脚本也与Tcl有不同,导致Tcl脚本在ISE上并不十分流行。
在Vivado上,Tcl已经成为唯一支持的脚本。并且,所有操作都有对应的Tcl脚本可以执行。所以,掌握Tcl脚本语言对掌握Vivado的使用有重要帮助。
Vivado上集成的Tcl脚本解释器为8.5版本,也是目前比较流行的Tcl版本。Vivado的核心就是一个脚本解释器,GUI界面只是将各种脚本命令封装为图形化界面而已。
下面以Windows为平台,用脚本的思路,运行一下Vivado:
首先需要设置环境变量,在path环境变量中添加Vivado的路径,路径设置到bin文件夹,例如 C:XilinxVivado2014.1in
在Windows界面下,“开始”->“运行”,输入cmd,打开windows命令行终端。这个时候 有三个选择:
1. 输入“vivado”,启动Vivado GUI界面,和点击桌面上的图标启动Vivado没什么区别;事实上,直接点击桌面图标,就是调用windows batch命令启动vivado
2. 输入“vivado -mode batch -source file.tcl”,从脚本批处理的形式启动Vivado,运行后直接执行file.tcl文件
3. 输入“vivado -mode tcl”,启动Tcl交互式命令行。
使用第三种方法。启动后显示Vivado的版本,这里使用2014.1
③ 怎样往vivado器件库中导入元件
1、选择vivado菜单“Tools”——>“Compile Simulation Libraries…”命令。2、在弹出的对话框中设置器件库编译参数,仿真工具“Simulator”选为ModelSim,语言“Language”、库“Library”、器件家族“Family”都为默认设置All(当然也可以根据自己的需求进行设置),然后在“Compiled library location”栏设置编译器件库的存放路径,这里选择新建的vivado2014_lib文件夹,此外在“Simulator executable path”栏设置Modelsim执行文件的路径,其他参数默认。3、设置好参数后点击“Compile”按钮开始器件库的编译。4、器件库编译结束后给出编译报告,从报告中看出0个警告和0个错误。5、打开vivado2014_lib文件夹,便可以看到已经产生了器件库。
④ 如何使用bat文件和do文件生成不依赖路径的modelsim仿真
一.DO文件的简介和工作方式DO文件是一次执行多条命令的脚本。这个脚本可以像带有相关参数的一系列ModelSim命令一样简单,或者是带有变量,执行条件等等的Tcl程序。可在GUI里或系统命令提示符后执行Do文件。由于TCL脚本语言内容很多,本人是刚学不久,菜鸟一个。但是针对我们这门课程的话,有些基本常用的语法还是值得提一下的,方便大家一起学习交流,如果以下内容有什么写错了,希望大家提出并批评,互相进步。首先,我们如何建立DO文件呢?方法挺多,一种是可以打开Modelsim,执行File/New/Source/Do命令,进入Do文件编辑方式,在编辑窗口输入仿真批处理文件的代码,以.do为扩展名保存文件。当然也可以在windows系统中新建一个记事本,在“另存为”的时候写上.do的后缀名,也是一种方法。 调用方式是在Modelsim的Transcript窗口中使用指令:do filename.do,完成对设计的自动化仿真。 下面简单讲讲仿真的步骤。首先我们要对一个设计进行仿真呢,我们一般需要进行以下几个步骤:①创建一个工程和工程库;②加载设计文件(包括你编写好的testbench);③编译源文件;④运行仿真,并查看结果;⑤最后进行工程调试。 而do文件,就是把上述的步骤①—④用tcl脚本语言来编写出来,让Modelsim来运行该do文件宏命令,并自动执行仿真的步骤。这种好处也许在小设计中没怎么表现,但是如果在一个大的工程中,常常需要对一个设计单元进行反复的调试和仿真,但是仿真时的设置是不变的,这时如果使用了do文件,把仿真中使用到的命令都保存下来了,就可以节省大量的人力,提高了工作效率。 下面将对照一个简单的例子counter.do,讲一下我们常用的一些基本指令。PS: do文件的注释是由#开始的,但不可以在代码行后面添加,只能另起一行。正确的是:vlib work #新建一个work库错误的是:vlib work #新建一个work库 编写名为counter.do的文件,其内容为下:vlib work (对应仿真步骤①:新建work库。该命令的作用是在当前目录下建立一个work目录,请注意不要直接在windows中新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件。)vmap work work(对应仿真步骤①:该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。也可以直接用指令“vmap work”表示将work库映射到当前工作目录下。)vlog counter.v counter_tb.v (对应仿真步骤②③:编译counter.v和counter_tb.v文件,默认编译到work库下。该命令的作用是编译这些文件,要注意的是文件可以单独分开编译,但是一定要先编译被调用的文件。假如是VHDL文件,只需要把指令vlog换成vcom即可。)vsim work.counter_tb -t 1ns (对应仿真步骤④:仿真work库中名为counter_tb的模块,最小时间单位为1ns。)add wave/counter_tb/ * (该命令的作用是将testbench文件camera_tb.v中模块camera_tb下所有的信号变量加到波形文件中去,注意在“*”前要加空格。这时候你也可以看到wave文件被打开。当然也可以单个信号的添加,例如添加时钟:add wave clk 等等。)run 2000 (该命令的作用是运行2000个单位时间的仿真。也可以用run –all命令来一直仿真下去。)这时候就可以在wave窗口文件中看到你的仿真结果。当然也可以观察其它窗口的结果,用view *命令显示 。view *命令可以观察包括signals、wave、dataflow等窗口文件,也可以分别打开。例如用view signals来观察信号变量。以上就是do文件的一些基本TCL脚本语言的使用,写得比较简单,但是其实复杂的也就是在添加信号线那里add wave 有比较多的参数设置而已,主要的指导仿真流程的指令还是这几条。编写好DO文件之后,在Modelsim中,将工作目录切换到counter.v、counter_tb.v和counter.do三个文件所在目录下,然后在Transcript窗口中的命令行输入 do counter.do即可。切换工作目录的方法如下图1,点击Change Directory: 图1PS: 如果在仿真的时候要修改.do文件,需要现在modelsim里运行quit -sim,退出仿真,然后修改.do文件,再保存,然后再重新执行do filename.do指令即可。小技巧Tips: 为了区分仿真波形窗口中的各种信号线,需要信号波形作设置,如不同信号线的颜色、显示基数、显示方式等要有区别,这时就需要在仿真波形窗口单独对每一个信号线手动进行设置,这对于不断修改源代码然后再不断地进行仿真来说,非常麻烦。这里,我说一下有个简单的自动生成这类个性化设置DO文件的方法。首先,我们需要先进行一次仿真,在波形窗口的时候先手动对需要的信号线进行一定的设置,如下图2所示: 图2 然后,点击wave窗口左上角的save图标,会出现一个保存DO文件的窗口,如图3所示: 图3它的路径Pathname表示Modelsim自动在当前的默认目录下新建了一个wave.do的DO文件,我们可以自己修改保存的路径和DO文件名。接下来我们来看一下上面保存的wave.do文件,打开如下图4所示:图4 由wave.do文件中,可以见到我们定义的那些不同颜色、不同显示方式所用的TCL脚本语言,如add wave -color Yellow /freq_meter_tb/i1/freq_data表示让该freq_data信号显示黄色…如add wave -noupdate -radix decimal /freq_meter_tb/i1/div_coef 表示让div_coef信号用十进制decimal来显示…其他的信息可以对照自己的波形设置一一对应上,其他依次类推。 细心的同学会发现这个DO文件根本不完整,基本都是一些add wave,即是对每个信号的各种设置的TCL代码而已。不错,因为它缺少了我们之前所讲的仿真步骤①②③④,那么我们可以利用上面已学过的TCL语言来补完整它。如在前面加上一下语句,使这个DO文件包括了仿真过程的完整指令,包括新建工作库、编译源文件、仿真testbench文件等:vlib workvmap work workvlog freq_meter.vvlog freq_meter_direct.vvlog freq_meter_tb.v 新的DO文件如下所示: 图5至此,该DO文件才能用来实现较完整的自动化仿真。二.交互式命令通过在主窗口的命令窗口输入命令来实现,具有更好的调试和交互功能,提供多种指令,既可以是单步指令,也可以构成批处理文件,用来控制编辑、编译和仿真流程;常见交互式命令如下:1.force-repeat指令指令格式:force 开始时间 开始电平值,结束电平值 忽略时间(即0电平保持时间) -repeat 周期force clk 0 0,1 30 -repeat 100 表示强制clk从0时间单元开始,起始电平为0,结束电平为1,0电平保持时间为30个默认时间单元,周期为100个默认时间单元,占空比为70%。指令功能:每隔一段的周期重复一定的force命令,用来产生时钟信号,也可用来产生周期的输入信号,如01010101,00110011等。2.force指令指令格式:force item_name value time,value time;item_name为端口信号或内部信号,支持通配符号,但只能匹配一个;value不能默认,time,可选项,支持时间单元;force din 16#40900000 从当前时刻起给din赋值16进制40900000;force bus 16#F @100ns 在100ns时刻给bus赋值16进制F;force clr 1 100 经历100个默认时间单元延迟后为clr赋值1;force clr 1,0 100 表示clr赋值1后,经历100个默认时间单元延迟后为clr赋值为0;3.run指令指令格式:run timesteps time_unit,timesteps时间步长,time_unit时间单元,可以是fs、ps、ns、us、ms、sec;指令功能:运行(仿真)并指定时间及单元;run 100, 表示运行100个默认时间单元;run 2500ns, 表示运行2500ns;run -all, 表示运行全过程;run -continue, 表示继续运行4.force-cancel指令指令格式:force-cancel period指令功能:执行period周期时间后取消force命令;force clk 0 0,1 30 -repeat 60-cancel 1000,表示强制clk从0时间单元开始,直到1000个时间单元结束;5.view指令指令格式:view 窗口名指令功能:打开Modelsim的窗口view souce,打开源代码窗口;view wave,打开波形窗口;view list,打开列表窗口;view varibles,打开变量窗口;view signals,打开信号窗口;view all,打开所有窗口;
⑤ 如何只压缩文件不带上级目录
在压缩文件时,将文件路径选择为不存储路径,这样就可以得到不带上级目录的压缩文件。具体方法步骤:1、选中要压缩的文件夹,右键单击选择压缩文件。2、弹出对话框选择文件按钮。3、选择不存储路径。4、确定后即可看到压缩文件。5、双击打开压缩文件,直接看到的就是对应文件。压缩文件的目的:1、减小文件总体积的大小。2、将多个文件打包成一个文件。3、可以在压缩的同时设定密码,以对重要文件进行加密处理。4、可以利用自解压功能,可以制作软件的安装包。5、可以利用分卷压缩功能,将文件分割成几个部分即“卷”。
⑥ vivado hls怎么解决关键路径
先用cd命令进入文件所在文件夹,再用vi编辑,顺便就打开了,OK了!初学者可以去看一下鸟哥的书,网上很多的,写的很好很强大
⑦ C语言中定义的__FILE__使用,如何只出现该文件名,而不显示路径
可以用宏定义来实现去除文件名中的路径名。
因为windows和linux下,文件名中的路径分隔符号不同,windows中是"/",而linux中是"/",所以,采用的宏不同:
#include<string.h>//strrchr()函数所需头文件windows:#definefilename(x)strrchr(x,'\')?strrchr(x,'\')+1:xlinux:#definefilename(x)strrchr(x,'/')?strrchr(x,'/')+1:x调用:printf("filename:%s",filename(__FILE__));
相关函数说明:
函数原型:char *strrchr(const char *s, int c);
函数功能:The strrchr() function returns a pointer to the last occurrence of the character 【c】 in the string 【s】.函数返回一个指向最后一次出现在字符串s中的字符c的位置指针,如果c不在s中,返回NULL。
PS:linux中提供了相应的函数:basename(s),用来获取不带路径的文件名。
⑧ vivado工程文件存储路径修改
不管是文件编辑软件中的保存文件,还是网上下载文件时,都会在保存文件窗上有默认的路径框, 在路径框输入修改就更改了。
未经允许不得转载:山九号 » vivado添加文件如何不带路径|批处理中如何用dir来显示当前目录下的文件名和路径不包含要子目录中的东西只要当前目录的文件名和路径