SignalTap II嵌入逻辑分析仪集成到Quartus II设计软件中,能够捕获和显示可编程单芯片系统(SOPC)设计中实时信号的状态,这样开发者就可以在整个设计过程中以系统级的速度观察硬件和软件的交互作用。它支持多达1024个通道,采样深度高达128Kb,每个分析仪均有10级触发输入/输出,从而增加了采样的精度。SignalTap II为设计者提供了业界领先的SOPC设计的实时可视性,能够大大减少验证过程中所花费的时间。
使用SignalTap II的一般流程是:设计人员在完成设计并编译工程后,建立SignalTap II (.stp)文件并加入工程、配置STP文件、编译并下载设计到FPGA、在Quartus II软件中显示被测信号的波形、在测试完毕后将该逻辑分析仪从项目中删除。以下描述设置 SignalTap II 文件的基本流程:
1.设置采样时钟。采样时钟决定了显示信号波形的分辨率,它的频率要大于被测信号的最高频率,否则无法正确反映被测信号波形的变化。SignalTap II在时钟上升沿将被测信号存储到缓存。(个人觉得采样时钟通常可以用系统时钟,这样子采样频率足够高,能够反映信号波形的变化)
2.设置被测信号。可以使用Node Finder 中的 SignalTap II 滤波器查找所有预综合和布局布线后的SignalTap II 节点,添加要观察的信号。逻辑分析器不可测试的信号包括:逻辑单元的进位信号、PLL的时钟输出、JTAG引脚信号、LVDS(低压差分)信号。(这个就不用多说了吧。。)
3.配置采样深度、确定RAM的大小。SignalTap II所能显示的被测信号波形的时间长度为Tx,计算公式如下: --- Tx=N×Ts --- N为缓存中存储的采样点数,Ts为采样时钟的周期。(师兄的观点是,反正fpga资源还有多,物尽其能,尽量开大些。)
4.设置buffer acquisition mode。buffer acquisition mode包括循环采样存储、连续存储两种模式。循环采样存储也就是分段存储,将整个缓存分成多个片段(segment),每当触发条件满足时就捕获一段数据。该功能可以去掉无关的数据,使采样缓存的使用更加灵活。(个人喜欢分段存储,如同物理课本上的振荡波形图,沿时间轴拉开,每次触发只存储分段大小的数据,从而反映依次触发时的信号波形变化。连续存储则记录一次采样过程中的所有数据,直至ram区满为止)
5.触发级别。SignalTap II支持多触发级的触发方式,最多可支持10级触发。
6.触发条件。可以设定复杂的触发条件用来捕获相应的数据,以协助调试设计。当触发条件满足时,在signalTap时钟的上升沿采样被测信号。(最最重要的一条。能否成功地展示波形就看你触发条件设置得好不好了。师兄说这个得设置方法只可意会不可言传。。。反正视情况而言的吧。)
完成STP设置后,将STP文件同原有的设计下载到FPGA中,在Quartus II中SignalTap II窗口下查看逻辑分析仪捕获结果。SignalTap II可将数据通过多余的I/O引脚输出,以供外设的逻辑分析器使用;或输出为csv、tbl、vcd、vwf文件格式以供第三方仿真工具使用。
报错分析:
SignalTap II片内逻辑分析仪方便好用,在使用中如果遇到你选的节点被优化,出现can‘t find the instance的错误,不坊使用下面的方法。
- T. @6 N" J, N% b incremental compilation可以提高效率,但会将要观察的节点优化了,而stp文件中又要观察这个节点,所以烧下去会提示找不到,SignalTap II上的信号提示红色。关闭incremental compilation是最好的方式,然后编译,编译时间会延长但可以观察到需要的节点。