SVA16.14并发断言翻译笔记$inferred_clock和$inferred_disable(六)
16.14.17 推断值函数
下面这些详尽的时间系统函数可用于查询推断的时钟事件表达式和禁用表达式:
(1)$inferred_clock 返回推断的时钟事件的表达式
(2)$inferred_disable 返回推断的禁用表达式
module m(logic a, b, c, d, rst1, clk1, clk2);
logic rst;
default clocking @(negedge clk1); endclocking
default disable iff rst1;
property p_triggers(start_event, end_event, form, clk = $inferred_clock,
rst = $inferred_disable);
@clk disable iff (rst)
(start_event ##0 end_event[->1]) |=> form;
endproperty
property p_multiclock(clkw, clkx = $inferred_clock, clky, w, x, y, z);
@clkw w ##1 @clkx x |=> @clky y ##1 z;
endproperty
a1: assert property (p_triggers(a, b, c));
a2: assert property (p_triggers(a, b, c, posedge clk1, 1'b0) );
always @(posedge clk2 or posedge rst) begin
if (rst) ... ;
else begin
a3: assert property (p_triggers(a, b, c));
...
end
end
a4: assert property(p_multiclock(negedge clk2, , posedge clk1,
a, b, c, d) );
endmodule
上述代码在逻辑上等价于如下代码:
module m(logic a, b, c, d, rst1, clk1, clk2);
logic rst;
a1: assert property (@(negedge clk1) disable iff (rst1)
a ##0 b[->1] |=> c);
a2: assert property (@(posedge clk1) disable iff (1'b0)
a ##0 b[->1] |=> c);
always @(posedge clk2 or posedge rst) begin
if (rst) ... ;
else begin
...
end
end
a3: assert property
(
@(posedge clk2) disable iff (rst1)
(a ##0 b[->1]) |=> c
);
a4: assert property (@(negedge clk2) a ##1 @(negedge clk1) b |=>
@(posedge clk1) c ##1 d);
endmodule
在断言a1中,时钟事件是从默认时钟推断出来的,因此$inferred_clock是a1的negedge clk1。在断言a2中,事件表达式posedge clk1被传递给属性p_triggers实例中的形式参数clk。因此,在该实例中$inferred_clock不用于clk;在断言a3中,always程序的事件控制推断出断言a3的时钟事件,因此,a3的$inferred_clock是posedge clk2;在断言a4中,当属性p_multiclock在assert property语句中实例化时,clkw被实际参数(negedge clk2)替换,clkx被默认参数值$experted_clock替换,该默认参数值是断言中属性实例位置处的默认时钟(negedge clk1)。第三个时钟clky被实际参数(posedge clk1)替换,因为它是显式指定的。从默认的disable语句推断断言a1和a3的禁用条件rst1,断言a2使用显式重置值1'b0,在这种情况下,可以在等效断言中完全省略disable iff语句。
SVA16.14并发断言翻译笔记$inferred_clock和$inferred_disable(六)相关推荐
- ios android的中文翻译,苹果 iOS 14 Beta反向翻译,拒不承认iOS不如安卓
原标题:苹果 iOS 14 Beta"反向翻译",拒不承认iOS不如安卓 在前不久,苹果就召开了一年一度的WWDC 2020,也就是苹果2020年的开发者大会,会上就对于苹果旗下的 ...
- system verilog断言学习笔记
文章目录 前言 SVA介绍 什么是断言 SVA术语 并发断言 即时断言 建立SVA块 一个简单的序列 边沿定义的序列 SVA中的时钟定义 禁止属性 一个简单的执行块 蕴含操作符 交叠蕴含 非交叠蕴含 ...
- SVA 断言翻译笔记(七) 16.15Disable iff用法
16.15 Disable iff 解析 默认disable iff可以在生成块或者module,interface,program声明中声明,其在默认disable iff声明的范围(作用域)和子 ...
- 【从零开始学习 SystemVerilog】11.3、SystemVerilog 断言—— Concurrent Assertions(并发断言)
并发断言描述了跨越仿真时间的行为,并且仅在时钟滴答声出现时进行评估. SystemVerilog并发断言语句可以在与其他语句并行运行的模块(module).接口(interface)或程序块(prog ...
- SVA 断言翻译笔记 16.13多时钟序列语法(九)
16.13 Multiclock support(多时钟支持) 目录 16.13 Multiclock support(多时钟支持) 1.多时钟序列 2.多时钟属性 3.时钟流 4.例子 5.在多时钟 ...
- 14.并发与异步 - 2.任务Task -《果壳中的c#》
线程是创建并发的底层工具,因此具有一定的局限性. 没有简单的方法可以从联合(Join)线程得到"返回值".因此必须创建一些共享域.当抛出一个异常时,捕捉和处理异常也是麻烦的. 线程 ...
- 并发译文翻译计划(二)
Doug Lea 的文献 Synchronizer Framework 译者:ClarenceAu (已翻译完成,在校对) Fork/Join 译者:Alex(陆续发表中) Java Concur ...
- JAVA并发编程实践笔记
2019独角兽企业重金招聘Python工程师标准>>> JAVA并发编程实践笔记 博客分类: java JAVA并发编程实践笔记 1, 保证线程安全的三种方法: a, 不要跨 ...
- 计算机英语 考研 翻译,研究生英语翻译笔记
翻译的定义:美国翻译理论家奈达说,翻译就是在译入语中用最切近而又自然的对应信息再现原语的信息,首先是在意义上,其次是在文体上,他还说翻译不止是一门科学,而且说到底完美的翻译永远是一种艺术.翻译的标准, ...
最新文章
- 绘制三维散点图_质量工具--之散点图
- 亚马逊推出了SecureCRT免费的云主机服务器 Amazon EC2,
- 温故而知新,6位顶级CV科学家聚首:计算机视觉中的深度学习方法vs传统方法...
- 【 C 】结构的自引用
- 【前端】2015阿里前端实习生在线笔试题
- 最简单的opencv安装方法----利用annaconda安装opencv
- 生活随笔:态度需要端正
- MySQL中的常用函数
- 关于上篇文章的okhttp中对于onFailure回调的异常捕获
- sklearn.metrics.roc_curve使用说明
- 什么时候要用存储过程,存储过程的优点 .
- ARCGIS破解教程(arcgis10.2(含ARCGIS下载地址)
- 手机如何利用IP地址定位城市
- Dispatch(01)
- 嵌入式Linux中tmp目录大小修改
- 为什么在 Google Play 发布应用很久了下载量却很少?
- 计算机考研专业课考c语言的大学,【择校必看】十三所计算机专业课只考数据结构的985院校!...
- CSS 文字装饰 text-decoration amp; text-emphasis
- 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条...
- UAA是什么 UAA驱动 微软UAA补丁