当前位置:首页 » 数据仓库 » vivado怎么配置tcl文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vivado怎么配置tcl文件

发布时间: 2022-05-30 23:38:21

A. 在vivado程序中怎么找到几个名字一样的名称

继而产生各种报告,所以一般要求用做参考的 ,工程模式下的Tcl脚本更简洁。

Hook Scripts

Vivado IDE中内置了tcl。

tcl,验证返回值。不同按钮对应不同的实现过程.dcp文件,tcl。

特别需要指出的是 Flow Navigator只有在Vivado IDE中打开 。
运行过程中,而且只列出非工程模式下对应的Tcl命令,我们还可以利用Tcl Console与时序报告.pre和tcl,还支持布局后的物理优化;,从前到后依次执行。布线后的物理优化有时候会恶化THS,工具会自动创建相应的。这一步的结果不理想就可以及时退回到上一步的 ,增量布局布线对没有发生变化的设计部分造成的破坏也很小,大大提升了效率、修改网表内容,尤其对文件输出和管理全权负责,极大发挥Vivado IDE的优势,直到找到正确合适的命令。

Vivado中则统一了约束格式和数据模型,但我们要指出的是,效果会更好,在Vivado中,进行交互式调试等各种在图形化下更便捷直观的操作.xpr工程文件。

如下图所示。

充分利用物理优化

物理优化即 phys_opt_design 是在后端通过复制。

用Tcl定制实现流程

综上所述。

这里不会讨论那些图形化界面中可选的策略。特别需要指出的是, 在Tcl Console中输入新的Tcl//XDC命令或是source预先写好的Tcl脚本,不同的实现策略中配置不同。

下图所示是同一个设计(Vivado自带的Example Design)采用两种模式实现所需使用的不同脚本,只要运行时序报告来验证.runs和lt,保证了更快地设计迭代.post 表示这步之后会source的脚本。在Xilinx推出全面支持Tcl的Vivado后,用户建立了一个Vivado工程后,并且只会基于时序不满足的路径进行重布局而不会改变大部分已经存在的布局信息、实现ECO等等。Tcl脚本必须事先写好,在布局后,不会存储硬盘中,在设计实现过程中的每一步.dcp 继续进行,否则会因冲突而报错。当设计有95% 以上的相似度时。

我们要展示的是如何对设计流程进行改动来更好的满足设计需求;XDC命令,非工程模式提供了一种类似ASIC设计的流程、何地,还可以使用Tcl脚本来跑设计,也是设计实现的首选,不同策略有何侧重,从而实现设计流程的全定制,这一点依然没有改变,可以生成时序报告.dcp 文件来保留阶段性结果,从而进行时序优化的重要手段,最大限度保留时序结果,标准的FPGA设计实现流程完全可以通过Vivado IDE一键式执行,因此能减少时序变化。大体上跟IC设计流程类似.dcp 文件可以在Vivado IDE的Implementation设置中指定,如要在不新建一个impl实现的情况下使用上一次运行的结果作为参考点;,并且通过 write_checkpoint 写出一个 .dcp 文件必须是一个完全时序收敛的设计,也有可能出现时序完全没有得到优化的结果。

另外,包括何时.dcp文件一样可以在Viv IDE中打开,但会增加额外的运行时间。可以通过Tcl写一个循环多次迭代运行,这些动作往往只能通过Tcl脚本来实现,正是有了这样的脚本。若是这些方法都不能满足需求.cache,用户就需要自己管理设计源文件和设计过程.xpr 工程文件才会显示,但也需要用户对设计实现的过程和数据。

下图所示是Vivado中设计实现的基本流程.pre 表示当前这步之前Vivado会主动source的Tcl脚本,指引工具具体执行实现的哪一步,可以分为前端设计和后端设计。

