vivado_debug
debug状态下无法抓取数据

dbg_hub >= ila时钟 > jtag时钟

dbg_hub时钟
1 | |
ila时钟
一个单独的时钟域clock domain对应着一个ILA实例化模块,当有多个时钟域的时候每个时钟域都会对应着一个单独的ILA实例化模块
若 ILA 的采样时钟频率不足(如低于数据速率),无法满足奈奎斯特采样定理,导致采样失败。
jtag时钟


设置信号抓取标记
将需要测试的端口前标记上(mark_debug = “1”)或者(mark_debug = “true”)
注意:这里最好将需要测试的端口信号打一拍再进行测试,因为输入输出端口的驱动单元类型往往是不一样的,比如两个红框之间的rgmii_txd信号它的驱动单元类型就是ODDR,这将影响布线到此处的逻辑分析仪ila的探针的连接,具体的我也不清楚应该是驱动能力不匹配之类的,反正最好实现的时候会报错。如果不打拍则在后续设置setup debug的时候就要注意去除不符合驱动类型的信号。
Idelay到IDDR走的是IOB里的专用走线,不能用ILA查看的。
我们现在实例化一个叫 inout spi_io[0]的双向口
1 | |
注:sda_o拉高就是设置为输入,总线空闲的意思
All Xilinx I/O pins are bidirectional input/outputs. If you use an
IOBUF (bidirectional output buffer), you can take the output of the
ODDR to put it on the output portion of the buffer and use the input
portion of the buffer to read it back into the FPGA fabric. I’m not
sure any synthesis tools will take a seperately instantiated IBUF and
turn it into an IOBUF, but I have no inclination to try.
That said, again, Symon is right. You most likely don’t want to or
need to do this.