摘要:资料来源: (1) 硅芯思见:【86】SVA中的延迟 (qq.com) (2) 16-在属性中使用形参,在属性中使用局部变量,以及在序列匹配时调用子程序 - 蚕食鲸吞 - 博客园 (cnblogs.com) 1.generate与带形参的assertion的联合使用
阅读全文
摘要:资料来源 (1) 硅芯思见:【91】SVA的动态控制 (qq.com) 1.$asserton, $assertoff, $assertkill (1) 作用 注1:$assertoff暂时关闭所有断言的执行,如果该函数执行时断言正在执行,正在执行的断言不会被终止; 注2:$asserton重新启动
阅读全文
摘要:资料来源 (1) 硅芯思见:【94】SVA中的multi-clock (qq.com) (2) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) 1.SVA中的多时钟定义 (1) SVA允许序列或者属性使用多个时钟定义来采样独立的信号或者子序列; (2) SVA会自动地同步不同信号或者
阅读全文
摘要:资料来源 (1) sv assertion; (2) 硅芯思见:【84】SVA中的形式参数 (qq.com) (3) 硅芯思见:【93】SVA中的局部变量和子程序 (qq.com) 1.在属性中使用形参 (1) 可以用定义形参的方式来重用一些常用的属性. (2) SVA允许使用属性的形参来定义时钟.
阅读全文
摘要:1.内建系统函数 $onehot(expression)—检验表达式满足“one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高。 $onehot0(expression)—检验表达式满足“zero one-hot”,换句话说,就是在任意给定的时钟沿,表达式只有一位为高或者没有任何一
阅读全文
摘要:资料来源 (1) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) (例子很好) 1.first_match构造 (1) 使用了逻辑运算符(如“and”和“or”)的序列中指定了时间窗,有可能出现同一检验具有多个匹配的情况。“first_match”构造可以确保只用第一次序列匹配,而丢
阅读全文
摘要:资料来源 (1) SVA中的与或非(and_or_not) (qq.com) (2) system verilog assertions应用指南 (3) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com) 1.and构造 (1) 二进制运算符“and”可以用来逻辑地组合两个序列。当两个序
阅读全文
摘要:资料来源 (1) 硅芯思见:【87】SVA中的重复运算操作 (qq.com) 1.连续重复(可用于表达式和序列) (1) 信号或者序列将在指定数量的时钟周期内都连续地匹配。信号的每次匹配之间都有一个时钟周期的隐藏延迟。 (2) 连续重复运算符的基本语法:signal or sequence [*n]
阅读全文
摘要:1.$past构造 (1) SVA内嵌系统函数“$past”可以得到信号在几个时钟周期之前的值。在默认情况下,它提供信号在前一个时钟周期的值。 (2) 结构的基本语法:$past(signal_name, number of clock cycles) 2.$past构造实例 属性p19检验的是在给
阅读全文
摘要:1.序列的连接机制 (1) 使用序列起始点作为同步点的连接机制; (2) 使用序列结束点作为同步点的连接机制; 这种机制通过给序列名字追加关键词“ended”来表示。例如,s.ended表示序列的结束点。关键词“ended”保存了一个布尔值,值的真假取决于序列是否在特定的时钟边沿匹配检验。 2.示例
阅读全文
摘要:资料来源 (1) 硅芯思见:【88】SVA中的条件选择 (qq.com) 1.使用参数的SVA检验器 下图中,实例i1将延迟参数改写为2个时钟周期,而实例i2使用默认的1个时钟周期; 2.使用选择运算符/选择运算符的SVA检验器 注1:条件运算符?:可以在序列sequence和属性property的
阅读全文
摘要:参考资料 (1) 请教一下用assert property和cover property搜集覆盖率有什么不同? - IC验证讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - (2) sv绿皮书; (3) IEEE system verilog standard; (4) 硅芯思见:【8
阅读全文
摘要:1.在模块(module)定义中内建或内联检验器 2.将检验器与模块/模块的实例/一个模块的多个实例绑定 优点:sva检验器与设计代码分离; 2.1检验器模块 2.2bind语法 2.3顶层模块 2.4bind实现
阅读全文
摘要:资料来源 (1) 硅芯思见:【86】SVA中的延迟 (qq.com) 例子: 属性p12检查布尔表达式“a&&b”在任何给定的时钟上升沿为真。如果表达式为真,那么在接下来的1~3个中周期内,信号“c”应该至少在一个时钟周期内为高。 p12实际上以下面三个线程展开。 1.重叠的时序窗口 属性p13与属
阅读全文
摘要:1.执行块 (1) SystemVerilog语言被定义成每当一个断言检查失败,模拟器在默认情况下都会打印出一条错误信息。模拟器不需要对成功的断言打印任何东西,可以使用断言陈述中的“执行块”(action block)来打印自定义的成功或失败信息。 (2) 执行块的基本语法如下所示。 (3) 执行块
阅读全文
摘要:资料来源 (1)硅芯思见:【95】SVA中的基本元素sequence和蕴含操作 (qq.com) (2)SVA中的与或非(and_or_not) (qq.com) 1.禁止属性 当期望属性为假时,可以采用关键词not,用来表示属性永远不为真. 2.蕴含/implication (1) 蕴含等效于if
阅读全文
摘要:1.带形参的序列 通过在序列中定义形参,相同的序列能被重用到设计中具有相似行为的信号上; 2.序列独立于时钟的coding style 2.1序列中指定时钟 2.2属性中指定时钟,序列独立于时钟(可提高基本序列定义的可重用性)
阅读全文
摘要:资料来源 (1)硅芯思见:【81】SVA中的$rose和$fell (qq.com) (2)硅芯思见:【92】SVA中的内嵌函数 (qq.com) 1.简单序列 序列s1检查信号“a”在每个时钟上升沿都为高电平。如果信号“a”在任何一个时钟上升沿不为高电平,断言将失败。 2.边沿定义的序列以及使用其
阅读全文
摘要:1.建立SVA块的步骤如下图所示: 注:序列/属性必须被断言,才能发挥作用; 2.序列/sequence的基本语法 篇4-sva中序列的构建(1) - 蚕食鲸吞 - 博客园 (cnblogs.com) 篇5-sva中序列的构建(2) - 蚕食鲸吞 - 博客园 (cnblogs.com) 3.属性/p
阅读全文