Vivado中使用ILA抓不到波形?

Vivado中使用ILA抓不到波形?

已经从Quartus II 变成Vivado的忠实用户了,记录之前遇到过的问题:使用ILA进行在线调试,烧录bitltx文件,运行仿真的时候没有波形产生。

遇到过两种解决方式:

  1. 选取的dbg_hub的时钟不是全局时钟;
  2. 关闭工程,重新打开;

第一种情况

第一种情况可以仔细查看这篇官方回答WARNING: [Labtools 27-3123] The debug hub core was not detected at User Scan Chain 1 or 3。这里面说到对于dbg_hub的时钟有三个原因和解决方法,这里只贴出来两个分析:

The following are possible causes and solutions:

\1. The clock that is connected to dbg_hub is a non-free-running clock.

  • To check which clock net is connected to the dbg_hub, follow these steps in the Vivado GUI:
    Open the Synthesized design or Implemented design -> Right click the dbg_hub core in the netlist hierarchy and select “Schematic” -> Double click the “clk” pin

  • If this clock is a non-free-running clock, change it to a free running one by modifying this command in XDC:

    connect_debug_port dbg_hub/clk [get_nets <clock_net_name>]

\2. The clock is a free running clock but the signal integrity of this clock net is not good.

Check if the quality of this clock signal on the board is good or not. One example of this issue is if the daughter card connector is not inserted tightly (clock is coming from the daughter card).

来分别看一下两点:

  1. The clock that is connected to dbg_hub is a non-free-running clock.

就是说连接到dbg_hub的时钟是非自由的时钟,这里对non-free-running clock.的理解很抽象,在我这里就暂且理解为全局时钟吧。

  1. The clock is a free running clock but the signal integrity of this clock net is not good.

这是说这个时钟已经是一个free running clock了,但是这个时钟的完整性不太好;

结合以上两点得知,接入到dbg_hub的时钟必须是free running clock,并且完整性要好;

我遇到的下面时钟处理状态是可以接入到dbg_hub的;

  1. PLL/MMCM生成的时钟;
  2. 外部输入的时钟(比如PCLK)接入IBUFGBUFG
  3. 分频后的时钟接入BUFG

想了解IBUFGBUFG的可以看看这篇博文BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用 。也可以参考Xilinx官方的文档ug471_7Series_SelectIO.pdfug472_7Series_Clocking.pdf 。看起来无论是从MMCM输出还是自己加BUFG都相当于是从全局缓冲时钟出来的。

BUFG的原语示例如下:

/**
 * video clock buff
 */
wire video_clk_ibufg, video_clk_bufg;
IBUFG U_IBUFG (
	.I  					(VIDEO_CLK					),
	.O  					(video_clk_ibufg			)
	);

BUFG U_BUFG_CLK (
	.I						(video_clk_ibufg			),
	.O						(video_clk_bufg				)
	);

那么这个video_clk_bufg就可以用于dbg_hub的时钟,抓取对应数据的波形了;

第二种情况

第二种情况下,也不知道是什么原因,ILA没有找到时钟,确定好程序没有问题之后,将整个工程重启就可以了。也有说重新获取与FPGA的连接,可以尝试。看起来,就是工作时间太长了,需要休息一下了。

参考帖子

https://blog.csdn.net/wordwarwordwar/article/details/71250063

猜你喜欢

转载自blog.csdn.net/sinat_31206523/article/details/109232239