SVA学习第一章——断言的基本介绍及语法

SVA学习第一章——断言的基本介绍及语法

一、SVA的基本介绍

1. SVA的执行及分类:

1.1 执行和评估:

预备阶段 采样断言变量、信号的状态不能改变,确保采到最稳定的值
观察阶段 对所有的属性表达式求值
响应阶段 评估属性是否成功或者失败

1.2 断言的分类——并发断言和即时断言

  1. 并发断言并发断言是一种描述系统行为的语句,其基于时序逻辑来检查系统在仿真过程中的并发行为。并发断言使用的语法为$assert$assume
  • $assert语句用于检查某个性质是否为真。如果性质为真,则仿真继续进行;如果性质为假,则触发错误。

  • $assume语句用于假设某个性质为真。如果性质为假,则触发错误。

  • 并发断言可以与仿真代码并行运行,可以同时检查多个性质。并发断言可以对时序性质进行建模,例如时钟周期、状态转换等。

  • 并发断言的例子: 模块fifo实现了一个FIFO(First-In First-Out)缓冲区。并发断言p1用于检查在写入数据和读取数据时,读指针和写指针之间的空间和数据是否满足要求。如果并发断言失败,则会通过$error语句输出错误信息。

module fifo;
  
  logic [7:0] data;
  logic [2:0] count;
  logic write;
  logic read;
  
  // 在写入数据前,进程等待读指针和写指针之间的空间
  always_ff @(posedge clk) begin
    if (write && count < 7)
      count <= count + 1<
  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值