上一讲(FPGA的在线调试十一例化多个逻辑分析仪)我们介绍了可以在reveal里面例化多个独立的逻辑分析仪。在这些独立的逻辑分析仪之间,我们还可以进行交互作用。也就是当一个逻辑分析仪的触发条件发生的时候,我们可以同步触发另外一个逻辑分析仪的采样。这个功能比较适合于复杂的功能调试。
如果要使用这个功能,需要在reveal inserter里,在trigger setup tab中使能trigger output。如下图所示:
使能Trigger out后,会产生一个新的信号,见上图的左侧红框所示。这个信号可以供其它的逻辑分析仪使用。
新的信号的类型有3个选项,“Net”,“IO”和“Both”。如果选择了“IO”或“Both”,则在top模块会增加一个output输出。你可以用这个输出做为外部的示波器或逻辑分析仪的触发信号。
这里要提醒一下,因为这些信号都是在采样时钟的时钟域下发生的。最好两个逻辑分析仪采用同一个采样时钟,否则会有亚稳态的问题。如果两个逻辑分析仪确实采用的是独立的采样时钟,最好要确保一个逻辑分析仪模块的触发信号输出要有足够的宽度来确保能被另一个逻辑分析模块捕获。
下面我们演示一下添加的过程。
重新运行一遍软件的流程后,我们可以在reveal analyzer看到这样的效果。
可以看到,两个逻辑分析仪触发的绝对时间是基本相同的,说明确实是由一个逻辑分析仪的触发条件同时触发了两个逻辑分析仪的数据采样。