作者horsehead ( NNNN)
看板Electronics
標題Re: [問題] 檢查最小延遲的hold time
時間Fri Oct 16 00:35:53 2009
※ 引述《ccjin (別活在自己的地獄裡)》之銘言:
: 抱歉 想了很久 也找了很多資料 還是不了解
: 首先 setup time 跟 電路的 clock 有關
: clock 的最快速度取決於 setup time + combinational logic delay +....
: 有資料說 hold time 跟 clock 無關
: 所有的timing path 都需符合一個原則: delay不能太大但也不能太小
: 不能太大可以理解 , 不能太小 這?
: 對於 hold time的定義我已經亂了
: 只好請教大家了
setup time 定義是什麼 ? 是 data 在 clock sample edge 之前要保持穩定的最短時間
hold time 定義是什麼 ? 是 data 在 clock sample edge 之後要保持穩定的最短時間
在clock sample edge 起來的同時 會去戳外面的 data 進來暫存器 如果資料在
同一時刻也跟著變化 那 clock sample edge 過後你戳到的資料到底是 1 還是 0
呢 ? 很難判定對吧 這跟你標準邏輯製程的電晶體閘極電容有關 如果你的邏輯
閘在製造上有一點誤差 導致電容值不太一樣 在上面那種情形發生時 妳又在暫存器
後面 fant out 出去兩個以上邏輯閘 很有可能會一個判定為1另一個卻判定為0
同一個信號 內部居然有兩種結果 那電路一定就死翹翹了
所以為了避免這種情形發生 數位設計會希望 在 clock sample edge 起來附近前後
一段時間data可以保持穩定不變動的 這樣我就可以很放心我是sampling到一個穩定
的值 而這段穩定的時間 在 clock sample edge 出現之前那段就叫做 setup time
而在 clock sample edge 出現之後那段就叫做 hold time
hold time 顧名思義 就是我要在 clock sample edge 出現之後把資料"hold"住一段
時間才能變化 讓新的下一筆資料進來 大概就是這個意思
另外補充一點
假設 clock sample edge 出現在 5 ns 而該電路的 setup time 為
1.5 ns 而 hold time 為 2 ns 就代表 我要在這個 clock sample edge 正確採樣到
資料的話 我的這筆資料 要在 5 ns - 1.5 ns = 3.5 ns 就要出現而且要穩定不能變動
直到 5 ns + 2 ns = 7 ns 後才能變化讓下一筆資料進來 而在資料出現的時間
到下一筆資料可以出現的這段時間 3.5 ns (7 ns - 2.5 ns) 稱為最小脈波寬度
意思就是你資料要被正確擷取到 他必須維持最短的時間是多少
※ 編輯: horsehead 來自: 61.228.77.86 (10/16 00:37)
1F:推 pow:你的hold time說明那邊 把D和Q混在一起了喔 10/16 04:40
2F:→ pow:hold time是對D來說 你提到fanout 有點怪怪的 10/16 04:42
3F:推 ccjin:謝謝 h大 10/16 08:16
4F:→ horsehead:抱歉 沒說清楚 我fanout是指Q那邊再扇出出去 如果D那邊 10/16 09:24
5F:→ horsehead:變化太快 會讓Q那端的邏輯閘做出不同的解讀 其實我如果 10/16 09:26
6F:→ horsehead:我畫張圖 這個問題就很好理解了 只可惜我不會畫..囧 10/16 09:27
7F:推 pow:你提到的 其實是hold time對minimum clock period的影響 10/16 19:23
8F:→ pow:不是hold time的由來 10/16 19:24
9F:→ pow:hold time和setup time都和Flip Flop本身的電路設計有關係 10/16 19:24
10F:→ pow:有的flip flop可以有負的 setup time 10/16 19:25
11F:→ horsehead:我沒提到hold time對minimum clock period的影響吧..囧 10/16 23:39
12F:→ horsehead:抱歉 我看錯 p大的意思了 我是舉一個好一點的例子給原po 10/16 23:42
13F:→ horsehead:理解..對初學者而言這種想法比較容易懂得 10/16 23:43
14F:→ horsehead:另外 tsh 跟 th 當然是可以有負值的 不過通常是因為 10/16 23:44
15F:→ horsehead:clock path 與 data path 長短不一繞線出來結果造成的 10/16 23:45
16F:→ horsehead:到達DFF端點時經過這些 wire delay 後時序間相對應關係 10/16 23:47
17F:→ horsehead:仍然會維持sample clock 前後一段時間都穩定的關係 10/16 23:48
18F:→ horsehead:我目前看過比較多的例子都是這樣子而來的 至於是否在DFF 10/16 23:49
19F:→ horsehead:的製程設計上 可以使他的物理特性變成可以接受負值的 10/16 23:51
20F:→ horsehead:timing 參數 小弟我經驗就比較不足無法得知了 這邊可能 10/16 23:51
21F:→ horsehead:要請p大補充講解一下了 10/16 23:52
22F:推 pow:www.ece.ncsu.edu/asic/ece733/2009/docs/FlipFlops.pdf 10/17 01:31
23F:→ pow:flip flop有master-slave和pulse-triggered latch兩種 10/17 01:32
24F:→ pow:看完上面那份pdf就知道了 10/17 01:32
28F:→ sneak: //noxiv.com 01/04 22:03