FPGA時鐘設(shè)計
出處:21IC 發(fā)布于:2011-08-22 10:22:27
摘要: 在FPGA 設(shè)計中, 為了成功地操作, 可靠的時鐘是非常關(guān)鍵的。設(shè)計不良的時鐘在極限的溫度、電壓下將導(dǎo)致錯誤的行為。在設(shè)計PLD/ FPGA 時通常采用如下四種類型時鐘: 全局時鐘、門控時鐘、多級邏輯時鐘和波動式時鐘。多時鐘系統(tǒng)包括上述四種時鐘類型的任意組合。
對于一個設(shè)計項目來說, 全局時鐘是簡單和可預(yù)測的時鐘。在PLD/ FPGA 設(shè)計中的時鐘方案是由專用的全局時鐘輸入引腳驅(qū)動的單個主時鐘去鐘控設(shè)計項目中的每一個觸發(fā)器。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘。PLD/ FPGA 都具有專門的全局時鐘引腳, 它直接連到器件中的每一個寄存器。這種全局時鐘提供器件中短的時鐘到輸出的延時。
1 全局時鐘
全局時鐘的實例如圖1 所示。圖1 中定時波形示出觸發(fā)器的數(shù)據(jù)輸入D[ 1. . 3] 應(yīng)遵守建立時間和保持時間的約束條件。建立和保持時間的數(shù)值在PLD 數(shù)據(jù)手冊中給出, 也可用軟件的定時分析器計算出來。如果在應(yīng)用中不能滿足建立和保持時間的要求, 則必須用時鐘同步輸入信號。

圖1 全局時鐘
2 門控時鐘
在許多應(yīng)用中, 整個設(shè)計項目都采用外部的全局時鐘是不可能或不實際的。PLD 具有乘積項邏輯陣列時鐘( 即時鐘是由邏輯產(chǎn)生的) , 允許任意函數(shù)單獨地鐘控各個觸發(fā)器。然而, 當你用陣列時鐘時, 應(yīng)仔細地分析時鐘函數(shù), 以避免毛刺。
通常用陣列時鐘構(gòu)成門控時鐘。門控時鐘常常同微處理器接口有關(guān), 用地址線去控制寫脈沖。然而, 每當用組合函數(shù)鐘控觸發(fā)器時, 通常都存在著門控時鐘。
如果符合下述條件, 門控時鐘可以象全局時鐘一樣可靠地工作, 圖2 所示是一個可靠的門控時鐘電路。

圖2 門控時鐘
?。?1) 驅(qū)動時鐘的邏輯必須只包含一個“與” 門或一個“或”門。如果采用任何附加邏輯在某些工作狀態(tài)下, 會出現(xiàn)競爭產(chǎn)生的毛刺。
?。?2) 邏輯門的一個輸入作為實際的時鐘, 而該邏輯門的所有其他輸入必須當成地址或控制線, 它們遵守相對于時鐘的建立和保持時間的約束。
在設(shè)計中可以將門控時鐘轉(zhuǎn)換成全局時鐘以改善設(shè)計項目的可靠性。圖3 示出如何用全局時鐘重新設(shè)計圖2 所示的電路。地址線在控制D 觸發(fā)器的使能輸入, 許多PLD 設(shè)計軟件, 如Max+ Plus 軟件都提供這種帶使能端的D 觸發(fā)器。當EN A 為高電平時, D 輸入端的值被鐘控到觸發(fā)器中: 當ENA 為低電平時, 維持現(xiàn)在的狀態(tài)。

圖3 "與" 門門控時鐘轉(zhuǎn)化成全局時鐘
3 多級邏輯時鐘
當產(chǎn)生門控時鐘的組合邏輯超過( 即超過單個的“與”門或“或”門) 時, 驗證設(shè)計項目的可靠性變得很困難。即使樣機或仿真結(jié)果沒有顯示出靜態(tài)險象, 但實際上仍然可能存在著危險。通常, 不應(yīng)該用多級組合邏輯去鐘控PLD 設(shè)計中的觸發(fā)器。
圖4 給出一個含有險象的多級時鐘的例子。時鐘是由SEL 引腳控制的多路選擇器輸出的。多路選擇器的輸入是時鐘( CLK) 和該時鐘的2 分頻( DIV2) 。多級邏輯的險象可以去除。例如, 可以插入“冗余邏輯”到設(shè)計項目中。然而, PLD/ FPGA 編譯器在邏輯綜合時會去掉這些冗余邏輯, 使得驗證險象是否真正被去除變得困難了。
為此, 必須應(yīng)尋求其他方法來實現(xiàn)電路的功能。

