SignalTapII给FPGA调试带来了方便,但是相应的消耗了器件内置的Memory,为了有效的利用这些Memory从QuartusII8.1开始加入了一个新特性Storage Qualification,简单的说就是可以让设计者有选择的存储某些或者某段信号的内容,当然这个特性并不是说减少了Memory的使用,而是在定制完SignalTap后在当下消耗的Memory里如何有效的、更好的展现信号全部特征。如下图所示,在SignalTap的定制页面多了一个Storage Qualificationde设置框:
SignalTap有选择的存储显示信号就如下图一样:
我们看到只有被使能的信号被存储,这样就是大大提高了Memory的利用率,看到更多我们想看到内容。从第一幅图红框圈住的Storage Qualifier设置框中可以看出其设置非常简单,选择Qualifier的类型(type)、选择控制信号(input port只在类型为input port的时候有效)以及底部的两个选择项看名字就知道其作用。这里主要介绍Qualifier的六个类型:
1、Continuous
默认设置即所有选取信号被采样存储。
2、Input Port
选择任何信号作为写使能信号,可以是内部信号也可以是外部引脚,就如第二幅图所示,当使能信号为高时存储,如下图所示
上图显示了使能qualifier后,只有在使能信号data_out[7]为逻辑1的时候采样信号才被存储。
3、Transitional
采样信号只在被选择信号发生变化的时候存储,当这个类型被使能的时候在SignalTap设置页的node list会多出两列来显示那个或者那些信号被选择了,如下图所示:
改变Strorage Enable时工程需要重新编译,改变Transitional Enable时不需要重新编译。下图是实例:
4、Conditional
采样信号只在被选择信号定义的逻辑为真的时候才被存储,同样在设置页也会多出两列来显示那些信号被选择来定义了什么逻辑,如下图所示为设置页面:
被选中的信号只要在qualifier下的逻辑为真即使能aqusition buffer写,如下图所示
上图表示当data_out[6]和data_out[7]均为高的时候使能写。
5、Start/Stop
跟Conditional类似,很好理解,基于两个设置好条件,一个开始一个停止,满足开始条件就开始存储,满足停止条件就是结束存储,同样在设置页也会多出三列来显示那些信号被选择来定义这两个条件,如下图所示:
下图是效果对比:
6、State-based
最后一种就是基于状态机触发流程,这是一种更完备的控制何时以及如何来存储采样信号。由于本人很少使用基于状态机的触发流程,所以这里不介绍。
文章评论(0条评论)
登录后参与讨论