Abstract
在分析timing時,在timing report中常會出現setup time slack與hold time slack,本文深入探討slack的意義。
在分析timing時,在timing report中常會出現setup time slack與hold time slack,本文深入探討slack的意義。
Introduction
slack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經不滿足setup time/hold time的需求,並且不足多少時間。
slack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經不滿足setup time/hold time的需求,並且不足多少時間。
要詳細知道slack怎麼算出來的之前,須先了解一些專有名詞。
Launch
Edge & Latch Edge
Launch
Edge:產生data的register
1所使用的clock
rising edge。
Latch
Edge:接收data的register
2所使用的clock
rising edge,會delay
Lauch Edge 1個clk。
Setup
Time & Hold Time
Setup
Time:在clk
rising edge之前,data必須穩定的最短時間,若不滿足setup
time,data無法敲進register。
Hold
Time:在clk
rising edge之後,data必須穩定的最短時間,若不滿足hold
time,data無法敲進register。
Setup
Time與Hold
Time必須同時滿足,資料才可順利敲進register。
Data
Arrival Time
Data
Arrival Time:data實際到達register
2的input
D時的時間。
所以從Lauch
Edge開始,經過Tclk1
(register 1的clock
skew),再加上Tco(register
1的clock
to output delay),再加上Tdata(組合邏輯本身的delay),即為Data
Arrival Time。
Clock
Arrival Time
Clock
Arrival Time:clock實際到register
2 input的時間。
所以從Latch
Edge開始,經過Tclk2(register
2的clock
skew),即為Clock
Arrival Time。
Data
Required Time (Setup)
Data
Required Time (Setup):為了讓資料能敲進register,最遲須在何時能準備好資料。
所以從Clock
Arrival Time開始(Latch
Edge + Tclk2) 減掉
Tsu
,在扣掉一下額外的不確定值,即為Data
Required Time (Setup)。
Data
Required Time (Hold)
Data
Required Time (Hold):為了讓資料能敲進register,資料至少需維持到何時。
所以從Clock
Arrival Time開始(Latch
Edge + Tclk2)加上Th,再加上一些額外的不確定值,即為Data
Required Time (Hold)。
Setup
Slack
講了這麼久,總算要進入主題Slack啦,先講Setup
Slack,定義很簡單,只要將Data
Required Time (Setup)減掉Data
Arrival Time即可,也就是符合Setup
Time的margin。
上面的Timing圖看起來很複雜,事實上以Lauch
Edge為首導出來的只是Data
Arrival Time,之前已經講過,而以Latch
Edge為首導出來的是Data
Required Time,之前也講過,現在只是將所有的timing都畫在一起而已。
若Setup
Slack為正,表示Data
Required Time在Data
Arrival Time之後,所以一定滿足Setup
Time,反之若Setup
Slack為負,則表示Data
Arrival Time在Data
Required Time之後,所以一定無法滿足Setup
Time。
Hold
Slack
接下來講Hold
Slack,定義也很簡單,只要將Data
Arrival Time減掉Data
Required Time (Hold)即可,也就是符合Hold
Time的margin。
上面的timing圖比較特殊些,主要是Data
Arrival Time部分,因為要找Hold
Slack,所以從Next
Launch Edge開始,一樣加上Tclk1
+ Tco + Tdata,而從Latch
Edge開始加上Tclk2時為Data
Required Time (Hold),這與之前講的一樣。
若Hold
Slack為正,表示Data
Arrival Time在Data
Required Time之後,所以一定滿足Hold
Time,反之若Hold
Slack為負,則表示Data
Required Time在Data
Arrival Time之後,所以一定無法滿足Hold
Time。
沒有留言:
張貼留言