fpga_feixiang 发表于 2019-4-21 14:56:36

Quartus II: SignalTap II Logic Analyzer的使用

嵌入式逻辑分析仪—SigbalTap II,是Altera Quartus II 自带的嵌入式逻辑分析仪,它是在线式的仿真,更准确的观察数据的变化,方便调试。此工具其实就是在FPGA中添加了一部分额外的电路来监测内部的数据,然后通过JTAG上传到PC机进行显示。在FPGA的学习,本工具的使用会有很大帮助。本文将用一个简单的程序来演示如何使用它。

    编写测试程序代码如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;



entity test is

port(

      clk: in std_logic;

      data: out std_logic_vector(3 downto 0)

    );

end entity;



architecture one of test is

signal count: std_logic_vector(3 downto 0);

signal half_clk: std_logic;

begin

    data <= count;   

   

    process(clk)

    begin

      if(clk 'event and clk = '1') then

            half_clk <= not half_clk;

      end if;

    end process;

   

    process(half_clk)

    begin

      if(half_clk 'event and half_clk = '1') then

            count <= count + 1;

      end if;

    end process;

      

end one;

    编译,分配好管脚。点击Tools -> SignalTap II Logic Analyzer,得到如下界面

Quartus <wbr>II: <wbr>SignalTap <wbr>II <wbr>Logic <wbr>Analyzer的使用
    点击1处设置好下载方式;点击2处设置采样时钟(程序会根据我们在此处提供的时钟来对FPGA中的信号进行采样,再传到PC机上进行显示);点击5处设置采样深度(其实就是在在程序下载后我们能看到的数据量,以2处设置的采样时钟周期为单位);点击3处设置触发信号及触发方式;双击4处添加想要观察的信号。

    添加信号(2,3,4处)会弹出如下对话框,按需要进行添加:

Quartus <wbr>II: <wbr>SignalTap <wbr>II <wbr>Logic <wbr>Analyzer的使用
   

    设置完毕后效果如下:

Quartus <wbr>II: <wbr>SignalTap <wbr>II <wbr>Logic <wbr>Analyzer的使用

    从图中可以看出,我们选择了JTAG下载方式;clk作为采样时钟;采样深度为1K;用half_clk的下降沿来触发(在本例中可以不使用触发,但在实际的应用中为了观察某些信号就得添加触发,所以就添加了一个作为演示);观察的是half_clk和count的变化。

    保存并编译(此处必须重新编译,因为前面的设置实际上是往工程中加入了内容),然后下载(像正常下载程序一样下载)。点击Run Analysis按钮(即下图中圆圈位置),得到结果如下:

Quartus <wbr>II: <wbr>SignalTap <wbr>II <wbr>Logic <wbr>Analyzer的使用

    点击鼠标左右键来放大或缩小波形图,即可从中对逻辑进行检查。然后修改程序,直到逻辑正确为止。

    为了节省资源,实际应用时应该把SignalTap II Logic Analyzer关闭,然后重新编译下载。关闭方式如下图,把勾去掉即可:

Quartus <wbr>II: <wbr>SignalTap <wbr>II <wbr>Logic <wbr>Analyzer的使用

PS:本例中的操作基于Quartus II 7.2,不同的版本可能会略有不同。
页: [1]
查看完整版本: Quartus II: SignalTap II Logic Analyzer的使用