新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 影響FPGA設計中時鐘因素的探討

        影響FPGA設計中時鐘因素的探討

        ——
        作者: 時間:2008-07-21 來源:電子開發網 收藏

          總結:提高工作頻率的本質就是要減少寄存器到寄存器的時延,最有效的方法就是 避免出現大的組合邏輯,也就是要盡量去滿足四輸入的條件,減少LUT級聯的數量。我們 可以通過加約束、流水、切割狀態的方法提高工作頻率。

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

          在中進行設計時也要注意一下幾點:

             1. 一個模塊盡量只用一個,這里的一個模塊是指一個module或者是一個entity。在多域的設計中涉及到跨時鐘域的設計中最好有專門一個模塊做時鐘域的隔 離。這樣做可以讓綜合器綜合出更優的結果。

             2. 除非是低功耗設計,不然不要用門控時鐘--這會增加設計的不穩定性,在要用到門控時鐘的地方,也要將門控信號用時鐘的下降沿 打一拍再輸出與時鐘相與。

             3. 禁止用計數器分頻后的信號做其它模塊的時鐘,而要用改成時鐘使能的方式,否則這種時鐘滿天飛的方式對設計的可靠性極為不利,也大大增加了靜態時序分析的復雜性。

          1.4 不同時鐘域之間的同步

          當一個設計中的兩個模塊分別用的是兩個工作時鐘,那么在它們的接口處就工作在異步模式,這時為了保證數據能正確的處理那么就要對兩個模塊進行同步。

          這里的不同的時鐘域通常是以下的兩種情況:

          1、 兩個時鐘的頻率不同;

          2、 雖然兩個時鐘的頻率相同,但是它們是兩個獨立的時鐘,其相位沒有任何關系。
        分別如下兩個圖所示:

        圖10 兩個時鐘的頻率完全不同

        圖11兩個時鐘的頻率相同,但相位不相關

          兩個時鐘域之間傳輸的數據根據不同的位寬通常采用不同的同步的方法。

          1、單bit之間的同步且發送的每個pulse至少有1個周期寬度的情況

          這類同步主要是用于一些控制信號自己的同步。通常的采用方法就是輸出數據在接收的模塊中利用兩個觸發器采用系統時鐘打兩拍,如下圖12所示。對于這種同步需要說明以下幾點。

        圖12 一位同步器設計

          (1)圖12中的同步電路其實叫"一位同步器",它只能用來對一位異步信號進行同步,而且這個信號的寬度必須大于本級時鐘的脈沖寬度,否則有可能根本采不到這個異步信號。

          (2)為什么圖一中的同步電路只能用來對一位異步信號進行同步呢? (a)當有兩個或更多的異步信號(控制或地址)同時進入本時域來控制本時域的電路時,如果這些信號分別都用圖12中的同步電路來同步就會出現問題,由于連線延遲或其他延遲使兩個或更多的異步信號(控制或地址)之間產生了skew,那么這個skew經過圖12的同步器同步進入本時域后,會產生很大的skew 或產生競爭,導致本時域電路出錯。

          出現的問題如下圖13所示:

        圖13 同步多個控制信號時出錯

          (b)如果是異步數據總線要進入本時域,同樣不能用圖12的電路,因為數據的變化是很隨機的,其0的寬度或1的寬度和本時域時鐘脈沖無關,所以圖12的電路可能會采不到正確數據。

          (3)注意,第二個觸發器并不是避免“亞穩態的發生”,確切的說,該電路能夠防止亞穩態的傳播。也就是說,一旦第一個觸發器發生了亞穩態(可能性存在),由于有了第二個觸發器,亞穩態不會傳播到第二個觸發器以后的電路中去。

          (4)第一級觸發器發生了亞穩態,需要一個恢復時間來穩定下來,或者叫退出亞穩態。當恢復時間加上第二級觸發器的建立時間(更精確的,還要減去clock skew)小于等于時鐘周期的時候(這個條件還是很容易滿足的,一般要求兩級觸發器盡量接近,中間沒有任何組合邏輯,時鐘的skew較小),第二級觸發器就可以穩定的采樣,得到穩定的確定的數據了,防止了亞穩態的傳播。

          (5)FF2是采樣了FF1的輸出,當然是FF1輸出什么,FF2就輸出什么。僅僅延遲了1個周期。注意,亞穩態之所以叫做亞穩態,是指一旦FF1進入,其輸出電平不定,可能正確也可能錯誤。所以必須說明的是,雖然這種方法可以防止亞穩態的傳播,但是并不能保證兩級觸發器之后的數據是正確的,因此,這種電路都有一定數量的錯誤電平數據,所以,僅適用于少量對于錯誤不敏感的地方。對于敏感的電路,可以采用雙口RAM或FIFO。

          2 輸入pulse有可能小于一個時鐘周期寬度情況下的同步電路

          對2的情況通常采用如下圖14的反饋電路。該電路的分析如下:假設輸入的數據是高電平,那么由于第一個觸發器FF1是高電平清零,所有輸出也是高電平,采用正確。如果輸入是第電平那么被FF1被強制清零,這個時候輸出位零。這樣就保證了輸出的正確性。

        圖14輸入pulse有可能小于一個時鐘周期寬度情況下的同步電路

          對于要控制多個信號的情況可以參考詳細的分析:www.fpga.com.cn中的設計異步多時鐘系統的綜合以及描述技巧.pdf。


        上一頁 1 2 3 4 下一頁

        關鍵詞: FPGA 時鐘

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阜新| 山西省| 苏州市| 石家庄市| 吉木萨尔县| 安宁市| 拜泉县| 贺州市| 波密县| 江北区| 海晏县| 静宁县| 南部县| 海南省| 东港市| 抚宁县| 昌黎县| 汶上县| 天祝| 萍乡市| 商南县| 宿迁市| 双牌县| 宁晋县| 上杭县| 三亚市| 东乡族自治县| 水城县| 城市| 新沂市| 漠河县| 金寨县| 开封县| 甘德县| 门头沟区| 高尔夫| 隆昌县| 新宁县| 嘉定区| 新巴尔虎左旗| 土默特左旗|