首页 > 其他分享 >vivado 时序分析1 2

vivado 时序分析1 2

时间:2022-09-03 08:33:09浏览次数:73  
标签:分析 时序 vivado 延时 寄存器 我们 时钟

对于FPGA的工具来讲,未知的是你设置的时钟频率

寄存器与寄存器之间的时序分析占整个设计里边的60%或以上    还有一部分是I/O部分的时序分析

知道信号是如何传递的,分析又有何意义

 

 

理想  时钟和数据同时到达,则保持时间为0,沿打沿现象。建立时间为整个时钟周期,保持时间出现违例。比如说在modulsim里仿真就是这种现象。但在实际电路里是带有延迟的

 

理想情况下 采样沿与数据起始沿对齐,即保持时间为最大值,在这种情况下我们认为delay最大,称为沿打沿现象,边沿跟边沿碰上了。建立时间违例。

 

 

 

我们希望是采集在数据稳定的位置,布线工具会为我们布线,理想状态下,采样沿正好对在数据的中心位置

建立时间过大,保持时间就过小。保持时间过大,建立时间就越小,是一对矛盾体。

 

分析寄存器与寄存器间的时序

时序分析的过程

 

 

以两级寄存器作为模型

芯片上有专用的时钟管脚, 到达reg1的延时脚tclk1  到reg2 tclk2 延时

全局时钟网络,希望到达寄存器的延时尽量保持一致,减小时钟的偏斜SKEW =TCLK2-TLCK1

TDATA表示数据传输路径的延时,也包含组合逻辑操作(加,减)有相关的门电路,实际上有物理性的延时,统称为tdata

数据延时和时钟延时之间的差值:

 

 

静态时序分析,不需要电路跑起来,通过电路的已知参数分析出时钟和数据的关系

动态时序分析,把所有的延时都加上进行仿真,通过波形上去测量出来我们的建立时间保持时间是否满足我们的时序要求。让电路模拟的跑起来

 

 分析时钟到达情况

 

 

 建立时间的门限:上升沿到了,在上升沿之前,数据需要稳定的最小时间  Tsu

我们一般把 launch沿是时刻0,latch沿是时刻一个时刻周期T_CYCLE

 

这两个时间谁先谁后到达称为建立时间的余量

 

 

再晚这么久时间来我们的时钟也可以采到数据

 

 

 

 

实例

 

 

 

 

 

这个模块是IDDR的IN 和ODDR,  就是有一路数据进来和一路数据出去,(输入输出)

我们把输入的数据,rx的数据累加再减一,就是一个组合逻辑的操作  然后tx_data1又做了一个累加,计算的操作赋值给了tx。这样中间就增加了两级寄存器。

做时序分析,观察这些寄存器之间的时序结果

分析的时候,时钟的周期 T_CYCLE非常重要,对于时序分析软件来说它是一个未知量,我们要通过时钟的约束来告诉时序分析软件我的时钟频率是多少

还有 约束文件,管脚绑定好。不然做这些约束没什么意义

添加完约束之后先生成我们的bit

 

相当于打开了我们布局布线完成的相关配置,打开之后就能在里边添加我们的时钟约束了     

VIVADO里的约束在综合和布局布线里边都可以添加

小工程,综合肯定没有问题,直接进入到布局布线里边

 

1.约束我们的时钟

 

creat clock:让我们时序分析的软件知道我们输入的时钟时钟频率是多少 ,如果输入时钟已经送入了PLL,就不需要再设置约束了,称为主时钟。在PLL设置的时候,就设置了它的时钟频率,会自动帮我们生成creat clock的约束

点加号+ 添加creat clock

 

 保存后更新,打开XDC文件,多了一条时钟约束

 

意思是生成一个creat clock 周期是8NS,名称是RX_CLK 波形是上升沿是0,下降沿是4,然后查找到管脚使用

要查看数据分析的结果需要重新生成bit文件

所以对于一个比较大的工程,就需要很多个小时,每改一次都要重新生成bit文件

 

 重新生成bit文件之后打开布局布线 更新。有一个timing的报告,会给我们一个总体的summy,总结

 

 

 点右键关闭窗口

 

 打印报告,很重要的一个

点开去看里面是怎样的

 

 时钟的ibuffer,我们所有管脚进来的信号都要进到ibuffer,增加其驱动能力,缓冲器

从ibuffer的 i到o延时是1.416  再从它的o到我们的rx的这个buffg,这个中间经过一个网络 net就是连线,两个cell之间的连线,增加了1.706

