DC静态时序分析之时钟篇
博主微信:flm13724054952,不懂的有疑惑的也可以加微信咨询,欢迎大家前来投稿,谢谢!

引言介绍
在芯片设计或者FPGA设计里面,根据有无时钟,将电路设计分为时序逻辑电路设计跟组合逻辑电路设计两部分。对设计的电路进行时序分析来说,时钟是不可或缺的。本文主要介绍关于在静态时序分析中时钟的基础知识跟常用SDC指令。

基础知识
在介绍时钟的详细指令前,先介绍在静态时序分析中关于时钟的一些基础知识跟概念,例如clock tree(时钟树),clock jitter(时钟抖动),clock latency(时钟延迟),clock skew(时钟偏斜),clock uncertainty(时钟不确定),clock transition(时钟转化),clock gating(时钟门控),clock fanout(时钟扇出)。

clock tree(时钟树)
clock tree时钟树是指从时钟源source出发,经过布局布线通过各种buffer到达不同时序模块(时序器件)而形成类似一种树的网络结构就叫做时钟树。
作用:通常可以通过对时钟的布局布线来达到减少时钟对时序模块的skew影响,使时序更加收敛;也可以通过与clock gating结合,控制模块的打开关闭,起到节省电路功耗的作用。

clock latency(时钟延迟)
clock latency时钟延迟指的是在时钟源出发到某个时钟器件触发端的延迟,时钟源可以为芯片外部晶振或者芯片内部的PLL锁相环。例如下图所示这里的clock latency为单独指clka或者clkb。

clock jitter(时钟抖动)
clock jitter时钟抖动是指时钟在周期上存在频率的不确定性,叫做时钟抖动; 通常造成时钟抖动是因为时钟源晶振本身的稳定性,又或者工作环境的温度,电压对其造成了影响。
影响:通常clock jitter跟clock skew是影响时钟信号稳定性的主要因素,对电路的时序分析也存在影响。

clock skew(时钟偏斜)
clock skew时钟偏斜指的是从时钟源出发到不同时序器件之间的延迟。例如下图所示,clock latency单指的是clka或者clkb,而clock skew指的是时钟经过不同buffer跟走线到达不同时序器件rega跟clkb的延迟,这里的clock skew指的是clk到达寄存器触发端的clka与clkb的沿的相位差。
影响:skew 通常是时钟相位上的不确定,造成 skew 的原因很多。由于时钟源到达不同寄存器所经历路径的驱动和负载的不同,时钟边沿的位置有所差异,因此就带来了skew。

clock uncertainty(时钟不确定)
clock uncertainty时钟不确定性通常指的是时钟在时序器件引脚的不确定性,可以直接理解为clock skew跟clock jitter的和。
影响:通常来说clock uncertainty越小,时钟的建立时间余量就越大。约容易满足时序路径上的建立时间,一般来说uncertainty一般为时钟周期的10%到30%。
一般可以设置set_clock_uncertainty 10%T(30%T)…

clock transition(时钟转化)
clock transition通常指的是clock 信号的 slew 时间。分为上升沿时间和下降沿时间。

clock gating(时钟门)
clock gating时钟门指的是,从时钟源到模块时钟的时钟树枝里“与”各模块的控制使能信号,通过使能信号来控制各模块的时钟是否打开。从而达到将一些不需要一直工作的模块停掉,达到节省电路功耗的目的。

clock fanout(时钟扇出)
clcok fanout时钟扇出指的是时钟源通过各级buff到达各时序模块的个数。
常用指令set_max_fanout 20 [get_clock clk] ##这里20指的是你电路设计扇出到了多少时序器件。

时钟约束
生成主时钟
create_clock -period 40 -waveform [0 20] -name clk [get_ports clk]
上述指令是生成周期为40ns频率为25MHZ的时钟clk;生成时钟指令的各参数介绍如下图所示:

