目前主流的FPGA仍是基于查找表技術(shù)的,已經(jīng)遠(yuǎn)遠(yuǎn)超出了先前版本的基本性能,并且整合了常用功能(如RAM、時(shí)鐘管理和DSP)的硬核(ASIC型)模塊。FPGA芯片主要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。
fpga芯片系統(tǒng)結(jié)構(gòu)圖
1. 可編程輸入輸出單元(IOB)
可編程輸入/ 輸出單元簡(jiǎn)稱I/O 單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入/ 輸出信號(hào)的驅(qū)動(dòng)與匹配要求,其示意結(jié)構(gòu)如下圖 所示。FPGA 內(nèi)的I/O 按組分類,每組都能夠獨(dú)立地支持不同的I/O標(biāo)準(zhǔn)。通過軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與I/O 物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小,可以改變上、下拉電阻。目前,I/O 口的頻率也越來越高,一些高端的FPGA 通過DDR 寄存器技術(shù)可以支持高達(dá)2Gbps 的數(shù)據(jù)速率。
IOB內(nèi)部結(jié)構(gòu)
外部輸入信號(hào)可以通過IOB 模塊的存儲(chǔ)單元輸入到FPGA 的內(nèi)部,也可以直接輸入FPGA 內(nèi)部。當(dāng)外部輸入信號(hào)經(jīng)過IOB 模塊的存儲(chǔ)單元輸入到FPGA 內(nèi)部時(shí),其保持時(shí)間(Hold Time) 的要求可以降低,通常默認(rèn)為0。為了便于管理和適應(yīng)多種電器標(biāo)準(zhǔn),F(xiàn)PGA 的IOB 被劃分為若干個(gè)組(bank),每個(gè)bank 的接口標(biāo)準(zhǔn)由其接口電壓VCCO 決定,一個(gè)bank 只能有一種VCCO,但不同bank 的VCCO 可以不同。只有相同電氣標(biāo)準(zhǔn)的端口才能連接在一起,VCCO 電壓相同是接口標(biāo)準(zhǔn)的基本條件。
2.基本可編程邏輯單元
FPGA的基本可編程邏輯單元是由查找表(LUT)和寄存器(Register)組成的,查找表完成純組合邏輯功能。FPGA內(nèi)部寄存器可配置為帶同步/異步復(fù)位和置位、時(shí)鐘使能的觸發(fā)器,也可以配置成為鎖存器。FPGA一般依賴寄存器完成同步時(shí)序邏輯設(shè)計(jì)。一般來說,比較經(jīng)典的基本可編程單元的配置是一個(gè)寄存器加一個(gè)查找表,但不同廠商的寄存器和查找表的內(nèi)部結(jié)構(gòu)有一定的差異,而且寄存器和查找表的組合模式也不同。
學(xué)習(xí)底層配置單元的LUT和Register比率的一個(gè)重要意義在于器件選型和規(guī)模估算。由于FPGA內(nèi)部除了基本可編程邏輯單元外,還有嵌入式的RAM、PLL或者是DLL,專用的Hard IP Core等,這些模塊也能等效出一定規(guī)模的系統(tǒng)門,所以簡(jiǎn)單科學(xué)的方法是用器件的Register或LUT的數(shù)量衡量。
3.?dāng)?shù)字時(shí)鐘管理模塊(DCM)
業(yè)內(nèi)大多數(shù)FPGA 均提供數(shù)字時(shí)鐘管理( 賽靈思公司的全部FPGA 均具有這種特性)。賽靈思公司推出最先進(jìn)的FPGA 提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過濾功能。
4. 嵌入式塊RAM(BRAM)
大多數(shù)FPGA都具有內(nèi)嵌的塊RAM,這大大拓展了FPGA的應(yīng)用范圍和靈活性。塊RAM可被配置為單端口RAM、雙端口RAM、內(nèi)容地址存儲(chǔ)器 (CAM)以及FIFO等常用存儲(chǔ)結(jié)構(gòu)。CAM存儲(chǔ)器在其內(nèi)部的每個(gè)存儲(chǔ)單元中都有一個(gè)比較邏輯,寫入 CAM中的數(shù)據(jù)會(huì)和內(nèi)部的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有數(shù)據(jù)的地址,因而在路由的地址交換器中有廣泛的應(yīng)用。除了塊RAM,還可以將 FPGA中的LUT靈活地配置成RAM、ROM和FIFO等結(jié)構(gòu)。在實(shí)際應(yīng)用中,芯片內(nèi)部塊RAM的數(shù)量也是選擇芯片的一個(gè)重要因素。
內(nèi)嵌的塊RAM
5.豐富的布線資源
布線資源連通FPGA內(nèi)部所有單元,連線的長度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。布線資源的劃分:
1)全局性的專用布線資源:以完成器件內(nèi)部的全局時(shí)鐘和全局復(fù)位/置位的布線;
2)長線資源:用以完成器件Bank間的一些高速信號(hào)和一些第二全局時(shí)鐘信號(hào)的布線(這里不懂什么是“第二全局時(shí)鐘信號(hào)”);
3)短線資源:用來完成基本邏輯單元間的邏輯互連與布線;
4)其他:在邏輯單元內(nèi)部還有著各種布線資源和專用時(shí)鐘、復(fù)位等控制信號(hào)線。
由于在設(shè)計(jì)過程中,往往由布局布線器自動(dòng)根據(jù)輸入的邏輯網(wǎng)表的拓?fù)浣Y(jié)構(gòu)和約束條件選擇可用的布線資源連通所用的底層單元模塊,所以常常忽略布線資源。其實(shí)布線資源的優(yōu)化與使用和實(shí)現(xiàn)結(jié)果有直接關(guān)系。
FPGA內(nèi)部互連布線
6、底層內(nèi)嵌功能單元
內(nèi)嵌功能模塊主要指DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSP 等軟處理核(Soft Core)?,F(xiàn)在越來越豐富的內(nèi)嵌功能單元,使得單片F(xiàn)PGA 成為了系統(tǒng)級(jí)的設(shè)計(jì)工具,使其具備了軟硬件聯(lián)合設(shè)計(jì)的能力,逐步向SOC 平臺(tái)過渡。
DLL 和PLL 具有類似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。賽靈思公司生產(chǎn)的芯片上集成了DCM 和DLL,Altera 公司的芯片集成了PLL,Lattice 公司的新型芯片上同時(shí)集成了PLL 和DLL。PLL 和DLL 可以通過IP 核生成的工具方便地進(jìn)行管理和配置。DLL 的結(jié)構(gòu)如下圖所示。
典型的DLL模塊示意圖
7. 內(nèi)嵌專用硬核
內(nèi)嵌專用硬核是相對(duì)底層嵌入的軟核而言的,指FPGA處理能力強(qiáng)大的硬核(Hard Core),等效于ASIC電路。為了提高FPGA性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專用的硬核。例如:為了提高FPGA的乘法速度,主流的FPGA 中都集成了專用乘法器;為了適用通信總線與接口標(biāo)準(zhǔn),很多高端的FPGA內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十Gbps的收發(fā)速度。
評(píng)論
查看更多