查看: 5316|回复: 3

Xilinx与Altera FPGA比较系列之三 时序分析(1)

[复制链接]

该用户从未签到

发表于 2008-4-25 15:16:42 | 显示全部楼层 |阅读模式
分享到:
FPGA时序分析实用指南

1.       基本时序分析
a)         时钟周期
时钟周期分析是最简单的一个, 也是最容易理解的一个分析, 硬件对应的基本道理是寄存器输出延迟 + 逻辑操作延时 + 连线延迟 + 建立时间 必须小于时钟周期, 上面的式子即定义了最短的时钟周期, 也即信号的最高工作频率. 在一些实际情况下, 上面的式子会有一些变化, 比如考虑时钟的抖动, 不同信号状态下传输的延迟不一样, . 一般情况下, 分析最坏情况即可. 一般情况下, 时钟周期都是作为全局约束添加的. FPGA工作当中, 只需要加一个简单的时钟周期约束即可. 在实际项目当中, 可能会遇到有多个相关时钟, Quartus II, 可以设置时钟之间的相对关系, 然后只需要设置基本的时钟约束即可. 可以在 Assignments à Settings à Timing Analysis Settings à Classical timing analyzer à Individual clock中设置. Quartus比较熟悉的也可以通过.qsf文件设置, 具体语法可以参考原有的设置, 一般情况下, 只要稍作修改就可以了. 直接编辑.qsf文件的好处是对于添加多个类似的约束比较快. ISE, 可以使用 User constraints à create timing constraints, 通过图形界面设置, 也可以直接编辑.ucf文件实现. 同样, 具体语法可以参考现成的文件.
b)         输入setup
输入数据的setup要求是初学者经常搞糊涂的一个约束. 其实QuartusISE里边对输入setup的定义都非常清晰, 也即, 从外部来看, 只要满足时钟和数据一定的关系, FPGA内部可以保证不会出现亚稳态现象(即采在数据的沿上). 下面这幅图给出了Tsu的定义.
 

  Quartus, 这个参数是Tsu, 其准确定义如下: The length of time for which data that feeds a register via its data or enable input(s) must be present at an input pin before the clock signal that clocks the register is asserted at the clock pin. 具体计算公式如下: tSU =  +  - . 确切的说, 这个定义应该是从外部看到的FPGA的时序要求. 比如Tsu 0.5ns, 那么只要数据在0.5ns之前建立, 数据送入FPGA应该不会出现问题. Tsu可以是全局约束, 也可以是局部约束. 全局约束可以通过Assignments à Settings à Timing Analysis Settings à Classical timing analyzer中的Tsu来设置, 局部约束可以通过Assignment Editor来添加.
  ISE, 叫做Offset In Before或者Pad to setup, 准确定义如下: The minimum time for input signals to be stable before they can be sampled correctly on the next active clock edge. 具体计算公式为: Slack = Requirement - (Data Path - Clock Path + uncertainty)
举个例子来说, 如果时序报告给出数值为4.468ns, 那么这意味着数据必须在时钟沿之前4.468ns建立, 换而言之, 只要外部送入数据在4.468ns之前建立, FPGA内部采用不会出问题. 具体的计算方法如同Altera. Offset in Before可以是全局约束, 也可以局部约束, Constraint Editor可以设置.
  在实际使用过程中, 通常大部分情况下, 数据和时钟都是每个周期有效. 因此, 数据到底在哪个时钟周期被寄存器捕获其实并不重要, 关键是所有的相关数据(比如一个总线的数据[7:0])必须保证在一个时钟周期内采样. 因此, 如何避开会造成亚稳态以及如何使得相关的数据的Tsu尽量保持一致, 是解决数据输入FPGA的时序问题的关键. 比如, 假定输入FPGA的数据在时钟沿的1ns处发生变化, 那么Tsu应当避开这个1ns附近这个区域. 只要按照上述原则操作, 时序裕量都会是够的. 在一些特殊情况下, 比如有使能信号传递, 或者是数据的时钟周期必须严格对其, 或者是时钟抖动特别大, 则需要更加仔细的考虑时序约束.
c)         Tco
TcoClock to output的延时. 道理如同Tsu, 只不过是换个角度看问题, 即作为驱动源来看待的问题. 也是从外部观察的. 下面这幅图给出了Tco的定义
 
  Quartus, 这个参数是Tco, 其准确定义如下: The maximum time required to obtain a valid output at an output pin that is fed by a register after a clock signal transition on an input pin that clocks the register. 意思是相对于输入时钟管脚而言, 从寄存器输出的数据(到达pin)最长多长时间可以稳定. 具体的计算公式如下:
tCO =  +  + . Tco可以是局部约束, 也可以是全局约束. 具体设置方法和Tsu类似.
  ISE, 这个参数是Offset out after或者称为Clock to Pad, 其准确定义如下: The clock-to-output, or OFFSET OUT, delay of the FPGA is the total delay encountered from the time a clock edge arrives at the input pin of the device to the time data becomes valid at the output pin of the device. 具体计算公式为Slack = Requirement – (Clock Arrival + Clock Path + Data Path + Clock Uncertainty). Offset Out After可以为全局约束或者是局部约束, constraint editor工具或者直接编辑UCF文件均可设置. 下面的一个报告给出了一个示例:
OFFSET = OUT 4 ns AFTER COMP "ClkIn";
Largest slack: 0.667 ns; Smallest slack: 0.667 ns; Relative Skew: 0.0 ns;
+-----------------------------------------------+-------------+-------------+
|PAD                                            |    Slack    |Relative Skew|
+-----------------------------------------------+-------------+-------------+
|DataOut                                     |        0.667|        0.0 |
+-----------------------------------------------+-------------+-------------+ 即要求的Tco4ns, 实际的Tco3.333ns, 寄存器输出的最大延迟不超过3.33ns.
         在实际应用中, 还需考虑其他的一些因素, 比如时钟布线的策略, 比如星形结构, Daisy Chain结构等等. 不同的策略分析的方法有所差别, 具体的分析方法将在下篇有关FPGA芯片间通信(或着板间通信)的时序分析介绍.
回复

使用道具 举报

该用户从未签到

发表于 2008-6-26 14:49:45 | 显示全部楼层

RE:Xilinx与Altera FPGA比较系列之三 时序分析(1)

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-1-30 15:58:44 | 显示全部楼层

RE:Xilinx与Altera FPGA比较系列之三 时序分析(1)

反对
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-2-11 12:58:34 | 显示全部楼层

RE:Xilinx与Altera FPGA比较系列之三 时序分析(1)

thanks,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-15 10:00 , Processed in 0.139192 second(s), 21 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.