马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 L_2023 于 2023-7-19 10:29 编辑
最近再做ahb to apb bridge的验证项目,在使用clocking采用时遇到了不理解的问题。 这是apb的interface
这是采样的代码,用uvm_info打印输出
这是波形图
这是采样输出结果
330ns采样输出
410ns采样输出
从波形图可以看到,在330ns的时候,PWRITE=1,PSELx=1,PENABLE=1;在410ns的时候,PWRITE=1,PSELx=0,PENABLE=0。
但是在330ns时,vif.drv_clk.PWRITE=1,vif.drv_clk.PSELx=1,vif.drv_clk.PENABLE=0,采样的值不正确;vif.PWRITE=1,vif.PSELx=1,vif.PENABLE=1,采样值正确。
在410ns时,vif.drv_clk.PWRITE=1,vif.drv_clk.PSELx=1,vif.drv_clk.PENABLE=1,采样的值不正确;vif.PWRITE=1,vif.PSELx=0,vif.PENABLE=0,采样值正确。 在这里想请问一下各位,出现这个问题的原因是什么呀?按理说clocking采样时钟上升沿前一个step的值,不应该是这样的结果啊。
已解决,是vif.drv_clk.与@vif.pclk混用的问题
|