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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[讨论] 最近做综合所遇到的问题总结及思考,希望大家多多参与

[复制链接]
发表于 2014-9-11 20:45:29 | 显示全部楼层 |阅读模式

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

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

x

最近做综合所遇到的问题总结及思考

设计中存在多个时钟输入,而几乎每个时钟都有经过分频传递给子模块做时钟,而且每个分频时钟都经过了门控,所以这是我遇到的时序最为复杂的最难处理的设计了。

现在就设计中所存在的各种case做逐一分析,以求能做到书本理论和实际设计向结合。


Case1

门控时钟

gate_clock.jpg

这即是一个门控时钟的例子

时钟CLK_IN经过多个控制信号的逻辑控制之后才输出给时序模块,首先声明,设计中绝大部分门控电路都是手工的,即

Assign clk_gated=clk&enable

Always @posedge clk_gated

         Begin

                   …

         End


综合的时候的处理是

Create_clock  –name –p [get_ports CLK_IN]

我的问题是,所有手工的门控时钟是不是不被DC理解为门控时钟呢,因为我的所有门控时钟都是手工的,没有条用ICG单元,也没有用一个时序器件DFF和一个与门结构,最后使用report_clock_gating命令却有下面的结果,被门控的寄存器为0,这是为啥呢?

                             Clock GatingSummary

         ------------------------------------------------------------

         |    Number of Clock gatingelements    |        0         |

         |                                      |                  |

         |    Number of Gatedregisters          |     0 (0.00%)    |

         |                                      |                  |

         |    Number of Ungatedregisters        |     531 (100.00%)

                                                                    |

         |                                       |                  |

         |    Total number ofregisters          |        531       |

         ------------------------------------------------------------


我在这里有一个疑问,书上介绍说可以采用

Set_clock_gating_style

Replace_clock_gates

命令来将手工门控时钟取代,在这里有没有这个取代的必要,如果取代的话,都有哪些门控时钟进行了取代操作,在命令中没有指定哪些时钟被取代,哪些不取代;如果没有取代的必要的化,那就是下面的问题,就是如何保证门控时钟的时序问题

我用了下面的命令

set_clock_gating_check -setup 0.3 -hold 0.3

这里留有的余量都是0.3,这个值到底够不够?

下面的warning可能跟这个check有关


Gated clock latch is not created for cell'MI96/X6187/C9'on pin 'B' in design 'DIGITAL_LOGIC1'. (TIM-141)

Information: Generated Clock (X1129_Q) hasnon_unate sense on master source pin. (TIM-193)

No controlling value could be found for theclock gating cell 'MI170/X865/U1' for the clock pin 'A'. (TIM-128)

Warning: A non-unate path in clock networkfor clock 'CLK_IN' from pin 'MI170/X865/U1/Z' is detected. (TIM-052)

所有这些warning是不是可以waived

 楼主| 发表于 2014-9-11 20:47:43 | 显示全部楼层
回复 1# 无乐不作
   Case2

Generated 时钟

generate_clock.jpg

这是一个典型的时钟分频的电路

我用的命令如下

create_generated_clock         -name X1129_Q      -divide_by 2      -source     [get_pins MI25/X1129/CP]       [get_pins MI25/X1129/Q]

create_generated_clock         -name X987_Q       -divide_by2   -source[get_pins MI25/X987/CP]    [get_pinsMI25/X987/Q]


分频时钟这块没什么大问题,就是想强调一点,-source最好是DFFCP端,这样就能保证分频后的时钟和驱动时钟的相位关系没有差错

 楼主| 发表于 2014-9-11 20:50:14 | 显示全部楼层
回复 2# 无乐不作

Case3
多时钟情形
下面电路时master clock以及分频时钟的选择电路
我见过有在网上建议使用
Set_case_analysis命令的
我在这里使用的是
set_clock_groups -logically_exclusive
-group {CLK_IN} -group {X987_Q} -group
{X1046_Q} -group {X1087_Q}
大家给个建议,到底使用哪个比较好呢?
multi_clock.jpg


