SystemVerilog Assertions应用指南 第一章(1.27章节 “within”运算符)

" within"构造允许在一个序列中定义另一个序列。

复制代码
  seq1 within seq2

这表示seq1在seq2的开始到结束的范围内发生,且序列seq2的开始匹配点必须在seq1的开始匹配点之前发生,序列seq1的结束匹配点必须在seq2的结束匹配点之前结束。属性p32检查序列s32a在信号" start"的上升沿和下降沿之间发生。信号" start"的上升和下降由序列s32b定义。

复制代码
sequence s32b;
	@(posedge clk)
		$fell(start) ##[5:10] $rose(start);
endsequence

sequence s32;
	@(posedge clk) s32 within s32b;
endsequence

property p32;
	@(posedge clk) $fell (start) |-> s32;
endproperty

a32: assert property(p32);

图1-34使用了与 throughout运算符用的例子相同的设计条件来显示属性p32在模拟中的响应。检验有两个有效的开始:一个在时钟周期3,另一个在时钟周期16。在这两个点,检测到信号" start"的下降沿。

成功1 ------从时钟周期3开始的检验成功了。信号" start"的下降沿在时钟周期3,上升沿在时钟周期13。在这两个时钟周期间,信号"c"分别在时钟周期6,9,11被检测到三次高电平。因此检验成功。

未完成1---从时钟周期16开始的检验未能完成。信号" start的下降沿在时钟周期16,上升沿在时钟周期21。在这两个时钟周期间,信号"c"分别在时钟周期18和20被检测到两次高电平信号"c"的第三次重复出现在时钟周期22,但是在时钟周期21检测到信号" start"为高。这是一个失败,但是由于信号"c"使用的是跟随重复("goto" repetition运算符,它按照阻塞序列的规则来执行。这使得检查失败并且在模拟中发出了一个未完成的信息。

相关推荐
坏孩子的诺亚方舟16 天前
FPGA系统架构设计实践15_高云Arora V系列时钟体系
fpga开发·系统架构
FPGA小徐16 天前
入门 CNN 结构全解析|从流程图理论到 FPGA Verilog 硬件实现(含习题带讲解)
fpga开发
FPGA小徐16 天前
FPGA 数字信号处理:并行 FIR 与串行滤波器设计原理、对比与完整 Verilog 实现
fpga开发
Saniffer_SH17 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
zlinear数据采集卡17 天前
双核架构深度解析:ARM+FPGA如何让数据采集卡实现500Ksps高性能?
arm开发·fpga开发·架构
9527华安17 天前
FPGA实现GTH Transceivers Wizard传输2路视频,基于aurora 8b10b编解码架构,提供4套工程源码和技术支持
fpga开发·gth·aurora 8b10b·transceivers
FPGA小徐18 天前
FPGA 数字信号处理(二):并行 FIR 滤波器的 Verilog 全流程设计与实现
fpga开发
国科安芯18 天前
基于AS32S601ZIT2型抗辐照MCU的商业航天卫星姿态确定与控制系统研究
单片机·嵌入式硬件·安全·fpga开发·架构·risc-v
ALINX技术博客18 天前
【黑金云课堂】FPGA技术教程FPGA基础:I2C 总线通信技术
fpga开发·i2c
Hello-FPGA18 天前
Xilinx KU040 FPGA Camera Link 图像采集
c++·fpga开发