FPGA時鐘設(shè)計(jì)
5 多時鐘系統(tǒng)
許多系統(tǒng)要求在同一個PLD內(nèi)采用多時鐘。最常見的例子是兩個異步微處理器之間的接口,或微處理器和異步通信通道的接口。由于兩個時鐘信號之間要求一定的建立和保持時間,所以,上述應(yīng)用引進(jìn)了附加的定時約束條件。它們也會要求將某些異步信號同步化。
圖7給出一個多時鐘系統(tǒng)的實(shí)例。CLK_A用以鐘控REG_A,CLK_B用于鐘控REG_B,由于REG_A驅(qū)動著進(jìn)入REG_B的組合邏輯,故CLK_A的上升沿相對于CLK_B的上升沿有建立時間和保持時間的要求。由于REG_B不驅(qū)動饋到REG_A的邏輯,CLK_B的上升沿相對于CLK_A沒有建立時間的要求。此外,由于時鐘的下降沿不影響觸發(fā)器的狀態(tài),所以CLK_A和CLK_B的下降沿之間沒有時間上的要求。電路中有兩個獨(dú)立的時鐘,可是,在它們之間的建立時間和保持時間的要求是不能保證的。在這種情況下,必須將電路同步化。圖8給出REG_A的值(如何在使用前)同CLK_B同步化。新的觸發(fā)器REG_C由GLK_B觸控,保證REG_G的輸出符合REG_B的建立時間。然而,這個方法使輸出延時了一個時鐘周期。
在許多應(yīng)用中只將異步信號同步化還是不夠的,當(dāng)系統(tǒng)中有兩個或兩個以上非同源時鐘的時候,數(shù)據(jù)的建立和保持時間很難得到保證,將面臨復(fù)雜的時間問題。最好的方法是將所有非同源時鐘同步化。使用PLD內(nèi)部的鎖項(xiàng)環(huán)(PLL或DLL)是一個效果很好的方法,但不是所有PLD都帶有PLL,DLL,而且?guī)в蠵LL功能的芯片大多價(jià)格昂貴,所以除非有特殊要求,一般場合可以不使用帶PLL的PLD。這時需要使用帶使能端的
D觸發(fā)器,并引入一個高頻時鐘。
6 結(jié)語
穩(wěn)定可靠的時鐘是系統(tǒng)穩(wěn)定可靠的重要條件,所以不能將任何可能含有毛刺的輸出作為時鐘信號,并且盡可能只使用一個全局時鐘,對多時鐘系統(tǒng)要注意同步異步信號和非同源時鐘。
評論