SystemVerilog Assertions应用指南 Chapter1.32 嵌套的蕴含

SVA允许使用嵌套的蕴含。当我们有多个门限条件指向一个最终的后续算子时,这种构造十分有用。

属性 p_nest检验如果信号"a"有一个下降沿,则是一个有效开始,接着在一个周期后,信号"b","c"和"d"应该为低电平有效信号以保持这个有效开始。如果第二个条件匹配,那么在6到10个周期内期望"free"为真。注意,当且仅当信号"b","c"和"d"都匹配时,在后续状况( consequent condition)"fre"才会被检验是否为真。

复制代码
`define free (a && b && c && d)

property p_nest;
	@(posedge clk) $fell(a) |-> 
		##1 (!b && !c && !d ) |-> ##[6:10] `free;
endproperty

a_nest :assert property(p_nest);

同一个属性可以被重写成不使用嵌套蕴含的方式,如下所示。

复制代码
property p_nest1;
	@(posedge clk) $fell(a) ##1 (!b && !c && !d)
		|-> ##[6:10] `free;
endproperty

a_nest1 :assert property(p_nest1);

注意:使用嵌套蕴含的属性 p nest中没有"else"情况,因此属性很容易就能重写成如 p_nesti所示的形式。

图1-39显示了断言 a nest在模拟中的表现。标记1显示了检验器的第一次成功。当检测到信号"a"的下降沿时,出现一个有效开始。一个时钟周期后,信号"b"、"c"和"d"如预期地被检测为低。因此检验保持有效,后续算子被检验。在6个时钟周期后,检测到状况"free"为真,因此检验成功。

第二个标记指出了下一个有效开始,在此检测到信号"a"的下降沿个周期后,检测到信号"c"和"b"为低,但是信号"b"不为低。因此检验没能保持有效,得到一个空成功。

第三个标记也标出了一个有效开始,在此检测到信号"a"的下降沿。一个周期后,如期望的检测到信号"b","c"和"d"为低,因此检验保持有效,后续算子被检验。在6~10个时钟周期内,没有检验到状况"free"为真,因此检验失败。

相关推荐
nuoxin11411 小时前
CH6001FN/BW-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
LCMICRO-1331084774616 小时前
长芯微LCMDC8685完全P2P替代ADS8685,16位模数转换器(ADC)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·模数转换器adc
szxinmai主板定制专家17 小时前
基于ARM+FPGA高性能MPSOC 多轴伺服设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·架构
nuoxin11417 小时前
CYUSB4024-FCAXI 是一款USB 20Gbps 控制器-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
LCMICRO-133108477461 天前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
尤老师FPGA2 天前
Framebuffer的讲解
fpga开发
FPGA的花路2 天前
ZYNQ 程序固化与升级指南
fpga开发·vitis·一键烧录脚本·zynq程序构成
ALINX技术博客2 天前
【黑金云课堂】FPGA技术教程:PLL锁相环实验和MIO应用
fpga开发·fpga
Byron Loong2 天前
【常识】通俗易懂的讲CPU,GPU,MCU,FPGA,DSP的区别和特点
单片机·嵌入式硬件·fpga开发
gaoxcv3 天前
TDC相关的一些方法
fpga开发