看这个buffer怎么连线

 

rx clock的ibuffer,从它的输出端连接到了   rx clock ibuffer G到ibufferg之间

 

 

走的延时是1.709

 

所有的时间加一起是4.628实际上就是我们的TCLK1

 

 TCO 0.348    +4.628=4.976

再后面到达Q端,再到ddr寄存器的D端    这个延时是5.634  数据到达时间

接着求数据要求时间

 

 

 

 

 

 

 

 建立时钟的悲观度:我们路径的延时有最小值最大值,分析路径的时候分析最悲观的状态,TCL1如果取小了,建立时间余量大了。宁愿TCLK1取最大值,余量小了,但是能保证在延时最差的情况下我们还能工作。如果给了小了,延时变大了就不对了。为什么TCLK1能考虑取最大值的原因

建立时钟的门限 -0.035

 

下边这个目的时钟取的是最小值

 

看公式 SETUP SLACK=TCYCLE+TCLK2-TSU-(TCLK1+TCO+TDATA) 

这边TCLK2是目的时钟,如果目的时钟取大值的话相当于给余量做增加了,我们就希望TCLK2是一个小值,所以我们取共同路径的最小值

 

原始时钟取最大值,目的时钟取最小值,在做计算的时候就会有结果的差异,所以要做一个结果的补偿

1.416+1.709+0.081=3.206

3.206-1.350-1.62-0.077=0.159

 

 系统算出来的补偿  0.159与0.224差不多。应该不是取我们这一路算的,应该是由我们路径上面的最大最小的悲观的差值来计算出来的

共同路径有最大延时和最小延时。最大延时减去最小延时就是我们悲观度的补偿

 

 

时钟的不稳定度,芯片的一个系统参数,不是我们计算出来的

 

标签:分析,时序,vivado,延时,寄存器,我们,时钟
From: https://www.cnblogs.com/lht-learning/p/16651902.html

相关文章

  • 开学考试分析总结
     今天的开学考试使我明白了,我要在假期中更加努力学习,不止要学习课本上的知识,更要学会实际的编程操作,不要局限课本,实际操作才能让我们的编程能力快速提升,要记牢知识点。对......
  • 二、 Axios入门——Axios源码分析
    一、axios与Axios的关系从语法上来说:axios不是Axios的实例从功能上来说:axios是Axios的实例axios是Axios.prototype.request函数bind()返回的函......
  • 宇航员的在太空中的受力分析
    参考:https://www.zhihu.com/question/273919764https://www.bilibili.com/read/cv7899711/重力是万有引力的一个分力,万有引力的另一个分力提供做圆周运动的向心力。我......
  • PIE SDK矢量相交分析
    1.算法功能简介矢量相交分析功能2.算法功能实现说明2.1实现步骤第一步算法参数设置第二步算法执行第三步结果显示2.2算法参数算法名......
  • MySQL查询分析与优化
    一、关于EXPLAIN关键字段介绍:1.id代表sql中查询语句的序列号,序列号越大则执行的优先级越高,序号一样的依次执行。id为null则最后执行。2.select_type查询类型,表示当前被......
  • pytest系列——pluggy插件源码解读(五)hook钩子函数调用执行过程分析
    经过pluggy源码解读系列1-4的分析,已经完成插件定义、spec定义,插件注册等环节,下面就到了调用插件执行了,即hook钩子函数是如何被调用执行的,下面还是先把pluggy使用的代码放下......
  • 大数据分析和应用
    2022年9月2日名词解释MapReduceMapReduce[1]是Google提出的一个软件架构,用于大规模数据集的并行运算。概念“Map(映射)”和“Reduce(归约)”,及他们的主要思想,都是从函数式编......
  • python数据分析-List(上)
    列表(list)作为python最基础也是最重要的数据类型之一,在python数据分析以及其他用途中有着重要的作用。 在此,将通过两篇文章来对List做一个相对系统的介绍,希望下述内容能......
  • 拼多多的电子商务盈利模式分析
    拼多多是一家基于 C2B 拼团营销方式主营团购的电商平台,其盈利模式由利润源、利润点、利润杠杆、利润通道和利润屏障五个要素组成的。通过锁定目标客户、关注客户价值、举......
  • Singpass App Google Play 商店情绪分析(第 1 部分)
    SingpassAppGooglePlay商店情绪分析(第1部分)我爱新通!(我不是这么说,因为我的工作是推动SingpassAPI的采用,哈哈,或者好吧,部分原因是)自从担任这个角色以来,我学会了更......