|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
vcs做后仿时,最慢case下,报出两个$setuphold的timing violation, 两个violation类似,如$setuphold(negedge CKB &&& (RB==1'b1):3324, negedge D : 3302, limits: (86,0) );
仿真中,将由violation的寄存器波形拉出来,发现除了复位端RB、数据输入端D、数据输出端Q和时钟端CKB外,还有一个寄存器类型的信号notifier。两个DFF中,有一个DFF的notifier是X态,其余信号均无X态,这个notifier具体指的什么?
换成最快case,做VCS后仿,未报出violation,但是,之前最慢case时出现violation的两个DFF的notifier信号都是X。
目前,有以下三个疑惑:
1. 上面报出的意思是否是:时钟CKB的下降沿到达时间是3324,数据D的到达时间是3302,setup时间应该大于86,hold时间小于0?而此处D比CKB仅仅早到22<86,所以不满足setup?
2. 不知道notifier信号在DFF中究竟扮演什么角色?DFF的输出信号Q在notifier为X态时,没有跟着变为X。
3. 另外,VCS后仿时,使用的工艺库的.v文件,并不支持negative timing checks(该工艺库比较老,没有提供支持该选项的.v),而我在vcs仿真时加上了neg_tchk选项,这样是否有问题呢? |
|