初學(xué)者經(jīng)常會有這樣的疑問,我們通過Verilog對FPGA進(jìn)行學(xué)習(xí),可是這和保持時間和建立時間有什么關(guān)系呢?這是因為FPGA的內(nèi)部組合邏輯是通過查找表來完成的,而時序上的邏輯是由D觸發(fā)器保證的。那么D觸發(fā)器是否工作正常呢?實際上這個是無法保證的,如果在這個周期內(nèi)我們輸入的信號由0變?yōu)?,D觸發(fā)器下個周期會跟著變嗎?這些問題就和建立時間,保持時間有關(guān)了。
這里我們就對建立時間做一個解釋,建立時間最好是為D數(shù)據(jù)在時鐘延到達(dá)之前所要維持穩(wěn)定的時間。那么這該如何來解釋呢?讓我們假設(shè)一個D觸發(fā)器的輸入由0變?yōu)?,當(dāng)時鐘上升沿到來時,如果想保證D觸發(fā)器本周期的輸入是1,那么在上升沿之前輸入1要保持一定的時間,我們才能認(rèn)為輸入的1是有效數(shù)據(jù),否則就會被認(rèn)為D觸發(fā)器的輸入為0。
所以這里所說的保持時間就是為了保證能夠在周期內(nèi)找到的正確輸入。我們要確定輸入數(shù)據(jù)在時鐘延到來之后還要保持的時間。其實這兩個概念我們在初接觸的時都是很不容易搞懂,但經(jīng)過上面的介紹后我們就能很大程度上了解了保持時間和建立時間的關(guān)系。