听说xilinx vivado 2018.2出来了,有哪个发一份我吗多谢谢。

听说xilinx vivado 2018.2出来了,有哪个发一份我吗多谢谢。,第1张

你好,我这有一份,希望对你有帮助

xilinx vivado 20182:>

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

module 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 ;

endmodule

综合后的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 20142中,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用法,会在后续博文中描述。

你好,我的系统是win7的,装vivado20144也遇到过与您相同的问题,尝试了很多遍之后终于行了。把电脑里的ise 147卸载了再装vivado就行了,虽然原因不明。您可以试一下这个方法。把ise重新装一次就是了。

自从去年10月Xilinx发布ISE147之后,ISE套件便暂时没有了更新计划,相当于进入了软件生命中的“中年”;而当初在2012x版本还作为ISE套件中的一个组件的Vivado,此时已经如早上8、9点钟的太阳一样冉冉升起:因为随着FPGA/SOC制造工艺、硬件单元规模和设计方法的不断改进,传统的基于ISE的设计方法已经逐渐不能满足我们的要求了。所以针对新的Artix-7/Kintex-7/Virtex-7芯片,Xilinx都建议我们使用全新设计的Vivado套件来进行开发(使用Spartan-6的筒子可以在新设计中考虑向Artix-7过渡了)。此外,因为ISE套件已经没有升级计划表,所以对新的 *** 作系统也无法支持了,例如在Win8/81上面,ISE147几乎无法完美运行,而从Vivado20141版本就开始全面支持了。

直观的来看,我理解的Vivado套件,相当于把ISE、ISim、XPS、PlanAhead、ChipScope和iMPACT等多个独立的套件集合在一个Vivado设计环境中,在这个集合的设计流程下,不同的设计阶段我们采用不同的工具来完成,此时Vivado可以自动变化菜单、工具栏,可以显著提高效率:因为不需要在多个软件间来回切换、调用,白白浪费大量的时间。基于Vivado IP集成器(IPI),则把我们对硬件的配置更好地集成到我们的设计中,既极大地提高了对IP的使用和管理,也帮助我们减小了软件和硬件(例如ZYNQ器件的PS)之间的隔阂。Vivado HLS则可以把现有的C代码,在一些特定的规范下直接转换为可综合的逻辑,这也将极大地提高我们实现和移植现有算法的速度。

因为Vivado套件较为复杂,所以先用一个对比测试,来检验一下它们之间的性能差别。采用的测试环境是:

*** 作系统:win7 sp1x64

CPU:I7-4770k,开启超线程,全部超频至43GHz

ISE: 147

Vivado:20141

使用的芯片:ZYNQ系列中的xc7z020-clg400-2(设计全部在PL中实现)

待测试程序:一个用来做实时仿真的模型(算下来有140424行Verilog代码)。为了减小硬盘的延迟影响, *** 作系统和软件都安装在SSD上面,而把工程文件放在RAMdisk上面(因为综合、实现的过程都需要大量的小文件读取 *** 作)。

运行的测试:输入正确的工程,但是清理所有工程文件,这样就可以从0开始完成所有的综合、翻译、映射、布局布线和升级bit流文件的所有 *** 作;使用的策略则全部用默认策略。

首先,在ISE上运行,测试开始时间是7:33:10,生成bit文件的时间是7:37:01,共花费了231秒。

然后,在Vivado上运行。为了方便测试,在Vivado套件里直接导入ISE的工程,源文件都可以正常导入,但是约束文件需要重新配置,因为ISE使用的ucf格式,而Vivado则升级为更先进的xdc格式,需要全部重写约束文件。不过这也不是特别困难的事情,例如管脚约束的转换就比较容易:

例如,ucf为:

NET "gateway_out1[0]" LOC = Y12;

NET "gateway_out1[0]" IOSTANDARD = LVCMOS18;

xdc则为:

set_property PACKAGE_PIN Y12 [get_ports {gateway_out1[0]}]

set_property IOSTANDARD LVCMOS18 [get_ports {gateway_out1[0]}]

为了快速转换,用查找/替换可以较快的完成其中的一部分转换。

然后在Vivado中点击reset runs,如图1所示,这样会清除所有潜在的已经生成的结果(清除综合的结果时可以选择自动清除实现的结果)。

图1 reset runs

为了充分发挥Vivado套件的潜力,在tcl console里输入下面的脚本:

set_param generalmaxThreads 8

