FPGA和CPLD內(nèi)部自復(fù)位電路設(shè)計方案
發(fā)布時間:2016-07-12 責(zé)任編輯:susan
【導(dǎo)讀】復(fù)位信號是時序電路設(shè)計的基本信號,本文描述了復(fù)位的定義,分類及不同復(fù)位設(shè)計的影響,并討論了針對FPGA和CPLD的內(nèi)部自復(fù)位方案。
1、定義
復(fù)位信號是一個脈沖信號,它會使設(shè)計的電路進入設(shè)定的初始化狀態(tài),一般它作用于寄存器,使寄存器初始化為設(shè)定值;其脈沖有效時間長度必須大于信號到達寄存器的最大時延,這樣才有可能保證復(fù)位的可靠性。
下面將討論FPGA/CPLD的復(fù)位電路設(shè)計。
2、分類及不同復(fù)位設(shè)計的影響
根據(jù)電路設(shè)計,復(fù)位可分為異步復(fù)位和同步復(fù)位。
對于異步復(fù)位,電路對復(fù)位信號是電平敏感的,如果復(fù)位信號受到干擾,如出現(xiàn)短暫的脈沖跳變,電路就會部分或全部被恢復(fù)為初始狀態(tài),這是我們不愿看到的。因此,異步復(fù)位信號是一個關(guān)鍵信號,在電路設(shè)計時,如PCB Layout需要對其優(yōu)先考慮和作特別保護,避免信號線出現(xiàn)的干擾產(chǎn)生非期望的復(fù)位。
對于同步復(fù)位,電路在時鐘信號下對復(fù)位信號進行采樣,復(fù)位信號只在時鐘的跳變沿(邊沿)有效;如果復(fù)位信號受到干擾,只要該干擾脈沖不出現(xiàn)在時鐘的跳變沿,或者脈沖能量不足以使時鐘采樣到有效的信號,電路就不會被異常復(fù)位,這樣可有效降低信號線上出現(xiàn)毛刺等干擾信號所產(chǎn)生誤復(fù)位操作的概率,提高了電路的抗干擾能力。
在FPGA/CPLD設(shè)計中,如果復(fù)位信號是通過組合邏輯產(chǎn)生的,我們在仿真的時候經(jīng)??梢钥吹剑捎诮M合邏輯的競爭冒險產(chǎn)生的毛刺,會導(dǎo)致采用異步復(fù)位設(shè)計的電路被誤復(fù)位;因此在設(shè)計當(dāng)中要對異步復(fù)位信號進行同步化處理,避免誤操作產(chǎn)生。
具體的做法是:設(shè)計一個專門的復(fù)位模塊,它對復(fù)位信號(記為R)進行同步化處理,產(chǎn)生新的復(fù)位信號(記為RS),這個RS信號可作為其他模塊的復(fù)位輸入信號;而其他模塊的電路可全部采用異步復(fù)位的設(shè)計方式;這樣的設(shè)計對復(fù)位信號進行統(tǒng)一處理,可根據(jù)需要調(diào)整,相對靈活,需要注意的是,要盡量降低時鐘邊沿與復(fù)位信號R失效時刻的亞穩(wěn)態(tài)出現(xiàn)概率。
在實際的FPGA/CPLD應(yīng)用當(dāng)中,會出現(xiàn)沒有外部復(fù)位信號的情景,而FPGA/CPLD的時序設(shè)計又需要一個復(fù)位信號來使內(nèi)部的寄存器初始化為設(shè)定的狀態(tài),這時候就需要通過內(nèi)部邏輯產(chǎn)生一個內(nèi)部復(fù)位信號。
3、FPGA內(nèi)部自復(fù)位方法
內(nèi)部自復(fù)位信號是器件上電后僅產(chǎn)生一次的信號,之后一直保持無效至器件掉電。這種一次性信號,產(chǎn)生它的數(shù)字電路自身需要一個初始的確定狀態(tài),并且需要上電后就處于該種狀態(tài);對于FPGA來說,其內(nèi)部寄存器在上電后的狀態(tài)是不確定的,即無法預(yù)期的,因此利用寄存器的狀態(tài)來產(chǎn)生復(fù)位信號,不是那么可靠;但我們可以考慮FPGA的其他資源,一般FPGA內(nèi)部都有RAM資源,這些RAM都可以被配置數(shù)據(jù)初始化的,也就是說當(dāng)FPGA上電配置完成后,被初始化的RAM的數(shù)據(jù)內(nèi)容是確定的。利用這個特點,我們就可以設(shè)計可靠的內(nèi)部自復(fù)位信號。
下面給出實現(xiàn)方法:
1)配置一個數(shù)據(jù)長度為1位,地址長度為n位,且全部初始化為1的單口RAM;
2)設(shè)計一個針對該單口RAM的讀寫模塊,其內(nèi)部維護一個n位讀指針rp和一個n位寫指針wp,rp在每個時鐘節(jié)拍將其值賦給wp后并加1,保證rp領(lǐng)先于wp,將單口RAM的輸出數(shù)據(jù)作為復(fù)位信號,另外RAM的輸入數(shù)據(jù)固定為0;這樣RAM數(shù)據(jù)被先讀出,然后被置為0,因此上電配置完成后經(jīng)過2n個時鐘節(jié)拍,RAM的數(shù)據(jù)從全1變成全0,從而實現(xiàn)一次性脈沖信號的產(chǎn)生。另外,通過控制地址長度n或時鐘頻率,就可得到所需的脈沖寬度。
4、CPLD內(nèi)部自復(fù)位方法
CPLD其內(nèi)部沒有RAM,這樣就不能依靠RAM的初始化數(shù)據(jù)來產(chǎn)生可靠的復(fù)位;從原理上說,器件上電后,其寄存器的狀態(tài)是不確定的,因此我們是沒法得到一個確定的初始狀態(tài)去產(chǎn)生一個可靠的內(nèi)部復(fù)位信號,不過我們還是可以產(chǎn)生一個有一定失敗概率但概率可控的復(fù)位信號,其基本原理是:設(shè)計一個n位的狀態(tài)機,見下圖,其中一種狀態(tài)表示復(fù)位結(jié)束(記為LOOP),只要進入該狀態(tài)就會一直保持在LOOP狀態(tài)上,至于其他狀態(tài)都會跳入復(fù)位狀態(tài)(記為RESET),RESET狀態(tài)是暫態(tài),一個時鐘周期就離開進入LOOP狀態(tài);由于狀態(tài)LOOP出現(xiàn)的概率僅為:1/2n,我們控制n的長度,就可以將復(fù)位失敗概率控制在設(shè)定的要求內(nèi)。
Figure 1 內(nèi)部復(fù)位狀態(tài)圖
在實際的應(yīng)用中,我們發(fā)現(xiàn)某些CPLD產(chǎn)品有一個特性,見下圖:
Figure 2 摘自某產(chǎn)品的《handbook.pdf》
從上圖可知,該CPLD在完成內(nèi)部配置后,其內(nèi)部所有寄存器都處于清零狀態(tài),因此可以說寄存器在上電后是有一個確定的初始狀態(tài),但這個特性應(yīng)該是對通過修改具有固定內(nèi)連電路的邏輯功能來編程的CPLD所特有的,對通過改變內(nèi)部連線的布線來編程的FPGA來說,并未查到它具有這種特性,因此我們可以采取更簡單的方法來產(chǎn)生內(nèi)部自復(fù)位信號:維護一個n位計數(shù)器,它隨時鐘節(jié)拍一直遞增直至某個設(shè)定的最大值M,之后就停止計數(shù),這樣M之前的狀態(tài)就可實現(xiàn)為一個一次性的脈沖信號。
另外,該產(chǎn)品用戶如果希望配置完成后CPLD內(nèi)部各個寄存器的狀態(tài)處于可控或者特定的狀態(tài)(尤其當(dāng)其值不一定是清零的狀態(tài)),那么用戶可以使用器件提供的專用管腳DEV_CLRn來達到所期望的效果。
5、結(jié)語
復(fù)位信號是時序電路設(shè)計的基本信號,雖然只是一個脈沖信號,但要使設(shè)計的電路可靠地工作,復(fù)位信號也是一個需認真對待的因素。
特別推薦
- 利用自動化技術(shù)賦能中國基礎(chǔ)設(shè)施現(xiàn)代化
- 三極管電路輸入電壓阻抗
- 晶振怎么用,你真的知道嗎?
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
- 思特威推出超星光級系列4MP圖像傳感器SC485SL
- HOLTEK新推出HT32F59045脈搏血氧儀MCU
技術(shù)文章更多>>
- 貿(mào)澤推出針對基礎(chǔ)設(shè)施和智慧城市的工程技術(shù)資源中心
- “扒開”超級電容的“外衣”,看看超級電容“超級”在哪兒
- DigiKey 誠邀各位參會者蒞臨SPS 2024?展會參觀交流,體驗最新自動化產(chǎn)品
- 提前圍觀第104屆中國電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動器如何選型,一文告訴您
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢想電子
模擬鎖相環(huán)
耐壓測試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池
紐扣電池
歐勝
耦合技術(shù)
排電阻
排母連接器
排針連接器
片狀電感
偏光片
偏轉(zhuǎn)線圈
頻率測量儀
頻率器件
頻譜測試儀
平板電腦