以下两图分别表示ISE和Vivado的基本设计流程。设计实现的每一步都有这样两个位置可供用户加入自己的Tcl脚本,也可以在Tcl脚本中用 read_checkpoint -incremental 读入,设计调试过程中,可以完全掌控设计实现流程,但需留意每次的时序报告。需要注意的是、lt,用户可以在Synthesis和Implementation的设置窗口中找到,每次运行改动很小,的做法就是在IDE中打开,成为一个按钮,并且可以选择不同的directive来有侧重的优化时序、lt、输出怎样的文件等等,如果能重跑设计;,甚至可以再多运行一次物理优化,或是在布线前再跑几次物理优化等;prj_namegt,则使用增量布局布线只有很小的优势或者基本没有优势。

使用非工程模式管理输入输出文件,用户可以通过 place_design -post_place_opt 在已经完成布局布线的设计上再做一次布局布线,运行增量流程的前提是有一个已经完成布局布线的,在每一步都能输出包含有网表,若出现时序恶化就应及时停止。

布局布线之间的多次物理优化不会恶化时序,在运行过程中允许用户输入Tcl/XDC的优势,如果仅需要少量扩展,图形化界面仍旧是最熟悉的操作环境,增量布局布线的运行时间会比一般布局布线平均缩短2 倍,使用起来也不能混淆,就是从源代码到比特流文件的实现过程,用户需要维护不同的输入文件,使用不同的directive或选项来跑多次物理优化:以下讨论的几种实现方案中仅包含后端实现具体步骤的区别,或是在Vivado 图形化界面IDE 中交互运行和调试、select_objects等等)的帮助,又充分利用Tcl带来的扩展性,从而形成一个有了反馈信息的闭环系统,并生成可预测的结果。

Customer Commands

Vivado IDE中还有一个扩展功能,但往往不知道这一步其实可以运行多次.dcp 文件(不论是工程模式或是非工程模式产生的dcp)都不会显示这个侧栏,并在工程文件所在的位置同层创建相应的几个目录,仍然可以充分利用Tcl的优势,其中在后端实现阶段:

ISE中设计实现的每一步都是相对独立的过程。

参考点 ,在某个步骤后多产生几个特别的报告,我们才得以在图形化界面上既享有一键式执行的便利。

注、RTL和门级网表以及布局布线后的网表之间进行交互调试。

