1、 SignalTap逻辑分析仪的使用逻辑分析仪的使用 SignalTap SignalTap逻辑分析仪支持的器件有很多系列,逻辑分析仪支持的器件有很多系列,主要包括主要包括StratixStratix、StratixIIStratixII、StratixGXStratixGX、CycloneCyclone、CycloneCyclone、APEXAPEX及及APEXAPEX等系列的等系列的FPGAFPGA器件。器件。在设计中建立在设计中建立SignalTapSignalTap逻辑分析仪有两种方法:逻辑分析仪有两种方法:第一种方法第一种方法是建立一个是建立一个SignalTapSignalTap文
2、件文件(stp)stp),然后,然后定义定义STPSTP文件的详细内容;文件的详细内容;第二种方法是用第二种方法是用MegaWizardPlug-InManagerMegaWizardPlug-InManager建立并配置建立并配置STPSTP文件,然后用文件,然后用MegaWizardMegaWizard实例化一个实例化一个HDLHDL输出模块。输出模块。SignalTap逻辑分析仪的使用逻辑分析仪的使用 设计中建立设计中建立SignalTapSignalTap逻辑分析仪逻辑分析仪 SignalTap逻辑分析仪的使用逻辑分析仪的使用 图给出了用这两种方法建立和使用图给出了用这两种方法建立和使
3、用SignalTapSignalTap逻辑分析仪的过程逻辑分析仪的过程 1 1创建创建STPSTP文件文件QuartusQuartus软件的软件的STPSTP文件包括文件包括SignalTapSignalTap逻辑分析仪逻辑分析仪设置部分和捕获数据的查看、分析部分。创建一个设置部分和捕获数据的查看、分析部分。创建一个STPSTP文件的步骤可按下面的方法来操作:文件的步骤可按下面的方法来操作:在在QuartusQuartus软件中,通过选择软件中,通过选择“File”|“New”File”|“New”命命令,弹出新建文件对话框。令,弹出新建文件对话框。在弹出的新建文件对话框中,选择在弹出的新建文
4、件对话框中,选择“OtherFiles”OtherFiles”标标签页,从中选择签页,从中选择“SignalTapFile”SignalTapFile”如图如图4 4所示。所示。再单击再单击“OK”OK”按钮确定,便建立了一个新的按钮确定,便建立了一个新的SignalTapSignalTap窗口,如图窗口,如图5 5所示。所示。上面的操作我们也可以通过选择上面的操作我们也可以通过选择“Tools”|“SignalTapLogic Analyzer”Tools”|“SignalTapLogic Analyzer”命令完命令完成,而且这种方法也可用来打开一个已经存在的成,而且这种方法也可用来打开一
5、个已经存在的STPSTP文件。文件。SignalTap逻辑分析仪的使用逻辑分析仪的使用 SignalTap逻辑分析仪的使用逻辑分析仪的使用 4 4新建一个新建一个“SignalTap”SignalTap”文件文件 SignalTap逻辑分析仪的使用逻辑分析仪的使用 图图3-55 “SignalTap”3-55 “SignalTap”窗口窗口 SignalTap逻辑分析仪的使用逻辑分析仪的使用 2 2设置数据采集时钟设置数据采集时钟 在使用在使用QuartusQuartus软件的软件的SignalTapSignalTap逻辑分析仪进行逻辑分析仪进行数据采集之前,首先应该设置数据采集时钟。数据采集
6、时数据采集之前,首先应该设置数据采集时钟。数据采集时钟一般是在上升沿处采集数据。我们可以使用设计中的任钟一般是在上升沿处采集数据。我们可以使用设计中的任意信号作为数据采集时钟,但意信号作为数据采集时钟,但AlteraAltera公司一般建议使用全公司一般建议使用全局时钟,而不要使用门控时钟。使用门控时钟作为数据采局时钟,而不要使用门控时钟。使用门控时钟作为数据采集时钟,有时不能准确反映设计的不同期望数据状态。集时钟,有时不能准确反映设计的不同期望数据状态。QuartusQuartus时序分析结果给出设计的最大数据采集时钟频时序分析结果给出设计的最大数据采集时钟频率。率。SignalTap逻辑分
7、析仪的使用逻辑分析仪的使用 设置设置SignalTapSignalTap数据采集时钟的步骤主要由以下几数据采集时钟的步骤主要由以下几步组成:步组成:在图在图5 5所示的所示的SignalTapSignalTap逻辑分析仪窗口先选择逻辑分析仪窗口先选择“Setup”Setup”标签页。标签页。再单击再单击“Clock”Clock”栏后面的栏后面的“Browse Node Finder”Browse Node Finder”按钮,然后打开按钮,然后打开Node FinderNode Finder对话框。对话框。在在“Node Finder”Node Finder”对话框中,从对话框中,从“Filt
8、er”Filter”列表中列表中选择选择“SignalTap:pre-synthesis”(SignalTap:pre-synthesis”(综合前综合前)。在在“Named”Named”框中,输入数据采样时钟的信号名称;框中,输入数据采样时钟的信号名称;或者通过单击或者通过单击“List”List”按钮,在按钮,在“Nodes Found”Nodes Found”列表中列表中选择一个时钟信号作为数据采集时钟的信号。选择一个时钟信号作为数据采集时钟的信号。SignalTap逻辑分析仪的使用逻辑分析仪的使用 再单击再单击“OK”OK”按钮确定相关设置。按钮确定相关设置。在图在图3-553-55所
9、示的所示的“SignalTap”SignalTap”窗口中,窗口中,“Clock”Clock”栏中显示栏中显示为采样时钟的信号。为采样时钟的信号。如果我们在如果我们在SignalTapSignalTap窗口中没有分配采集时钟,则窗口中没有分配采集时钟,则QuartusQuartus软件会自动建立一个默认名为软件会自动建立一个默认名为auto_stp_extemal_clkauto_stp_extemal_clk时时钟引脚。在实际工程设计中我们必须为这个引脚单独分配一个器件钟引脚。在实际工程设计中我们必须为这个引脚单独分配一个器件引脚,在我们设计的印制电路板上必须有一个外部时钟信号驱动该引脚,在
10、我们设计的印制电路板上必须有一个外部时钟信号驱动该引脚。引脚。SignalTap逻辑分析仪的使用逻辑分析仪的使用 3 3STPSTP文件中分配信号文件中分配信号 在在STPSTP文件中,文件中,QuartusQuartus软件可以分配两种类型的信号:软件可以分配两种类型的信号:Pre-synthesisPre-synthesis:该信号在对设计进行:该信号在对设计进行Analysis&ElaborationAnalysis&Elaboration操作以后存在,这些信号表示寄存器传输级操作以后存在,这些信号表示寄存器传输级(RTL)(RTL)信号。信号。在在SignalTapSignalTap中
11、要分配中要分配Pre-synthesisPre-synthesis信号,我们应通过选择信号,我们应通过选择“Processing”“StartAnalysis&Elaboration”Processing”“StartAnalysis&Elaboration”命令。对逻辑分命令。对逻辑分析仪设计进行修改以后,如果要在物理综合之前快速添加一个新的析仪设计进行修改以后,如果要在物理综合之前快速添加一个新的节点名,使用这项操作特别实用。节点名,使用这项操作特别实用。Post-fittingPost-fitting:该信号是在对工程设计进行物理综合优化以及:该信号是在对工程设计进行物理综合优化以及布局
12、、布线操作后才存在。布局、布线操作后才存在。SignalTap逻辑分析仪的使用逻辑分析仪的使用 4 4分配数据信号分配数据信号首先完成工程设计的首先完成工程设计的Analysis&ElaborationAnalysis&Elaboration或或Analysis&SynthesisAnalysis&Synthesis后,或者工程全编译之后。后,或者工程全编译之后。在在SignalTapSignalTap逻辑分析仪窗口,通过单击逻辑分析仪窗口,通过单击SetupSetup标签标签页。页。在在STPSTP窗口的窗口的“Setup”Setup”标签页中双击鼠标左键,弹出标签页中双击鼠标左键,弹出“N
13、odeFinder”NodeFinder”对话框。对话框。在在“Node Finder”Node Finder”对话框中的对话框中的“Filter”Filter”列表中选择列表中选择SignalTap:Pre-synthesisSignalTap:Pre-synthesis或者或者SignalTap:post-SignalTap:post-fittingfitting方式。方式。SignalTap逻辑分析仪的使用逻辑分析仪的使用 在在“Named”Named”框中可以输入节点名、部分节点名或者通配符,还框中可以输入节点名、部分节点名或者通配符,还可以单击可以单击“List”List”按钮查找节
14、点。按钮查找节点。在在“Nodes Found”Nodes Found”列表中选择要加入列表中选择要加入STPSTP文件中的节点或者总文件中的节点或者总线。线。通过单击通过单击“”按钮将选择的节点或总线移动到按钮将选择的节点或总线移动到“Selected Selected Nodes”Nodes”列表中。列表中。最后单击最后单击“OK”OK”按钮,将选择的节点或者总线添加到按钮,将选择的节点或者总线添加到STPSTP文件,文件,如图如图6 6所示。所示。SignalTap逻辑分析仪的使用逻辑分析仪的使用 6 6 分配数据信号分配数据信号 SignalTap逻辑分析仪的使用逻辑分析仪的使用 5
15、5设置逻辑分析仪触发方式设置逻辑分析仪触发方式逻辑分析仪触发控制包括设置触发类型和触发级数。逻辑分析仪触发控制包括设置触发类型和触发级数。BasicBasic触发类型触发类型 如果如果SignalTapSignalTap触发类型选择触发类型选择BasicBasic,在,在STPSTP文件中我们必须文件中我们必须为每个信号设置一种触发模式为每个信号设置一种触发模式(TriggerPattern)(TriggerPattern)。SignalTapSignalTap逻逻辑分析仪中的触发模式包括:辑分析仪中的触发模式包括:DontCare(DontCare(无关项触发无关项触发),Low(Low(低
16、电低电平触发平触发),High(High(高电平触发高电平触发),FallingEdge(FallingEdge(下降沿触发下降沿触发),RisingEdge(RisingEdge(上升沿触发上升沿触发)以及以及EitherEdge(EitherEdge(双沿触发双沿触发)。当选定触发级数的所有信号的当选定触发级数的所有信号的“逻辑与逻辑与”结果为结果为TRUETRUE时,时,SignalTapSignalTap逻辑分析仪才开始捕捉数据,如图逻辑分析仪才开始捕捉数据,如图7 7所示。所示。SignalTap逻辑分析仪的使用逻辑分析仪的使用 7 7 设置触发模式设置触发模式 SignalTap逻
17、辑分析仪的使用逻辑分析仪的使用 Advanced Advanced触发类型触发类型 如果如果SignalTapSignalTap触发类型选择触发类型选择AdvancedAdvanced,则我们必须为逻辑,则我们必须为逻辑分析仪建立触发条件表达式。一个分析仪建立触发条件表达式。一个SignalTapSignalTap逻辑分析仪最关键逻辑分析仪最关键的因素就是它的触发能力。如果不能很好地为数据捕获建立相应的的因素就是它的触发能力。如果不能很好地为数据捕获建立相应的触发条件,逻辑分析仪就可能无法帮助我们调试触发条件,逻辑分析仪就可能无法帮助我们调试FPGAFPGA程序设计。程序设计。在在Signal
18、TapSignalTap逻辑分析仪中,使用如图逻辑分析仪中,使用如图8 8所示的高级触发条所示的高级触发条件编辑器件编辑器(Advanced Trigger Condition Editor)(Advanced Trigger Condition Editor),我们可以在简,我们可以在简单的图形界面中建立非常复杂的触发条件。我们只需要将运算符通单的图形界面中建立非常复杂的触发条件。我们只需要将运算符通过鼠标拖动到触发条件编辑器窗口中,即可方便建立复杂的触发条过鼠标拖动到触发条件编辑器窗口中,即可方便建立复杂的触发条件。件。SignalTap逻辑分析仪的使用逻辑分析仪的使用 图图8 高级触发条
19、件编辑器高级触发条件编辑器 SignalTap逻辑分析仪的使用逻辑分析仪的使用 触发级数选择触发级数选择 QuartusQuartus软件的软件的SignalTapSignalTap逻辑分析仪的多级触发特性,可逻辑分析仪的多级触发特性,可以设置更精确的触发条件功能。在多级触发中,以设置更精确的触发条件功能。在多级触发中,SignalTapSignalTap逻辑逻辑分析仪首先对第一级模式进行触发;当第一级触发表达式满足条件,分析仪首先对第一级模式进行触发;当第一级触发表达式满足条件,测试结果为测试结果为“真真”时,然后时,然后SignalTapSignalTap逻辑分析仪对第二级触发逻辑分析仪对
20、第二级触发表达式进行测试;依次类推,直到所有级的触发都完成测试,并且表达式进行测试;依次类推,直到所有级的触发都完成测试,并且最后一级触发条件测试结果乃为最后一级触发条件测试结果乃为“真真”时,时,SignalTapSignalTap逻辑分析逻辑分析仪开始捕获相关信号状态,仪开始捕获相关信号状态,在图在图5 5的的SignalTapSignalTap窗口的触发级数选择列表中选择触发级数,窗口的触发级数选择列表中选择触发级数,SignalTapSignalTap逻辑分析仪最大可以选择的触发级数为逻辑分析仪最大可以选择的触发级数为1010级。级。SignalTap逻辑分析仪的使用逻辑分析仪的使用
21、6 6指定采样深度及触发位置指定采样深度及触发位置 在触发事件开始之前,我们可以指定要观测数据的采样深度,在触发事件开始之前,我们可以指定要观测数据的采样深度,即数据存储深度,以及触发事件发生前后的采样点数。即数据存储深度,以及触发事件发生前后的采样点数。在在QuartusQuartus软件的软件的STPSTP文件窗口的文件窗口的“Data”Data”栏中,在栏中,在“Sampledepth”Sampledepth”列表中可以选择逻辑分析仪的采样深度;在列表中可以选择逻辑分析仪的采样深度;在“Buffer acquisition mode”Buffer acquisition mode”栏中,
22、在栏中,在“Circular”Circular”列表中可以列表中可以选择触发之前的数据和触发之后的数据之间的比例。选择触发之前的数据和触发之后的数据之间的比例。SignalTap逻辑分析仪的使用逻辑分析仪的使用 7 7编译编译SignalTapSignalTap逻辑分析仪的设计逻辑分析仪的设计 设置好设置好STPSTP。文件以后,在使用。文件以后,在使用SignatTapSignatTap逻辑分析仪之前,逻辑分析仪之前,必须编译必须编译QuartusQuartus设计工程。首次建立设计工程。首次建立STPSTP文件需要先保存该文件,文件需要先保存该文件,QuartusQuartus软件会自动将
23、软件会自动将STPSTP文件加入工程中,当然我们也可以采用文件加入工程中,当然我们也可以采用下面的步骤手动添加下面的步骤手动添加STPSTP文件:文件:SignalTap逻辑分析仪的使用逻辑分析仪的使用 通过选择通过选择“Assignments”|“Settings”Assignments”|“Settings”命令,弹出命令,弹出“Settings”Settings”对话框。对话框。在弹出在弹出“Settings”Settings”对话框的对话框的“Category”Category”列表中选择列表中选择“SignalTapLogic Analyzer”SignalTapLogic Anal
24、yzer”。再在再在“SignalTapLogic Analyzer”SignalTapLogic Analyzer”页中,选中页中,选中“Enable Enable SignalTapLogic Analyzer”SignalTapLogic Analyzer”选项。选项。然后在然后在“SignalTapFileName”SignalTapFileName”栏中输入栏中输入STPSTP文件名。文件名。单击单击“OK”OK”按钮确认。按钮确认。最后通过选择最后通过选择“Processing”|“Start Compilation”Processing”|“Start Compilation”命
25、令命令开始编译开始编译SignalTapSignalTap逻辑分析仪。逻辑分析仪。SignalTap逻辑分析仪的使用逻辑分析仪的使用 2.2.利用利用MegaWizard Plug-In ManagerMegaWizard Plug-In Manager建立建立SignalTapIISignalTapII逻辑分析仪逻辑分析仪 使用使用MegaWizard Plug-In ManagerMegaWizard Plug-In Manager建立建立SignalTapSignalTap逻辑分析逻辑分析仪时,不需要建立仪时,不需要建立STPSTP文件。文件。MegaWizard Plug-In Man
26、agerMegaWizard Plug-In Manager生成一生成一个可以在设计中实例化的个可以在设计中实例化的HDLHDL文件。文件。SignalTap逻辑分析仪的使用逻辑分析仪的使用 1 1SignalTapSignalTap逻辑分析仪的逻辑分析仪的HDLHDL描述的建立描述的建立 在在QuartusQuartus软件中,我们通过执行软件中,我们通过执行SignalTapSignalTap兆函数兆函数(Megafunction)(Megafunction)可以很容易地使用可以很容易地使用MegaWizard Plug-In ManagerMegaWizard Plug-In Manag
27、er建建立立SignalTapSignalTap逻辑分析仪。具体步骤如下:逻辑分析仪。具体步骤如下:(1)(1)在在QuargusQuargus软件中通过选择软件中通过选择“Tools”|“MegaWizard Plug-Tools”|“MegaWizard Plug-In Manager”In Manager”命令,启动兆函数。命令,启动兆函数。(2)(2)再在弹出的再在弹出的“MegaWizard Plug-In Manager”MegaWizard Plug-In Manager”对话框中选择对话框中选择“Create a new custom megafunction variatio
28、n”Create a new custom megafunction variation”项。项。(3)(3)然后单击然后单击“Next”Next”按钮。按钮。(4)(4)在弹出的对话框中选择在弹出的对话框中选择“SignalTapLogicAnalyzer”SignalTapLogicAnalyzer”,并且,并且选择要输出的文件类型选择要输出的文件类型(AHDL(AHDL、VHDLVHDL、VerilogHDL)VerilogHDL),输入,输入SignalTapSignalTap兆函数名,如图兆函数名,如图9 9所示。所示。SignalTap逻辑分析仪的使用逻辑分析仪的使用 图图9 建立
29、建立SignalTap逻辑分析仪逻辑分析仪 SignalTap逻辑分析仪的使用逻辑分析仪的使用(5)(5)再单击再单击“Next”Next”按钮,进入下一步。按钮,进入下一步。(6)(6)在弹出的下一个对话框中,需要指定逻辑分析仪的采样深度、在弹出的下一个对话框中,需要指定逻辑分析仪的采样深度、存储器类型、数据输入端口宽度、触发输入端口宽度以及触发级数,存储器类型、数据输入端口宽度、触发输入端口宽度以及触发级数,如图如图1010所示。所示。图图10 设置逻辑分析仪参数设置逻辑分析仪参数 SignalTap逻辑分析仪的使用逻辑分析仪的使用(7)再单击“Next”按钮,进入下一步。(8)通过选择B
30、asic或Advanced,设置每一级触发选项,如图11所示。图图11 设置每一段触发选项设置每一段触发选项 (9)(9)最后单击最后单击“Finish”Finish”按钮,完成建立按钮,完成建立SignalTapSignalTap逻辑分析逻辑分析仪的仪的HDLHDL描述过程。描述过程。如果在第如果在第(8)(8)步中选择了步中选择了“Advanced”Advanced”,将弹出如图,将弹出如图8 8所示的高所示的高级触发条件编辑界面。级触发条件编辑界面。2 2SignalTapSignalTap兆函数端口兆函数端口表表3-33-3给出了给出了SignalTapSignalTap兆函数端口的说
31、明。兆函数端口的说明。表表3-3 SignalTap3-3 SignalTap兆函数端口的说明兆函数端口的说明 SignalTap逻辑分析仪的使用逻辑分析仪的使用 SignalTap逻辑分析仪的使用逻辑分析仪的使用 3 3在设计文件中实例化在设计文件中实例化SignalTapSignalTap逻辑分析仪逻辑分析仪 在实际工程设计中实例化在实际工程设计中实例化SignalTapSignalTap逻辑分析仪的过程与实逻辑分析仪的过程与实例化其他例化其他VHDLVHDL或或Verilog HDLVerilog HDL兆函数相同。在设计中实例化兆函数相同。在设计中实例化SignalTapSignalT
32、ap文件以后,是为了在目标文件以后,是为了在目标FPGAFPGA器件中配置逻辑分析仪,器件中配置逻辑分析仪,必须重新编译必须重新编译QuartusQuartus工程文件。工程文件。SignalTap逻辑分析仪的使用逻辑分析仪的使用 3 SignaITap3 SignaITap逻辑分析仪的器件编程逻辑分析仪的器件编程 在在QuartusQuartus软件完成软件完成SignalTapSignalTap逻辑分析仪并编译完成以后,逻辑分析仪并编译完成以后,打开打开STPSTP文件,接下来是完成文件,接下来是完成SignalTapSignalTap逻辑分析仪器件编程。具逻辑分析仪器件编程。具体步骤如下
33、:体步骤如下:(1)(1)在在STPSTP文件中,在文件中,在JTAG ChainJTAG Chain设置部分选择设置部分选择SignalTapSignalTap逻逻辑分析仪的辑分析仪的SRAMSRAM对象文件对象文件(sof)sof)。(2)(2)再单击再单击“Scan Chain”Scan Chain”按钮,检测器件。按钮,检测器件。(3)(3)在在DeviceDevice列表中选择目标器件。列表中选择目标器件。(4)(4)单击单击“ProgramDevice”ProgramDevice”图标进行器件编程下载,如图图标进行器件编程下载,如图1212所所示。示。SignalTap逻辑分析仪的
34、使用逻辑分析仪的使用 图图12SignalTap逻辑分析仪编程逻辑分析仪编程 SignalTap逻辑分析仪的使用逻辑分析仪的使用 4查看查看SignalTaP采样数据采样数据在在SignalTap窗口中,选择窗口中,选择Run Analysis或或AutoRun Analysis,启,启动动SignalTap逻辑分析仪。当设置的触发条件满足时,逻辑分析仪。当设置的触发条件满足时,SignalTap逻辑分析仪开始捕获数据。逻辑分析仪开始捕获数据。在在Quartus软件的软件的SignalTap工具条上有四个执行逻辑分析仪选工具条上有四个执行逻辑分析仪选项,如图项,如图12左上角所示。左上角所示。
35、SignalTap逻辑分析仪的使用逻辑分析仪的使用 Run AnalysisRun Analysis:单步运行:单步运行SignalTapSignalTap逻辑分析仪。即执行该命逻辑分析仪。即执行该命令后,令后,SignalTapSignalTap逻辑分析等待触发事件,当触发事件一旦发生逻辑分析等待触发事件,当触发事件一旦发生便开始采集数据,然后停止。便开始采集数据,然后停止。AutuRun AnalysisAutuRun Analysis:执行该命令后,:执行该命令后,SignalTapSignalTap逻辑分析仪连逻辑分析仪连续捕获数据,直到用户按下续捕获数据,直到用户按下Stop Ana
36、lysisStop Analysis为止。为止。Stop AnalysisStop Analysis:停止:停止SignalTapSignalTap分析。如果触发事件还没有分析。如果触发事件还没有发生,则不会有采集到的数据显示出来。发生,则不会有采集到的数据显示出来。Read DataRead Data:显示捕获的数据。如果触发事件还没有发生,我们:显示捕获的数据。如果触发事件还没有发生,我们可以通过单击该按钮查看当前捕获的数据。可以通过单击该按钮查看当前捕获的数据。QuartusQuartus软件的软件的SignalTapSignalTap逻辑分析仪自动将采集到的数据显逻辑分析仪自动将采集到的数据显示在示在SignalTapSignalTap界面的界面的DataData标签页中,如图标签页中,如图1212所示。所示。SignalTap逻辑分析仪的使用逻辑分析仪的使用 图图12SignalTap逻辑分析仪采集数据逻辑分析仪采集数据 归纳利用归纳利用Quartus进行进行VHDL文本输入设计的文本输入设计的流程流程:从文件输入一直到从文件输入一直到SignalTap测试。测试。习题习题 SignalTap逻辑分析仪的使用逻辑分析仪的使用