当前位置:首页 > > FPGA算法工程师

前言

前面通过《Xilinx FPGA/Vivado开发教程》第一讲内容,简单介绍了Vivado设计套件,这为由ISE开发环境转向Vivado的开发者提供了一个参考。具体用哪种开发平台并不重要,用哪种硬件描述语言(HDL)也不是很重要。设计思想+技术手段+逻辑设计,足以应付大部分开发场景。

信号处理+高速接口,是FPGA开发中非常重要的两部分,包含的内容十分丰富,掌握其中的一个点,足以找到一份工作。若均擅长,是全能型人才,评高工和技术专家有望。

今天主要介绍FPGA开发中的具体细节:时序分析中的基本概念和术语。非常基础,但很重要。

Xilinx FPGA Vivado开发教程

02

第二讲


时序分析中的基本概念和术语


依然结合高亚军老师的PPT,进行梳理。


静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确的时序报告。


进行静态时序分析,主要目的就是为了提高系统工作主频以及增加系统的稳定性。对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。


在文末的参考文献中,为大家提供可参考的资料。



主要内容:launch edge,capture edge,timing path,data arrival time,data required time,setup slack和hold slack。


首先来看,launch edge,capture edge。



在RTL设计中,数据在寄存器之间通过wire进行传递,在进行时序分析时,考虑两个寄存器之间的时钟约束。


launch edge:数据从源寄存器输出的起点时钟边沿,是静态时序分析的起点。


capture edge:数据在目的寄存器被捕获的时钟边沿。


四种时序路径:分别用红线、蓝线、黄线和绿线表示输入端到内部寄存器单元路径、寄存器之间路径、寄存器到输出端路径以及从输入端到输出端路径。



再看时序路径中,什么是源时钟路径、数据路径和目的时钟路径,如下图所示。



数据到达时间:

输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达寄存器时间(Tclka),寄存器输出延时(Tco)和数据传输延时(Tdata)。



时钟到达时间:

时钟从capture边沿到达锁存寄存器时钟输入端所消耗的时间为时钟到达时间。



数据需求时间-set up:

数据需求时间(Data Required Time):在时钟锁存的建立时间和保持时间之间数据必须稳定,从源时钟起点达到这种稳定状态需要的时间即为数据需求时间。


建立时间set up:数据被寄存器捕获所需的最短时间。



保持时间hold:数据被寄存器捕获后保持稳定状态所需的最短时间。



建立时间裕量set up slack:当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。



保持时间裕量hold slack:为保证满足保持时间要求,富余的时间长度。



将建立时间裕量和保持时间裕量,放在一张图中:



建立时间裕量和保持时间裕量计算公式:



当我们在综合实现后,需要检查时序报告,对裕量的要求需为正值。若为负值,则无法满足建立于保持时间要求,引起系统不稳定甚至不能正常工作。


裕量为负,表明不满足建立时间和保持时间的需求,需进行优化和进一步约束。



若建立时间裕量set up slack不满足要求,可采用的方法有:优化时序,缩短组合逻辑延时,插入寄存器,流水线处理。


若保持时间裕量 hold slack不满足要求,可采用的方法有:减小时钟周期,增大时钟频率,但会影响电路运行的setup时间。


根据计算公式,建立时间裕量和保持时间裕量是一对矛盾关系,顾此失彼,找到一个相对平衡点满足要求即可。


系统运行的时钟频率计算公式:

首先计算Ts,计算公式如下,从而得到fs=1/Ts


总结:

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