怎样把时钟可跑频率提高??谢谢。

Timing Summary:
---------------
Speed Grade: -4
   Minimum period: 34.092ns (Maximum Frequency: 29.332MHz)
   Minimum input arrival time before clock: 4.573ns
   Maximum output required time after clock: 5.195ns
   Maximum combinational path delay: 6.559ns
=========================================================================

以上是某工程综合后的报告;    最大频率显示为29.332M,明显已经不满足实际需要了。

怎样可以使这个“可跑最大频率”提高啊??

谢谢 。。。
我也来说两句 查看全部回复

最新回复

  • fei.ying (2008-10-04 15:11:56)

    这个问题,我也很想知道,如何才能将频率提高呢,最近也是很需要
  • savagezp (2008-10-04 16:10:37)

    还有,这个是综合后给出的“可跑最大频率”。。

    布局布线后,,,会不会更低啊??
  • shaweikang1984 (2008-10-04 17:17:20)

    无定解
  • savagezp (2008-10-05 11:41:30)

    啥叫无定解??

    提高“可跑最高频率”的方法:
    用时钟约束??  不会做。。。
  • ericflying (2008-10-05 12:20:18)

    系统时钟频率的极限是由关键路径(延时最长的路径)的建立时间(setup time)决定的。想要提高频率就要缩短关键路径的建立时间。
    缩短建立时间的的方法一般有:
    1、在关键路径中插入寄存器,使用流水线的处理方法。
    2、将导致关键路径延时大的信号从关键路径中剥离出来单独处理。
  • dongdong214 (2008-10-05 12:53:55)

    good answer
  • dongdong214 (2008-10-05 14:08:15)

    max frequence is decided by your critical path, you can ana
  • nongfuxu (2008-10-05 16:09:36)

    呵呵, 不知道LZ有没有对多路径周期,非关键(false path) 进行过约束.
    据我所知,提高时钟时钟频率首先得从添加时序约束开始, 其中之一是对要达到的工作频率作120%过约束,然后对多周期作约束,再对与时钟无关的像控制线那样的path进行松绑....
    如果经过上述努力后,Fmax还是相差许多,那就得考虑另选速度快的芯片了.
    若相差不多,可考虑用groupping将关键路径打包再来几次...

    [ 本帖最后由 nongfuxu 于 2008-10-5 16:13 编辑 ]
  • savagezp (2008-10-06 11:46:20)

    QUOTE:

    原帖由 ericflying 于 2008-10-5 12:20 发表
    系统时钟频率的极限是由关键路径(延时最长的路径)的建立时间(setup time)决定的。想要提高频率就要缩短关键路径的建立时间。
    缩短建立时间的的方法一般有:
    1、在关键路径中插入寄存器,使用流水线的处理方法。 ...
    感觉比较抽象,,,,,自己没做过,所以。。。

    嗯,,,先看看关于约束的文档先。。。


    谢谢!!
  • savagezp (2008-10-06 11:47:48)

    QUOTE:

    原帖由 nongfuxu 于 2008-10-5 16:09 发表
    呵呵, 不知道LZ有没有对多路径周期,非关键(false path) 进行过约束.
    据我所知,提高时钟时钟频率首先得从添加时序约束开始, 其中之一是对要达到的工作频率作120%过约束,然后对多周期作约束,再对与时钟无关的像控制线 ...
    谢谢,,,,我从没做过这些,

    约束就只做了管脚分配。。。。。

    实际当中,这些时钟约束管用么??   总感觉好抽象。。。

    你给了它约束,它自动就把频率提高了???
  • huhoo (2008-10-06 17:39:40)

    要想跑的快,个人总结如下,权当抛砖引玉:
    1.选好的器件,资源比较宽松;
    2.良好的代码风格,大家都提到的关键路径,实际上通常是代码写的不好,如果你用syplify pro分析,你通常会发现是一个大的组合逻辑,或者一个大的比较器,或者Latch等等导致的。
    3.在一个系统里,如果只用一个时钟就能实现所有的逻辑功能,就不要用两个时钟,这不太容易做到,但这样能避免很多异步问题。
  • nongfuxu (2008-10-06 18:16:57)

    回答 "你给了它约束,它自动就把频率提高了?"
       是的,关于速度主要弄明白限制FPGA速度的因素有哪些?  
      FPGA速度的因素:  
      1/ FPGA中固有的宏,嵌入块的速度,它是由所选器件所决定的, 这个你没有办法优化它,除了另选芯片...
      2/ 布局后布线route带来的延迟, 这是优化FPGA设计的主要目的之一.

      再明确一点,好的布局布线,可以大幅度减少route带来的延迟.
      要让软件减少route 延迟,只有增益约束,多布几次,找出最好的.
  • fei.ying (2008-10-07 20:10:15)

    这个问题还是没有弄清楚,我
    想问下,fpga上面的晶振的时钟频率很低,有方法将其调高么?
  • fei.ying (2008-10-07 20:11:10)

    板子上的晶振,同fpga所能跑的频率有关系么?
  • savagezp (2008-10-08 10:28:41)

    QUOTE:

    原帖由 nongfuxu 于 2008-10-6 18:16 发表
    回答 "你给了它约束,它自动就把频率提高了?"
       是的,关于速度主要弄明白限制FPGA速度的因素有哪些?  
      FPGA速度的因素:  
      1/ FPGA中固有的宏,嵌入块的速度,它是由所选器件所决定的, 这个你没有办法优化它,除 ...
    谢谢..
    学习了,学习了,

    得好好看看关于约束的文档了.....   要不贻笑大方了.....
  • savagezp (2008-10-08 10:30:58)

    QUOTE:

    原帖由 huhoo 于 2008-10-6 17:39 发表
    要想跑的快,个人总结如下,权当抛砖引玉:
    3.在一个系统里,如果只用一个时钟就能实现所有的逻辑功能,就不要用两个时钟,这不太容易做到,但这样能避免很多异步问题。
    俺的愚见,,,

    一个系统里,只能有一个主时钟吧.

    如果有两个时钟的话,岂不是乱套了,

    这两个时钟之间又是什么关系呢???
  • savagezp (2008-10-08 10:33:03)

    QUOTE:

    原帖由 fei.ying 于 2008-10-7 20:11 发表
    板子上的晶振,同fpga所能跑的频率有关系么?
    晶振只是一个源头吧 ,,,

    我们可以用分频,倍频,生成我们需要的其他时钟,但都是以晶振为基础的.

    是这样么?
  • huhoo (2008-10-08 10:45:20)

    QUOTE:

    原帖由 savagezp 于 2008-10-8 10:30 发表




    俺的愚见,,,

    一个系统里,只能有一个主时钟吧.

    如果有两个时钟的话,岂不是乱套了,

    这两个时钟之间又是什么关系呢???
    一个系统当然可以有多个时钟存在,比如异步FIFO的读写时钟就可以不同,再比如PCI接口的时钟和DDR controller 的时钟也是不同的。只是异步时钟域之间在传递控制信号时有可能会产生亚稳态等问题,这涉及到MTBF,但并不会乱套。关于亚稳态,那是另外一个经常讨论的主题。
  • qinxg (2008-10-08 11:18:58)

    1. 首先添加时钟约束. 如目标为50M的时钟, 可以约束为55M,留下一点剩余.
    2. 看看*.syr文件, (在文件的最后面)里面有时钟里延时最大路径的描述. 就是为什么最大时钟为29.332MHz. 对这个最大路径添加流水线,可以"明确"的提高最大时钟.
  • fei.ying (2008-10-08 15:17:10)

    明白了些,谢谢楼上的各位啦