文章目录
- 前言
- 一、信号采样
- 二、信号驱动
- 总结
前言
在UVM验证过程中,有monitor和driver组件,分别用于收集信号和驱动信号,本文记录两个例子,用于理解信号的采样以及驱动的过程。
一、信号采样
示例如图所示,在哪个时钟边沿,可以采到frameo_n的下降沿。答案是D的下降沿时刻,原因是frameo_n首先要等到cb中的上升沿触发,在D的上升沿时刻,拿到更新后的信号,然后在D的下降沿时刻,再去检测更新后的信号是不是下降沿。
二、信号驱动
示例如下图所示,根据代码画出信号的时序图。我们可以挨个信号来看,
- reset_n。0时刻,将reset_n拉低,等待100ns,然后等一个cb的上升沿,在B上升沿时刻将其拉高。
- frame_n。等待100ns后,此时仿真时间来到A时钟的下降沿,等待一个cb的上升沿,在B上升沿时刻将其拉高,与此同时,100ns后同时会开始执行frame_n拉低的语句,只不过实际拉低的动作需要等2个时钟周期,所以在C的上升沿拉低。
- valid_n。等待100ns后,等待一个cb的上升沿,在B上升沿时刻开始将其拉高,但是其值要3个时钟后才能给过来,所以此时valid_n上面没有赋值,等3个时钟后,在D的上升沿将其拉起来。
总结
本文主要通过两个例子,帮助理解一下信号的采样和驱动。