圖4 有靜態(tài)險象的多級時鐘
圖5 給出圖4 電路的一種單級時鐘的替代方案。
圖中SEL 引腳和DIV2 信號用于使能D 觸發(fā)器的使能輸入端, 而不是用于該觸發(fā)器的時鐘引腳。采用這個電路并不需要附加PLD 的邏輯單元, 工作卻可靠多了。

圖5 無靜態(tài)險象的多級時鐘
4 行波時鐘
另一種流行的時鐘電路是采用行波時鐘, 即一個觸發(fā)器的輸出用作另一個觸發(fā)器的時鐘輸入。如果仔細地設(shè)計, 行波時鐘可以像鐘一樣地可靠工作。然而, 行波時鐘使得與電路有關(guān)的定時計算變得很復(fù)雜。行波時鐘在行波鏈上各觸發(fā)器的時鐘之間產(chǎn)生較大的時間偏移, 并且會超出壞情況下的建立時間、保持時間和電路中時鐘到輸出的延時, 使系統(tǒng)的實際速度下降, 如圖6 所示。

圖6 行波時鐘
5 多時鐘系統(tǒng)
許多系統(tǒng)要求在同一個PLD 內(nèi)采用多時鐘。常見的例子是兩個異步微處理器之間的接口, 或微處理器和異步通信通道的接口。由于兩個時鐘信號之間要求一定的建立和保持時間, 所以, 上述應(yīng)用引進了附加的定時約束條件。它們也會要求將某些異步信號同步化。
圖7 給出一個多時鐘系統(tǒng)的實例。CLK _A 用以鐘控REG_A, CLK_B 用于鐘控REG_B, 由于REG_A驅(qū)動著進入REG_B 的組合邏輯, 故CLK_A 的上升沿相對于CLK_B 的上升沿有建立時間和保持時間的要求。由于REG_B 不驅(qū)動饋到REG_A 的邏輯, CLK_B的上升沿相對于CLK_A 沒有建立時間的要求。此外,由于時鐘的下降沿不影響觸發(fā)器的狀態(tài), 所以CLK_A和CLK_B 的下降沿之間沒有時間上的要求。電路中有兩個獨立的時鐘, 可是, 在它們之間的建立時間和保持時間的要求是不能保證的。在這種情況下, 必須將電路同步化。圖8 給出REG_A 的值( 如何在使用前) 同CLK_B 同步化。新的觸發(fā)器REG_C 由GLK_B 觸控,保證REG_G 的輸出符合REG_B 的建立時間。然而,這個方法使輸出延時了一個時鐘周期。

圖7 多時鐘系統(tǒng)
在許多應(yīng)用中只將異步信號同步化還是不夠的, 當系統(tǒng)中有兩個或兩個以上非同源時鐘的時候, 數(shù)據(jù)的建立和保持時間很難得到保證, 將面臨復(fù)雜的時間問題。
的方法是將所有非同源時鐘同步化。使用PLD 內(nèi)部的鎖項環(huán)( PLL 或DLL) 是一個效果很好的方法, 但不是所有PLD 都帶有PLL, DLL, 而且?guī)в蠵LL 功能的芯片大多價格昂貴, 所以除非有特殊要求, 一般場合可以不使用帶PLL 的PLD。這時需要使用帶使能端的D 觸發(fā)器, 并引入一個高頻時鐘。

圖8 具有同步寄存器輸出的多時鐘系統(tǒng)
6 結(jié)語
穩(wěn)定可靠的時鐘是系統(tǒng)穩(wěn)定可靠的重要條件, 所以不能將任何可能含有毛刺的輸出作為時鐘信號, 并且盡可能只使用一個全局時鐘, 對多時鐘系統(tǒng)要注意同步異步信號和非同源時鐘。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- EDA技術(shù)工具鏈與全流程設(shè)計運維指南2026/1/5 10:28:51
- PLC程序現(xiàn)場疑難問題排查與深度優(yōu)化指南2025/12/24 14:36:36
- PLC程序現(xiàn)場調(diào)試與優(yōu)化實操指南2025/12/24 14:29:57
- 工業(yè)PLC模擬量信號采集:調(diào)理技術(shù)與抗干擾工程方案2025/12/15 14:39:08
- PLC設(shè)備如何選型2025/9/5 17:15:14