如果生成多个主时钟时的相位是不一致异步的,那么就要用set_clock_groups来对不同主时钟之间的相位约束;
例如下图所示:当时钟wbClk跟bftClk两个主时钟的相位是异步的;应当这样子来进行约束:
create_clock -period 50 wbClk [get_ports wbClk]
create_clock -period 20 bftClk [get_ports bftClk]
set_clock_groups -asynchronous -group wbClk -group bftClk
当如果两个主时钟wbClk跟bftClk的相位是一致的,即可以不用set_clock_groups来进行约束。

生成同源时钟
正如上面介绍所说create_clock是生成主时钟的(顶层的),工程师也可以通过一种方式来生成自定义时钟给模块电路,好处就是可以使主时钟跟自定义时钟同源同相而避免了上面所说的存在时钟的skew的影响。如下所示apcnt_top为顶层,apcnt_clk为子模块。clkin到顶层跟clkin到子模块,存在skew的延迟。而通过create_generate_clock可以使顶层跟子模块同源同相。减少skew的影响。
module apcnt_top
…
apcnt_clk
u_apcnt_clk
();
…
endmdoule
module apcnt_clk(clkin ,clk_a);
…
always@(posedge clkin or negedge nrst)
begin
if(!nrst)
clk_a <= 0;
else
clk_a <= ~clk_a;
end
always@(posedge clk_a)
…
endmodule
具体约束指令如下所示:
create_clock -period 50 -name clk_in [get_ports clkin]
create_generate_clock -divide_by 1 -source clkin -name clk_in [get_pins u_apcnt_clk\clkin]
又或者
create_clock -period 50 -name clk_in [get_ports clkin]
create_generate_clock -multiple_by 1 -source clkin -name clk_in [get_pins u_apcnt_clk\clkin]

生成虚拟时钟
一般来说只有在创建输入输出约束的时候才会创建虚拟时钟。与主时钟不同的就是,虚拟时钟是自己内部电路设计产生的捕获时钟,所以没有对应的物理引脚。例如下面代码所示,clkin为有物理页脚的输入主时钟,而clk_a只是我们内部电路设计的捕获虚拟时钟,没有对应的port。
always@(posedge clkin or negedge nrst)
begin
if(!nrst)
clk_a <= 0;
else
clk_a <= ~clk_a;
end
always@(posedge clk_a)
…
也就是来说,对这类虚拟时钟在捕获数据时,应当考虑对他的约束,具体约束指令如下所示:
create_clock -period 10 -name clkin [get_ports clk_in]
create_clock -period 20 -name clk_a
set_input_delay 4 -clock clk_a [get_ports din]

————————————————
版权声明:本文为CSDN博主「凌云望远」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39015789/article/details/103315530

DC静态时序分析之时钟篇的更多相关文章

  1. TimeQuest 静态时序分析 基本概论

    静态时序分析 基本概念  [转载] 1.   背景 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告. 进行静态时序分析,主要目的就是为了提高 ...

  2. 静态时序分析(static timing analysis)

    静态时序分析(static timing analysis,STA)会检测所有可能的路径来查找设计中是否存在时序违规(timing violation).但STA只会去分析合适的时序,而不去管逻辑操作 ...

  3. FPGA STA(静态时序分析)

    1 FPGA设计过程中所遇到的路径有输入到触发器,触发器到触发器,触发器到输出,例如以下图所看到的: 这些路径与输入延时输出延时,建立和保持时序有关. 2. 应用背景 静态时序分析简称STA,它是一种 ...

  4. 静态时序分析基础STA

    静态时序分析SAT   1.   背景 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告. 进行静态时序分析,主要目的就是为了提高系统工作主频 ...

  5. FPGA基础知识8(FPGA静态时序分析)

    任何学FPGA的人都跑不掉的一个问题就是进行静态时序分析.静态时序分析的公式,老实说很晦涩,而且总能看到不同的版本,内容又不那么一致,为了彻底解决这个问题,我研究了一天,终于找到了一种很简单的解读办法 ...

  6. FPGA静态时序分析基础

    FPGA静态时序分析基础 基本概念 Skew: 时钟偏移 Skew表示时钟到达不同触发器的延时差别,Tskew = 时钟到达2号触发器的时刻 - 时钟到达1号触发器的时刻. Jitter: 时钟抖动 ...

  7. 静态时序分析SAT

    1.   背景 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告. 进行静态时序分析,主要目的就是为了提高系统工作主频以及增加系统的稳定性.对 ...

  8. 静态时序分析(static timing analysis) --- 时序路径

    时序分析工具会找到且分析设计中的所有路径.每一个路径有一个起点(startpoint)和一个终点(endpoint).起点是设计中数据被时钟沿载入的那个时间点,而终点则是数据通过了组合逻辑被另一个时间 ...

  9. 【转载】FPGA静态时序分析——IO口时序

    转自:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟约束 ...

  10. FPGA静态时序分析——IO口时序(Input Delay /output Delay)

    1.1  概述 在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛.因此,FPGA时序约束中IO口时序约束也是一个重点.只有约束正确 ...