这样就可以充分发挥最大的CPU潜力了(例如DRC检查可以使用全部的线程进行并行 *** 作)。然后运行产生比特流的 *** 作,开始时间是8:15:20,生成bit文件的时间是8:17:12,共花费了112秒。

对比ISE的231秒,可以看出Vivado使用的时间只有ISE的485%。俗话说,“时间就是金钱”,“效率就是生命”,Vivado只用了不到ISE一半的时间就完成了这个复杂工程的全部实现过程,数据非常有说服力。当然Vivado使用的内存貌似比ISE多了几百MB,但是对于现在配置中等的机器都可以达到8GB内存的情况下,这点内存的差距还是可以忽略的。(好马配好鞍,电脑的这点投资和高端的芯片带来的性能提升和time-to-market减小相比,可以说是微不足道的了)。

图2 ISE完成时间

图3 Vivado完成时间

图4 ISE资源占用

图5 Vivado资源占用

对比使用的资源:默认策略下,二者使用的Slice寄存器类似;Vivado使用的LUT稍多,但是没有使用DSP48E1单元,而ISE使用了12个,相当于Vivado用一部分LUT完成了DSP单元的功能,这与综合/实现的策略有关。可以认为在默认策略下,Vivado和ISE产生结果的资源利用率打了个平手,还可以通过调整综合/实现的策略达到资源利用率的优化。当然,Vivado相对ISE有个显著的优势,就是Vivado可以一次运行多种不同的策略,从而使得我们一次性获取各种策略的结果,这样的“半自动化”的优势是ISE完全不具备的。

这一段时间遇到、听到、看到使用vivado的困惑。这些困惑,会让初次接触者,产生畏难的情绪。现共享出来,以共勉。 1vivado安装在32位计算机上,很遇到不少莫名其妙的现象。 通过交流以及自己开发遇到的情况,经常会发现VIVADO在使用期间出现很多莫名其妙的现象。通过比较对比,发现64的win7 *** 作系统就没有这些莫名其妙的错误提示等等。2很多人习惯使用Chipsope Pro来调试。Vivado跑出的bit能否支持呢? 答案是肯定的。请参考UG908 (v20134) 的 Using Legacy Debug Cores in Vivado Designs章节。 另外,有人还发现chipscope pro 和vivado debug在调试中各有各的长处,能否同时使用这两种方法呢?答案同样是肯定的。请参考UG908 (v20134) Using Vivado Logic Analyzer and ChipScope Pro Analyzer Simultaneously。3很多做信号处理算法的工程师,经常使用chipscope抓数,然后保存为文本格式后,供MATLAB读取来分析数据现在很多人发现vivado似乎没有该功能了。有两种方法:1使用上面提到的方法,使得vivado跑出的bit能供chipscope使用不就解决了嘛。2第二种方法,直接在vivado中保存数据。只不过这种方法在vivado的IDE中没有在菜单对应的命令,目前该方法只支持TCL脚本的方式请参考UG908 (v20134) Saving and Restoring Captured Data from the ILA。Saving Captured ILA Data to a FileCurrently, the only way to upload captured data from an ILA core and save it to a file is to use the following Tcl command:write_hw_ila_data my_hw_ila_data_filezip [upload_hw_ila_data hw_ila_1]This Tcl command sequence uploads the captured data from the ILA core and writes it to an archive file called my_hw_ila_data_filezip The archive file contains the waveform Core说到这里不得不说一个事情,现在有第三方的公司提供软件,不需要这么多步骤,直接可以将数据获取出来,进行各种分析。这就是xilinx的VIVADO肯定有在软件上有接口,可以提供这些抓出来的数据。只不过这些接口目前还没有给大家公示出来。

注意方法完全没问题的!

ISE是塞灵思公司最早推出的FPGA编译软件,用于早期FPGA器件的编译综合。后期塞灵思推出了很多高性能的FPGA,ISE在编译算法,时间上已经不支持了。所以后其有推出了新软件VIVADO,其实主要原因还是用这个软件来支持zyqn芯片。vivado hls 的全称是 high-level synthesis 高性能综合,可以通过高级编程语言C,C++编程,转化成硬件RTL。

以上就是关于听说xilinx vivado 2018.2出来了,有哪个发一份我吗多谢谢。全部的内容,包括:听说xilinx vivado 2018.2出来了,有哪个发一份我吗多谢谢。、装完vivado以后一直运行不了。。。、vivado 错误怎么改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10092743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存