FPGA芯片內部工作原理,以及其中有哪些專有設計?


https://www.zhihu.com/question/263728785/answer/289175276

 

最近要做一個關於FPGA的知識產權項目,想了解在FPGA芯片或產品中,哪些部門、結構、模塊或設計中是與其他芯片不同,只有FPGA專有的?
 
作者:王狗蛋
鏈接:https://www.zhihu.com/question/263728785/answer/289175276
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

第二次補圖

圖1 圖2

評論回復里的圖被吃了,加到這里

一種布線結構 布線結果

################### 原答案 ##################

  1. FPGA芯片內部工作原理

FPGA(Field-Programmable Gate Array),即現場可編程門陣列。從某種角度上講我不是很贊同“可編程”這種說法,而更傾向於“可描述”。 它可以通過硬件描述語言(Verilog或VHDL)描述一個電路設計,通過配套的EDA工具綜合與布局,並燒錄至 FPGA來實現設計需要。

目前所有的FPGA或eFPGA都包含大量的可編程邏輯單元和可編程布線單元。邏輯單元可以實現一小部分數字邏輯,而布線則連接這些邏輯單元來組成更大的數字電路。

可編程邏輯單元和可編程布線單元

可編程邏輯單元:

我們知道數字電路可以細分為組合邏輯和時序邏輯。 FPGA中實現組合邏輯的部分就是查找表(LUT),時許邏輯則依靠寄存器。若干個LUT和寄存器相互連接則構成了一個邏輯簇。不同的FPGA公司所定義的邏輯簇的結構也是不同的。 邏輯簇結構有2大好處,第一邏輯簇中的互聯速度要快,可以提高FPGA速度; 第二, 邏輯簇的應用可以簡化排版布線的復雜度,縮短綜合時間。

一個邏輯簇

可編程布線單元:

與定制電路不同, FPGA的布線資源都是預制好的, 因此預制的布線資源能夠連接絕大多數的邏輯單元(簇)。 對於用戶設計好的項目,通過控制一系列的開關來滿足特定單元間的互聯。 這也就使得布線資源占據了FPGA的絕大部分面積, 而且復雜的布線網絡中控制開關過多的話會大大降低FPGA的運行頻率。如果減少布線資源, 則會加大EDA軟件算法的難度,而且會導致電路布局布線失敗。

因此如何設計邏輯簇和與之配合的布線資源,使其達到速度和面積的均衡,而且還要考慮到EDA軟件算法的難度,執行時間以及內存占用, 這是每個FPGA廠商的核心中的核心。

2. 有哪些專有設計

上面簡述的邏輯資源和布線資源屬於FPGA硬件部分的范疇,也就是硬件的專有設計。

與之配套的還有其EDA軟件的專有設計。以前和一個搞FPGA的博士聊天, 他表示有2種通用芯片是需要有大量技術積累的; 一個是CPU,另一個是FPGA。 CPU的難點是其硬件結構,軟件指令集則不是廠家的主要難點。 而FPGA的硬件結構原理並不是主要技術壁壘, 但是其EDA軟件的核心算法則是每個公司的長期積累的成果。

他的觀點我還是比較贊同的。 試想, 如果一個小規模FPGA硬件結構和其配套EDA實現了的話,為什么不能把其等比例擴大使其成為一個超大規模的FPGA呢? 而現實是目前國產FPGA規模基本上都在50K LUTs左右。 (有個別宣傳有200K LUTs。目前好像還沒有量產)。

事實上, FPGA軟件綜合的每一個流程都是一個NP問題。 從映射, 裝箱, 排版 到布線。 而且還要加入物理結構的約束條件,以及時序驅動優化的約束。所有這些會大大增加算法的難度和程序的執行時間, 而且對於超過大規模的電路來說還要考慮軟件的內存占用。

因此在軟件工具鏈上的開發經驗的積累對於FPGA廠商來說是極為重要和專有的。就我了解的一些公司,可以對硬件結構申請專利,卻對核心算法嚴格保密甚至不去申請專利以防競爭對手通過專利簡報推測其內容。

以上是我的回答, 有錯誤的地方歡迎批評指出, 有不嚴謹的地方歡迎探討。如果你還有問題的話也歡迎繼續討論

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM