• Signal Tap II简单使用小记


    Signal Tap II有助于观察逻辑内部信号行为,可使不借助外部设备进行设计调试。(当然使用的前提条件是有硬件平台)

    Signal Tap II ELA 组成框图 

                         

    采样获得的数据会存储在器件的存储器块中,通过JTAG下载线可以把数据传回Quartus 中进行波形显示。 可以设置数据采集缓冲器(Buffers)的大小、数据采集方式和存储方式、以及此Buffer的存储器类型。   可以在一片FPGA上生成多个ELA,这一功能非常适合在设计中为每个时钟域配备一个分析仪。  ELA可以计算每个实例用到的逻辑资源和存储器资源,并显示在实例管理器中。

    要使用Signal Tap II ELA,必须对其进行配置:

    1     设置采样时钟。  ELA只能在采样时钟的上升沿采样数据,可以使用设计中的任何信号作为采样时钟(推荐使用全局的与被测信号同步的非门控信号)。 采样时钟决定了信号波形的分辨率,它的频率要大于被测信号的最高频率。

    2     设置被测信号。  可以分配两种信号(通过Node List信号设置触发条件):

    Pre-Synthesis:设计拟定之后,综合优化之前的信号,反映RTL级信号。(RTL Viewer)

    Post-fitting : 物理综合优化和布局布线后的信号(Technical Map Viewer)

    为了可以使用增量编译,建议不要混合使用两种信号;若使用了预综合信号则要采取信号保留(Signal Preservation)措施。

    不可测试引脚:Post-fit输出引脚、进位链信号、JTAG控制信号、ALTGXB宏功能信号、LVDS信号(串行/解串器块的数据输出)、DQ/DQS信号。

    3     设置采样深度。 

    代表每个信号的采样数量,即采样Buffer大小。还可以选择采样Buffer的RAM类型,如M4K、M512、M_RAM等。

    被测信号波形的时间长度为t,则t = N × T.   N为Buffer存储的采样点数(采样深度),T为采样时钟周期。

    4     设置Buffer的采样模式。 

    段式Buffer:被分成多个大小相同的Buffer,每个Buffer都是独立的FIFO,并有各自的触发条件。每次采集过程中只有一个Buffer可用,其工作方式与非段式Buffer一样。(常用来检测较少出现的重复事件)     

    非段式Buffer(循环Buffer):ELA把整个存储器当做一个FIFO,连续存入数据。(非段式存储可以使用存储资格(Store Qualification:5种可选方式)功能滤掉与设计无关的采样值) 

     5     设置触发条件。    

    基本触发条件:触发模式有  Don’t Care、Low、High、Falling Edge、Rising Edge、Either Edge 等,可以设置位信号和总线信号。

                高级触发条件:图形编辑。   

    两种触发条件流程控制机制:顺序触发(Sequential Triggering)和自定义基于状态触发(Custom State-Based Triggering)。其中顺序触发最多支持10级触发,最后一个触发条件满足时开始采样。(如图示,n <= 10) 

     6   设置触发位置。   三个触发位置:

    Pre-Trigger  保存触发后的数据(12%pre-trigger, 88% post-trigger)  

    Center-Trigger  保存Pre-Trigger 和 Post-Trigger数据各50%  

         Post-Trigger  保存触发前的数据(88%pre-trigger, 12% post-trigger)。

    7   设置外部触发。 

    Trigger in:用外部信号源(输入信号或其他内部信号)触发一个ELA,触发级别最高(Level 0)。 

    Trigger out: ELA可以提供触发外部逻辑或其他ELA的信号输出。

    配置完成后,进行编译下载并运行Signal Tap II ELA。 触发条件满足时,就开始采样数据,数据会被存储在存储缓冲区然后通过JTAG送到.stp文件进行波形显示。

    现以一个正弦函数发生器举例说明Signal Tap II的简单实用。

    A、       首先创建一个.MIF或者.HEX文件来载入正弦波的数据(可用C程序得到具体数值)。再用MegaWizard  Plug-In  Manager建立一个ROM元件来存储正弦波的数据,得到此ROM的源文件。再完成顶层的源文件编写及引脚配置,正确编译。

    B、        新建Signal Tap 文件,更改实例名为Sin wave。如下图所示: 

    C、       最重要的便是对这一实例的配置步骤:

    在Setup面板中,添加被测信号Q(ROM地址信号)和data_out(正弦波输出信号),设置采样时钟,采样深度,RAM类型,触发条件,触发位置等。保存并添加到工程,编译下载即可采集数据并在data面板中观察采样信号(显示形式有数制、柱状和线型)。且此时列所耗费的LE和RAM资源在上图的Instance Manager中有列出。

    D、       下面主要说明触发条件的不同对采集数据的影响。(触发位置都为Center - Trigger)。

    令在Q.5=1的时候触发,即: 

    可得波形如下所示,可知触发采集点为Q=32: 

    条件改为2级触发时,即: 

    所的波形为,可知触发采集点为data_out=255: 

    比较两图可知,采集数据的触发点为满足最后一级触发条件时刻,这也验证了了顺序触发的原理。

     

    这只是ELA的简单实用,更多高级功能还需进一步学习使用。

  • 相关阅读:
    AKS (6) 新建Azure AKS Node Pool,并扩容Node磁盘容量
    Azure Platform Introduction (16) 不同订阅之间可用区的对应关系
    基于Spring Cache实现二级缓存(Caffeine+Redis)
    钉钉机器人实现异常预警通知功能
    Android GPS定位详解
    算法思想篇递归
    算法思想篇排序
    win10如何在桌面上显示或隐藏计算机、回收站图标
    如何解决“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”问题
    IIS/项目访问出现“HTTP 错误 401.3 Unauthorized”问题,如何解决
  • 原文地址:https://www.cnblogs.com/chenwu128/p/2262458.html
Copyright © 2020-2023  润新知