1.觸發(fā)器及其建立時間和保持時間
對于觸發(fā)器而言誊役,只有在時鐘clk上升沿到來的那一刻才會改變觸發(fā)器的輸出值,所以我們可以將觸發(fā)器看作是一個開關大咱,這個開關只有在時鐘上升沿起作用抱究,只有在時鐘clk上升沿的時候采集輸入值(input value)并將其輸出。
在仿真器上靖苇,時鐘的上升沿或者下降沿是沒有延時的(表現(xiàn)為直上或者直下),但是在實際工程中班缰,時鐘上升沿或者下降沿是傾斜的贤壁,即時鐘的上升或者下降是需要一定時間的。
所以這就要求在時鐘上升沿到來之時埠忘,觸發(fā)器的輸入數(shù)據(jù)需要保持穩(wěn)定脾拆;另外馒索,在時鐘上升沿到來之后,需要保證數(shù)據(jù)保持一定的穩(wěn)定名船,否則可能會造成前一寄存器的輸出太快而沖掉了后一寄存器的正確數(shù)據(jù)双揪。這是觸發(fā)器的固有屬性。
簡而言之就是:
(1)在clk到來之前包帚,需要數(shù)據(jù)保持穩(wěn)定,即需要數(shù)據(jù)在clk到來之前“預先準備好”运吓,這段時間稱為建立時間渴邦;
(2)在clk到來之后,需要數(shù)據(jù)保持穩(wěn)定拘哨,即需要數(shù)據(jù)在clk到來之后“不能變化”谋梭,這段時間稱為保持時間。
2.Timing Path 和 Data Path
在靜態(tài)時序分析中倦青,時間路徑和數(shù)據(jù)路徑極為重要瓮床,也是分析建立時間和保持時間的一個較好的手段方法。
如下圖所示产镐,數(shù)據(jù)data由DFF1在時鐘上升沿采樣隘庄,然后DFF1對數(shù)據(jù)進行輸出,隨后經(jīng)歷組合邏輯電路癣亚,最終到達DFF2的輸入口丑掺,可以把這條數(shù)據(jù)通路稱為data path,即數(shù)據(jù)經(jīng)過的路徑為:buffer1->dff1->logic->dff2述雾。而時鐘到達DFF2時的路徑為:buffer2->dff2街州,這條路徑稱為timing path。
- 對于建立時間而言玻孟,需要考慮的重點在于:數(shù)據(jù)經(jīng)過dff1和組合邏輯logic之后唆缴,要比下一個時鐘上升沿更快地到達ddf2。換句話說黍翎,就是data path上的經(jīng)歷的時間要比(timing path + Tclk)更短面徽。需要保證以下公式成立才能確保時序不會發(fā)生違例,否則稱為setup time violation匣掸。
- 對于保持時間而言斗忌,需要考慮的重點在于:數(shù)據(jù)經(jīng)過dff1和組合邏輯logic之后,要在時鐘上升沿到來之后還能保持一定的時間旺聚。換句話說织阳,就是data path上經(jīng)歷的時間要比timing path上所經(jīng)歷的時間更長。即需要保證以下公式成立才能確保時序不會發(fā)生違例砰粹,否則稱為hold time violation唧躲。
3.建立時間造挽、保持時間分析例子
如下圖所示,有一個同步設計的電路弄痹,圖中標明了每個器件和線路上時延的最大值和最小值饭入,請根據(jù)圖中電路及其時延數(shù)值,分析該電路的建立時間和保持時間是否違例(時鐘周期為15ns)肛真。
建立時間谐丢。對于data path而言,經(jīng)歷的時間為:2+11+2+9+2+4=30蚓让,而對于timing path而言乾忱,經(jīng)歷的時間為:15+2+5+2=24,所以建立時間不滿足時序要求历极。
保持時間窄瘟。對于data path而言,經(jīng)歷的時間為:1+9+1+6+1=18趟卸,而對于timing path而言蹄葱,經(jīng)歷的時間為:3+9+3+2=17,所以保持時間滿足時序的要求锄列。
4.常見的觸發(fā)器
D觸發(fā)器的特征方程及其真值表如下所示:
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 1 |
JK觸發(fā)器的特征方程及其真值表如下所示:
0 | 0 | Q | Q |
0 | 1 | Q | 0 |
1 | 0 | Q | 1 |
1 | 1 | Q | Q' |
T觸發(fā)器的特征方程及其真值表如下所示:
0 | Q | Q |
1 | Q | Q' |