标题:
时序分析基础与时钟约束实例(1)
[打印本页]
作者:
wxg1988
时间:
2013-7-15 21:12
标题:
时序分析基础与时钟约束实例(1)
时序分析基础与时钟约束实例(
1
)
文中实例配套
SF-CY3
开发套件。更多内容请参考《
SF-CY3 FPGA
套件开发指南》。
何谓静态时序分析(
STA
,
Static Timing Analysis
)?
首先,设计者应该对
FPGA
内部的工作方式有一些认识。
FPGA
的内部结构其实就好比一块
PCB
板,
FPGA
的逻辑阵列就好比
PCB
板上的一些分立元器件。
PCB
通过导线将具有相关电气特性的信号相连接,
FPGA
也需要通过内部连线将相关的逻辑节点导通。
PCB
板上的信号通过任何一个元器件都会产生一定的延时,
FPGA
的信号通过逻辑门传输也会产生延时。
PCB
的信号走线有延时,
FPGA
的信号走线也有延时。这就带来了一系列问题,一个信号从
FPGA
的一端输入,经过一定的逻辑处理后从
FPGA
的另一端输出,这期间会产生多大的延时呢?有多个总线信号从
FPGA
的一端输入,这条总线的各个信号经过逻辑处理后从
FPGA
的另一端输出,这条总线的各个信号的延时一致吗?之所以关心这些问题,是因为过长的延时或者一条总线多个信号传输时间的不一致,不仅会影响
FPGA
本身的性能,而且也会给
FPGA
之外的电路或者系统带来诸多问题。
言归正传吧,之所以引进静态时序分析的理论也正是基于上述的一些思考。它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行分析。分析的最终结果当然是要求系统时序满足设计者提出的要求。
下面举一个最简单的例子来说明时序分析的基本概念。假设信号需要从输入到输出在
FPGA
内部经过一些逻辑延时和路径延时。系统要求这个信号在
FPGA
内部的延时不能超过
15ns
,而开发工具在执行过程中找到了如图所示的一些可能的布局布线方式。那么,怎样的布局布线能够达到系统的要求呢?仔细分析一番,发现所有路径的延时可能为
14ns
、
15ns
、
16ns
、
17ns
、
18ns
,有两条路径能够满足要求,那么最后的布局布线就会选择满足要求的两条路径之一。
静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,即有约束才会有分析。若设计者不添加时序约束,那么时序分析就无从谈起。特权同学常常碰见一些初学者在遇到问题时不问青红皂白就认为是时序问题,实际上只有在添加了时序约束后,系统的时序问题才有可能暴露出来。
下面我们再来看一个例子,我们假设有
4
个输入信号,经过
FPGA
内部一些逻辑处理后输出。
FPGA
内部的布线资源有快有慢之分,好比国道和高速公路。通过高速通道所需要的路径延时假设为
3ns-7ns
,但只有两条可用;而通过慢速通道的路径延时则
>10ns
。
默认情况下,离高速通道较近的
din_2
和
din_3
路径被布线到了高速通道上,当前的
4
个信号在
FPGA
内部的延时为:
din1 = 15ns, din2 = 4ns, din3 = 6ns, din4 = 13ns
。
但是,我们实际的系统需求是这样的:
din1 < 10ns, din2 < 10ns, din3 < 20ns, din4 < 20ns
。
按照前面给出的
4
个输入信号的默认布局布线情况来看,
din1
是无法满足时序要求的。
如果我们按照实际的需求对
FPGA
进行如下的时序约束:
din1 < 10ns, din2 < 10ns, din3 < 20ns, din4 < 20ns
。
此时,
FPGA
将重新进行布局布线。
由于添加了时序约束,因此,
FPGA
的布局布线工具会根据这个实际需求,重新做布局布线后,我们看到,重新布局布线后的路径延时如下:
din1 = 7ns, din2 = 4ns, din3 = 18ns, din4 = 13ns
。
此时,
FPGA
内部的时序全部都能够满足要求。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0