interface中clocking block输入偏差与输出偏差

资料来源

(1) 硅芯思见:【125】clocking block中的输入偏差和输出偏差 (qq.com)

(2) sv绿皮书;

1.输入偏差与输出偏差

(1) system verilog的时钟块机制(clocking block)可以对指定信号进行基于特定时钟的同步处理,时钟块中的任何信号都将根据指定时钟被同步驱动或采样;

(2) clocking block可以样信号和驱动信号指定input偏差和output偏差;

(3) clocking block中默认的input偏差是1step,默认的output偏差为0; 其中,1step可以认为是上一时间槽(time slot)的最后时刻;

注1:#1step中的step与`timescale中的仿真精度一致(出处???);

注2:当input skew大于0时,避免竞争现象,避免到底采样的是时钟沿前的数据还是时钟沿后的数据;

注3:以program定义的代码被认为是测试平台代码,会放到reactive区域执行;

注4:$monitor,$storbe以及其他类似的事件都在postponed区域执行;

(4) interface中的clocking block只能用于验证平台,不能用于RTL设计;

2.示例

2.1input偏差和output偏差为默认值

(1)默认的输入偏差为1step,默认的输出偏差为0;

(2)输入偏差1step可以认为是上一时间槽的最后时刻,指采样信号事件(cb.sig1)采样输入信号(sig1)在时钟边沿1step前的稳定值;

注1:采样输入信号,使用阻塞赋值;驱动输出信号,采用非阻塞赋值;

(3)输出偏差0则表示采样事件发生后(cb.sig2)立即将对应值驱动或更新到输出端口(sig2)(对于clocking block的输出sig2而言,该信号通过cb引用时,可以被驱动,但是不能被读,否则会报错);

2.2定义default输入偏差与输出偏差

2.3default偏差设置为posedge和negedge

(1)输入偏差设置为posedge,时钟采样到sig1后立即在上升沿将值更新到cb.sig1中;

(2)输出偏差设置为negedge,cb.sig2的值在采样后,等到时钟下降沿将值更新到sig2中;

 

 

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

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 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

导航

统计

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