Case4
这个情形我是没见过,孤陋寡闻了。
大致介绍一下,这里的时钟端其实不是时钟信号,而是一个reset信号,大致就是为了上电复位的时候读取一个笃定的值作为地址或者什么ID之类的不变量,请问这种情形是如何处理?难道是在reset端创建一个clock吗?
我是在这个地方创建了一个clock,但是工具最后提出来一个warning
Warning: The set_dont_touch_network command is used for clock X4557_Z, for which no sources are specified. (UID-997)
dontknow.jpg


Case5
有点类似于上面的情形
但是这里的前级时钟的确是一个时钟信号,但是触发器的输出又做为一个时钟信号驱动下级触发器,请问这里如何create_clock以及如何create_generated_clock
dontknow2.jpg


Case6
Timing loop问题
Warning: Disabling timing arc between pins 'CLK' and 'QBAR' on cell 'MI51/X992/Q_reg to break a timing loop. (OPT-314)
工具辨认出timing loop并且自动打断了,这里需要人工干预什么吗?
timing_loop.jpg
 楼主| 发表于 2014-9-11 20:52:18 | 显示全部楼层
本帖最后由 无乐不作 于 2014-9-12 08:47 编辑

尤其是CASE1,请大家多多指教
multi_clock.jpg
timing_loop.jpg
dontknow2.jpg
dontknow.jpg
发表于 2014-9-11 22:20:25 | 显示全部楼层
设计没给出解释么,
case4 CDN接1,不reset的信号也能用?
case5 从逻辑上像是reset后产生one cycle的pulse
case6 timing loop要查RTL吧,FM难道过了? 或者leda lint 都过了?
 楼主| 发表于 2014-9-12 08:45:00 | 显示全部楼层
回复 5# arthur_wang_orz


    CASE4 应该是可以用的,寄存器输出就是作为一个固定的值,即便不reset的话,也应该是0输出吧,有了一个clk信号,输出更能固定在0,我是不明白,这个地方还有没有必要对时钟信号create_clock?
发表于 2014-9-12 09:55:59 | 显示全部楼层
在不reset的时候,这个FF输出0,有没有风险? 如果FF是两个latch的结构,那么你clk端一开始是高电平还是低电平?会不会对Q有影响?另外,就算电路是定态,后仿会有X吧
非标准同步设计,clock tree也不用平衡,clock 也没什么load, 我觉得没必要create clock 了,再问问这边版主吧,话说陈涛老大很久没有出现了啊
发表于 2014-9-14 12:05:52 | 显示全部楼层
case1 我记得DC有命令来识别cg的 看看结果是不是能给些提示啥的 工具识别不出来会不会是组合逻辑太复杂 用了AO这种器件之类?不能替换可能还和库有关
case3 应该差不多 只是logic exclusive 能省几行字 另外sta能在一个session
中都分析了
case4时钟随便设 不用balance  
case5 没看懂 为啥有loop? pin的名字好像对不上?
发表于 2014-9-14 14:54:46 | 显示全部楼层
为啥是正在virtuoso环境里面呢, 模拟的人自己搭的clkgen 模块?
 楼主| 发表于 2014-9-15 11:46:19 | 显示全部楼层
回复 8# overdriver

case1提示warningGated clock latch is not created for cell'MI96/X6187/C9'on pin 'B' in design 'DIGITAL_LOGIC1'. (TIM-141)
Information: Generated Clock (X1129_Q) hasnon_unate sense on master source pin. (TIM-193)
No controlling value could be found for theclock gating cell 'MI170/X865/U1' for the clock pin 'A'. (TIM-128)
Warning: A non-unate path in clock networkfor clock 'CLK_IN' from pin 'MI170/X865/U1/Z' is detected. (TIM-052)
门控部分的组合逻辑确实有些复杂,但是也都是简单的与或门组成,是不是需要在每一个控制信号上指定有效电平,这个怎么弄呢,感觉不太会,请指教
如果不用 replace_clock_gates,而是使用insert_clock_gating,也是提示同样的warning,工具识别不出来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-25 05:52 , Processed in 0.026310 second(s), 8 queries , Gzip On, Redis On.

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