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"为真,因此检验失败。

相关推荐
最遥远的瞬间1 小时前
四、呼吸灯实战
fpga开发
FPGA小c鸡2 小时前
FPGA高速收发器GTH完全指南:从零基础到10Gbps高速设计实战
fpga开发
乌恩大侠2 小时前
【AI-RAN 调研】软银株式会社的 “AITRAS” 基于 Arm 架构的 NVIDIA 平台 实现 集中式与分布式 AI-RAN 架构
人工智能·分布式·fpga开发·架构·usrp·mimo
Saniffer_SH1 天前
【高清视频】笔记本电脑出现蓝屏、死机、慢、不稳定是这样连接分析M.2 SSD的
运维·服务器·网络·人工智能·驱动开发·嵌入式硬件·fpga开发
Z22ZHaoGGGG1 天前
Verilog实现对采样信号有效值(RMS)的计算
fpga开发
简简单单做算法1 天前
基于FPGA的图像形态学腐蚀处理Verilog开发与开发板硬件测试
fpga开发·腐蚀·形态学处理·硬件调试
hong_fpgaer1 天前
XILINX ZYNQ FPGA PS端DMA握手流程
fpga开发·vivado
北城笑笑1 天前
FPGA 50 ,Xilinx Vivado 2020 版本安装流程,以及常见问题解析,附中文翻译( Vivado 2020 版本安装教程 )
fpga开发·fpga
GateWorld2 天前
主流FPGA厂商对SystemVerilog的支持现状
fpga开发·system verilog
Smart-佀3 天前
FPGA入门:CAN总线原理与Verilog代码详解
单片机·嵌入式硬件·物联网·算法·fpga开发