17-SVA中的多时钟定义,matched构造,expect构造

资料来源

(1) 硅芯思见:【94】SVA中的multi-clock (qq.com)

(2) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com)

1.SVA中的多时钟定义

(1) SVA允许序列或者属性使用多个时钟定义来采样独立的信号或者子序列;

(2) SVA会自动地同步不同信号或者子序列使用的时钟域;

(3) 当在一个序列中使用多个时钟信号时,只允许使用##1延迟构造

注1:下图所示sequence-s_multiple_clocks检验在时钟clk1的任何上升沿,信号a为高,接着在时钟clk2的上升沿,信号b为高.

下幅图片中有错误,clk0与clk1同频同相改为同频;

 

 

 

注2:##1延迟构造将检验时间移到时钟clk2的最近的上升沿,检查信号b是否为高.

(4) 当在一个序列中使用多个时钟信号时,不允许使用##0或##2.

(5) 当在一个属性中使用多个时钟信号时,属性可以在序列定义之间使用非交叠蕴含运算符;

(6) 当在一个属性中使用多个时钟信号时,禁止在不同时钟驱动的序列间使用交叠蕴含运算符;

2.matched构造

(1) 任何时候如果一个序列定义了多个时钟,构造"matched"可以用来检测第一个子序列的结束点.

(2) 下图所示property中,序列s_a查找信号a的上升沿,但是信号a是根据时钟clk1来次啊应的; 序列s_b查找信号b的上升沿,信号b是根据时钟clk2来采样;

属性p_match验证在给定的时钟clk2的上升沿,如果序列s_a匹配,那么在一个周期后,序列s_b也必须为真.

 

3.expect构造

(1) SVA中的expect构造与verilog中的等待构造相似,区别在于expect语句等待的是属性的成功检验;

(2) expect构造后面的代码是作为一个阻塞的语句来执行. expect构造的语法与assert构造相似; expect语句允许在一个属性成功或者失败后使用一个执行快;

 

 

posted on   知北游。。  阅读(676)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示