Time Analyzer中的Minimum period和maximum data path之间什么关系
Timing constraint: TS_mem_interface_top0_infrastructure_top0_clk_dcm0_clk0dcm_0 = PERIOD TIMEGRP "mem_interface_top0_infrastructure_top0_clk_dcm0_clk0dcm_0" TS_SYS_CLK HIGH 50%;
3097 paths analyzed, 580 endpoints analyzed, 0 failing endpoints
0 timing errors detected. (0 setup errors, 0 hold errors)
Minimum period is 7.594ns.
--------------------------------------------------------------------------------
Slack: 0.145ns (requirement - (data path - clock path skew + uncertainty))
Source: mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_5 (FF)
Destination: ddr_controller_fsm0/read_dat_o_5 (FF)
Requirement: 2.000ns
Data Path Delay: 1.837ns (Levels of Logic = 0)
Clock Path Skew: -0.018ns (3.267 - 3.285)
Source Clock: clk90_int rising at 2.000ns
Destination Clock: clk_int falling at 4.000ns
Clock Uncertainty: 0.000ns
Maximum Data Path: mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_5 to ddr_controller_fsm0/read_dat_o_5
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tcko 0.374 mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_5
net (fanout=1) 1.261 u_data_o<5>
Tdick 0.202 ddr_controller_fsm0/read_dat_o_5
---------------------------- ---------------------------
Total 1.837ns (0.576ns logic, 1.261ns route)
(31.4% logic, 68.6% route)
--------------------------------------------------------------------------------
Slack: 0.203ns (requirement - (data path - clock path skew + uncertainty))
Source: mem_interface_top0/ddr1_top0/controller0/auto_ref_wait (FF)
Destination: ddr_controller_fsm0/u_addr_22 (FF)
Requirement: 4.000ns
Data Path Delay: 3.797ns (Levels of Logic = 3)
Clock Path Skew: 0.000ns
Source Clock: clk_int falling at 4.000ns
Destination Clock: clk_int rising at 8.000ns
Clock Uncertainty: 0.000ns
Maximum Data Path: mem_interface_top0/ddr1_top0/controller0/auto_ref_wait to ddr_controller_fsm0/u_addr_22
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tcko 0.374 mem_interface_top0/ddr1_top0/controller0/auto_ref_wait
net (fanout=8) 0.643 auto_ref_req
Tilo 0.288 ddr_controller_fsm0/CS_FSM_Out1111
net (fanout=3) 0.159 ddr_controller_fsm0/N5
Tilo 0.313 ddr_controller_fsm0/u_addr_mux0000<0>21
net (fanout=25) 1.707 ddr_controller_fsm0/N3
Tilo 0.313 ddr_controller_fsm0/u_addr_mux0000<22>1
net (fanout=1) 0.000 ddr_controller_fsm0/u_addr_mux0000<22>
Tdyck 0.000 ddr_controller_fsm0/u_addr_22
---------------------------- ---------------------------
Total 3.797ns (1.288ns logic, 2.509ns route)
(33.9% logic, 66.1% route)
--------------------------------------------------------------------------------
Slack: 0.266ns (requirement - (data path - clock path skew + uncertainty))
Source: mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_12 (FF)
Destination: ddr_controller_fsm0/read_dat_o_12 (FF)
Requirement: 2.000ns
Data Path Delay: 1.720ns (Levels of Logic = 0)
Clock Path Skew: -0.014ns (3.267 - 3.281)
Source Clock: clk90_int rising at 2.000ns
Destination Clock: clk_int falling at 4.000ns
Clock Uncertainty: 0.000ns
Maximum Data Path: mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_12 to ddr_controller_fsm0/read_dat_o_12
Delay type Delay(ns) Logical Resource(s)
---------------------------- -------------------
Tcko 0.374 mem_interface_top0/ddr1_top0/data_path0/data_read0/first_sdr_data_12
net (fanout=1) 1.144 u_data_o<12>
Tdick 0.202 ddr_controller_fsm0/read_dat_o_12
---------------------------- ---------------------------
Total 1.720ns (0.576ns logic, 1.144ns route)
(33.5% logic, 66.5% route)
--------------------------------------------------------------------------------
你的设计有多个时钟域吧,你可以找个单时钟域的分析报告,那样肯定比较好理解。
这个我还是不知道
确实是多时钟的,但时序分析报告就是这样的,怎么找单个时钟的啊
不知道你用的是什么工具,下面是Xilinx ISE10.1中名为watchver例子,并加了简单的时序约束得到的。这个应该比较方便理解。

谢谢你的回答,我和你是一个工具,只是我不是用网页模式打开的,而是用文本模式,因为你看,用网页模式打开的,所有的字母之间的下划线是看不到的。
那就从你的这张图来说吧,有1点我不明白:
"minimum period is 2.616ns"是怎么得到的?
Slack,requirement,data path delay之间的关系很清楚,但minimum period是怎么得到的呢
minimum period=data path - clock path skew + uncertainty
看看!
看看!学习了!
我看了你这个公式,而且对于单周期路径确实是满足minimum period=data path - clock path skew + uncertainty的,但我现在算了我的情况,
我第一条Maximum data path是1.837,clock skew是0.018,第二条Maximum data path是3.797,clock skew是0,第三条Maximum data path是1.720,clock skew是0.014,然后1.837+0.018+3.797+1.720+0.014=7.386,而报告写的Minimum period is 7.594ns,为什么两者还是有差异呢,问题在哪呢,谢谢指教
这里有个问题,对于多时钟域的情况,Minimum period不是由各条路径的data path - clock path skew + uncertainty相加得到,而是由各路径中data path - clock path skew + uncertainty值最大的那条决定的。
你的设计中是不是用到了DCM倍频?你的DCM输入时钟频率是多少?加的约束是什么?
这个设计其实是MIG007生成的DDR SDRAM核的控制器,大概原理是这样的,现在是125M的差分时钟输入到DCM,然后产生CLK0,CLK90,CLK180,CLK270四个时钟,因为对于ddr sdram控制核来说,时钟,数据,命令信号需要不同相位的时钟分别锁存。
因为有四个相位时钟,所以才会尽管时钟约束为8ns,但有些requirement是2ns,我看了时序报告,还是不知道其minimum period是怎么算出来的。
我猜想哦,每个TS约束下列出了三条路径及其Slack,但我看其排列顺序是按slack从小到大排列的,而因为这里有些source 和destination 的clock不是一个相位的,一般slack最小的requirement都是2ns(因为比如CLK0到clk90),所以我觉得可能这里"各路径中data path - clock path skew + uncertainty最大值"可能反而没有列出来,不知道是不是这个意思。
有谁知道吗
学习学习。
