FPGA静态时序分析基础(一)

相信在看这篇文章的时候基本上已经对FPGA有了一个比较全面的了解了,那现在来谈一谈静态时序分析基础。

什么是静态时序分析?

在我们进行简单的FPGA设计的时候,都假设信号在FPGA内部的流动是0延时的,即当clk上升沿到来之后,信号直接从源寄存器到达目标寄存器。其实不然,信号在FPGA内部,以及FPGA与外部设备进行通信的时候都是有延时的,这种延迟包括走线延迟、门延时等等。但是这些延时是多少呢,如果走线过长或者经过的门特别多,那么势必会影响到下一级寄存器对信号的锁存,出现亚稳态,甚至会导致下一级寄存器采样到错误信号。因此我们势必要对这个系统进行时序分析。保证每一级寄存器都采样到正确的信号。
所以通俗的说,静态时序分析、约束就是采用相应的方法,使得寄存器等器件在时钟到来的时候能够正确的锁存信号值。
基本时序路径:
接下来看一下都有哪些基本的时序路径
1、reg2reg 寄存器与寄存器之间的时序路径
2、pin2reg 输入引脚到寄存器之间的时序路径
3、reg2pin 寄存器到输出引脚的时序路径
4、pin2pin 输入引脚到输出引脚的时序路径
这个分类也很好理解,就是根据信号两端的器件不同来分类的。
我们拿下面的图来解释说明一下上面的四种路径:
reg2reg
pin2reg
reg2pin
pin2pin

如何进行静态时序分析、约束

接下来我们介绍一下我们是如何进行时序分析、约束的。
首先我们要介绍一下什么是建立时间、保持时间:
**建立时间(Tsu):**建立时间是指在时钟上升沿到来之前舒徐必须保持稳定的时间。
**保持时间(Th):**保持时间是指时钟上升沿到来之后数据必须保持稳定的时间。
一个信号要想被目标寄存器锁存,那么就必须要在目标寄存器时钟上升沿的建立时间、保持时间之间保持稳定,这样才能保证目标寄存器能将到来的信号进行锁存。
下图展示了时钟沿与建立时间、保持时间之间的关系:

进行静态时序分析、约束就是在满足建立时间、保持时间的要求下,给定时钟信号的频率,对设计好的电路进行布局布线,EDA软件会自动进行优化布局布线,但是有时候他也不是那么智能的,需要我们手动取修改布线,或者修改源代码,使得设计满足时序要求。
以xilinx为例,他家的vivado软件对自己家的器件十分清楚,知道自己家器件布局布线之后两级寄存器之间时钟、数据传输的延时时间,所以只需要给出时钟周期就可以进行时序分析。所以未知的就是时钟周期,那么在我们没给定时钟周期的时候,布局布线之后会生成报告,提示此电路允许的最大时钟频率是多少。
此博客参考了《深入浅出玩转FPGA》,作者本人能力有限,如有不足之处,望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值