FPGA設計頻率計算方法
我們的設計需要多大容量的芯片?我們的設計能跑多快?這是經(jīng)常困擾工程師的兩個(gè)問(wèn)題。對于前一個(gè)問(wèn)題,我們可能還能先以一個(gè)比較大的芯片實(shí)現原型,待原型完成再選用大小合適的芯片實(shí)現。對于后者,我們需要一個(gè)比較精確的預估,我們的設計能跑50M,100M還是133M?首先讓我們先來(lái)看看Fmax是如何計算出來(lái)的。
圖(1)是一個(gè)通用的模型用來(lái)計算FPGA的。我們可以看出,Fmax受Tsu,Tco,Tlogic和Troute四個(gè)參數影響。(由于使用FPGA全局時(shí)鐘,時(shí)鐘的抖動(dòng)在這里不考慮)。
時(shí)鐘周期T = Tco + Tlogic + Troute + Tsu
時(shí)鐘頻率Fmax = 1/Tmax
其中:
Tco:D觸發(fā)器的輸出延時(shí)
Tlogic:組合邏輯延時(shí)
Troute:布線(xiàn)延時(shí)
Tsu:D觸發(fā)器的建立時(shí)間
圖(1)時(shí)鐘周期的計算模型
由圖(1)可以看出,在影響Fmax的四個(gè)參數中,由于針對某一個(gè)器件Tsu和Tco是固定的,因此我們在設計中需要考慮的參數只有兩個(gè)Tlogic和Troute.通過(guò)良好的設計以及一些如Pipeline的技巧,我們可以把Tlogic和Troute控制在一定的范圍內。達到我們所要求的Fmax.
經(jīng)驗表明一個(gè)良好的設計,通??梢詫⒔M合邏輯的層次控制在4層以?xún)?,即(Lut Levels《=4)。而Lut Levels(組合邏輯的層次)將直接影響Tlogic和Troute的大小。組合邏輯的層次多,則Tlogic和Troute的延時(shí)就大,反之,組合邏輯的層次少,則Tlogic和Troute的延時(shí)就小。
讓我們回過(guò)頭來(lái)看看Xilinx和Altera的FPGA是如何構成的。是由Logic Cell(Xilinx)或Logic Element(Altera)這一種基本結構和連接各個(gè)Logic Cell或Logic Element的連線(xiàn)資源構成。無(wú)論是Logic Cell還是Logic Element,排除其各自的特點(diǎn),取其共性為一個(gè)4輸入的查找表和一個(gè)D觸發(fā)器。如圖(2)所示。而任何復雜的邏輯都是由此基本單元復合而成。圖(3)。上一個(gè)D觸發(fā)器的輸出到下一個(gè)D觸發(fā)器的輸入所經(jīng)過(guò)的LUT的個(gè)數就是組合邏輯的層次(Lut Levels)。因此,電路中用于實(shí)現組合邏輯的延時(shí)就是所有Tlut的總和。在這里取Lut Levels = 4.故Tlogic = 4 * Tlut.
圖(2)FPGA基本邏輯單元
圖(3)復雜組合邏輯的實(shí)現
解決的Tlogic以后,我們來(lái)看看Troute如何來(lái)計算。由于Xilinx和Altera在走線(xiàn)資源的設計上并不一樣,并且Xilinx沒(méi)有給出布線(xiàn)延時(shí)的模型,因此更難于分析,不過(guò)好在業(yè)內對布線(xiàn)延時(shí)與邏輯延時(shí)的統計分析表明,邏輯延時(shí)與布線(xiàn)延時(shí)的比值約為1:1到1:2.由于我們所選用的芯片大量的已經(jīng)進(jìn)入0.18um和0.13um深亞微米的工藝,因此我們取邏輯延時(shí)與布線(xiàn)延時(shí)的比值為1:2.
Troute = 2 * Tlogic
Tmax = Tco + Tlogic + Troute + Tsu
= Tco + Tsu + 3 * Tlogic
= Tco + Tsu + 12 * Tlut
下表是我們常用的一些Xilinx和Altera器件的性能估算。我們選取的是各個(gè)系列中的最低的速度等級。由于A(yíng)ltera的APEX,APEX II系列器件的不同規模的參數不同,我們選取EP20K400E和EP2A15作代表。
# 以EP20K400E-3 的數據計算得出。
## 以 EP2A15-9 的數據計算得出。
評論