|
建立時間和保持時間 本文節選自特權同學的圖書《FPGA設計實戰演練(邏輯篇)》 配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 在這個波形中,我們看到clk_r3的前后各有一條虛線,前一條虛線到clk_r3上升沿的這段時間即建立時間,clk_r3上升沿到后一條虛線的這段時間即保持時間。前面對建立時間和保持時間下定義時提到過,在這段時間內不能夠有數據的變化,數據必須保持穩定。而在這個波形中,也確實沒有看到在建立時間和保持時間內,reg3in的數據有任何的變化,因此我們可以穩定的將reg3in的數據鎖存到reg3的輸出reg3out中。(特權同學,版權所有)
圖8.10 建立時間和保持時間都滿足要求的情況 如圖8.11所示的波形,同樣的一些信號,但我們發現reg3in在clk_r3的建立時間內發生了變化,這帶來的后果就是clk_r3上升沿鎖存到的reg3in數據不確定,那么隨后的reg3out值也會處于一個不確定狀態。比如第一個時鐘周期,原本reg3in應該是穩定的低電平,但是由于整個路徑上的延時時間過長,導致了reg3in在clk_r3的建立時間內數據還未能穩定下來,在建立時間內出現了電平正處于從高到低的變化,即不穩定的狀態,那么導致的后果就是reg3out的最終輸出不是確定的狀態,很可能是忽高忽低的亞穩態,而不是原本期望的低電平。(特權同學,版權所有)
圖8.11 建立時間違規的情況 我們再來看看保持時間違規的情況,如圖8.12所示,這次是數據傳輸得太快了,原本應該下一個時鐘周期到達clk_r3的數據竟然在clk_r3的前一個時鐘周期的保持時間還未過去就來到了。因此,它出現的最終危害也是后端輸出的reg3out處于不確定的狀態。(特權同學,版權所有)
圖8.12 保持時間違規的情況 |