目录
- 1.建立时间与保持时间
- 2.输入延迟和输出延时
- 3.时序计算实战
- 3.1.输入延时:最大输入延时
- 3. 2.输入延迟:最小输入延迟
- 3.3.输出延迟:最大输出延迟
- 3.4.输出延迟:最小输出延迟
- 3.5.建立时间/保持时间和输入延时/输出延时之间的关系
1.建立时间与保持时间
建立时间指的是时钟信号变化之前数据保持不变的时间
保持时间指的是时钟信号变化之后数据保持不变的时间
时间裕量是指在时序路径上要求的时间和实际花费的时间的差。如果裕量的值为正值或者0,则说明设计电路的时机时序符合约束条件,如果为负值则说明不符合条件。
2.输入延迟和输出延时
为保证片外的触发器可以正确地输入/输出,不仅要保证片内的延时满足时序要求,而且要保证片内外延时总和满足时序要求。在综合时,设计者一般根据系统应用需要指定输入/输出延时,并作为参数输入给综合工具,综合工具会自动调整片内逻辑,以满足整体的时序要求。
下图所示为如何定义输入延时和输出延时的波形图实例。时序模块有输入信号DATA_IN和输出信号DATA_OUT,输入信号在时钟沿之后20ns达到稳定,而输出信号需要再时钟沿之前15ns到达。
3.时序计算实战
3.1.输入延时:最大输入延时
对于电路单元B2中的触发器F3
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Input Delay:Incremental: 6.0;Total 7.2 ##假设最大输入延时是6.0
Delay through C3:Incremental:1.2;Total 8.4 ##假设通过C3的最大延时是1.2
Data available at F3 is D pin: 8.4
数据要求时间(Data required time):
Clock Rising Edge:Incremental:10.0;Total 10.0##假设触发触发器时钟的下一个上升沿为10
Clock Latency:Incremental:0.5;Total 10.5
Clock Network Latency:Incremental:0.7;Total 11.2
Setup requirement:Incremental:0.3;Total 10.9 ##假设建立时间是0.3
Clock Uncertainty:Incremental 0.2;Total 10.7 ##假设时钟不确定度0.2
Data required at:10.7
Slack = 10.7-8.4=2.3
因为裕量是正值,所以表示在这条路径上可以满足建立时序。
网络+路径+输入<周期+网络-建立-不确定
周期-输入-路径-不确定>建立
3. 2.输入延迟:最小输入延迟
对于电路单元B2的触发器F3
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Input Delay:Incremental: 6.0;Total 7.2 ##假设最小延迟和最大延迟相同
Delay through C3:Incremental:0.9;Total 8.1 ##假设通过C3的最小延时是0.9
Data available at F3 is D pin: 8.1
数据要求时间(Data required time):
Clock Rising Edge:Incremental:0.0;Total 0.0
Clock Latency:Incremental:0.5;Total 0.5
Clock Network Latency:Incremental:0.7;Total 1.2
Setup requirement:Incremental:0.3;Total 1.5 ##假设保持时间是0.3
Clock Uncertainty:Incremental 0.2;Total 1.7 ##假设时钟不确定度0.2
Data required at:1.7
Slack = 8.1-1.7=6.4
因为裕量是正值,所以表示在这条路径上可以满足保持时序。
网络+路径+输入>网络+保持+不确定
路径+输入-不确定>保持
3.3.输出延迟:最大输出延迟
对于电路单元B1的端口O1:
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Delay through C1:Incremental:1.5;Total 2.7 ##假设通过C1的最大延时是1.5
Data available at F3 is D pin: 2.7
数据要求时间(Data required time):
Clock Rising Edge:Incremental:10.0;Total 10.0##假设触发触发器时钟的下一个上升沿为10
Clock Latency:Incremental:0.5;Total 10.5
Clock Network Latency:Incremental:0.7;Total 11.2
Setup requirement:Incermental: 6.0;Total 5.2 ##假设最大输出延时是6.0
Clock Uncertainty:Incremental 0.2;Total 5.0 ##假设时钟不确定度0.2
Data required at:5.0
Slack = 5.0-2.7=2.3
因为裕量是正值,所以表示在这条路径上可以满足建立时序。
3.4.输出延迟:最小输出延迟
对于电路单元B1的端口O1:
数据到达时间(Data arrival time):
Clocking Rising Edge:Incremental: 0.0;Total 0.0 ##假设参考时钟的有效沿在0.0,上升沿是有效沿。
Clock Latency:Incremental: 0.5;Total 0.5 ##假设时钟源延迟是0.5
Clock Network Latency:Incremental: 0.7;Total 1.2 ##假设时钟网络延时是0.7
Delay through C1:Incremental:0.5;Total 2.7 ##假设通过C1的最小延时是1.5
Data available at F3 is D pin: 2.7
数据要求时间(Data required time):
Clock Rising Edge:Incremental:0.0;Total 0.0
Clock Latency:Incremental:0.5;Total 0.5
Clock Network Latency:Incremental:0.7;Total 1.2
Setup requirement:Incermental: 6.0;Total -4.8 ##假设最小输出延时是6.0
Clock Uncertainty:Incremental 0.2;Total -4.6 ##假设时钟不确定度0.2
Data required at:-4.6
Slack = 1.7-(-4.6)=6.3
因为裕量是正值,所以表示在这条路径上可以满足保持时序。
3.5.建立时间/保持时间和输入延时/输出延时之间的关系
(1)最大输入/输出延时路径裕量大于0,说明满足建立时间。最小输入/输出延时路径裕量大于0,说明满足保持时间。
(2)对于建立时间,要求数据必须在要求时间之前有效,因此裕量=数据要求时间-数据有效时间
对于保持时间,要求数据在要求时间之后有效,因此裕量=数据有效时间-数据要求时间
(3)因为要求数据在下一个边沿采样有效,所以建立时间使用时钟的下一个边沿,因为要求数据不能干扰当前的边沿采样,所以保持使用的是时钟的当前边沿。
(4)不确定度会使得裕量减少。