FPGA/CPLD數字電路原理介紹

發(fā)布時(shí)間:2016-5-10 09:56    發(fā)布者:designapp
關(guān)鍵詞: FPGA , CPLD
當產(chǎn)生門(mén)控時(shí)鐘的組合邏輯超過(guò)一級時(shí),證設計項目的可靠性變得很困難。即使樣機或仿真結果沒(méi)有顯示出靜態(tài)險象,但實(shí)際上仍然可能存在著(zhù)危險。通常,我們不應該用多級組合邏輯去鐘控PLD設計中的觸發(fā)器。

圖1給出一個(gè)含有險象的多級時(shí)鐘的例子。時(shí)鐘是由SEL引腳控制的多路選擇器輸出的。多路選擇器的輸入是時(shí)鐘(CLK)和該時(shí)鐘的2分頻 (DIV2)。由圖1的定時(shí)波形圖看出,在兩個(gè)時(shí)鐘均為邏輯1的情況下,當SEL線(xiàn)的狀態(tài)改變時(shí),存在靜態(tài)險象。險象的程度取決于工作的條件。 多級邏輯的險象是可以去除的。
  


圖1 有靜態(tài)險象的多級時(shí)鐘

圖2給出圖1電路的一種單級時(shí)鐘的替代方案。圖中SEL引腳和DIV2信號用于使能D觸發(fā)器的使能輸入端,而不是用于該觸發(fā)器的時(shí)鐘引腳。采用這個(gè)電路并不需要附加PLD的邏輯單元,工作卻可靠多了。 不同的系統需要采用不同的方法去除多級時(shí)鐘,并沒(méi)有固定的模式。
  


圖2 無(wú)靜態(tài)險象的多級時(shí)鐘

行波時(shí)鐘

另一種流行的時(shí)鐘電路是采用行波時(shí)鐘,即一個(gè)觸發(fā)器的輸出用作另一個(gè)觸發(fā)器的時(shí)鐘輸入。如果仔細地設計,行波時(shí)鐘可以象全局時(shí)鐘一樣地可靠工作。然而,行波時(shí)鐘使得與電路有關(guān)的定時(shí)計算變得很復雜。行波時(shí)鐘在行波鏈上各觸發(fā)器的時(shí)鐘之間產(chǎn)生較大的時(shí)間偏移,并且會(huì )超出最壞情況下的建立時(shí)間、保持時(shí)間和電路中時(shí)鐘到輸出的延時(shí),使系統的實(shí)際速度下降。

用計數翻轉型觸發(fā)器構成異步計數器時(shí)常采用行波時(shí)鐘,一個(gè)觸發(fā)器的輸出鐘控下一個(gè)觸發(fā)器的輸入,參看圖3同步計數器通常是代替異步計數器的更好方案,這是因為兩者需要同樣多的宏單元而同步計數器有較快的時(shí)鐘到輸出的時(shí)間。圖4給出具有全局時(shí)鐘的同步計數器,它和圖3功能相同,用了同樣多的邏輯單元實(shí)現,卻有較快的時(shí)鐘到輸出的時(shí)間。幾乎所有PLD開(kāi)發(fā)軟件都提供多種多樣的同步計數器。
  


圖3 行波時(shí)鐘
  


圖4 行波時(shí)鐘轉換成全局時(shí)鐘

多時(shí)鐘系統

許多系統要求在同一個(gè)PLD內采用多時(shí)鐘。最常見(jiàn)的例子是兩個(gè)異步微處理器器之間的接口,或微處理器和異步通信通道的接口。由于兩個(gè)時(shí)鐘信號之間要求一定的建立和保持時(shí)間,所以,上述應用引進(jìn)了附加的定時(shí)約束條件。它們也會(huì )要求將某些異步信號同步化。

圖5給出一個(gè)多時(shí)鐘系統的實(shí)例。CLK_A用以鐘控REG_A,CLK_B用于鐘控REG_B,由于REG_A驅動(dòng)著(zhù)進(jìn)入REG_B的組合邏輯,故CLK_A的上升沿相對于CLK_B的上升沿有建立時(shí)間和保持時(shí)間的要求。由于REG_B不驅動(dòng)饋到REG_A的邏輯,CLK_B的上升沿相對于 CLK_A沒(méi)有建立時(shí)間的要求。此外,由于時(shí)鐘的下降沿不影響觸發(fā)器的狀態(tài),所以CLK_A和CLK_B的下降沿之間沒(méi)有時(shí)間上的要求。如圖5所示,電路中有兩個(gè)獨立的時(shí)鐘,可是,在它們之間的建立時(shí)間和保持時(shí)間的要求是不能保證的。在這種情況下,必須將電路同步化。圖6 給出REG_A的值(如何在使用前)同CLK_B同步化。新的觸發(fā)器REG_C由GLK_B觸控,保證REG_G的輸出符合REG_B的建立時(shí)間。然而,這個(gè)方法使輸出延時(shí)了一個(gè)時(shí)鐘周期。
  


圖5 多時(shí)鐘系統 (定時(shí)波形示出CLK_A的上升沿相對于CLK_B的上升沿有建立時(shí)間和保持時(shí)間的約束條件)
  


圖6 具有同步寄存器輸出的多時(shí)鐘系統

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


圖7 不同源時(shí)鐘

如圖7所示,系統有兩個(gè)不同源時(shí)鐘,一個(gè)為3MHz,一個(gè)為5MHz,不同的觸發(fā)器使用不同的時(shí)鐘。為了系統穩定,我們引入一個(gè)20MHz時(shí)鐘,將3M和5M時(shí)鐘同步化,如圖8所示。 20M的高頻時(shí)鐘將作為系統時(shí)鐘,輸入到所有觸發(fā)器的的時(shí)鐘端。3M_EN 和5M_EN將控制所有觸發(fā)器的使能端。即原來(lái)接3M時(shí)鐘的觸發(fā)器,接20M時(shí)鐘,同時(shí)3M_EN 將控制該觸發(fā)器使能 ,原接5M時(shí)鐘的觸發(fā)器,也接20M時(shí)鐘,同時(shí)5M_EN 將控制該觸發(fā)器使能。 這樣我們就可以將任何非同源時(shí)鐘同步化。
  


圖8 同步化任意非同源時(shí)鐘

另外,異步信號輸入總是無(wú)法滿(mǎn)足數據的建立保持時(shí)間,容易使系統進(jìn)入亞穩態(tài),所以也建議設計者把所有異步輸入都先經(jīng)過(guò)雙觸發(fā)器進(jìn)行同步化。穩定可靠的時(shí)鐘是系統穩定可靠的重要條件,我們不能夠將任何可能含有毛刺的輸出作為時(shí)鐘信號,并且盡可能只使用一個(gè)全局時(shí)鐘,對多時(shí)鐘系統要注意同步異步信號和非同源時(shí)鐘。
本文地址:http://selenalain.com/thread-165914-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页