随机推荐

  1. xss-labs靶场

    在线XSS-labs靶场:https://xssaq.com/yx/ 靶场搭建 靶场是直接使用docker搭建的 docker pull vulfocus/xss-labs 启动靶场 docker r ...

  2. 论文解读(CBL)《CNN-Based Broad Learning for Cross-Domain Emotion Classification》

    Note:[ wechat:Y466551 | 付费咨询,非诚勿扰 ] 论文信息 论文标题:CNN-Based Broad Learning for Cross-Domain Emotion Clas ...

  3. PIP升级+安装Django命令[WARNING: Retrying (Retry(total=4, connect=None...]

    升级: >pip install -U Django 安装: >pip install Django 如果发现超时错误内容:(WARNING: Retrying (Retry(total= ...

  4. ChatGPT如何生成可视化图表-示例中国近几年出生人口

    本教程收集于:AIGC从入门到精通教程汇总 ChatGPT本身不能直接生成可视化图表,但可以配合其他可视化工具或库 方法一:前端可视化开发库 Echarts(地址:Apache ECharts ) 方 ...

  5. 你能看到这个汉字么“  ” ?关于Unicode的私人使用区(PUA) 和浏览器端显示处理

    如果你现在使用的是chrome查看那么你是看不到我标题中的汉字的,显示为一个小方框,但是你使用edge查看的话,这个字就能正常的显示出来,不信你试试! 本故事源于我在做数据过程中遇到Unicode编码 ...

  6. [译]这几个CSS小技巧,你知道吗?

    前言 在网页设计和前端开发中,CSS属性是非常重要的一部分.掌握常用的CSS属性不仅可以使你的网页看起来更美观,还能提升用户体验,今天小编为大家介绍8个常见的CSS小技巧: 1.修改滚动条样式 下图是 ...

  7. crontab定时任务不执行的一些原因总结

    参考博文地址: https://www.jb51.net/article/154290.htm声明:本文章是在以上地址博文基础上进行整理学习,如有侵权,请联系博主删除,感谢知识共享,一起进步,加油鸭 ...

  8. 使用GPU搭建支持玛雅(Maya)和Adobe AI,DW,PS的职校云计算机房

    背景 学校为职业学校,计算机教室需要进行Maya.Adobe Illustrator.Adobe Dreamweaver.Adobe PhotoShop等软件的教学.每个教室为35用户.资源需求为4核 ...

  9. WPF中以MVVM方式,实现RTSP视频播放

    前言视频播放在上位机开发中经常会遇到,基本上是两种常见的解决方案 1.采用厂家提供的sdk和前端控件进行展示,常见的海康/大华都提供了相关sdk及文档 2.开启相机onvif协议,捅过rtsp视频流进 ...

  10. Docker CE

    3. 安装Docker CE Docker有两个分支版本:Docker CE和Docker EE,即社区版和企业版.本教程基于CentOS 7安装Docker CE. 执行如下命令,安装Docker的 ...