全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > EDA/IC设计 >

错误使用派生时钟对逻辑时序的影响

时间:2012-04-27 11:36

人气:

作者:admin

导读:错误使用派生时钟对逻辑时序的影响- 信号由MCLK到N2DSP这条通道限定了时针的最高速度只能到67.47MHz。...

  项目代码编译后打印如下信息

  Info: Clock “CLK48M” has Internal fmax of 67.47 MHz between source register “GLUE_LGC:glue|MCLK” and destination register “img_lgc:img|N2DSP” (period= 14.822 ns)

  信号由MCLK到N2DSP这条通道限定了时针的最高速度只能到67.47MHz。

  查看相关代码中存在如下代码段:

  always @( posedge CLK48M )

  begin

  CLKDIV 《= CLKDIV + 1; //clock divider

  end

  always @(posedge CLKDIV[5])

  begin

  MCLKB3 《= MCLK_EXT;

  MCLKB2 《= MCLKB3;

  MCLKB 《= MCLKB2;

  MCLK 《= MCLKB | MCLKB2 | MCLKB3;

  End

  该代码段是对MCLK_EXT做一个简单的防抖处理,相当于使用CLK48M衍生的一个时钟CLKDIV[5]。

  MCLK在其它模块中又使用CLK48M系统时钟做了一次锁存,于是相当于在两个CLK48M时钟之间要完成CLKDIV[5]的转换,再用CLKDIV[5]的上升沿去触发MCLK的转换,再输出到目的寄存器。此过程占用时间较长,而CLKDIV[5]所耗的时间显然是多余的。

  修改代码后如下:

  always @( posedge CLK48M )

  begin

  CLKDIV 《= CLKDIV + 1; //clock divider

  if (CLKDIV == 6‘b100000)

  begin

  MCLKB3 《= MCLK_EXT;

  MCLKB2 《= MCLKB3;

  MCLKB 《= MCLKB2;

  MCLK 《= MCLKB | MCLKB2 | MCLKB3;

  end

  end

  两个从逻辑功能上看是一样的,但修改后因为只使用CLK48M时钟,逻辑都是以CLK48M为触发时钟,省去了一级触发器的延时,于是大大缩短了从源到目的寄存器的延时。提高了最高时钟速率。编译后打印CLK48M系统时钟最高频率信息如下:

  Info: Clock “CLK48M” has Internal fmax of 77.08 MHz between source register “img_lgc:img|DATABUF[13]” and destination register “img_lgc:img|CAM_D[6]” (period= 12.974 ns)

  可以看到CLK48M最高频率可以达到77.08M,这个频率是由“img_lgc:img|DATABUF[13]”到“img_lgc:img|CAM_D[6]”之间的路径决定的。后面再继续针对该网络做优化。

  这种使用衍生时钟的方法是很多人逻辑设计中存在的错误(因为对时序影响非常严重,所以这里称它为一个错误也不为过),因为比较有典型性,所以特意整理了一下,希望引起初级逻辑工程师的注意。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信