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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3166|回复: 6

[讨论] dc输入输出加寄存器

[复制链接]
发表于 2016-1-28 14:00:50 | 显示全部楼层 |阅读模式

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

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

x
我平时使用dc综合时,会对要验证的模块包一层,输入输出加一级寄存器。这样从输入到第一级寄存器的延迟才能在dc中考虑到。dc中有没有选项自动对输入输出加一级寄存器呢?
发表于 2016-1-28 15:51:32 | 显示全部楼层
回复 1# luoyanghero


   不用这样吧,直接set_input_delay和set_output_delay就可以了。
 楼主| 发表于 2016-1-28 16:53:59 | 显示全部楼层
回复 2# harry_hust
这样他就可以给输入输出加寄存器了吗?
发表于 2016-1-28 17:01:50 | 显示全部楼层
回复 3# luoyanghero

   这样做就不用加寄存器了。
为什么要加寄存器呢?感觉是多余的。
 楼主| 发表于 2016-1-28 18:27:54 | 显示全部楼层
回复 4# harry_hustReport : timing


        -path full
        -delay max
        -input_pins
        -max_paths 100
        -transition_time
        -capacitance
Design : poly16tap_withss
Version: I-2013.12-SP5-6
Date   : Tue Jan 12 10:00:22 2016
****************************************


Operating Conditions: WCCOM   Library: tcbn40lpbwp12tm1pwc
Wire Load Model Mode: segmented


  Startpoint: i1_ShootSuppress/rc_i1/r1_x_reg[2]
              (rising edge-triggered flip-flop clocked by aclk)
  Endpoint: i1_ShootSuppress/rc_i1/r2_x_reg[31]
            (rising edge-triggered flip-flop clocked by aclk)
  Path Group: aclk
  Path Type: max
我们约定所有模块输出加一级寄存器,输入就不用再加了。


以上是我综合的一个模块,他的startpoint是从i1_ShootSuppress/rc_i1/r1_x_reg[2]这开始的,实际上在这个点之前我还有一些组合逻辑,这样我就不知道,从input到这个点是否时序违约。

下面是我对输入认为加一级寄存器的结果,这样就能测出上面的不足,那dc中有相应的选项吗?你说的set_input_delay 他只是设定输入的延迟,这也需要你认为计算
****************************************



Report : timing
        -path full
        -delay max
        -input_pins
        -max_paths 100
        -transition_time
        -capacitance
Design : poly16tap_withss_dc
Version: I-2013.12-SP5-6
Date   : Tue Jan 12 10:47:19 2016
****************************************

Operating Conditions: WCCOM   Library: tcbn40lpbwp12tm1pwc
Wire Load Model Mode: segmented

  Startpoint: Din1_r_reg[7]
              (rising edge-triggered flip-flop clocked by aclk)
  Endpoint: i1_poly16tap_withss/i1_ShootSuppress/r_w3_1_reg[10]
            (rising edge-triggered flip-flop clocked by aclk)
  Path Group: aclk
  Path Type: max



发表于 2016-1-29 11:12:04 | 显示全部楼层
本帖最后由 harry_hust 于 2016-1-29 11:27 编辑

回复 5# luoyanghero


   我觉得,在你的design外再包一层寄存器反倒不能反映input_io到第一级寄存器的timing.
你的想法是不是这样:

  exteral_reg--->{[input_io]--->[comb_logic]--->interal_reg(内部第一级寄存器)--->[xxx]--->[output_io]}

你的design应该是大括号包含范围。你现在无法确定[comb_logic]的timing,所以包了external_reg。但是这样做的话是默认上一级输出到你的input_io时序非常好,延迟非常小。

而实际情况可能会较大,导致其延时再加上[comb_logic]的延时接近或超过时钟周期,导致setup violate。设置input_delay和ouput_delay正是对你的设计中从input_io到interal_reg的路径加约束,使其能够满足更严苛的时序要求。
比如,你的时钟是4ns,你的comb_logic延迟3ns。如果你在外面额外包一层寄存器,那么综合的时候这些寄存器肯定会被map在input_io很近的地方,时序余量有1ns,timing能够MET。但这无法模拟有可能被map到比较远的地方,延迟超过1ns,timing无法MET。

set_input_delay为1ns,或者更严苛的2ns或者更多,即可在综合中自然暴露出这里的问题。这样你就可以针对这里做优化。这些delay数值也是你预估的上一级design输出到你的design的延时,一般可以看时钟周期和用于环境做预估,留得越大那么这里的时序余量就越大。
 楼主| 发表于 2016-1-30 22:03:00 | 显示全部楼层
回复 6# harry_hust

我觉得,在你的design外再包一层寄存器反倒不能反映input_io到第一级寄存器的timing.
你的想法是不是这样:

  exteral_reg--->{[input_io]--->[comb_logic]--->interal_reg(内部第一级寄存器)--->[xxx]--->[output_io]}

你的design应该是大括号包含范围。你现在无法确定[comb_logic]的timing,所以包了external_reg。但是这样做的话是默认上一级输出到你的input_io时序非常好,延迟非常小。

而实际情况可能会较大,导致其延时再加上[comb_logic]的延时接近或超过时钟周期,导致setup violate。设置input_delay和ouput_delay正是对你的设计中从input_io到interal_reg的路径加约束,使其能够满足更严苛的时序要求。
//对于一个ip,设计人员写了一个topA,里面嵌套了若干module1..i。
我们在ip设计初期是对modulei去进行dc综合,确保时序是否满足要求,按照你的说法,modulei都有一个input_delay(为了描述简单,先只说inputdelay),需要我们人为的约束一下。如果你现在是通过设置set_input_delay命令去约束modulei.
//整个ip设计完之后,我们对topA去dc综合,这个时候modulei在topA内部,不存在input_delay的说法。那你对modulei使用set_input_delay,貌似不合理
我现在的做法是:
对于moda:
input_moda-->comb_logic_moda-->interal_reg_moda--->[xxx]--->outreg_moda-->output_moda
moda dc时:
inputreg_moda-->input_moda-->comb_logic_moda-->interal_reg_moda--->[xxx]--->outreg_moda-->output_moda
topA dc时:
input_topa--->[comb_logic]--->inputreg_moda-->comb_logic_moda-->interal_reg_moda--->[xxx]--->outreg_moda-->comb_logic-->ouput_topa
如果你赞成我的做法,那怎样给moda快速的包一层并加上寄存器?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-29 05:22 , Processed in 0.033293 second(s), 10 queries , Gzip On, MemCached On.

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