分析引起较高时钟频率仿真失败的原因

来源: 作者:2017年01月04日 13:08
[导读] 通常如果你的设计在较低时钟频率时通过了仿真,但是在较高时钟频率时却失败了,你的第一个问题应该是你的设计在某个较高时钟频率时是否达到了时序约束的要求。
关键词:时钟频率脉冲

  通常如果你的设计在较低时钟频率时通过了仿真,但是在较高时钟频率时却失败了,你的第一个问题应该是你的设计在某个较高时钟频率时是否达到了时序约束的要求。

  然而这里我们将举这样一个例子,就是对于某个较高时钟频率你已经检查了静态时序分析(STA),而且时序约束也是正确的。

  这种情况是什么引起的较高时钟频率仿真失败呢?

  可能的原因就是仿真方式、设计本身或者testbench设置方式有问题。

  然而在较低时钟频率通过了仿真这个事实就排除了设计/testbench/仿真在设置上的问题。

  排除了上面两项,下一个可能就是脉冲拒绝(reject)或者脉冲错误。

  “脉冲拒绝(reject)”和“脉冲错误”是Verilog仿真中的概念。

  这些概念说的是脉冲的持续时间小于某个值(pulse_r)就不会通过某个电路元件。

  当然脉冲持续时间大于pulse_r,但是如果小于另一个值pulse_e尽管会通过,但是在仿真中显示的是“x”。

  这个持续时间是以通过某元器件延迟的百分比来表示的。

  比如通过某元件的延迟是1ns。

  0.5ns的脉冲表示为50%的持续时间。

  现在假设设计采用的频率是200MHz。

  对应的周期就是5ns。

  那么一半就是2.5ns。

时钟频率

  在仿真中时钟每隔2.5ns变化一次,也就是时钟脉冲的宽度是2.5ns。

  让我们假设内部时钟网络某一脉冲宽度是2.8ns(也就是大于2.5ns)。

  分析结果,pulse-duraTIon(脉冲持续时间)《100%。

  这个脉冲可能就会被“拒绝(rejected)”,也就是说尽管时钟信号能够到达某个具体网络的输入端,但是却不能从这个网络输出。

  因此尽管STA分析显示200MHz很合适,但是仿真却不能通过。

  设计其他模块将不能获得时钟脉冲。

  解决这个仿真问题的方法是在仿真设置中修改脉冲拒绝和错误(reject/error)限制。

  例如在ModelSim中我们可以设置:

  +transport_path_delays +transport_int_delays +pulse_r/0 +pulse_e/0

  后续操作还有

  1.将pulse-rejecTIon限制修改为0。(不会拒绝任何一个脉冲)

  2.将pulse-error限制修改为0。(脉冲宽度低于某个值时不会显示输出为“x”)

  同时要将interconnect延迟模式修改为transport,其实是修改了脉冲滤波选项。

  最后的问题是我们做这么多的修改就是为了能通过仿真测试吗?

  在真正的硅片中的实际情况是怎样的?

  在硅片中大部分内部互连线在每隔几皮秒后就会设置一个repeater(中继器)。

  因此几纳秒的脉冲会顺利通过(合适的延迟),这不会存在问题。

  具体出现问题的情形可能是这样的:

  1.频率增加(脉冲宽度更小了)

 

 

 

 

 

相关阅读

发表评论

elecfans网友

分享到:

用户评论(0

推荐阅读

每月人物

依托AI平台,涂鸦智能开启全屋智能2.0时代!

依托AI平台,涂鸦智能开启全屋智能2.0时代!
随着物联网技术的突飞猛进,生活中越来越多的家庭设备将会联上网络,变得“智慧”起来,智慧家庭的概念成了这几年媒体、企业、用户关注的焦点,而...

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网应用之门

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网
研华IoT嵌入式平台事业群总经理许杰弘表示,工业物联网 2009年就开始提出,至今缺乏临门一脚,现在是打开大门的时候了。研华WISE-PaaS物智联软件平台和...

每周排行

  • 型 号
  • 产品描述