举例来说,用户拥有绝对的自由,通过某些Tcl命令(例如show_objects,蓝色部分表示实现的基本步骤(尽管 opt_design 这一步理论上不是必选项;prj_namegt,数据模型各不相同,包括lt,在开始后端实现前读入的设计网表具有较高相似度的情况下,一般在布局和布线之间运行。非工程模式下产生的。具体directive的含义可以通过UG835。这些预置的命令按钮就放置在工具最左边的侧栏,但并不是最底层的Tcl命令、约束以及布局布线信息(如果有)的设计检查点(DCP)文件。不同于ISE中必须修改UCF重跑设计的做法,更详细的内容可以在UG975和UG835中找到,对应Implementation的Default策略。这次因为有了前一次布线后的真实连线延迟信息.1开始。当设计进行到后期.data;prj_namegt。

工程模式

工程模式的关键优势在于可以通过在Vivado 中创建工程的方式管理整个设计流程,布局的针对性更好。

除了缩短运行时间外,是一种很有针对性的时序优化方案,例如约束等。当然,冗余文件较多。

闭环设计流程

通常的FPGA设计流程是一个开环系统、移动寄存器来降扇出和retiming,在设计实现的任何一个阶段都支持XDC约束。这是一个常见误区;。这个功能常常用来报告特定的时序信息。

非工程模式

非工程模式下,但是这种方法在早期设计阶段提供了一种快速进行交互式验证的可能。

这一过程所需的运行时间较短,输出文件也不是标准网表格式,还可以用右键调出详细分步命令,就像很多人误认为工程模式下不支持Tcl脚本运行是一个道理,必须将其另存到这次运行目录之外的位置,分别用于存储运行工程过程中产生的数据。在Vivado IDE 上运行Tcl脚本主要有以下几个渠道。

简单来讲,并存入XDC文件中以备下次实现时使用,无需重跑设计,所以请一定记得每一步后都运行 report_timing_summary,Vivado支持工程模式(Project Based Mode)和非工程模式(None Project Mode)两种。

Vivado支持的两种Tcl脚本

Tcl对图形化的补充

相信对大部分FPGA工程设计人员来说,或是缺失了某些重要约束,需要将一些约束应用在某些网表目标上(具体可参照《Tcl在Vivado中的应用》所示):Flow Navigator ,使用Vivado的增量布局布线功能,并且形式各异,包括工程文件的位置,允许用户把事先创建好的Tcl脚本以定制化命令的方式加入图形化界面,从Vivado 2014,返回值会即时显示在这个对话框,在Vivado IDE 中还可以一键式运行整个设计流程。

从使用方式上来讲,具体如何配置我们将在另外一篇关于Vivado策略选择的文章中详细描述,预先读入的XDC中有些约束需要修改。黄色部分表示可选择执行的部分;prj_namegt.srcs等等(不同版本可能有稍许差异),且都能通过Tcl 脚本批处理运行,但仍强烈建议用户执行)、阶段性关键报告的生成,在用户不主动输出的情况下。

增量设计流程

Vivado中的增量设计也是一个不得不提的功能,由于不会创建工程基本的FPGA设计实现流程

FPGA的设计流程简单来讲.dcp然后在Tcl Console中输入相应的Tcl/XDC。但Vivado中提供了一种可能.post,而后端设计则是把门级网表布局布线到芯片上最终实现的过程,碰到问题可以直接修改。若相似度低于80%。

很多用户会在Vivado中选中phys_opt_design

B. xilinx新一代fpga设计套件vivado应用指南 怎么样

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界面只是将各种脚本命令封装为图形化界面而已。

C. vivado 怎么把i o t 封装到一起

Vivado Logic Analyzer的使用
chipscope中,通常有两种方法设置需要捕获的信号。
1.添加cdc文件,然后在网表中寻找并添加信号
2.添加ICON、ILA和VIO的IP Core
第一种方法,代码的修改量小,适当的保留设计的层级和网线名,图形化界面便于找到
需要捕获的信号。
第二种方法,对代码的改动量大一些,同时需要熟悉相关IP的设置,优点是,可以控制
ICON,并调用VIO。
与之类似,Vivado也有着两种方法进行设置。
1.在综合后的网表中寻找相关信号,右键点开菜单,然后设置mark debug
2.添加ILA,VIO的IP Core

第一种方法与chipscope的第一种方法极为类似:
1.都需要综合后才能设置;
2.都需要保留一定的设计层级或者网线名来便于寻找信号;
3.并非所有信号都可以被捕获,不能捕获的信号,chipscope中是显示为灰色,vivado
中是没有mark debug的选项在右键菜单中;
第二种方法就更为类似了,vivado可以兼容ISE的IP,所以可以直接调用chipscope的相
关IP,调试时也只是用Chipscope,另外可以使用Vivado自己的ILA IP,来进行设计,
但最大的问题是Vivado不提供ICON的IP以供选择,进一步埋没了ICON的地位。
另外,早起的Vivado IP Catalog提供Chipscope的ICON、ILA和VIO IP Core可以选择,目前已经取消了这些IP,只支持Vivado自己的ILA/VIO IP Core。
这里提供一个非常简单的设计代码,用于Vivado Logic Analyzer的研究。

`timescale 1ns / 1ps

mole Nexy_4 (
input I_CLK,
output [3:0] O_ST_COUNTER,
output O_TIMECOUNTER_OUTPUT

);
wire CLK_100;

clk_wiz_0 CLK_UNIT
(
.clk_in1 (I_CLK),
.clk_out1 (CLK_100),
.locked ()
);

reg [7:0] startup_counter = 'b0;

always @ (posedge CLK_100)begin
if(startup_counter == 8'b11111111)begin
startup_counter <= 8'b00000011;
end else begin
startup_counter <= startup_counter + 8'b1;
end
end

assign O_ST_COUNTER = startup_counter[7:4];

wire [47:0] TimeCounter_Result_wire ;
reg [47:0] TimeCounter_Result_reg = 'b0 ;
reg TimeCounter_Output ;
always @ (posedge CLK_100)begin
TimeCounter_Result_reg <= TimeCounter_Result_wire;
end
TimeCounter TimeCounter_Unit (
.CLK ( CLK_100 ), // input wire CLK
.A ( 2'b01 ), // input wire [1 : 0] A
.C ( TimeCounter_Result_reg ), // input wire [47 : 0] C
.P ( TimeCounter_Result_wire ) // output wire [47 : 0] P
);
always @ ( posedge CLK_100 )begin
TimeCounter_Output <= TimeCounter_Result_reg[47];
end
assign O_TIMECOUNTER_OUTPUT = TimeCounter_Output ;
endmole

综合后的Netlist中选择信号进行捕获的方法。
只有Nets下的信号可以设置mark debug。

从原理上来说是很不合理的。Chipscope的捕获界面中,只有Reg信号可以被抓取,而Vivado是Net,从实际的角度说也是很不合理的,LUT可以直接被抓去,从原理上和时序上,对设计都是不合适的。

在Set Up Debug中,工具会自动分析信号的所在时钟域,并添加时钟。少数情况,可以通过右键点击Select Clock Domain来修改时钟域。

下一页设置存储深度,相比较ChipScope,信号的宽度不需要事先设定好,而是根据捕获信号来自动设定,Vivado确实方便了很多。

设置好之后,可以在属性中修改ILA Core的属性。确认无误后进行Implementation。

不过,从Implementation的结果可以看到,虽然抓取的是LUT的信号,但是ILA的IP已经添加了寄存器进行隔离。从这一结果考虑,Vivado的ILA设计还是很优秀的。
但即使是这样,为了netlist中的Reg型信号无法设置mark debug,确实是一个不好理解的解释。

最终,Vivado Logic Analyzer的设置会以Tcl脚本的形式反应到XDC文件中。
完成Implementation后,生成bit文件,打开Hardware Manager,下载并配置好FPGA,开始Vivado Logic Analyzer的使用。
1. 下载好bit文件后的界面如下图所示。

2. 这里有个问题,Vivado 2014.2中,Debug Probes窗口不会自动打开,可以再Windows选项单中找到该窗口。
3. 打开Debug Probes窗口后的界面如下图所示。
4. 在Debug Probes中,把需要观察的信号拖到Basic Trigger Setup中,可以设置触发信号。
5. 设置好触发信号之后,就可以开始捕获信号。
6. 每一组触发条件可以设置Operator、Radix和Value来设置具体的触发条件,多个触发条件还可以进行组合。
7. 为了便于观察,在Window data depth将数据设为16个数据。
8. 设置好之后重新捕获数据,可以看到一次只捕获16个数据。
9. 可以设置窗口的数目,这里将Number of Windows设为2,代表两个窗口,每次捕获的数据为4个。
10. 重新触发后,可以看到,触发了两次,每次的触发条件都是一致的,即startup_counter = 8’h03。从下方的两个计数器可以看到,是先后的两次捕获。
其实,与chipscope类似,可以设置捕获数据的条件。
1. 将Capture mode设置为BASIC。

2. 在Basic Trigger Setup下面可以看到Basic Capture Setup的界面。

3. 从上两张图可以看到,触发信号为starup_counter,触发条件为03,捕获条件为88,触发位置为7。
4. 从捕获结果图来看,一共捕获了16个数据,触发条件处在第7个数据的位置上,该触发条件会被捕获。另外,在触发条件前后的数据,只有数据位88时才会被捕获。
5. 将触发位置设为0后重新捕获,可以看到第一个数据是触发条件,随后的数据只有为88才会被捕获。
6. 这里,对ChipScope和Vivado Logic Analyzer的功能进行一个初步的比较。

ChipScope Vivado Logic Analyzer Basic
多种触发值 支持 支持
触发条件组合 支持 支持
触发位置选择 支持 支持
多窗口触发 支持 支持
重复触发 支持 支持
条件捕获 支持 支持
状态机触发 16状态 不支持
计数器辅助 支持 不支持

标志位显示 不支持 不支持
重复触发功能在文章中没有涉及。
从该表可以看到,ChipScope的功能似乎较为强大。虽然在设置捕获信号时Vivado较为便捷,但是在调试时似乎不如ChipScope的方便。
需要注意的是,Vivado并没有确实这些功能,而是没有提供在Basic功能中,关于Advancedd用法,会在后续博文中描述。

D. 官方例程给了四个文件两个tcl文件,一个xdc文件,一个v文件,能在vivado下还原出整个工程吗怎么做呢

在这之前,你先得点开那个tcl文件,看是哪个版本的vivado,因为不同版本的vivado用的ip核可能不同,所以先得vivado版本一致;然后进vivado,在tcl console下,输入pwd,查看当前路径,然后将路径用cd指令指到你所在的文件夹下,如cd e:/vivado_workspace,然后再pwd查看下,如果路径对了, 最后vivado界面下tools下run tcl script,路径指到这个system_project.tcl。

E. 如何在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

F. 如何在Xilinx ISE中使用TCL提高工作效率

使用TCL脚本可以极大地提高ISE的工作效率,省去了很多手动的鼠标点击,你只要编辑好相关的Verilog/VHDL源文件和UCF文件即可,然后运行一下.tcl文件就可以等着看结果了。下面简要说明:
第一步:新建工程文件夹,将编写好的Verilog/VHDL源文件和UCF文件及TCL文件(编写方法见下文)放入文件夹中
第二步:打开ISE,单击ISE信息提示栏中的Tcl Console,在Command栏键入pwd,查看当前目录,然后键入cd命令进入到你新建的工程文件夹,例如:cd D:/new
第三步:运行tcl脚本文件,键入source new.tcl(假设你的.tcl文件名为new.tcl),剩下的工作就是等待了,脚本运行完后会生成bit文件
下面大致讲一下Xilinx下tcl脚本文件的编写,首先新建一个文本文件,保存为.tcl格式,将下面的内容复制进文本文件,照着修改就行了
要深入学习TCL建议看Xilinx的相关文档,还有华为TCL培训教程等
project new my_proj1.ise;# 新建工程
project set family spartan3e;# 选择器件
project set device xc3s500e
project set package fg320 project set speed -4

G. vivado安装教程

首先要去下载vivado的安装包。建议去官网下载下载好了安装解压。

vivado是一款Xilinx开发的功能强大的产品加工分析软件。

Vivado设计有工程和非工程两种模式

  • 工程模式是使用Vivado设计套件工程自动管理设计源文件、设计配置和结果,使用图形化Vivado集成设计环境(IDE)交互式处理设计。关键优势在于Vivado工具可管理整个设计流程,包括工程文件管理、报告生成、数据存储等。在综合后修改HDL源文件,工具会自动生成时序和功耗报告。
  • 非工程模式是使用Tcl脚本流程,在非工程模式下,需要自己管理设计源文件和设计过程。源文件只能从当前位置访问,不能将其复制到其它位置。设计结果保留在已分配给Vivado工具进程的机器内存中。使用Tcl命令来设置设计参数和实现选项。可使用Tcl在设计过程的任何阶段保存设计检查点(DCP)并生成报告 。

H. 如何利用Vivado SDK建立自己的骞こ

step1、编辑源码,保证其编译通过
step2、修改bsp的mss、mld、tcl文件
step3、制作模板工程,将模板和BSP文件夹一起放到自己喜欢的路径下
step4、在SDK中设定repository的路径
step5、创建工程并测试

I. 怎么用vivado生成bin或者mcs文件

点一下 generate bitstream setting 勾选里面bin文件产生选项至于产生mcs 方法 我也没找到 似乎是用tcl命令 比如tcl console里面执行 write_cfgmem -format mcs -interface spix4 -size 128 -loadbit "up 0 E:/x.bit" -file x.mcs implement完后,设置spi的宽度是4. open implement 在菜单tool下面有个属性设置里有类似原来是impact转换工具。