一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 7595|回复: 0

(转 真 OO无双) timing中的slack是什麼意思? (SOC) (Quartus II)

[复制链接]
发表于 2011-2-11 12:32 | 显示全部楼层 |阅读模式
本帖最后由 kenson 于 2011-2-11 12:36 编辑
; t0 _! m3 P( V- i) z' e7 c& x& r. u; q0 Y& H& K
(原創) timing中的slack是什麼意思? (SOC) (Quartus II)
  g) a1 u8 k) g$ G! w8 dAbstract( o1 M0 i" v: t
在分析timing時,在timing report中常會出現setup time slack與hold time slack,本文深入探討slack的意義。' o; A3 r) H" [: N+ `, g  [- l
Introduction  u1 V6 N( z! O% [2 U
slack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經不滿足setup time/hold time的需求,並且不足多少時間。
- y7 h9 F- P2 C8 }要詳細知道slack怎麼算出來的之前,須先了解一些專有名詞。
. m- y) Z+ q3 Y+ WLaunch Edge & Latch Edge
- @' B0 ]4 d5 ^/ shttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new00_ef1e43e4-790e-4a32-b3aa-a8c3624fb7f4.gif
; L5 T# c! p- F# s% {4 bLaunch Edge:產生data的register 1所使用的clock rising edge。, p. O7 v, O5 \9 L3 d
Latch Edge:接收data的register 2所使用的clock rising edge,會delay Lauch Edge 1個clk。& z% H' m8 [  e* L& c8 B
9 c) }* Z( [* }% K% l% A  L  X
Setup Time & Hold Time
8 x, h) Y7 \# I9 K* x. ~- uhttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack01_ff963616-bb28-426c-8556-afcd59623878.gif
, r1 z* m) B% ]0 U8 rSetup Time:在clk rising edge之前,data必須穩定的最短時間,若不滿足setup time,data無法敲進register。
. l, F- O. r8 s9 I" EHold Time:在clk rising edge之後,data必須穩定的最短時間,若不滿足hold time,data無法敲進register。
4 G( @9 s* r9 ?( A; b% N5 _: NSetup Time與Hold Time必須同時滿足,資料才可順利敲進register。
0 J# \. u4 t" V, V
7 ?3 T8 {/ h. ~  |1 R4 I  pData Arrival Time1 `% A( c  ~% M1 O! P: A
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new01_3619dde7-c4eb-4391-b2d6-5f548073cdec.gif
& G( x4 X4 r2 k7 V  j% j6 qData Arrival Time:data實際到達register 2的input D時的時間。+ v8 a+ n* Y7 ]  |& M8 [
所以從Lauch Edge開始,經過Tclk1 (register 1的clock skew),再加上Tco(register 1的clock to output delay),再加上Tdata(組合邏輯本身的delay),即為Data Arrival Time。" T9 v0 d" [6 V6 O$ G: E1 A8 K3 o

. [9 e# R7 I0 v; YClock Arrival Time
% ~5 Y% x: e; N" thttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new02_133d7e3f-5bf8-4025-b0e8-805598b9e40d.gif , \# W, v2 m+ a) V/ Z4 O! x' a
Clock Arrival Time:clock實際到register 2 input的時間。
: U! A% L/ D* T4 y所以從Latch Edge開始,經過Tclk2(register 2的clock skew),即為Clock Arrival Time。/ S' ~* V6 @' i6 V3 M/ M  L4 R8 {

6 q9 t& U5 J8 L( SData Required Time (Setup)# w& @7 n# S2 T! t$ C: U- p3 ]
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new03_76b16d74-57da-4851-9e58-1351feeb2f3d.gif 8 e+ D: P: y- X2 T
Data Required Time (Setup):為了讓資料能敲進register,最遲須在何時能準備好資料。
; m. p7 a* ~- Y5 d8 u, _: U所以從Clock Arrival Time開始(Latch Edge + Tclk2) 減掉 Tsu ,在扣掉一下額外的不確定值,即為Data Required Time (Setup)。
, J0 X7 i/ o1 F2 w, A
3 Y9 R# b, t' L& m9 M$ qData Required Time (Hold)
) T. q( l" Q! `/ Nhttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new04_59a5a01d-74bb-4452-ab1a-b691c6735859.gif " y% g) J6 O, [( U; P$ f( h8 J
Data Required Time (Hold):為了讓資料能敲進register,資料至少需維持到何時。3 Z" }8 l. U% R5 T
所以從Clock Arrival Time開始(Latch Edge + Tclk2)加上Th,再加上一些額外的不確定值,即為Data Required Time (Hold)。
" k* M/ V. [9 A3 ?! C  X
/ d8 _/ ]$ h- }# P5 V1 mSetup Slack" N, ~9 a- Z; Q, }
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new06_29d1e12e-e809-4906-b046-f940ca6b12e9.gif $ p4 S( B, b% R3 b; O
講了這麼久,總算要進入主題Slack啦,先講Setup Slack,定義很簡單,只要將Data Required Time (Setup)減掉Data Arrival Time即可,也就是符合Setup Time的margin。
3 X8 l1 m+ Z: Z& K* K& l4 S$ Z上面的Timing圖看起來很複雜,事實上以Lauch Edge為首導出來的只是Data Arrival Time,之前已經講過,而以Latch Edge為首導出來的是Data Required Time,之前也講過,現在只是將所有的timing都畫在一起而已。" N0 y4 g, c0 F- i; W
若Setup Slack為正,表示Data Required Time在Data Arrival Time之後,所以一定滿足Setup Time,反之若Setup Slack為負,則表示Data Arrival Time在Data Required Time之後,所以一定無法滿足Setup Time。6 L% {9 j6 C% {! {  i- r
) @) `5 U) |1 b5 c0 W6 r* K
Hold Slack( u% Z. h+ v/ N, i0 B
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new07_4ad4a2f7-d22a-4f50-a875-6b6778d01759.gif / p4 }  @2 v/ h9 t1 @
接下來講Hold Slack,定義也很簡單,只要將Data Arrival Time減掉Data Required Time (Hold)即可,也就是符合Hold Time的margin。* x8 T# E, i  J) E
上面的timing圖比較特殊些,主要是Data Arrival Time部分,因為要找Hold Slack,所以從Next Launch Edge開始,一樣加上Tclk1 + Tco + Tdata,而從Latch Edge開始加上Tclk2時為Data Required Time (Hold),這與之前講的一樣。
* \. Y3 x( F& r% N7 R* W# ~若Hold Slack為正,表示Data Arrival Time在Data Required Time之後,所以一定滿足Hold Time,反之若Hold Slack為負,則表示Data Required Time在Data Arrival Time之後,所以一定無法滿足Hold Time。' @; U: c& `. X9 E+ g, H

5 Q# p( Q, t6 \8 HReference
3 x& N9 q5 V, c7 T3 @Altera Quartus II Software Design Series:Timing Analysis
1 U2 ?$ S8 C' E
+ K3 j5 a0 p; A% O& q, d+ \$ L, ?+ E. g7 S" y, w

: T2 P& J% F, j) V3 ?( g转:真 OO无双

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-2-25 13:17 , Processed in 0.028182 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表