SignalTap II逻辑分析仪的使用
一、例子 我们使用如图1所示的verilog代码所实现的开关电路作为例子。这个电路把DE系列开发板上的前8个开关简单的和对应的8个红色LED相连接。它是这样工作的:在时钟(CLOCK_50)的上升沿读取开关的值,放入对应的寄存器,寄存器的输出与红色LED直接相连接。 按照图1代码实现该电路,锁定引脚,编译整个工程等等,这些在这里不再重复累述。 二、使用SignalTap II软件 在本文的第一部分,我们将建立SignalTap逻辑分析仪来探测8个LED开关的值,同时,我们将设定逻辑分析仪的触发信号为当第一个开关(LED[0])为高电平。1. 选择File->New打开逻辑分析仪窗口,该窗口如图2所示。选择SignalTap II逻辑分析仪文件并点击OK。 2. SignalTap II界面如图3所示。保存文件并命名为
switches.stp。在下一步如图4所示对话框中点击OK,接下来出现对话框”Do you want to enable SignalTap II file ‘switches.stp’ for the current project?”询问是否在当前工程中使用SignalTap II,点击Yes(图5)。现在,SignalTap II文件switches.stp已经和当前工程相关联了。 注意:如果我们需要在工程中不使用该SignalTap II文件,或者不使用SignalTap II逻辑分析仪,在Quartus II界面中选择
Assignments->Settings。然后在打开窗口左边的分类列表中选择SignalTap II Logic Analyzer,如图6所示。可以把Enable SignalTap II Logic Analyzer前面的勾去掉来关闭逻辑分析仪。在一个工程中可能同时会有多个SignalTap文件,但在同一时刻只能有一个有效。多个SignalTap II文件是非常有用的,比如工程很大,在工程中不同的部分都需要用SignalTap II来捕捉信号,这样探测不同的部分时我们只需要使用不同的SignalTap II文件就可以了,避免反复设定SignalTap II文件。按照步骤1和步骤2可以建立新的SignalTap II文件,不同的SignalTap II文件拥有不同的文件名。如果要改变当前工程中已经关联的SignalTap II文件,在图6中的SignalTap II File name选择框中点右边的浏览按钮,选择所需要的SignalTap II文件,然后点击Open,最后点击OK就可以了。在本教程中,我们选中Enable SignalTap II Logic Analyzer选项并使用switches.stp文件。设定好后点击OK按钮关闭设置窗口。3. 现在我们需要把工程中想要观察的信号结点添加进来。在SignalTap II窗口中的Setup标签页中,双击灰色字体记号”Double-click to add nodes”的区域,就会打开Node Finder窗口,如图7所示。在Filter区域中,选择SignalTap II:pre-synthesis,然后单击List,在Nodes Found区域中将会显示在工程中能被观察到的节点列表。在这里我们选中SW[0],SW[1]…到
SW[7],然后单击”>”按钮,这样就把要观察的开关节点添加到SignalTap II中。最后单击OK。 4. 在SignalTap II逻辑分析仪能正常工作之前,我们需要为SignalTap II模块指定驱动时钟,在例化时,SignalTap II模块包含在我们的设计中。在SignalTap窗口Signal Configuration面板中的单击Clock部分右边的”…”打开Node Finder窗口。点击List,显示所有能被添加为时钟的信号节点,然后双击CLOCK_50,结果如图8所示,最后点击OK。 5. 在SignalTap窗口中Setup标签页中,选中Trigger Conditions列中的单选框,然后在单选框右边的下拉菜单中选择Basic。右键节点SW[0]相对应的Trigger Conditions单元,选择High,如图9所示。这样设置以后,当DE系列开发板上对应的第一个开关被设置为高电平时,逻辑分析仪将会开始运行捕捉数据。注意到我们可以右键Trigger Conditions列单元中的添加进来的任何信号节点,并可以选择一系列不同的触发条件。当所有这些条件都同时满足时实际的触发条件才成立。在本文中,我们选择触发条件SW[0]为高电平,SW[1],SW[2]…SW[7]设为默认值Don’t Care,即触发条件和SW[1],SW[2]…SW[7]的值无关。 6. 接下来我们还需要正确的建立硬件环境。首先,确保DE系列开发板已经和电脑连接好且电源已经开启。然后,在SignalTap II窗口右上方中的Hardware部分,单击Setup,打开如图10所示的窗口,
在Available Hardware Items菜单中双击USB-Blaster,最后点击Close。 7. 最后一步就是重新编译整个工程。在Quartus II窗口中,选择Processing->Start Compilation,接下来会弹出提示说需要保存改动,这里选择Yes。编译完后,打开Tools->Programmer,把重新编译的工程下载到DE系列开发板上。 三、使用逻辑分析仪观察信号 现在工程中嵌入的SignalTap II逻辑分析仪已经例化完成,并已经加载到DE系列开发板上,我们可以像使用外部的逻辑分析仪一样使用SignalTap II逻辑分析仪来观察信号。1. 首先把DE系列开发板上所有的开关(0-7)设为低,当开关0的值变为1时,我们将会观察到这些开关的值。2. 在SignalTap窗口,选择Processing->Run Analysis或者单击图标。接着,单击SignalTap II窗口中的Data标签页。这时,我们应该得到和图11相似的界面。注意到这时SignalTap II Instance Manager面板中状态Status中显示”Waiting for trigger”,这是因为触发条件(开关0的值变为1)没有满足。(我们在之前的步骤中把开关0的值初始化设为0,如果没有初始化开关0的值为0,现在可以把它设为0然后再一次点击Run Analysis)。 3. 现在,我们可以把DE系列开发板上的开关0的值设为1来观察逻辑分析仪的触发特性。我们应该会得到如图12所示的数据。注意到数据窗口中不仅显示了8个开关节点在满足触发条件
之后的数据值,还包含触发之前的一段数据值。为了更进一步的观察,我们可以把开关0-7的值设置为任意组合然后再次单击Run Analysis。当开关0的值再一次被设为1时,我们将在SignalTap II Logic Analyzer中观察到所有开关的数值。 四、高级触发选项 相比如上述的SignalTap II的基本触发控制,有时在一个设计中我们可能会需要一个更复杂的触发条件。在下面的部分中,我们将讲述如何使用高级触发条件来设置更复杂的触发条件。 4.1 多级触发 在这部分中,我们设置SignalTap II的触发条件为:当开关0,1,2,3的值依次从0变为1,即开关0-3的上升沿按顺序到来时。1. 单击SignalTap II窗口中的Setup标签页。2. 在Signal Configuration面板中,在Trigger Conditions下拉菜单中选择4,如图13所示(你可能需要往下滚动Signal Configuration面板才能看到该菜单)。这样,我们将在节点列表窗口中看到3个新的触发条件列表。3. 右键点击触发条件1中对应SW[0]的单元,并选择上升沿Rising Edge。进行同样的操作把触发条件2中SW[1],触发条件3中SW[2]和触发条件4中SW[3]的触发条件设为Rising Edge。这时,我们应该会得到如图14相似的Setup标签页界面。 4. 重新编译整个工程然后把配置文件重新加载到DE系列开发板上。5. 回到SignalTap II窗口,单击Data标签页,然后点击Processing->Run
SignalTap II逻辑分析仪的使用



