丰涵网站建设,确定网站主题然后规划网站建设,WordPress街机,佛山优化网站方法目录1. CMOS逻辑门2. 波形3. 时钟3.1. 指定时钟create_clock时钟延迟set_clock_latency 时钟不确定度set_clock_uncertainty 跨时钟域set_false_path3.2. 衍生时钟3.3. 虚拟时钟4. 时序路径2.1. 输入路径2.2. 输出路径2.3. 点对点约束本文介绍在执行静态时序分析#xff08;St…
目录1. CMOS逻辑门2. 波形3. 时钟3.1. 指定时钟create_clock时钟延迟set_clock_latency 时钟不确定度set_clock_uncertainty 跨时钟域set_false_path3.2. 衍生时钟3.3. 虚拟时钟4. 时序路径2.1. 输入路径2.2. 输出路径2.3. 点对点约束本文介绍在执行静态时序分析Static Timing Analysis, STA前需要配置的环境其实就是作SDC约束 1. CMOS逻辑门
CMOS逻辑门使用NMOS和PMOS晶体管搭建而成。如下图给出了CMOS非门的示例。 什么是MOS晶体管MOS晶体管工作原理和VI特性详解 CMOS非门有两种稳定状态具体取决于输入的电平状态。
当输入A为低电平Vss或逻辑0时NMOS晶体管截止、PMOS晶体管导通输出Z电平被上拉至逻辑为1的Vdd。 当输入A为高电平Vdd或逻辑1时NMOS晶体管导通而PMOS晶体管截止输出Z电平被下拉至逻辑为0的Vss。 上述特性可以扩展到任何CMOS逻辑门。
在CMOS逻辑门中输出节点通过上拉结构由PMOS晶体管构成连接至Vdd并通过下拉结构由NMOS晶体管构成连接至Vss来构成输出的高电平和低电平。同时上拉和下拉结构是互补的如果上拉结构开启则下拉结构将关闭反之相反。以此保证输出电平只有高电平和低电平两种情况无一例外。
基于此可将各种CMOS逻辑门级联起来以实现更复杂的逻辑功能。
而这些CMOS逻辑门可以组合成各种基本逻辑块或称标准单元例如与或非门、异或门、触发器等等。这些标准单元是预先设计好的可供设计人员搭积木式的组合拼凑实现各种功能。
2. 波形
CMOS单元电平随时间变化构成了波形波形如下图所示 而在STA中则需要根据电平变化来判断上升沿、下降沿和电压转换速率。由于上图中实际波形存在的弧形我们用阈值来定义上升沿或下降沿的起始终止点。
例如
#下降沿的阈值点即下降沿的终止点和起始点
slew_lower_threshold_pct_fall30.0
slew_upper_threshold_pct_fall70.0#上升沿的阈值点即下降沿的起始点和终止点
slew_lower_threshold_pct_rise30.0
slew_upper_threshold_pct_rise70.0即从Vdd的70%-30%为下降沿Vdd的30%-70%为上升沿。 因此有转换时间的定义
● 过渡时间transition time 阈值电压的起始点到终止点所需的时间。压摆率Slew rate则 是过渡时间的倒数。
当然在实际仿真和分析中经常直接使用如下图的理想波形进行时序分析将电平转换时间近似成零。 3. 时钟
时钟是时序电路的驱动源
3.1. 指定时钟create_clock
● 时钟树 时序电路中从时钟源到各触发器CK端时钟路径构成的结构。
数字芯片中触发器CK端的时钟有可能是锁相环PLL锁定出的时钟也有可能是从外部直接输入的时钟例如SPI的SCK都可约束。
配置的SDC如下
# 名称: SYSCLK
# 周期: 20ns
# 占空比: 20ns内上升沿时刻为0ns下降沿时刻为5ns
# 端口: SCLKcreate_clock -name SYSCLK -period 20 -waveform {0 5} [get_ports SCLK]时钟延迟set_clock_latency
分为网络延迟和源延迟。
● 网络延迟network latency 表示芯片内部时钟定义到第一级触发器CK端的时钟延迟即input2reg。
● 源延迟source latency 表示芯片外部时钟源比如晶振时钟、数据随路时钟到时钟定义的时钟延迟如下图所示。 理论上这些时钟延迟都为0可以在STA时使用set_clock_latency 指令指定所有终点的时钟延迟
一般指定网络延迟即可SDC如下
# 时钟CLK_CONFIG的上升沿和下降沿时钟延迟均为0.8ns
set_clock_latency 0.8 [get_clocks CLK_CONFIG]# 时钟MAIN_CLK的上升沿时钟延迟为1.8ns
set_clock_latency 1.8 -rise [get_clocks MAIN_CLK]# 所有时钟定义的下降沿时钟延迟为2.1ns
set_clock_latency 2.1 -fall [all_clocks]# 时钟SYS_CLK的上升沿和下降沿源时钟延迟均为1.9ns
set_clock_latency 1.9 -source [get_clocks SYS_CLK]时钟不确定度set_clock_uncertainty
从PLL出来的时钟信号周期存在一定程度的抖动。
当然理想情况下抖动为0可以在STA时使用set_clock_uncertainty 指令设定一个时间窗口该窗口内任何时候都有可能产生时钟沿这样的时间窗口就可以表示抖动量。
如下图 ● 时钟偏斜clock skew 时钟信号从时钟源PLL到达不同终点的时间差。时钟延迟和时钟抖动导致了时钟偏斜。
跨时钟域set_false_path
● 时钟域clock domain: 同一个时钟驱动的一组触发器就为同一个时钟域。 ● 跨时钟域 即一个时钟域的触发器Q端到另一个时钟域的D端存在数据路径。
由于两个时钟关系不确定必然会导致信号传输不满足setup time和holdup time因此作STA时可以使用set_false_path设置伪路径不去分析这样的路径 跨时钟域行为会导致亚稳态问题产生所以一般需要通过同步器、异步FIFO等方式作同步。
3.2. 衍生时钟
3.3. 虚拟时钟
4. 时序路径
● 时序路径 信号从发起触发器Launch Flip-FlopD端起始到捕获触发器Capture Flip-FlopD端结束构成的路径 注意“发起”和“触发”不是绝对的一定是相对于某一条时序路径才能决定触发器到底是发起数据还是捕获数据 对于数字电路来说需要STA分析的时序路径包括
input2reg从电路输入端到第一级触发器D端组合逻辑如下图路径1reg2reg电路中发起触发器D端到捕获触发器D端时序逻辑如下图路径2reg2output电路中触发器D端到输出端组合逻辑如下图路径3input2output从电路输入端到电路输出端组合逻辑如下图路径4
时序检查就是针对以上几个时序路径的显然最具代表性的时序路径就是第2条触发器到触发器路径
● 最大/小时序路径 指整个电路中信号延迟最大/小的时序路径。
2.1. 输入路径
2.2. 输出路径
2.3. 点对点约束