时序弧
静态时序分析是基于时序弧数据的时序分析。时序弧是用来描述两个节点延时信息的数据,时序弧的信息一般分为连线延时和单元延时。连线延时是单元输出端口和扇出网络负载之间的延时信息;单元延时是单元输入端口到输出端口之间的延时信息。因此一条完整路径的时序信息计算由连线延时和单元延时组成。
连线延时没有功能属性,所以延时信息在分类上没有区别。单元延时中的时序弧分为基本时序弧和约束时序弧两类,其中约束时序弧用来表示输入端口之间存在的时序约束的信息。
基本时序弧包括组合时序弧、边沿时序弧、复位清零时序弧、三态使能时序弧等
1.组合时序弧
组合时序弧是最基本的单元延时信息时序弧,主要用于表示组合逻辑单元的延时信息,在时序信息文件中可用如下文本进行声明。
timing_type : combinational;
由于组合时序弧也是默认的时序弧类型,因此没特别的声明的时序弧就是默认为组合时序弧。
组合时序弧根据单元功能逻辑的不同,分为以下3种不同逻辑状态下的延时弧:同向时序弧、反向时序弧和不定态时序弧。
(1)同向时序弧
同向时序弧表示输入端信号变化方向与输出端信号变化方向一致的时序弧,如下图所示。
同向时序弧在时序信息文件中通过定义相关PIN和相关逻辑状态信息(如:positive——unate)进行声明。
related_pin : "A";
timing_sense : positive_unate;
(2)反向时序弧
反向时序弧表示输入端信号变化方向与输出端信号变化方向相反的时序弧,如下图所示。
反向时序弧在时序信息文件中通过定义相关PIN和相关逻辑状态信息(如:negative_unate)进行声明。
related_pin : "A";
timing_sense : negative_unate;
(3)不定态时序弧
不定态时序弧表示输入信号变化方向与输出端信号变化方向无固定确定关系的时序弧,如下图所示。
不定态时序弧在时序信息文件中 通过定义相关PIN和相关逻辑状态信息(如:non_unate)进行声明。
related_pin :"A";
timing_sense :non_unate;
需要强调的是,其他类型的时序弧如果也存在不同的逻辑状态,也需要通过使用以上3种逻辑状态信息进行声明。
2.边沿时序弧
边沿时序弧用来表示时序单元从时钟信号有效沿到输出信号有效的延时信息。
如下图所示,从时序单元时钟高电平有效沿开始到时序单元Q输出端信号有效的延时即通过边沿时序弧表示。
边沿时序弧根据时钟信号有效沿的不同,分为上升有效沿和下降有效沿两种,在时序信息文件中通过时序弧类型信息falling_edge和rising_edge进行声明。
timing_type : falling_edge;
timing_type : rising_edge;
3.复位清零时序弧
复位清零时序弧用来表示具有复位清零端口的时序单元从复位清零信号有效沿到输出信号有效沿的延时信息。
如下图所示,从时序单元清零高电平有效沿开始到时序单元Q输出信号有效的延时即为复位清零时序弧表示。
复位清零时序弧根据复位和清零信号有效沿的不同,分为上升有效沿和下降有效沿两种,在时序信息文件中分别通过时序弧类型信息preset和clear进行声明。
timing_type : preset;
timing_type : clear;
4.三态使能时序弧
三态使能时序弧用来表示三态逻辑单元从使能信号有效到输出的延时信息。
如下图所示,从三态逻辑单元使能信号有效到三态输出的延时即通过三态使能时序弧表示。
三态使能时序弧中根据使能信号位有效与无效的不同,在时序信息文件中分别通过状态信息three_state_enable和three_state_disable进行声明。
timing_type : three_state_enable;
timing_type : three_state_disable;
约束时序弧
约束时序弧包括建立时序弧、保持时序弧、恢复时序弧、移除时序弧和脉宽时序弧等。
1.建立时序弧
建立时序弧用来表示时序单元获得正确数据信号所需要的约束信息,即在时钟沿有效前数据输入信号保持有效的时间信息。
如下图所示,在时序单元时钟高电平有效沿之前,信号必须已经有效的时间信息即通过建立时序弧表示。
建立时序弧根据时钟信号有效沿的不同,分为上升沿有效和下降沿有效两种,在时序信息文件中分别通过时序弧类型信息hold_rising和hold_falling进行声明。
timing_type : hold_rising;
timing_type : hold_falling;
2.保持时序弧
保持时序弧也是用来表示时序单元获得正确信号所需要的约束信息,即在时钟沿有效后数据输入信号继续维持有效的时间信息。
如下图所示,在时序单元时钟高电平有效沿之后,数据信号必须继续维持有效的时间信息通过保持时序弧表示。
保持时序弧根据时钟信号有效沿的不同,分为上升沿有效和下降沿有效两种,在时序信息文件中分别通过时序弧类型信息hold_rising和hold_falling进行声明。
timing_type : hold_rising;
timing_type : hold_falling;
3.恢复时序弧
恢复时序弧用来表示具有复位清零端口的时序单元成功使能所需要的约束信息,即在时钟沿有效前使能信号保持有效的时间信息。
如下图所示,在时序单元时钟高电平有效沿之前,清零信号必须提前有效的时间信息即通过恢复时序弧表示。
恢复时序弧根据时钟信号有效沿的不同,分为上升沿有效和下降沿有效两种,所以在时序信息文件中分别通过时序弧类型信息recovery_rising和recovery_falling进行声明。
timing_type : recovery_rising;
timing_type : recovery_falling;
4.移除时序弧
移除时序弧也是用来表示具有复位清零信号端口在时序单元成功使能所需要的约束信息,即在时钟沿有效后使能信号维持有效的时间信息。
如下图所示,在时序单元时钟高电平有效沿之后,清零信号必须继续维持有效的时间信息通过移除时序弧表示
移除时序弧根据时钟信号有效沿的不同,分为上升沿有效和下降沿有效两种,所以在时序信息文件中分别通过时序弧信息removal_rising和removal_falling进行声明。
timing_type : removal_rising;
timing_type : removal_falling;
5.脉宽时序弧
脉宽时序弧也是用来表示时序单元获得正确信号所需要的约束信息,即时钟信号同一状态下维持有效的最小总时间信息,如下图所示。
脉宽时序弧根据信号有效状态的不同,分为高电平有效和低电平有效两种,在时序信息文件中通过时序弧类型信息min_pulse_width进行声明。
timing_type : min_pulse_width