2014年8月8日 星期五

(轉錄) (原創) timing中的slack是什麼意思? (SOC) (Quartus II)

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


沒有留言:

張貼留言