新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA內部自復位電路設計方案

        FPGA內部自復位電路設計方案

        作者: 時間:2024-02-19 來源:至芯科技 收藏

        1、定義

        本文引用地址:http://www.104case.com/article/202402/455483.htm

          復位信號是一個脈沖信號,它會使設計的電路進入設定的初始化狀態,一般它作用于寄存器,使寄存器初始化為設定值;其脈沖有效時間長度必須大于信號到達寄存器的時延,這樣才有可能保證復位的可靠性。

          下面將討論/CPLD的設計。

          2、分類及不同復位設計的影響

          根據電路設計,復位可分為異步復位和同步復位。

          對于異步復位,電路對復位信號是電平敏感的,如果復位信號受到干擾,如出現短暫的脈沖跳變,電路就會部分或全部被恢復為初始狀態,這是我們不愿看到的。因此,異步復位信號是一個關鍵信號,在電路設計時,如PCB Layout需要對其優先考慮和作特別保護,避免信號線出現的干擾產生非期望的復位。

          對于同步復位,電路在時鐘信號下對復位信號進行采樣,復位信號只在時鐘的跳變沿(邊沿)有效;如果復位信號受到干擾,只要該干擾脈沖不出現在時鐘的跳變沿,或者脈沖能量不足以使時鐘采樣到有效的信號,電路就不會被異常復位,這樣可有效降低信號線上出現毛刺等干擾信號所產生誤復位操作的概率,提高了電路的抗干擾能力。

          在/CPLD設計中,如果復位信號是通過組合邏輯產生的,我們在仿真的時候經??梢钥吹?,由于組合邏輯的競爭冒險產生的毛刺,會導致采用異步復位設計的電路被誤復位;因此在設計當中要對異步復位信號進行同步化處理,避免誤操作產生。

          具體的做法是:設計一個專門的復位模塊,它對復位信號(記為R)進行同步化處理,產生新的復位信號(記為RS),這個RS信號可作為其他模塊的復位輸入信號;而其他模塊的電路可全部采用異步復位的設計方式;這樣的設計對復位信號進行統一處理,可根據需要調整,相對靈活,需要注意的是,要盡量降低時鐘邊沿與復位信號R失效時刻的亞穩態出現概率。

          在實際的/CPLD應用當中,會出現沒有外部復位信號的情景,而FPGA/CPLD的時序設計又需要一個復位信號來使內部的寄存器初始化為設定的狀態,這時候就需要通過內部邏輯產生一個內部復位信號。

          3、FPGA內部自復位方法

          內部自復位信號是器件上電后僅產生的信號,之后一直保持無效至器件掉電。這種性信號,產生它的數字電路自身需要一個初始的確定狀態,并且需要上電后就處于該種狀態;對于FPGA來說,其內部寄存器在上電后的狀態是不確定的,即無法預期的,因此利用寄存器的狀態來產生復位信號,不是那么可靠;但我們可以考慮FPGA的其他資源,一般FPGA內部都有RAM資源,這些RAM都可以被配置數據初始化的,也就是說當FPGA上電配置完成后,被初始化的RAM的數據內容是確定的。利用這個特點,我們就可以設計可靠的內部自復位信號。

          下面給出實現方法:

          1)配置一個數據長度為1位,地址長度為n位,且全部初始化為1的單口RAM;

          2)設計一個針對該單口RAM的讀寫模塊,其內部維護一個n位讀指針rp和一個n位寫指針wp,rp在每個時鐘節拍將其值賦給wp后并加1,保證rp于wp,將單口RAM的輸出數據作為復位信號,另外RAM的輸入數據固定為0;這樣RAM數據被先讀出,然后被置為0,因此上電配置完成后經過2n個時鐘節拍,RAM的數據從全1變成全0,從而實現性脈沖信號的產生。另外,通過控制地址長度n或時鐘頻率,就可得到所需的脈沖寬度。

          4、結語

          復位信號是時序電路設計的基本信號,雖然只是一個脈沖信號,但要使設計的電路可靠地工作,復位信號也是一個需認真對待的因素。




        關鍵詞: FPGA 復位電路

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湖南省| 屏东市| 武穴市| 界首市| 石门县| 蒲城县| 襄垣县| 东明县| 遂宁市| 武威市| 女性| 行唐县| 大连市| 平山县| 太仆寺旗| 崇礼县| 湛江市| 精河县| 楚雄市| 名山县| 长寿区| 嘉荫县| 黄陵县| 讷河市| 日喀则市| 大荔县| 乐清市| 孟连| 广丰县| 开鲁县| 辉县市| 五原县| 雷山县| 巴林右旗| 巴青县| 保定市| 怀远县| 鄢陵县| 稻城县| 仲巴县| 扎囊县|