我是靠谱客的博主 秀丽心锁,最近开发中收集的这篇文章主要介绍数字集成电路静态时序分析基础(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、静态时序分析的概述


时序弧

一条的完整的时序路径信息是由连线的延时加上单元的延时构成一个时序弧。


建立时间:时钟上升沿之前数据要保持稳定不变的时间

保持时间:就是时钟上升沿之后依然有一段时间数据保持不变。如果在保持时间之内变化,触发器也不能得到稳定的数据。保持用来计算最小的延迟。



set_false_path -from [get_clocks USBCLK] -to [get_clocks MEMCLK]

静态时序分析更多的是指定的操作环境。PVT(Process、Voltage、Temperature,工艺、电压和温度)。
一般在最慢的情况下检查setup,在最快的条件下检查hold。
通常高温、低电压确保延迟最差。即检查setup

二、标准单元库

1、时序库的概述

2、非线性的延迟模型

4、时序的模型


5、线延迟

三、静态时序分析环境的配置

静态时序分析的环境是指定一个正确的约束,精确,才能指导静态时序分析对整个电路做一个全面的比较严谨的检查,最终才能确定最终的建立时间和保持时间真正的满足需求。

包括:时钟的建立,IO的约束,关于时序路径的一些特殊约束。

STA主要针对的是同步电路。

2、指定时钟的约束

creat_clock -name SYSCLK -period 20 -waveform {0 5} [get_ports SCLK]

creat_clock -period 5 [get_ports CLK]

crat_clock -name BDYCLK -period 15 -wave {5 12} [get_ports GBLCLK]

时钟还有其他的误差,时钟偏斜,jitter等,可以通过clock_uncertainty来对这些进行一个估计


set_clock_uncertainty -setup 0.2 [get_clocks CLK_CONFIG]
set_clock_uncertainty -hold 0.05 [get_clocks CLK_CONFIG ]

set_clock_uncertainty -from VIRTUAL_SYS_CLK -to SYS_CLK -hold 0.05
set_clock_uncertainty -from VIRTUAL_SYS_CLK -to SYS_CLK -setup 0.3
set_clock_uncertainty -from SYS_CLK -to CFG_CLK -hold 0.05
set_clock_uncertainty -from SYS_CLK -to CFG_CLK -setup 0.1 


clock latency

set_clock_latency 0.8 [get_clocks CLK_CONFIG]
set_clock_latency 1.9 -source[get_clocks SYS_CLK]
set_clock_latency 0.851 -source -min [get_clocks CFG_CLK]
set_clock_latency 1.322 -source -max [get_clocks CFG_CLK]

时钟的latency的分析根据时钟树的节点。

生成时钟

creat_clock -name CLKP 10 [get_pins UPLL0/CLKOUT]
#creat a master clock with name CLKP of period 10ns
#with 50% duty cycle at the CLKOUT pin of the PLL
creat_generate_clcok -name CLKPDIV2 -source UPLL0/CLKOUT -divied_by 2 [get_pins  UFF0/Q] 

约束输入输出路径

set_input_delay -clock CLKA -max 1.5 [get_ports INP1]


creat_clock -period 15 -waveform {5 12} [get_ports CLKP]
set_input_delay -clock CLKP -max 6.7 [get_ports INPA]
set_input_delay -clock CLKP -min 3.0 [get_ports INPA]

set_output_delay -clock CLKQ -max 5.0 [get_ports OUTB]

creat_clock -period 100 -waveform {5 55} [get_ports MCLK]
set_input_delay 25 -max -clock MCLK [get_ports DATAIN]
set_input_delay 5 -min -clock MCLK [get_ports DATAIN]

set_output_delay 20 -max -clock MCLK [get_ports DATAOUT]
set_output_delay -5 -min -clock MCLK [get_ports DATAOUT]

路径组

指定端口的时候还会有一些额外属性。

对于output要指定以下属性:




DRC(Design Rule Checks)

虚拟时钟

creat_clock -name VIRTUAL_CLK_SAD -period 10 -waveform {2 8}
creat_clock -name VIRTUAL_CLK_CFG -period 8 -waveform {0 4}
creat_clock -period 10 [get_ports CLK_CORE]
set_input_delay -clock VIRTUAL_CLK_SAD -max 2.7 [get_ports ROW_IN]
set_output_delay -clock VIRTUAL_CLK_CFG -max 4.5 [get_ports STATE_O]

Refining the Timing Analysis

set_case_analysis 0 TEST

set_case_analysis 0 [get_ports {testmode[3]}]
set_case_analysis 0 [get_ports {testmode[2]}]
set_case_analysis 0 [get_ports {testmode[1]}]
set_case_analysis 0 [get_ports {testmode[0]}]

(2)set_disable_timing说明这不是一条时序路径,

最后

以上就是秀丽心锁为你收集整理的数字集成电路静态时序分析基础(二)的全部内容,希望文章能够帮你解决数字集成电路静态时序分析基础(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部