微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 时间约束更严格,为什么面积更小了呢?请教高人!

时间约束更严格,为什么面积更小了呢?请教高人!

时间:10-02 整理:3721RD 点击:

      本人最近在综合一个16位桶形移位器时,遇到一个问题,希望大家指点一下!
第一次将文件读入DC中时,我只加了一条约束set_max_area 0然后直接compile这是综合出的面积大约7000多,延时大约2.2左右。然后我移除这个文件重新读入,加了一条约束,set_max_delay  2 -from [all_inputs] -to [all_outputs],这样综合出的面积反而小了,成了6000多,足足小了1000多,延时也大大减小,1.3ns。
我突然又想到一个疑问,如果开始的延时约束默认值为0的话,那综合出来的延时应该尽量接近0才对啊,可是为什么第一次不加延时约束时综合出来的延时要大呢
  这让我百思不得其解,大家有遇到过同样的问题吗?希望指点下!
  我的代码很简单,16为输入a,16位输出b,四位控制信号sel用来选择移位的位数。就是用了一个大的case语句实现的。
  ?

没人遇到过吗?坐等高人!

很好理解啊,你约束条件给的越多,综合器当然就越给力了。
只用FPGA的瞎说说。

你是组合逻辑,没有时钟,DC会按0延迟综合。当你设为组合延迟为2时,事实上比以前的约束要松,所以面积小。

有道理,受教了。



        可是我还用两种算法实现了这种桶形移位器,也同样用上面的方法综合了,为什么后面两种方法面积增加了呢,延时也只是刚刚满足2ns的要求!,第二种延时2ns,第三种延时1.99ns!
     对了,综合的时候我注意到一个细节,就是对第一种方法(用一个case实现)综合的时候,compile之后,面积优化时先增加,然后才减小,当我加上延时要求后就没有这个先增加后减小的过程,就是一个一直减小的过程,这个情况到是可以用你说的默认时序要求是0来解释。
    谢谢!

好问题,学习了



    我只用过FPGA,也只知道基于LUT的时序约束,对你的问题我只能瞎猜,说得不好请别见怪。
    对于你第二、三种方法,设置约束后,面积增加的疑问,我猜测是你DC中单元库向case语句提供的可综合面积最小,而向非case结构提供的单元面积会较大造成的。
    另外,你第二,三种编码风格使用的是"if else”语句吗?同时想请教在ASIC设计中,你的前级输出端到该代码模块的input端,代码模块output端到你的后级输入端的延迟是用什么确定的,用PCB分析软件还是经验公式?



      我的第二种方法是用两个case 实现的,第三种方法使用四个if else 实现的。
      几个子module就组合成为一个大的module来综合,也就是说只需要在最顶层加约束,而最顶层的话,一般就是寄存器对外的,所以input delay 和output delay基本上是确定的。还有如果一个module比较大,我们一般也是对外直接是寄存器输出,所以这两个约束就确定了。这是我个人的理解。呵呵,其实我做的设计时钟频率一般不高,最高也就20多M,所以多加点输入延时和输出延时约束也不会有问题。



    我突然又想到一个疑问,如果开始默认值为0的话,那综合出来的延时应该尽量接近0才对啊,可是为什么第一次不加延时约束时综合出来的延时要大呢,我加的延时约束为2后,你说变宽松了,那它综合出来的延时也应该大了才对啊,可是正相反啊,变得小了很多!

我们设置时序时。在不考虑OCV时,请将input output delay先设置好,然后将driver load 设置好。 然后再将skew再设置好,此时再将面积设置为0。 这样确定好后,你给二个不同的时钟周期。就会知道。 面积换时间clock的思路了。
你的上二次设置。只是设置的clock, 对驱动能力没设置的话。DC会考虑采用不同的cell来实现的电路。这个也是dc的优化策略,其实在设置constrain时,pin的loading 跟驱动很重要。



    老兄回复中说“然后再将skew再设置好”中的skew通常是指时钟偏斜,而小编要约束的是模块的组合延迟。不知ttxz2009此处说的skew莫非就是指的组合延迟,抑或是DC中也用skew来称呼组合延迟。



    哈哈,在你第一篇帖子中就觉得这点很蹊跷!
    两点建议,
    1:你假设的"开始的延时约束默认值为0”是否成立,查实开始的默认延时到底为多少;
    2:面积约束和延时约束的优先性问题。当你要求DC按照同时满足“面积最小和延时最小”的策略去执行P&R时,可能DC会出现意想不到的效果。(我没用过DC,这点纯猜测)



     谢谢你!
     第一条我查实后跟你说,现在没法查。
     第二条DC中默认的是时序优先级最高,在满足时序的前提下,对面积进行最大程度的优化。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top