一文解析FPGA的片上資源使用情況(組合邏輯及時序邏輯)
出處:電子發(fā)燒友網(wǎng) 發(fā)布于:2018-04-18 15:36:03
FPGA簡介
FPGA(Field-Programmable Gate Array), 即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。
本文主要介紹的是FPGA的片上資源使用情況,分別是從組合邏輯及時序邏輯來詳細的分析。

解析FPGA的片上資源使用情況
如何分析FPGA芯片上的組合邏輯(LUT)和時序邏輯(REG)的利用率。
一、如何得到LUT與REG的使用比例
我們先看一個FPGA工程的編譯結(jié)果:

在這個中,我們可以看到如下信息:
Total logic elements 24071/24624(98%): 該芯片中共有24624個LE資源,其中的98%在這個工程的這次編譯中得到了使用。
Total combinaTIonal funcTIons 21612/24624(88%): 該芯片的24624個LE資源中,88%用于實現(xiàn)組合邏輯。
Dedicated logic registers 8858/24624(36%): 該芯片的24624個LE資源中,36%用于實現(xiàn)寄存器,即時序邏輯。
就是從上述信息中,我得到了組合邏輯與時序邏輯的使用比例——21612/8858 = 2.4:1。
二、一份更詳細的資源利用率
在這個中,有一點可能會令人困惑:為什么Total combinaTIonal funcTIons與Dedicated logic registers之和(30470)大于Total logic elements(24071),甚至大于該芯片的總資源(24624)。我們再來看一份更詳細的資源使用——Fitter Resource Usage Summary:


這份包含很多信息,在這里我們只需要關(guān)心Total logic elements一項。Total logic elements 24071/24624(98%)由三種使用情況不同的LE資源組成:僅用于實現(xiàn)組合邏輯的LE(Combinational with no register 15213),僅用于實現(xiàn)時序邏輯的LE(Register only 2459),同時用于實現(xiàn)組合邏輯和時序邏輯的LE(Combinational with a register 6399)。
三、從Resource Property Editor看LE的使用情況
在進一步分析這些數(shù)據(jù)之前,我們有必要回顧一下FPGA的基本組成元素LE(Logic Element)的結(jié)構(gòu)和功能。以Altera的Cyclone III系列FPGA芯片為例,其LE內(nèi)部結(jié)構(gòu)如下圖所示:

這個LE同時用于實現(xiàn)組合邏輯和時序邏輯,其中藍色部分為組合邏輯(一個4輸入LUT),其中黃色高亮部分為時序邏輯(一個D觸發(fā)器)。 我們再來看一個更有趣的LE:

這個LE也同時用于實現(xiàn)組合邏輯和時序邏輯,與上一幅圖不同的地方在于,這里的組合邏輯(4輸入LUT)與時序邏輯(REG)并沒有連接關(guān)系。組合邏輯從COMBOUT直接輸出,時序邏輯從REGOUT輸出。這種互不相關(guān)的組合邏輯與時序邏輯共用同一個LE的情況很特殊,這是采用了Register Packing資源優(yōu)化技術(shù)之后的實現(xiàn)方式。如果沒有采用這一資源優(yōu)化技術(shù),就要用兩個LE來分別實現(xiàn)相應的組合邏輯和時序邏輯。
明白了上面這兩幅圖,大家也能由此類推,想象出僅用于實現(xiàn)組合邏輯的LE(Combinational with no register)和僅用于實現(xiàn)時序邏輯的LE(Register only)該是什么樣子。
四、“數(shù)字終于對上了!”
我們回到前面關(guān)于資源利用率分析的部分。有了上面介紹的知識,大家應該能夠把資源利用率中三種使用情況不同的LE區(qū)分開了。
我們把“同時用于實現(xiàn)組合邏輯和時序邏輯的LE(6399)”分別加到“僅用于實現(xiàn)組合邏輯的LE(15213)”和“僅用于實現(xiàn)時序邏輯的LE(2459)”上面,就可以得到“全部組合邏輯”(Total combinational functions = 6399 + 15213 = 21612)和“全部寄存器”(Dedicated logic registers = 6399 + 2459 = 8858)兩個數(shù)值了。這兩個數(shù)值就是幅圖中關(guān)于資源利用率的匯總結(jié)果,它們的比例恰好就是2.4:1。
由于6399這個數(shù)字被使用了兩次,所以我們初關(guān)于“Total combinational functions與Dedicated logic registers之和(30470 = (6399 + 15213) + (6399 + 2459))大于Total logic elements(24071 = 6399 + 15213 + 2459)”的困惑也得到了解答。
五、總結(jié)
由于FPGA設(shè)計中用到的組合邏輯與時序邏輯的數(shù)量不均衡,部分LE會僅用于實現(xiàn)組合邏輯或時序邏輯;進一步,由于布局位置的限制,單獨實現(xiàn)組合邏輯或時序邏輯的兩個LE可能不能合并到一個LE中實現(xiàn)。所以,在資源利用率中會出現(xiàn)三種使用情況不同的LE。
由于過長的組合邏輯鏈(級聯(lián)的LUT)會引入較大的延時,而時序邏輯(REG)能夠把較長的組合邏輯鏈分割成較短的組合邏輯鏈,有效地縮短關(guān)鍵路徑和次關(guān)鍵路徑的長度,進而提高該FPGA設(shè)計的整體時序性能,所以組合邏輯與時序邏輯的使用比例可以作為評價一個FPGA設(shè)計時序性能的輔助參數(shù)。
過于復雜的組合邏輯也會占用多個LE。我們在編寫HDL代碼的時候,不能單獨把減少Register的使用量作為節(jié)省資源的手段,而應該兼顧組合邏輯與時序邏輯,根據(jù)目標PLD器件的底層結(jié)構(gòu),編寫組合邏輯和時序邏輯比例符合PLD器件資源比例的代碼。
版權(quán)與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權(quán)等法律責任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 集成電路技術(shù)體系與場景化應用指南2026/1/8 10:10:43
- 集成電路傳統(tǒng)封裝:材料與工藝的全面解讀2025/8/1 10:32:18
- 一文讀懂TTL電路的基本結(jié)構(gòu)、工作原理和特性2020/9/8 11:29:48
- 如何通過R10電位器線性改變VRF的電壓值2020/7/15 15:09:26
- 一種集成電路開短路測試方案詳解2023/6/21 15:50:05









