精华内容
下载资源
问答
  • vivado Mark debug 方式添加测试端口

    千次阅读 2020-04-23 11:06:28
    在线调试,可以用ila,也可以用debug。平时我都用的ila或者chipscope。但是在block开发方式下,module里面不能含有IP核,否则add module失败。当然也可以把module封装成IP核,然后在block中添加。自己开发的时候,又...

         在线调试,可以用ila,也可以用debug。平时我都用的ila或者chipscope。但是在block开发方式下,module里面不能含有IP核,否则add module失败。当然也可以把module封装成IP核,然后在block中添加。自己开发的时候,又懒得把所有模块封装成IP核,耗时,麻烦。这样想要添加测试信号的时候,就需要用到debug。

         在使用chipscope的时候,有的信号可能你在端口列表中根本找不到,添加(*keep= “true”*)也不行,这里就可以凸显mark_debug 的优势。用mark_debug 就能观测到改信号。

    1 、 在代码中添加(* mark_debug="true" *) 语句

    2、在block design 时,在信号上右键  ------  debug 

         在使用debug 的时候,有一个问题很头疼。比如我这次添加了3个信号,等会想去掉一个,或者添加一个。首先,综合然后才能打开添加debug的界面;其次,每次新打开debug,代码中所有的debug都会有,而不是上次添加多的,还需要自己一个个找,如果代码中debug的信号特别多,添加/删除 信号很麻烦。

        其实,第一次采用debug界面生成,后面直接修改XDC文件就可以了,下面是我尝试添加了两个信号,已经生成的bit文件。

    上图,红色方框圈起来的是后来自己新添加的信号。后期添加,就按照这样,每组4条指令添加即可。第一组是位宽为1 的信号,第二组是位宽为8的信号。

    上图中各标号说明:

    1:probe 15 ,紧接上面的编号往下续的

    2:probe 15 ,紧接上面的编号往下续的

    3:标识该测试信号的位宽为1

    4:probe 15 ,紧接上面的编号往下续的

    5:测试的信号。注意和后面“7”对比,不仅仅是位宽拼接的不同,这里比“7”中也多了一个ssd_rd_judge_0_XXX。o_ssd_m_tready和其他module相连,这里在使用o_ssd_m_tready这个信号 的时候,要标识是哪个模块的数据。所以这里使用了

    ssd_rd_judge_0_o_ssd_m_tready (注意ssd_rd_judge_0 是模块block界面上面的名字)

    6:标识该测试信号的位宽为8

    7:测试的信号。和“5”的不同不仅仅是位宽拼接,在信号说明的时候,没有RAID_CTRL_0.那是因为,这里的信号没有和其他模块相连。 多位拼接按照固定格式来就可以了。

    8: 额外说明一点:多数据拼接的时候不要有换行,有的时候换行会报错。然后把换行去掉,所有的都写为一行,就没有错误了。自动生成的XDC文件中也有换行的,不知道为什么自己添加的就不行。

    上面的描述,我都是在block中,右键debug看的信号。代码内部的在这里没用到。代码内部的,应该是design_1_i/module_name/signal   这类格式。信号索引按照module一层层往下找。可以参考自动生成的xdc文件格式来续。

     

     

     

     

     

     

     

     

     

     

         

     

    展开全文
  • 在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。 Debug分为3个阶段: 1. 探测信号:在设计中标志想要查看的信号 2. 布局布线:给包含了debug IP的设计布局布线 3. ...

    Vivado和ISE相比ChipScope已经大幅改变,很多人都不习惯。在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。

    Debug分为3个阶段:
    1. 探测信号:在设计中标志想要查看的信号
    2. 布局布线:给包含了debug IP的设计布局布线
    3. 分析:上板看信号

    一 探测信号
    探测信号有2种方法一种是直接在HDL源代码中用(*mark_debug = “true”*)标识出要探测的信号 另一种是 在综合过后的网表文件中添加标志。

    1 .在HDL源代码中添加标志

    然后点击open Synthesized Design

    然后点击Tools-> Set Up Debug

    点击 Next

    点击Add/Remove Nets

    点击find会出来所有信号。如果需要添加debug的信号,从左边框中选择所需信号,点击按 钮加到右边来。如果需要去除不需要的debug信号,从右边框中选择所需信号,点击按钮就 去除了。选好信号之后,在右下角点击Ok按钮。

    在此框中为所有debug信号选择时钟域,选择debug信号,右键选择Select Clock Domain。注意每一个时钟域对应一个单独的ILA 2.0core。

    在此框中选择所需时钟,点击ok

    点击next

    然后继续下面的Implement 流程

    点击Save保存修改后的工程


    后面像以前一样等工程跑结束。

    2.在网表文件中添加标志
    网表文件添加标志,第一步也是打开综合后设计。如下图所示

    第二步是打开debug窗口


    Open synthesized Design之后,有2种方法来标志debug信号

    (1) 第一种方法是在Netlist窗口中选择信号,右键点击Mark Debug

    (2) 第二种方法是在Tools中选择Setup Debug 推荐使用此方法


    然后和前面一样继续跑工程。

    二 上板调试
    上板的时候选择Open hardware session ,然后Open a new hardware target

    选择next

    选择next

    选择Next

    选择FPGA来配置文件

    注意移到另一台电脑看debug信号时,必须将debug_nets.ltx 文件和bit文件一起移过去。如下图红框所示

    如果需要设置触发条件,选择Windows –> Debug Probes

    在Debug Probe窗口中选择需要设置的信号,然后设置触发条件。在Trigger Pos中可以设置抓取到触发信号跳变前N个时钟周期可以被抓到

    --------------------- 本文来自 长弓的坚持 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/wordwarwordwar/article/details/71248875?utm_source=copy

    展开全文
  • vivado删除debug信号

    2021-08-25 16:05:23
    点击setup debug,下一步 选择第三项

    点击setup debug,下一步 选择第三项

    展开全文
  • 最近两个月开始用Vivado做项目,之前一直用ISE开发,个人觉得ISE方便好用,而Vivado编译又慢,还占内存,打开一个工程就需要好半天,可视化界面感觉也没什么用处,不如模块化的代码来的简单,而且还有一些bug。...

    最近两个月开始用Vivado做项目,之前一直用ISE开发,个人觉得ISE方便好用,而Vivado编译又慢,还占内存,打开一个工程就需要好半天,可视化界面感觉也没什么用处,不如模块化的代码来的简单,而且还有一些bug。无奈xilinx公司不再开发ISE,到14.7就结束了,以后的芯片只能用Vivado做设计了,只能用它了,现在已经更新到了2014.4版本,我现在用的是2013.4版本,开发板是zedboard。

    用Vivado进行硬件调试,就是要插入ila核,即“集成逻辑分析仪”,然后将想要引出来观察的信号连到这个核的probe上。

    首先第一步,需要把想要观测的信号标记出来,即mark_debug,有两种mark_debug的方法,我用verilog写了一个简单的流水灯程序,只有几行代码,如下:

    1. module main(
    2. input            clk,
    3. input            rst,
    4. output reg [7:0] led
    5.     );
    6. (*mark_debug = "true"*)reg [23:0] counter;
    7. always @(posedge clk) begin
    8. if(rst) begin
    9. counter <= 0;
    10. led <= 8'b00000001;
    11. end
    12. else counter <= counter + 1;
    13. if (counter == 24'hffffff)
    14. led <= {led[6:0],led[7]};
    15. end
    16.  
    17. endmodule
    例如,要观察counter信号的波形,那么在第7行定义reg型信号counter时,前面加上(*mark_debug=“true”*),这样就把counter信号标记了出来。如果用vhdl语言实现的话,这句话用该这样写:
    1. signal counter : std_logic_vector (23 downto 0);
    2. attribute mark_debug: string;
    3. attribute mark_debug of counter : signal is "true";
    另外添加xdc约束文件,内容如下:
    1. set_property PACKAGE_PIN Y9 [get_ports clk]
    2. set_property PACKAGE_PIN T18 [get_ports rst]
    3.  
    4. set_property IOSTANDARD LVCMOS33 [get_ports clk]
    5. set_property IOSTANDARD LVCMOS18 [get_ports rst]
    6.  
    7. set_property PACKAGE_PIN T22 [get_ports {led[0]}]
    8. set_property PACKAGE_PIN T21 [get_ports {led[1]}]
    9. set_property PACKAGE_PIN U22 [get_ports {led[2]}]
    10. set_property PACKAGE_PIN U21 [get_ports {led[3]}]
    11. set_property PACKAGE_PIN V22 [get_ports {led[4]}]
    12. set_property PACKAGE_PIN W22 [get_ports {led[5]}]
    13. set_property PACKAGE_PIN U19 [get_ports {led[6]}]
    14. set_property PACKAGE_PIN U14 [get_ports {led[7]}]
    15.  
    16. set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
    17. set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
    18. set_property IOSTANDARD LVCMOS33 [get_ports {led[2]}]
    19. set_property IOSTANDARD LVCMOS33 [get_ports {led[3]}]
    20. set_property IOSTANDARD LVCMOS33 [get_ports {led[4]}]
    21. set_property IOSTANDARD LVCMOS33 [get_ports {led[5]}]
    22. set_property IOSTANDARD LVCMOS33 [get_ports {led[6]}]
    23. set_property IOSTANDARD LVCMOS33 [get_ports {led[7]}]
    之后run synthesis综合,之后open synthesized design,在左上角选择debug layout,在debug窗口中netlist看到counter信号前面有一个绿色的小蜘蛛,表示counter信号被标记出来了。
    这其实是一种比较繁琐的方法,更为方便的方法是,直接综合工程,在之后打开综合设计,在netlist中直接选中想要查看的信号,右键选择mark debug,即可将信号标记出来。
    但是采用第一种方式的好处是,如果工程比较复杂的话,一些信号可能会被综合优化掉,加上模块层层实例化,在netlist中可能找不到要观测的信号,这时在代码里面mark_debug,依旧可以将该信号引出来。
     
    接着第二步就是插入调试内核了,在Vivado界面下方,找到Unassigned Debug Nets,右键选择 set up debug,在接下来的对话框中列出了counter信号的lk domain是CLK_IBUG_BUFG,其trig和data项都打了对勾,表示counter信号既作为触发信号也作为数据信号。
     
    选择next,在接下来的对话框中将enable advanced trigger mode 和enable basic capture mode勾选上,继续next,最后finish,在界面下方的debug窗口显示如下:
     
     
    右键dbg_hub,选择implement debug cores,接着在打开的schematic中,可以看见插入的ila核,其probe端口与counter相连,打开xdc文件,在最后几行多出来这几行代码:
    1. create_debug_core u_ila_0 labtools_ila_v3
    2. set_property ALL_PROBE_SAME_MU true [get_debug_cores u_ila_0]
    3. set_property ALL_PROBE_SAME_MU_CNT 4 [get_debug_cores u_ila_0]
    4. set_property C_ADV_TRIGGER true [get_debug_cores u_ila_0]
    5. set_property C_DATA_DEPTH 1024 [get_debug_cores u_ila_0]
    6. set_property C_EN_STRG_QUAL true [get_debug_cores u_ila_0]
    7. set_property C_INPUT_PIPE_STAGES 0 [get_debug_cores u_ila_0]
    8. set_property C_TRIGIN_EN false [get_debug_cores u_ila_0]
    9. set_property C_TRIGOUT_EN false [get_debug_cores u_ila_0]
    10. set_property port_width 1 [get_debug_ports u_ila_0/clk]
    11. connect_debug_port u_ila_0/clk [get_nets [list clk_IBUF_BUFG]]
    12. set_property port_width 24 [get_debug_ports u_ila_0/probe0]
    13. connect_debug_port u_ila_0/probe0 [get_nets [list {counter[0]} {counter[1]} {counter[2]} {counter[3]} {counter[4]} {counter[5]} {counter[6]} {counter[7]} {counter[8]} {counter[9]} {counter[10]} {counter[11]} {counter[12]} {counter[13]} {counter[14]} {counter[15]} {counter[16]} {counter[17]} {counter[18]} {counter[19]} {counter[20]} {counter[21]} {counter[22]} {counter[23]}]]
    14. set_property C_USER_SCAN_CHAIN 1 [get_debug_cores dbg_hub]

    到此为止,成功将要观察的信号引出来,完成了插入调试内核,接着直接运行generate bitstream,即可生成bit文件。

    最后一步,连上zedboard开始调试,用impact将bit文件下载到板卡上,或者在后面hardware manager中选择program device也可以。打开hardware manager,然后open new target,一直next直到结束,即可打开Vivado硬件逻辑分析仪,如下图所示:

    要查看波形,必须要有信号触发,将counter信号拖入右方的basic trigger setup窗口,可以设置,想要counter等于何值时触发,右键counter,选择run trigger,并将counter信号添加到波形窗口中,接着便可以在打开的波形窗口中观察counter信号的变化。

    硬件调试的流程大致如上述所示,这只是非常简单的一个例子,作为对官网视频教程的一个翻译加补充吧,如果工程较大的话,debug时还会遇到各种问题,就需要一步步慢慢摸索解决啦。

    参考官网视频教程,另外在xilinx官网上也可以搜到debug的文档:

    http://china.xilinx.com/training/vivado/inserting-debug-cores-into-the-design.htm
    http://china.xilinx.com/training/vivado/programming-and-debugging-design-in-hardware.htm

    附加两点我曾遇到的小问题:

    (1)在进行综合之前,需要将先将xdc约束文件添加到工程中,否则最后write bitstream时出错。Vivado的一个问题就是,有好多ise中综合时就能检测出的错误,而Vivado要等到生成bitstream时才报错。

    (2)在打开hardware manager之后,提示vcseserver没有开启,在vivado/2013.4/bin下面运行vcseserver的bat程序即可。

    转载于:https://www.cnblogs.com/tubujia/p/9242895.html

    展开全文
  • VivadoDebug的使用方法

    千次阅读 2020-06-19 16:45:51
    Vivado中提供了多种Debug的操作方式,下面就来总结一下: 方式一:代码中例化ILA IP核 第一种,直接例化ILA IP核: 需要探测多少个信号,信号的位宽是多少,直接选择即可: 下面界面可以选择探测信号宽度以及触发...
  • VivadoDebug的用法总结

    千次阅读 多人点赞 2019-07-20 15:55:41
    本文总结使用Vivado进行Debug的三种方式,总结起来,第二种最好用啦。
  • 使用vivado工具添加debug信号

    千次阅读 2019-08-08 11:52:33
    vavado工具编译时,会将我们代码中很多信号给综合或者优化掉;因此当我们想添加一下信号至ILA中进行上板... 1:在代码中对需要观测的信号前面添加 (* mark_debug="true" *); (* mark_debug="true" *)input ...
  • Vivadodebug用法

    万次阅读 2017-08-20 21:46:46
    在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。 Debug分为3个阶段: 1. 探测信号:在设计中标志想要查看的信号 2. 布局布线:给包含了debug IP的设计布局布线 3....
  • vivado中关于mark_debug综合被优化的问题 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 如何插入一段漂亮的代码片 去博客设置页面,选择一款...
  • Vivado中提供了多种Debug的操作方式,下面就来总结一下: 方式一:代码中例化ILA IP核 需要探测多少个信号,信号的位宽是多少,直接选择即可: 下面界面可以选择探测信号宽度以及触发方式: 方式二:通过网表...
  • 这里重点说明一下,网络上绝大多数(几乎所有)的资料包括博客都是用(*mark_debug=''ture''*) 来标记要抓的信号,但是随着vivado版本的更新,这种标记语言已经不行了,正确的标记方式是(...
  • vivado 使用了debug ila信号调试后怎么删除干净debug信号 以上三步删除干净debug信号,编译通过。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几...
  • vivado----fpga硬件调试 (二)----mark_debug

    万次阅读 2017-05-06 10:05:45
    在ISE中称为ChipScope而Vivado中就称为in system debug。下面就介绍Vivado中如何使用debug工具。 Debug分为3个阶段: 1. 探测信号:在设计中标志想要查看的信号 2. 布局布线:给包含了debug IP的设计布局布线 3. ...
  • vivado----fpga硬件调试 (四)----mark_debug

    万次阅读 多人点赞 2017-05-06 10:15:32
    vivado中fpga功能验证比ise中方便了很多,主要体现在debug的ip核生成以及最后的波形观察和调试上,下面我就从这两个方面说一下vivado的fpga验证调试。  fpga验证的步骤一般是:  × 在代码中加入关键字,表示...
  • vivado set up debug Clock Domain时钟选择

    千次阅读 2020-12-02 16:19:57
    在FPGA调试时经常会用到set up debug功能对开发板的引脚波或数据形进行分析,相比于例化ILA来说,set up debug更为便捷,只需要在我们所要观察的信号波形前面加上(*mark_debug = true*)即可,不需要调用ila IP核。...
  • Vivado下在线调试是利用ILA进行的,Xilinx官方给出了一个视频,演示了如何使用Vivadodebug cores,下面我根据这个官方视频的截图的来演示一下: 官方的视频使用的软件版本为2012.2,不过在2015.3下也是差不多的...
  • vivado (*mark_debug = "true"*) use guide

    千次阅读 2018-12-26 08:45:04
    Add (*mark_debug = "true"*) before signal Run synthesis ,then open synthesized Design -&gt; Set Up Debug  add or delete signals, then click -&gt;Next Set ila core option....
  • vivado----fpga硬件调试 (三)----mark_debug

    千次阅读 2017-05-06 10:07:31
    Vivado下在线调试是利用ILA进行的,Xilinx官方给出了一个视频,演示了如何使用Vivadodebug cores,下面我根据这个官方视频的截图的来演示一下: 官方的视频使用的软件版本为2012.2,不过在2015.3下也是差不多的...
  • 最近在倒腾Vivado,拿着KC705开发板跑了下一些范例,总体感觉上手很简单,文档资料也比A家的...这里记录下自己使用Debug的过程吧。  首先,KC705的很多范例都是2014.3版本的,所以我用的是2014.3版本。不过感觉跟201
  • 尝试关闭SDK和Vivado,重新打开,先打开Vivado的hardware manager,确定cable可以连接上器件之后,再打开SDK尝试下载。2. 如果上述方法多次尝试,仍然无法找到器件或者成功在SDK中下载,也可能是vivado安装或者与...
  • Vivado与SDK的联合调试方法-使用ILA

    万次阅读 2017-06-03 21:31:43
    Vivado硬件调试有几种手段:ILA(集成逻辑分析器Integrated Logic Analyzer)、VIO(虚拟I/O Virtual Input/Output)、Jtag-to-AXI等,本方法主要使用了ILA 本实验系统使用了两种调试手段:ILA和VIO,ILA
  • vivado----fpga硬件调试 (一)----mark_debug

    万次阅读 2017-05-06 10:04:46
    最近两个月开始用Vivado做项目,之前一直用ISE开发,个人觉得ISE方便好用,而Vivado编译又慢,还占内存,打开一个工程就需要好半天,可视化界面感觉也没什么用处,不如模块化的代码来的简单,而且还有一些bug。...
  • 环境:win10 软件:vivado2018.2 芯片类型:zynq7000 运行实例:helloworld 过程:
  • 数字电路基础知识七) ——Vivado使用Chipscope在线逻辑分析仪Debug 在 https://blog.csdn.net/vivid117/article/details/96508986 和 https://blog.csdn.net/vivid117/article/details/96753878 这两篇文章中提到了...
  • Vivado调试常见问题

    千次阅读 2020-05-12 14:11:01
    可以在Verilog代码中插入(*mark_debug = "true"*)属性,这样在Set Up Debug的时候可以快速找到这个信号。 (2)找不到Debug内核 大部分原因是debug内核时钟输入有问题,或者时钟输入频率低于30Mhz,如果有多...
  • Vivado那些事儿】ILA使用总结

    千次阅读 2021-10-22 01:23:22
    ILA使用总结集成逻辑分析仪 (Integrated Logic Analyzer,ILA) ILA是Vivado方便用户调试,集成的一个逻辑分析仪。很多有经验的老工程师据说都是不经过...
  • vivado在线调试.doc

    2020-07-20 14:38:28
    vivado 在线调试总结,使用工具为vivado 2017.2,包括 调试信号设置,触发条件设置,烧写等

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 226
精华内容 90
关键字:

debugmarkvivado