【篇章一】FPGA原理

FPGA(Field Programmable Gate Array),即現場可編程邏輯門陣列,它是作爲專用集成電路(ASIC)領域中一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。

 

FPGA優勢

(1)運行速度快
(2)FPGA引腳多,適合大規模的系統設計
(3)FPGA內部程序並行執行,工作效率高
(4)FPGA包含大量的IP核,方便開發
(5)FPGA設計靈活

 

FPGA開發流程

(1)設計規範
(2)設計輸入:設計輸入可以是原理圖、可以是描述電路邏輯的代碼(Verilog HDL或者VHDL)
(3)RTL仿真:又稱爲功能仿真,主要用來檢查代碼中的錯誤和代碼行爲的正確性
(4)綜合仿真:將輸入的文件轉換成具體的門電路
(5)佈局和佈線
(6)門級仿真:RTL級別的仿真主要用來檢查代碼的語法錯誤並驗證設計的組合邏輯是不是和理想中的一致,不考慮門電路之間的延時和連線上的延時;但是門級仿真是考慮的,主要用來驗證設計的數字邏輯電路的實際工作情況是不是符合設計要求。
(7)時序分析
(8)上系統驗證
 

FPGA內部結構

(1)

FPGA的內部結構主要包含六大部分,分別是:可編程的輸入輸出IO口、可編程的邏輯單元、底層嵌入式功能單元、嵌入式塊RAM、佈線資源和硬核。以下是具體的介紹。

1 可編程的輸入輸出IO口:可以使用軟件配置成不用的電氣標準和物理特性,比如可以調整上下拉電阻、匹配電阻等特性,使用靈活。
2 可編程邏輯單元:是可編程邏輯的主體,可以根據設計靈活地改變內部連接與配置,從而完成不同的邏輯功能,FPGA一般都是基於SRAM工藝,可編程邏輯單元基本都是基於查找表LUT(Look-Up-Table)和一些寄存器(主要是D觸發器)組成。
3 底層嵌入功能單元:指的是在FPGA內部集成的一些通用程度較高的嵌入式功能模塊,比如鎖相環、DSP等。
4 佈線資源:鏈接FPGA的內部所有單元,在實際FPGA佈局佈線時,佈局佈線的好壞會對設計的功能產生直接的影響。
5 硬核:這一部分比較少用,因爲硬核的功能比較單一,在實際開發中使用的不多。

 

(2)
補充說明:實際開發中可以從這四個方面認識FPGA的內部結構,分別是:可配置邏輯塊(CLB)、輸入輸出塊(IOB)、佈線通道(Routing Channels )、可編程開關(PSW)。

實際中,主要用CLB用來衡量FPGA的可使用資源數。

CLB主要包含查找表(LUT)和D觸發器,分別組成FPGA的組合邏輯單元和時序單元,爲數字電子系統設計做資源準備。

CLB在芯片內部以二維陣列的形式存在,這也是FPGA稱之爲現場可編程門陣列的原因。

CLB在實際生成數字電路的時候,使用佈線資源進行連接,當需要輸出或者是輸入時,可以將CLB連接到輸入輸出模塊。

 

FPGA的工作原理

注:在以下,EDA工具作爲Quartus II、ISE、Vivado等。

FPGA的內部結構主要包含可配置的邏輯塊(CLB)、輸入輸出塊、佈線資源和可編程開關。其中可配置的邏輯塊是FPGA的主要資源指標,在芯片內部以二維陣列的形式排布。

在CLB中包含查找表和D觸發器,查找表(LUT)負責給芯片提供組合邏輯D觸發器負責提供時序邏輯,爲設計數字電子系統提供資源。

例如LUT-4查找表,近似是一個16*1的RAM,具有RAM的物理結構,但是在作用上是類似ROM,負責存儲EDA工具綜合生成的邏輯電路的各種可能的運行結果,在FPGA工作的時候,依據端口輸入的數據流或者是邏輯流,在RAM中索引得出結果,配合D觸發器可以完成數字電子系統需要的組合邏輯和時序邏輯。

設計者在進行軟件設計的時候,依據設計目標,將電路功能以代碼的形式描述出來,EDA工具負責對代碼進行編譯和綜合,得到設計電路的各種可能結果,下載到FPGA的時候,這些數據都存儲在CLB的查找表中。系統開始工作時,在數據流或者是邏輯流的驅動下,在查找表中取出對應的數字邏輯,然後和D觸發器配合完成數字電子系統的組合邏輯設計和時序邏輯設計。
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章