system verilog中为什么要用clocking?
时间:12-12
整理:3721RD
点击:
interface中经常会将一组信号做成clocking,请问为什么要这样做呢?
据说如果不加clocking采到的数据会不对
据说如果不加clocking采到的数据会不对
是说的modport吗?
如果是,那就是方便MONITOR,DRIVE.
不光是方便吧
不加这个数据会不对
有人能详细说说吗
就是你加激励要按照时序加,采样也要按照时序采样。
如果我不加clocking
bfm里依然会@(posedge clk)再生成时序
为什么必须要加clocking呢
VMM里是推荐使用modport的,到了OVM,UVM我看是有人不加这个的。
不加这个是没有问题的。
不过VMM推荐使用这个,其实还是属于封装的概念,在BFM里直接@clocking块就可以了。
但是我使用VCS时使用clocking曾经发现过非常诡异的现象,好像是工具的bug。从那以后,再不使用clocking块了。工具的支持有问题。
类似于 在clk沿之前就采样 drive在port的信号 在clk沿之后还没有反应在波形变化中 这种
clocking就是要解决这个问题。。。
你是说bfm生成的信号在clock沿之后没有反应?延时了一拍?
能不能把这个例子详细说下?
大概就是看波形的时候比较费解吧 debug起来太难受 后来干脆不用clocking了
对了 是用VCS仿真的
具体不记得了,不是那种在clk沿前采样,还是在clk沿后采样的问题。
好像是有个valid本来应该赋值为1(或者0之类的),结果被工具漏掉了,非常诡异的。
去掉clocking block就好了。
你用的是VMM还是别的mm?
这个clocking。。VMM中是推荐要加的
我用的就是VMM
它的方法学是推荐要加的,但某些情况下VCS工具的支持有问题,所以从那次以后,我再也不加clocking block了。
你确定不是其他东西引起的问题? 呵呵
和synopsis交流过吗?