一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 7076|回复: 0
收起左侧

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

[复制链接]
发表于 2011-2-11 12:32 | 显示全部楼层 |阅读模式
本帖最后由 kenson 于 2011-2-11 12:36 编辑
1 C$ |" o/ c* V( |2 k9 W9 \' F" B" }, ]4 j9 W: O
(原創) timing中的slack是什麼意思? (SOC) (Quartus II) ' \8 V+ o- [4 a) }+ @: T2 o8 B
Abstract
. B8 q8 m' n7 e, B9 m+ |9 Q在分析timing時,在timing report中常會出現setup time slack與hold time slack,本文深入探討slack的意義。5 A# |& M0 ?4 F3 M9 l2 F
Introduction. _7 M- r5 X! p
slack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經不滿足setup time/hold time的需求,並且不足多少時間。
2 B% i/ s! k7 C. u- |要詳細知道slack怎麼算出來的之前,須先了解一些專有名詞。
- i$ b. p6 o" T# u. F- @) L! rLaunch Edge & Latch Edge
8 A6 {- V# L) w. ]http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new00_ef1e43e4-790e-4a32-b3aa-a8c3624fb7f4.gif 9 ]$ N4 W" V9 e5 r" ?; E
Launch Edge:產生data的register 1所使用的clock rising edge。
- J6 l% O: _; d3 I0 l+ mLatch Edge:接收data的register 2所使用的clock rising edge,會delay Lauch Edge 1個clk。
9 {1 d; v4 K# s, H: k* J" O. t& \( c/ F( m) w
Setup Time & Hold Time
( T) Y2 {; S# C7 \http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack01_ff963616-bb28-426c-8556-afcd59623878.gif
( T8 g7 w* b2 Y% g0 X% }* p8 GSetup Time:在clk rising edge之前,data必須穩定的最短時間,若不滿足setup time,data無法敲進register。" ^# q% J2 C& I1 x
Hold Time:在clk rising edge之後,data必須穩定的最短時間,若不滿足hold time,data無法敲進register。! A$ R1 V) G+ P" F) O: A
Setup Time與Hold Time必須同時滿足,資料才可順利敲進register。
( n( Q. ]$ s- A; y8 p( ?: W3 W  E7 Y) p1 B
Data Arrival Time  W2 D. m  H* H. [6 ?
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new01_3619dde7-c4eb-4391-b2d6-5f548073cdec.gif   ]2 V9 L9 |" `! [. M
Data Arrival Time:data實際到達register 2的input D時的時間。
* U1 _3 I+ F& r7 u. x5 L; u所以從Lauch Edge開始,經過Tclk1 (register 1的clock skew),再加上Tco(register 1的clock to output delay),再加上Tdata(組合邏輯本身的delay),即為Data Arrival Time。2 [: T6 T9 L- p

5 K2 ?+ s9 s1 s$ @Clock Arrival Time
) K# l. Z5 p4 w! g( e  s7 ]$ Lhttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new02_133d7e3f-5bf8-4025-b0e8-805598b9e40d.gif
  |% D0 Z) n. @( D1 g, wClock Arrival Time:clock實際到register 2 input的時間。' X' T, S! U1 x# j1 J  X
所以從Latch Edge開始,經過Tclk2(register 2的clock skew),即為Clock Arrival Time。
) ~: c( I5 R$ U% N( ], @/ c3 q5 x( H1 ?; k- {
Data Required Time (Setup)6 Q5 Y6 w+ I( I; n0 V" m0 d( f
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new03_76b16d74-57da-4851-9e58-1351feeb2f3d.gif 9 n/ U' ?+ k4 H% D( s
Data Required Time (Setup):為了讓資料能敲進register,最遲須在何時能準備好資料。
3 h2 K, e  y, r# ^' }& d; ^7 G& a所以從Clock Arrival Time開始(Latch Edge + Tclk2) 減掉 Tsu ,在扣掉一下額外的不確定值,即為Data Required Time (Setup)。
  x; l1 |3 D; Q& s+ S" q- m& D; m  G: Q7 n1 Z" A1 x, b5 n) x  Y
Data Required Time (Hold)5 {1 ^! m. P, ]2 B/ F
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new04_59a5a01d-74bb-4452-ab1a-b691c6735859.gif 2 Q* I7 a# _" B/ `! ]1 n  r
Data Required Time (Hold):為了讓資料能敲進register,資料至少需維持到何時。
$ P- l7 a1 N# t3 W7 ^: y$ Y5 d所以從Clock Arrival Time開始(Latch Edge + Tclk2)加上Th,再加上一些額外的不確定值,即為Data Required Time (Hold)。
( `& _" o- A* c7 }
/ I  b$ u3 [: g# o% K6 K# ~" `Setup Slack
; [( G4 x% \5 H+ H; x: l- u% chttp://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new06_29d1e12e-e809-4906-b046-f940ca6b12e9.gif 8 R$ s& W* I1 _
講了這麼久,總算要進入主題Slack啦,先講Setup Slack,定義很簡單,只要將Data Required Time (Setup)減掉Data Arrival Time即可,也就是符合Setup Time的margin。
0 g0 ?2 a; _  A# Z3 k# C1 m. y上面的Timing圖看起來很複雜,事實上以Lauch Edge為首導出來的只是Data Arrival Time,之前已經講過,而以Latch Edge為首導出來的是Data Required Time,之前也講過,現在只是將所有的timing都畫在一起而已。
3 U. {) H: p. \! M! {/ S若Setup Slack為正,表示Data Required Time在Data Arrival Time之後,所以一定滿足Setup Time,反之若Setup Slack為負,則表示Data Arrival Time在Data Required Time之後,所以一定無法滿足Setup Time。) K2 g$ }( \' H/ w! E
8 K) D/ [5 F1 z$ X4 v0 P8 V
Hold Slack; j: Q# J- c( V6 S$ b% F2 w
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/timingslackSOCQuartusII_EA20/slack_new07_4ad4a2f7-d22a-4f50-a875-6b6778d01759.gif ' o' E' {5 k0 ~" z0 S$ r
接下來講Hold Slack,定義也很簡單,只要將Data Arrival Time減掉Data Required Time (Hold)即可,也就是符合Hold Time的margin。
: V7 G- s5 t( e! `* j+ A上面的timing圖比較特殊些,主要是Data Arrival Time部分,因為要找Hold Slack,所以從Next Launch Edge開始,一樣加上Tclk1 + Tco + Tdata,而從Latch Edge開始加上Tclk2時為Data Required Time (Hold),這與之前講的一樣。9 K# p* j. \/ V2 d1 M/ i( |9 k9 J
若Hold Slack為正,表示Data Arrival Time在Data Required Time之後,所以一定滿足Hold Time,反之若Hold Slack為負,則表示Data Required Time在Data Arrival Time之後,所以一定無法滿足Hold Time。
8 Y2 b* |& }$ U6 C% R' \+ D" e/ @) o
Reference
+ M2 d- y* g+ K2 s) SAltera Quartus II Software Design Series:Timing Analysis# D- D6 E$ ^1 n+ c2 L1 N
- l' W% Q' B  l( l

; x# f; h3 k; {6 r5 P0 A7 X& T% b. ^7 d% F3 R
转:真 OO无双

本版积分规则

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

GMT+8, 2025-4-28 16:14 , Processed in 0.044580 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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