非时序检查(Non-Sequential Check)

单元或宏(macro)的库文件可以将时序弧指定为非时序(non-sequential)检查,例如两个数据引脚之间的时序弧。非时序检查是指两个引脚之间的检查,两者都不是时钟。一个引脚是约束引脚,其作用类似于数据,而第二个引脚是相关引脚,其作用类似于时钟。该检查指定了在相关引脚上的数据改变前后,约束引脚上的数据必须保持稳定多长时间。数据到数据建立时间检查很重要的一点是,约束引脚和相关引脚的发起时钟沿都来自同一时钟周期

非时序检查被指定为单元库规范的一部分,以下是这种时序弧在单元库中的表示形式:

pin (CDN) {
	timing () {
		related_pin : "SDN";
		sdf_cond :CP_D_SE_SI_SDFCHK";
		timing_type : non_seq_hold_rising;
		when : "CP&D&SE&SI";
		rise_constraint (constraint_template_5x5) {
		 index_1 ("0.0031, 0.0429, 0.1225, 0.2817, 0.6");
		 index_2 ("0.0031, 0.0429, 0.1225, 0.2817, 0.6"); 
		 values(
		 	"-0.0537967,-0.0744717,-0.106705,-0.159996,-0.241199",
		 	"-0.0586925,-0.0795155,-0.110903,-0.163558,-0.244908",
		 	"-0.0745354,-0.0943225,-0.127875,-0.182254,-0.263457",
		    "-0.102063,-0.123939,-0.158541,-0.214474,-0.29701",
		    "-0.145043,-0.168566,-0.206536,-0.265257,-0.351465"
		 );
		}
	}
	...
	timing () {
		related_pin : "SDN";
		sdf_cond :CP_D_SE_SI_SDFCHK";
		timing_type : non_seq_setup_rising;
		when : "CP&D&SE&SI";
		rise_constraint (constraint_template_5x5) {
		 index_1 ("0.0031, 0.0429, 0.1225, 0.2817, 0.6");
		 index_2 ("0.0031, 0.0429, 0.1225, 0.2817, 0.6"); 
		 values(
		 	"0.0815198,0.103798,0.14116,0.206797,0.316252",
		 	"0.092339,0.114617,0.151082,0.215619,0.325073",
		 	"0.115258,0.136995,0.174141,0.237997,0.34626",
		    "0.168424,0.188704,0.223172,0.285711,0.391171",
		    "0.283643,0.299926,0.329206,0.384944,0.480411"
		 );
		}
	}
}

setup_rising、hold_rising指相关引脚的上升沿,lib中也定义了setup_falling和hold_falling的时序弧。

在非时序检查中,建立时间和保持时间的值是从标准单元库中获得的

非时序建立时间检查指定了约束信号必须相对于相关引脚多早到达,如下图所示。单元库中包含了建立时间弧SDN->CDN,它被指定为了非时序弧。如果在建立时间窗口内出现CDN信号,则非时序建立时间检查将失败。
非时序保持时间检查指定了约束信号必须相对于相关引脚多晚到达,如下图所示。如果CDN在保持时间窗口中改变了,则非时序保持时间检查将失败。
在这里插入图片描述

非时序建立时间检查报告如下所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值