欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > SV——Clocking block的应用

SV——Clocking block的应用

2025/2/27 9:09:30 来源:https://blog.csdn.net/ZhangShuHuai11/article/details/145883889  浏览:    关键词:SV——Clocking block的应用

在system verilog中,clocking block是一种简化时钟域信号同步和采样的机制。可以帮助验证工程师简化复杂时序问题,尤其是在测试平台中,既要对信号进行驱动,又要对信号进行采样。

clocking block块一般有以下应用场景:

(1)Driver:用于将激励信号驱动到DUT;

(2)Monitor:用于从DUT采样信号并传递给环境中的其他组件;

举例:

假设我们有一组APB接口,包含时钟pclk,复位信号presetn,输入信号(站在DUT的角度)psel、penable、pwrite、paddr、pwdata,输出信号(站在DUT的角度)prdata、pready、pslverr;

则可以定义如下的clocking_block来供driver和monitor使用;

interface apb_if (input bit pclk, input bit presetn);logic        psel    ;logic        penable ;logic        pwrite  ;logic [31:0] paddr   ;logic [31:0] pwdata  ;logic        pready  ;logic [31:0] prdata  ;logic        pslverr ;// 定义用于 Driver 的 clocking blockclocking drv_cb @(posedge clk);default input #1step output #1;// 默认输入延迟1步,输出延迟1时间单位output psel    ;               // 驱动 psel   (站在drv视角)output penable ;               // 驱动 penable(站在drv视角)output pwrite  ;               // 驱动 pwrite (站在drv视角)output paddr   ;               // 驱动 paddr  (站在drv视角)output pwdata  ;               // 驱动 pwdata (站在drv视角)input  pready  ;               // 采样 pready  (站在drv视角)input  prdata  ;               // 采样 prdata  (站在drv视角)input  pslverr ;               // 采样 pslverr (站在drv视角)endclocking// 定义用于 Monitor 的 clocking blockclocking mon_cb @(posedge clk);default input #1step;input  psel    ;               // 采样 psel   (站在mon视角)input  penable ;               // 采样 penable(站在mon视角)input  pwrite  ;               // 采样 pwrite (站在mon视角)input  paddr   ;               // 采样 paddr  (站在mon视角)input  pwdata  ;               // 采样 pwdata (站在mon视角)input  pready  ;               // 采样 pready  (站在mon视角)input  prdata  ;               // 采样 prdata  (站在mon视角)input  pslverr ;               // 采样 pslverr (站在mon视角)endclocking
endinterface

注意:

(1)实际应用clocking block时,我们往往会通过波形发现,对于采样信号,环境中使用的clocking_block块的值 = 时钟上升沿后的值,这是因为clocking_block块中的信号采用(阻塞赋值=)的方式,信号值的变化在active区域执行,因此从波形上观察,仿佛是时钟沿后的值有效一样,在下例中,pslverr为1的时刻是567ns,正是这一现象;

但如果查看的是接口的logic信号,而不是mon_cb内的信号,则无此困扰,如下:

因此建议,环境中引用mon_cb中的信号,但查看波形时,观察interface中的logic信号;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词