新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA設計頻率計算方法

        FPGA設計頻率計算方法

        作者: 時間:2017-06-04 來源:網絡 收藏

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

        我們的設計需要多大容量的芯片?我們的設計能跑多快?這是經常困擾工程師的兩個問題。對于前一個問題,我們可能還能先以一個比較大的芯片實現原型,待原型完成再選用大小合適的芯片實現。對于后者,我們需要一個比較精確的預估,我們的設計能跑50M,100M還是133M?首先讓我們先來看看Fmax是如何計算出來的。

        圖(1)是一個通用的模型用來計算的。我們可以看出,Fmax受Tsu,Tco,和Troute四個參數影響。(由于使用全局時鐘,時鐘的抖動在這里不考慮)。

        時鐘周期T = Tco + + Troute + Tsu

        時鐘頻率Fmax = 1/Tmax

        其中:

        Tco:的輸出延時

        :組合邏輯延時

        Troute:布線延時

        Tsu:的建立時間


        圖(1)時鐘周期的計算模型

        由圖(1)可以看出,在影響Fmax的四個參數中,由于針對某一個器件Tsu和Tco是固定的,因此我們在設計中需要考慮的參數只有兩個Tlogic和Troute.通過良好的設計以及一些如Pipeline的技巧,我們可以把Tlogic和Troute控制在一定的范圍內。達到我們所要求的Fmax.

        經驗表明一個良好的設計,通常可以將組合邏輯的層次控制在4層以內,即(Lut Levels《=4)。而Lut Levels(組合邏輯的層次)將直接影響Tlogic和Troute的大小。組合邏輯的層次多,則Tlogic和Troute的延時就大,反之,組合邏輯的層次少,則Tlogic和Troute的延時就小。

        讓我們回過頭來看看Xilinx和Altera的是如何構成的。是由Logic Cell(Xilinx)或Logic Element(Altera)這一種基本結構和連接各個Logic Cell或Logic Element的連線資源構成。無論是Logic Cell還是Logic Element,排除其各自的特點,取其共性為一個4輸入的查找表和一個。如圖(2)所示。而任何復雜的邏輯都是由此基本單元復合而成。圖(3)。上一個D觸發器的輸出到下一個D觸發器的輸入所經過的LUT的個數就是組合邏輯的層次(Lut Levels)。因此,電路中用于實現組合邏輯的延時就是所有Tlut的總和。在這里取Lut Levels = 4.故Tlogic = 4 * Tlut.



        圖(2)FPGA基本邏輯單元



        圖(3)復雜組合邏輯的實現

        解決的Tlogic以后,我們來看看Troute如何來計算。由于Xilinx和Altera在走線資源的設計上并不一樣,并且Xilinx沒有給出布線延時的模型,因此更難于分析,不過好在業內對布線延時與邏輯延時的統計分析表明,邏輯延時與布線延時的比值約為1:1到1:2.由于我們所選用的芯片大量的已經進入0.18um和0.13um深亞微米的工藝,因此我們取邏輯延時與布線延時的比值為1:2.

        Troute = 2 * Tlogic

        Tmax = Tco + Tlogic + Troute + Tsu

        = Tco + Tsu + 3 * Tlogic

        = Tco + Tsu + 12 * Tlut

        下表是我們常用的一些Xilinx和Altera器件的性能估算。我們選取的是各個系列中的最低的速度等級。由于Altera的APEX,APEX II系列器件的不同規模的參數不同,我們選取EP20K400E和EP2A15作代表。

         # 以EP20K400E-3 的數據計算得出。

          ## 以 EP2A15-9 的數據計算得出。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 页游| 泗阳县| 青龙| 富民县| 高要市| 财经| 吉水县| 白朗县| 郧西县| 龙陵县| 蒙城县| 康马县| 宁蒗| 云和县| 济阳县| 姜堰市| 吉安县| 电白县| 辉县市| 弋阳县| 新民市| 酉阳| 亚东县| 五河县| 芮城县| 阆中市| 邵东县| 铅山县| 周至县| 梅州市| 鄂尔多斯市| 大英县| 武宁县| 天峻县| 新野县| 彝良县| 西宁市| 苏州市| 红安县| 丽江市| 金平|