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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 10921|回复: 21

[求助] DC综合问题

[复制链接]
发表于 2013-7-10 16:12:57 | 显示全部楼层 |阅读模式

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

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

x
小弟在综合的时候,基本所有约束的命令都用过了,但report_timing的时候却报如下情况,请问这该怎么办呢?
Report : timing
        -path full
        -delay min
        -max_paths 1
Design : simple_DCO
Version: B-2008.09
Date   : Wed Jul 10 15:55:26 2013
****************************************
Operating Conditions: fast   Library: fast
Wire Load Model Mode: top
  Startpoint: CK_reg/Q (internal pin)
  Endpoint: CK (output port clocked by tap0)
  Path Group: (none)
  Path Type: min
  Des/Clust/Port     Wire Load Model       Library
  ------------------------------------------------
  simple_DCO         smic18_wl10           slow
  Point                                    Incr       Path
  -----------------------------------------------------------
  CK_reg/Q (JKFFRX4)                       0.00       0.00 r
  CK (out)                                 0.00       0.00 r
  data arrival time                                   0.00
  -----------------------------------------------------------
  (Path is unconstrained)
我看了一下,这部分的时序报告是针对我数字电路模块中的一个D触发器的报告, 如下图,
CK.jpg ,正因为这个unconstrained path导致综合后的网表仿真波形不对。请问该怎么进行约束呢?
发表于 2013-7-10 17:02:26 | 显示全部楼层
分频器?
试一下create_generated_clock -name <分频后的时钟名> -divide_by 2 -source [get_clock <CK_reg使用的时钟>] [get_pins CK_reg/Q]
 楼主| 发表于 2013-7-10 20:10:52 | 显示全部楼层
本帖最后由 菜鸟ASIC 于 2013-7-10 21:03 编辑

回复 2# orlye


    你好,我的设计结构图是这样的,那这条语句中的source clk该怎么设置呢?
无标题.png 后面的是二分频电路,但source clk是i,是不是还要特别定义一个时钟i呢?请再指点一下,多谢了
我用这条命令直接这样create_generated_clock -name CK -divide_by 2 -source i [get_pins CK_reg/Q]会报错,说找不到i
发表于 2013-7-11 15:10:38 | 显示全部楼层
MUX的S端接CK???

clk1和clk2是什么关系?
发表于 2013-7-11 15:33:06 | 显示全部楼层
你这个设计想实现什么?结构图真心看不太懂……
我看了你的图根本不知道时钟该怎么设……

这么跟你说吧,在create_clock阶段创建的时钟,哪个是给i用的?把那个时钟的名字填在-source里就对了。
发表于 2013-7-11 15:52:05 | 显示全部楼层
CK后加一个buffer
 楼主| 发表于 2013-7-11 17:30:04 | 显示全部楼层
本帖最后由 菜鸟ASIC 于 2013-7-11 17:36 编辑

回复 5# orlye
无标题.png

   
你好,我给你简单介绍下我这个设计的功能吧。它是一个数控振荡器,CN[22:0]是数据控制位,它决定输出时钟CK的频率大小。已经通过前仿真,说明功能是正确的。FROOUT0~FROOUT31是32个恒等相位差的时钟信号,频率都为100M,由于是32个时钟,所以FROOUT0~FROOUT31的相位差为10ns/32=312.5ps;32选1选择器通过控制字CN的大小来选择一路时钟去翻转后面的D触发器,也就是结构图中最右边的二分频。整个模块的输入端口是FROOUT0~FROOUT31,CN[22:0];输出端口就只有CK,CKB。
我在DC综合的时候,输入了以下脚本
设置32个时钟的相位差:
create_clock -name "FROOUT0" -period 10 -waveform { 0  5 }  {FROOUT0}
create_clock -name "FROOUT1" -period 10 -waveform { 0.3125  5.3125 }  { FROOUT1  }
create_clock -name "FROOUT2" -period 10 -waveform { 0.625  5.625 }  { FROOUT2  }
create_clock -name "FROOUT3" -period 10 -waveform { 0.9375  5.9375 }  { FROOUT3 }
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
还有其他输入输出端口的相关约束设置。但最后report_timing的时候,总报Path is unconstrained,导致最后的DC综合后的网表仿真也过不了,功能不正确。我想问题就是出在最后那个D触发器的约束问题上。
Wire Load Model Mode: top
  Startpoint: CK_reg/Q (internal pin)
  Endpoint: CK (output port clocked by tap0)
  Path Group: (none)
  Path Type: min
  Des/Clust/Port     Wire Load Model       Library
  ------------------------------------------------
  simple_DCO         smic18_wl10           slow
  Point                                    Incr       Path
  -----------------------------------------------------------
  CK_reg/Q (JKFFRX4)                       0.00       0.00 r
  CK (out)                                 0.00       0.00 r
  data arrival time                                   0.00
  -----------------------------------------------------------
  (Path is unconstrained)
我看了一下网表,我本来是要它综合成一个D触发器的,但导出的网表确是JK触发器JKFFRX4,
现在我想请教大侠的是:
①我只会用DC脚本创建输入端口的时钟定义,像上面的

create_clock -name "FROOUT0" -period 10 -waveform { 0  5 }  {FROOUT0}
②但像我现在设计的数字模块中的,我知道它后面是个简单的D触发器二分频电路。但它的分频时钟是模块中的中间变量i,如果按你第一次提醒我的方法,要找到source clk才行,而好像source clk要先定义才行吧?我该怎么约束它呢?

 楼主| 发表于 2013-7-11 17:35:32 | 显示全部楼层
回复 4# jack888518


    你好,它是一个数控振荡器,CN[22:0]是数据控制位,它决定输出时钟CK的频率大小。已经通过前仿真,说明功能是正确的。FROOUT0~FROOUT31是32个恒等相位差的时钟信号,频率都为100M,由于是32个时钟,所以FROOUT0~FROOUT31的相位差为10ns/32=312.5ps;32选1选择器通过控制字CN的大小来选择一路时钟去翻转后面的D触发器,也就是结构图中最右边的二分频。整个模块的输入端口是FROOUT0~FROOUT31,CN[22:0];输出端口就只有CK,CKB。
      中间标出的clk1,clk2就是两个32选1选择器的输出时钟,是32路时钟信号FROOUT*中的某一路时钟。
 楼主| 发表于 2013-7-11 17:38:08 | 显示全部楼层
回复 6# yanshangzhao


    你好,能给出详细的命令吗?多谢了
发表于 2013-7-12 13:34:43 | 显示全部楼层
dc是不修hold time的,跑综合后的网表完全可能由于hold time违例造成跑飞,这是正常的。
你的后仿结果不正确的话,建议你最好看看是不是因为hold time违例造成的,如果是的话,那就没必要查了。
要跑网表最好跑CTS后的网表比较可靠,那个有错才是真的有错。

综合的问题帮不了你,太复杂了。你这个是学校的研究项目?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-25 14:37 , Processed in 0.044001 second(s), 9 queries , Gzip On, Redis On.

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