在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 270|回复: 3

[求助] @时钟沿和时钟块有什么差别?

[复制链接]
发表于 2024-8-25 22:16:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
下面代码中,@(posedge apb_if.clk)和@apb_if.cb_mst有差别吗?






  1. interface apb_if (input clk, input rstn);   
  2. ...
  3. clocking cb_mst @(posedge clk);
  4.     // USER: Add clocking block detail
  5.     default input #1ps output #1ps;
  6.     output paddr, pwrite, psel, penable, pwdata, pstrb,pprot;
  7.     input prdata,pready,pslverr;
  8.   endclocking : cb_mst  
  9. ...
  10. endinterface
  11.    


复制代码

发表于 2024-8-26 09:44:48 | 显示全部楼层
有区别,采样点
发表于 2024-8-28 11:06:44 | 显示全部楼层
建议谨慎使用时钟块,采样有延迟,很可能在跳变的时候采错
发表于 2024-8-28 15:15:43 | 显示全部楼层
我觉得采样或者驱动时钟块里面的信号的时候,尽量用时钟块的那个时钟。例如:@apb_if.cb_mst; apb_if.cb_mst.paddr <= 0;。因为有时候@posedge clk再去采样或者驱动,设计平台与验证平台可能存在竞争,导致结果无法预测。(例如,如果先@posedge clk,然后给一个信号赋值,但dut又会在时钟上升沿采样这个信号,那在你赋值的时钟上升沿,dut是会采样到你赋值之前还是赋值之后的信号呢?)而使用时钟块就不会出现这个问题。如果你有《systemverilog验证》这本书的话,第4.3.1-4.3.7节有相关内容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-20 23:17 , Processed in 0.016726 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表