在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5044|回复: 13

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

[复制链接]
发表于 2011-3-8 14:56:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 wangxuede220 于 2011-3-9 16:34 编辑

      本人最近在综合一个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语句实现的。
  ??????????????
 楼主| 发表于 2011-3-8 16:37:45 | 显示全部楼层
没人遇到过吗?坐等高人!
发表于 2011-3-8 16:45:49 | 显示全部楼层
很好理解啊,你约束条件给的越多,综合器当然就越给力了。
只用FPGA的瞎说说。
发表于 2011-3-8 18:35:35 | 显示全部楼层
你是组合逻辑,没有时钟,DC会按0延迟综合。当你设为组合延迟为2时,事实上比以前的约束要松,所以面积小。
发表于 2011-3-8 18:52:18 | 显示全部楼层
有道理,受教了。
 楼主| 发表于 2011-3-8 19:38:13 | 显示全部楼层
本帖最后由 wangxuede220 于 2011-3-9 08:47 编辑

回复 5# zhinvxing


        可是我还用两种算法实现了这种桶形移位器,也同样用上面的方法综合了,为什么后面两种方法面积增加了呢,延时也只是刚刚满足2ns的要求!!!!!,第二种延时2ns,第三种延时1.99ns!
     对了,综合的时候我注意到一个细节,就是对第一种方法(用一个case实现)综合的时候,compile之后,面积优化时先增加,然后才减小,当我加上延时要求后就没有这个先增加后减小的过程,就是一个一直减小的过程,这个情况到是可以用你说的默认时序要求是0来解释。
    谢谢!
发表于 2011-3-8 23:20:11 | 显示全部楼层
好问题,学习了
发表于 2011-3-9 10:44:53 | 显示全部楼层
回复 6# wangxuede220


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


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


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

本版积分规则

关闭

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

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-4 09:20 , Processed in 0.024922 second(s), 9 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表