作者CCMAKE (夏夜晚风)
看板Electronics
标题[问题] 请问SystemVerilog里的clocking block
时间Sun Jan 24 23:08:11 2016
各位大大好
小弟是systemverilog的新手
想要请教一下有关於clocking block的一些问题
1. clocking block主要的目的是用来做甚麽的呢?
我的理解是利用这个block
可以把testbench里的input跟output讯号,对同一个clock讯号做同步
然後可以对这些input/output讯号做skew的控制
不知道这样的理解有没有错误?
如果不用这种写法的话,是不是就需要自己对每个testbench里的讯号做时序的控制?
2. 对於clocking block里的skew还有一些问题想要请教
skew可以设定input skew (在clock edge 前多久时间sample)
与output skew(delay 多久时间drive讯号)
请问有这个skew的目的,是为了
1. 对於output (DUT的intput) , 有了这个skew可以满足DUT 不会latch到一个在
clock edge 瞬变的data
(这与DUT定义的setup time 有关吗? 会造成metastable?)
2. 对於input (DUT的output), 有了这个skew可以确定TB采样到DUT在前一个clock
period里最後的一个时间点的data
(对於TB会有setup time与metastable 的问题吗??)
不知道这样理解有没有问题?
我截了两个图来说明我的想法
不知道各位大大有没有空帮我review一下 XD
http://imgur.com/HlCGM7t
3. 在Chris Spear的 SystemVerilog for Verification一书中
第四章里面有提到clocking block
其中有一段文字我不是很明白
截录如下:
==========================================================================================================
A testbench has to mimic this tester behavior. It should drive on or
after the active clock edge, and should sample as late as possible as allowed by
the protocol timing specification, just before the active clock edge.
==========================================================================================================
请问他的意思是不是说,TB应该在一个clock edge delay一点时间去drive
讯号给DUT,并且在clock edge 前一点时间去sample DUT 以获得DUT前一
个clock period 最後一个时间点的data?
跟我上面第二点讲的是同一个意思吗?
不好意思问题有点乱
因为自己也还不是学得很好
如果还需要提供甚麽资料我可以再补充
先感谢各位大大看完此篇 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.31.248
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1453648094.A.C06.html