FPGA的基本結(jié)構(gòu):六大組成部分簡(jiǎn)介
FPGA由6部分組成,分別為可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內(nèi)嵌專用硬核等。
本文引用地址:http://cafeforensic.com/article/201610/308567.htm每個(gè)單元簡(jiǎn)介如下:
1.可編程輸入/輸出單元(I/O單元)
目前大多數(shù)FPGA的I/O單元被設(shè)計(jì)為可編程模式,即通過軟件的靈活配置,可適應(yīng)不同的電器標(biāo)準(zhǔn)與I/O物理特性;可以調(diào)整匹配阻抗特性,上下拉電阻;可以調(diào)整輸出驅(qū)動(dòng)電流的大小等。
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.嵌入式塊RAM
目前大多數(shù)FPGA都有內(nèi)嵌的塊RAM。嵌入式塊RAM可以配置為單端口RAM、雙端口RAM、偽雙端口RAM、CAM、FIFO等存儲(chǔ)結(jié)構(gòu)。
CAM,即為內(nèi)容地址存儲(chǔ)器。寫入CAM的數(shù)據(jù)會(huì)和其內(nèi)部存儲(chǔ)的每一個(gè)數(shù)據(jù)進(jìn)行比較,并返回與端口數(shù)據(jù)相同的所有內(nèi)部數(shù)據(jù)的地址。簡(jiǎn)單的說,RAM是一種寫地址,讀數(shù)據(jù)的存儲(chǔ)單元;CAM與RAM恰恰相反。
除了塊RAM,Xilinx和Lattice的FPGA還可以靈活地將LUT配置成RAM、ROM、FIFO等存儲(chǔ)結(jié)構(gòu)。
4.豐富的布線資源
布線資源連通FPGA內(nèi)部所有單元,連線的長(zhǎng)度和工藝決定著信號(hào)在連線上的驅(qū)動(dòng)能力和傳輸速度。布線資源的劃分:
1)全局性的專用布線資源:以完成器件內(nèi)部的全局時(shí)鐘和全局復(fù)位/置位的布線;
2)長(zhǎng)線資源:用以完成器件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)系。
5.底層嵌入功能單元(書上舉了很多例子,不過這些東東要看具體哪個(gè)廠商的哪種型號(hào)的芯片上嵌有什么資源決定)
6.內(nèi)嵌專用硬核
與“底層嵌入單元”是有區(qū)別的,這里指的硬核主要是那些通用性相對(duì)較弱,不是所有FPGA器件都包含硬核。
評(píng)論