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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1503|回复: 2

DC时序约束 急

[复制链接]
发表于 2021-8-25 15:18:58 | 显示全部楼层 |阅读模式
1000资产

image.png
数字部分可以有5个时钟,分别是SPI的clk时钟, 可编程分频器P/S的clk_pre 时钟,输出clk_out  以及 DSM 的 clk_dsm 和chirp的clk_chirp的时钟,这两个时钟接output clk_out。所以对clk_out 约束就可以了。
image.png
输出时钟clk_out 约束,这个multicycle_path是不是设置到 clk_pre 和clk_out这个两个时钟上,但multicycle_path的个数是由分频数决定的,clk_pre最高频率的时候1.25G,而clk_out的时钟是接近240M,由于DSM的引入,会导致分频数发生变化,这样clk_out的最大频率为430M(这个时候clk_pre不是最高频率),但是这个时钟是clk_pre 的2.9分频。所以取分频数最小应该是2。但是在clk_pre频率最高的时候,clk_out的最大频率为340M,分频数为3.6。
现在就有个疑问:比如现在约束的2个multicycle,但实际上是3个或者4个或者更多。这样是否会有影响?
因为这个时钟接在clk_out 上的,所以对clk_out进行约束就可以了。
#***********************************************************************
#*****   set the timing conwstraint   **********************************
#***********************************************************************
set CLK1          clk_pre
set CLK2          clk
set CLK3          clk_chirp
set CLK4          clk_dsm
set CLK5          clk_out
set RESET         rst_n

set clk2_input  [list [get_ports sdi] [get_ports csn]]
set CLK3_input  [list [get_ports start] [get_ports fixed_point ] [get_ports state]]


set clk1_output  [list [get_ports mc]   [get_ports clk_out] ]
set clk2_output  [list [get_ports sdo] [get_ports control ] [get_ports TestPin ]]
set CLK3_output  [list [get_ports DAC_code ] ]

#################  clk1  p/s #######################
create_clock -name $CLK1 -p 0.8 [get_ports $CLK1] -waveform {0 0.3}

set_clock_uncertainty  0.05 -setup [get_clocks $CLK1]


set_clock_transition 0.03 [get_clocks $CLK1]
set_clock_latency 0.03    [get_clocks $CLK1]


set_output_delay -max 0.16 -clock $CLK1 [list [get_ports mc]  ]
set_output_delay -min 0.16 -clock $CLK1 [list [get_ports mc]  ]

#################clk2 spi #######################
create_clock -name $CLK2 -p 4 [get_ports $CLK2] -waveform {0 2}

set_clock_uncertainty  0.1 -setup [get_clocks $CLK2]

set_clock_transition 0.08 [get_clocks $CLK2]
set_input_transition 0.05 $clk2_input
set_clock_latency 0.05  [get_clocks $CLK2]

set_input_delay  -max 1  -clock $CLK2 $clk2_input
set_input_delay  -min 1  -clock $CLK2 $clk2_input
set_output_delay -max 1  -clock $CLK2 $clk2_output
set_output_delay -min 1  -clock $CLK2 $clk2_output

#############################CLK3 chirp #######################

create_clock -name $CLK3  -p 2.5   [get_pins u3_chirp/clk_chirp] -waveform {0 1.2}
set_clock_uncertainty  0.08 -setup [get_clocks $CLK3]

set_clock_transition 0.08  [get_clocks $CLK3]
set_input_transition 0.05  $CLK3_input
set_clock_latency    0.05  [get_clocks $CLK3]

set_input_delay  -max 0.5  -clock $CLK3 $CLK3_input
set_input_delay  -min 0.5  -clock $CLK3 $CLK3_input
set_output_delay -max 1    -clock $CLK3 $CLK3_output
set_output_delay -min 1    -clock $CLK3 $CLK3_output

#############################CLK4 dssm #######################
create_clock -name $CLK4  -p 2.5   [get_pins u2_ddsm/clk_dsm] -waveform {0 1.2}

set_clock_uncertainty  0.08 -setup [get_clocks $CLK4]

set_clock_transition 0.08 [get_clocks $CLK4]
set_clock_latency    0.05  [get_clocks $CLK4]
#############################CLK5 clk_out #######################

create_generated_clock -name $CLK5 -divide_by 2 -source  $CLK1  [get_ports clk_out]

set_multicycle_path 2 -setup -end   -from $CLK5  -to  $CLK1
set_multicycle_path 1 -hold  -start -from $CLK5  -to  $CLK1

##################################false paths################################################
set_false_path -from  [get_clocks $CLK2] -to  [get_clocks $CLK1]
set_false_path -from  [get_clocks $CLK1] -to  [get_clocks $CLK2]


set_false_path -from  [get_clocks $CLK2] -to  [get_clocks $CLK3]
set_false_path -from  [get_clocks $CLK3] -to  [get_clocks $CLK2]



set_false_path -from  [get_clocks $CLK2] -to  [get_clocks $CLK4]
set_false_path -from  [get_clocks $CLK4] -to  [get_clocks $CLK2]


set_false_path -from  [get_clocks $CLK2] -to  [get_clocks $CLK5]
set_false_path -from  [get_clocks $CLK5] -to  [get_clocks $CLK2]


set_false_path -from  [get_ports $RESET]


大佬们,给指导指导。


发表于 2021-8-25 18:21:31 | 显示全部楼层
只会第一个multicycle那个,没影响
发表于 2021-8-26 20:12:27 | 显示全部楼层
从图看上去, 你这个设计是数字锁相环设计。
时序约束, 你仍需要和设计者讨论一个他们的时钟的设计用途(因为这里很可能会用很多不符合纯数字电路的用法),
你的时序描述才会正确,

从你给的图来理解,SPI时钟(CLK2), 对别的时钟应该是异步的。别的不确定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-18 20:29 , Processed in 0.018680 second(s), 7 queries , Gzip On, Redis On.

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