加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專(zhuān)業(yè)用戶(hù)
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

處理器史話(huà) | FPGA在MCU領(lǐng)域的“一席之地”將何去何從?

2017/03/04
22
  • 1評(píng)論
閱讀需 53 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

3. FPGA
FPGA(Field Programmable Gate Array),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在 PAL、GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為 ASIC 領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。


(1) 技術(shù)背景
硬件描述語(yǔ)言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。


這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門(mén)電路(比如 AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過(guò)可編輯的連接把 FPGA 內(nèi)部的邏輯塊連接起來(lái),就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品 FPGA 的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以 FPGA 可以完成所需要的邏輯功能。


1984 年 Ross Freeman、Bernie Vonderschmitt 和 Jim Barnett 創(chuàng)立了賽靈思(Xilinx)公司,Xilinx 是第一個(gè)建立無(wú)工廠(fabless)生產(chǎn)模式,除了設(shè)計(jì)、營(yíng)銷(xiāo)與產(chǎn)品支持以外其他事務(wù)均進(jìn)行外包的半導(dǎo)體公司,Xilinx 首創(chuàng)了 FPGA 這一創(chuàng)新性的技術(shù),并于 1985 年首次推出商業(yè)化產(chǎn)品——XC2064,采用 2μm 工藝,包含 64 個(gè)邏輯模塊和 85000 個(gè)晶體管,門(mén)數(shù)量不超過(guò) 1000 個(gè)。

Xilinx 創(chuàng)始人 Ross Freeman(左圖, FPGA 的發(fā)明人)和 Bernie Vonderschmitt(右圖)

世界第一款 FPGA——XC2064 實(shí)物圖


FPGA 一般來(lái)說(shuō)比 ASIC 的速度要慢,實(shí)現(xiàn)同樣的功能比 ASIC 電路面積要大。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。
與 FPGA 相似的另外一種方法是用 CPLD(Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)。CPLD 和 FPGA 包括了一些相對(duì)大數(shù)量的可編輯邏輯單元。CPLD 邏輯門(mén)的密度在幾千到幾萬(wàn)個(gè)邏輯單元之間,而 FPGA 通常是在幾萬(wàn)到幾百萬(wàn)。CPLD 和 FPGA 的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。


CPLD 和 FPGA 在系統(tǒng)結(jié)構(gòu)的比較

選項(xiàng)

CPLD

FPGA

結(jié)構(gòu)要求

  • 由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對(duì)少量的鎖定的寄存器組成;
  • 缺乏編輯靈活性;
  • 具有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對(duì)連接單元高比率的優(yōu)點(diǎn)。
  • 很多的連接單元;
  • 更加靈活的編輯;
  • 結(jié)構(gòu)復(fù)雜很多。

內(nèi)置功能模塊和存儲(chǔ)器

無(wú)

  • 加法器和乘法器等,大多數(shù)的 FPGA 具有;
  • 支持完全的或者部分的系統(tǒng)內(nèi)重新配置。

運(yùn)行機(jī)制

CPLD 下電之后,原有燒入的邏輯結(jié)構(gòu)不會(huì)消失

FPGA 下電之后,再次上電時(shí),需要重新加載 FLASH 里面的邏輯代碼,需要一定的加載時(shí)間。

?

(2) 工作原理
FPGA 采用了邏輯單元陣列 LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊 CLB(Configurable Logic Block)、輸入輸出模塊 IOB(Input Output Block)和內(nèi)部連線(xiàn)(Interconnect)三個(gè)部分。


FPGA 是可編程器件,與傳統(tǒng)邏輯電路和門(mén)陣列(如 PAL,GAL 及 CPLD 器件)相比,F(xiàn)PGA 具有不同的結(jié)構(gòu)。FPGA 利用小型查找表(16×1RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè) D 觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng) I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線(xiàn)互相連接或連接到 I/O 模塊。


FPGA 的可編程實(shí)際上是改變了 CLB 和 IOB 的觸發(fā)器狀態(tài),這樣,可以實(shí)現(xiàn)多次重復(fù)的編程由于 FPGA 需要被反復(fù)燒寫(xiě),它實(shí)現(xiàn)組合邏輯的基本結(jié)構(gòu)不可能像 ASIC 那樣通過(guò)固定的與非門(mén)來(lái)完成,而只能采用一種易于反復(fù)配置的結(jié)構(gòu)。


查找表(Look-Up-Table,LUT)可以很好地滿(mǎn)足這一要求,LUT 本質(zhì)上就是一個(gè) RAM。
目前 FPGA 中多使用 4 輸入的 LUT,所以每一個(gè) LUT 可以看成一個(gè)有 4 位地址線(xiàn)的 RAM。 當(dāng)用戶(hù)通過(guò)原理圖或 HDL 語(yǔ)言描述了一個(gè)邏輯電路以后,PLD/FPGA 開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能結(jié)果,并把真值表事先寫(xiě)入 RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。


輸入與門(mén)的真值表

從表中可以看到,LUT 具有和邏輯電路相同的功能。實(shí)際上,LUT 具有更快的執(zhí)行速度和更大的規(guī)模。


FPGA 芯片主要由 7 部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式 RAM、豐富的布線(xiàn)資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專(zhuān)用硬件模塊。

FPGA 芯片的內(nèi)部結(jié)構(gòu)
每個(gè)模塊的功能如下:


可編程輸入輸出單元(IOB)
可編程輸入 / 輸出單元簡(jiǎn)稱(chēng) I/O 單元,是芯片與外界電路的接口部分,完成不同電氣特性下對(duì)輸入 / 輸出信號(hào)的驅(qū)動(dòng)與匹配要求。


FPGA 內(nèi)的 I/O 按組分類(lèi),每組都能夠獨(dú)立地支持不同的 I/O 標(biāo)準(zhǔn)。通過(guò)軟件的靈活配置,可適配不同的電氣標(biāo)準(zhǔn)與 I/O 物理特性,可以調(diào)整驅(qū)動(dòng)電流的大小,可以改變上、下拉電阻。I/O 口的頻率也越來(lái)越高,一些高端的 FPGA 通過(guò) DDR 寄存器技術(shù)可以支持高達(dá) 2Gbps 的數(shù)據(jù)速率。


可配置邏輯塊(CLB)
CLB 是 FPGA 內(nèi)的基本邏輯單元。CLB 的實(shí)際數(shù)量和特性會(huì)依器件的不同而不同,但是每個(gè) CLB 都包含一個(gè)可配置開(kāi)關(guān)矩陣,此矩陣由 4 或 6 個(gè)輸入、一些選型電路(多路復(fù)用器等)和觸發(fā)器組成。


開(kāi)關(guān)矩陣是高度靈活的,可以對(duì)其進(jìn)行配置以便處理組合邏輯、移位寄存器或 RAM。在 Xilinx 公司的 FPGA 器件中,CLB 由多個(gè)(一般為 4 個(gè)或 2 個(gè))相同的 Slice 和附加邏輯構(gòu)成。每個(gè) CLB 模塊不僅可以用于實(shí)現(xiàn)組合邏輯、時(shí)序邏輯,還可以配置為分布式 RAM 和分布式 ROM。


數(shù)字時(shí)鐘管理模塊(DCM)
業(yè)內(nèi)大多數(shù) FPGA 均提供數(shù)字時(shí)鐘管理,如 Xilinx 的全部 FPGA 均具有這種特性。
Xilinx 推出最先進(jìn)的 FPGA 提供數(shù)字時(shí)鐘管理和相位環(huán)路鎖定。相位環(huán)路鎖定能夠提供精確的時(shí)鐘綜合,且能夠降低抖動(dòng),并實(shí)現(xiàn)過(guò)濾功能。


嵌入式塊 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è)比較邏輯,寫(xiě)入 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)。單片塊 RAM 的容量為 18k 比特,即位寬為 18 比特、深度為 1024,可以根據(jù)需要改變其位寬和深度,也可以將多片塊 RAM 級(jí)聯(lián)起來(lái)形成更大的 RAM。

?


豐富的布線(xiàn)資源
布線(xiàn)資源連通 FPGA 內(nèi)部的所有單元,而連線(xiàn)的長(zhǎng)度和工藝決定著信號(hào)在連線(xiàn)上的驅(qū)動(dòng)能力和傳輸速度。


FPGA 芯片內(nèi)部有著豐富的布線(xiàn)資源,根據(jù)工藝、長(zhǎng)度、寬度和分布位置的不同而劃分為 4 類(lèi)不同的類(lèi)別,詳見(jiàn)下表。


FPGA 芯片內(nèi)部的布線(xiàn)資源表

類(lèi)別名稱(chēng)

功能說(shuō)明

全局布線(xiàn)資源

用于芯片內(nèi)部全局時(shí)鐘和全局復(fù)位 / 置位的布線(xiàn)

長(zhǎng)線(xiàn)資源

用以完成芯片 Bank 間的高速信號(hào)和第二全局時(shí)鐘信號(hào)的布線(xiàn)

短線(xiàn)資源

用于完成基本邏輯單元之間的邏輯互連和布線(xiàn)

分布式的布線(xiàn)資源

用于專(zhuān)有時(shí)鐘、復(fù)位等控制信號(hào)線(xiàn)

底層內(nèi)嵌功能單元
內(nèi)嵌功能模塊主要指 DLL(Delay Locked Loop)、PLL(Phase Locked Loop)、DSPCPU 等軟處理核(SoftCore)。


DLL 和 PLL 具有類(lèi)似的功能,可以完成時(shí)鐘高精度、低抖動(dòng)的倍頻和分頻,以及占空比調(diào)整和移相等功能。


內(nèi)嵌專(zhuān)用硬核
內(nèi)嵌專(zhuān)用硬核是相對(duì)底層嵌入的軟核而言的,指 FPGA 處理能力強(qiáng)大的硬核(Hard Core),等效于 ASIC 電路。為了提高 FPGA 性能,芯片生產(chǎn)商在芯片內(nèi)部集成了一些專(zhuān)用的硬核。


例如:為了提高 FPGA 的乘法速度,主流的 FPGA 中都集成了專(zhuān)用乘法器;為了適用通信總線(xiàn)與接口標(biāo)準(zhǔn),很多高端的 FPGA 內(nèi)部都集成了串并收發(fā)器(SERDES),可以達(dá)到數(shù)十 Gbps 的收發(fā)速度。


正因如此,F(xiàn)PGA 具有如下的基本特點(diǎn):

  • 采用 FPGA 設(shè)計(jì) ASIC 電路,用戶(hù)不需要投片生產(chǎn),就能得到合用的芯片,是 ASIC 電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。
  • 可做其它全定制或半定制 ASIC 電路的中試樣片。
  • 內(nèi)部有豐富的觸發(fā)器和 I/O 引腳。
  • 采用高速 CMOS 工藝,功耗低,可以與 CMOS、TTL 電平兼容。

可以說(shuō),F(xiàn)PGA 芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。


(3) 生產(chǎn)廠商
全球知名的 FPGA 生產(chǎn)廠商及相應(yīng)的開(kāi)發(fā)平臺(tái)信息如下:

廠商

主要貢獻(xiàn)

開(kāi)發(fā)平臺(tái)

Altera

可編程邏輯器件的發(fā)明者

Quartus II

Xilinx

FPGA 的發(fā)明者,擁有世界一半以上的市場(chǎng)

ISE

Actel

提供非易失性 FPGA

Libero

Lattice

提供瞬時(shí)上電操作、安全性和節(jié)省空間的單芯片解決方案的一系列無(wú)可匹敵的非易失可編程器件。

ISPLEVER

Atmel

2016 年,被美國(guó) MICROCHIP 收購(gòu)


盡管 FPGA 和 CPLD 都是可編程 ASIC 器件,有很多共同特點(diǎn),但由于 CPLD 和 FPGA 結(jié)構(gòu)上的差異,具有各自的特點(diǎn):

CPLD

FPGA

應(yīng)用場(chǎng)合

適合完成各種算法和組合邏輯

適合于完成時(shí)序邏輯

時(shí)序延遲

均勻的、可預(yù)測(cè)

不可預(yù)測(cè)

編程原理

通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程

可在邏輯門(mén)下編程,比 CPLD 具有更大的靈活性

集成度

編程方式

  • 采用 E2PROM 或 FAST FLASH 技術(shù),無(wú)需外部存儲(chǔ)器芯片,使用簡(jiǎn)單;
  • 編程次數(shù)可達(dá) 1 萬(wàn)次
  • 需存放在外部存儲(chǔ)器上,使用方法復(fù)雜;
  • 編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置

速度

邏輯塊級(jí)編程,速度快

門(mén)級(jí)編程,并且 CLB 之間采用分布式互聯(lián),速度慢

保密性

功耗

?


(4) 市場(chǎng)發(fā)展
20 世紀(jì) 90 年代后期 FPGA 市場(chǎng)就已經(jīng)過(guò)一番激烈整合,許多業(yè)者不是退出 PLD(可程序化邏輯裝置)市場(chǎng),就是出售其 PLD 業(yè)務(wù)部門(mén),或?qū)?PLD 業(yè)務(wù)部門(mén)分立成獨(dú)立公司,或進(jìn)行購(gòu)并等。


時(shí)至今日,F(xiàn)PGA 市場(chǎng)的主要業(yè)者僅剩數(shù)家,包括 Altera、Xilinx、Actel、Atmel、Lattice、QuickLogic 等,不過(guò) 2007 年 11 月 QuickLogic 也確定淡出 FPGA 市場(chǎng),并轉(zhuǎn)進(jìn)發(fā)展 CSSP(CustomerSpecificStandardProduct)。


但 FPGA 領(lǐng)域依然有新興業(yè)者出現(xiàn),例如 AchronixSemiconductor、MathStar 等。且除了單純數(shù)字邏輯性質(zhì)的可程序邏輯裝置外,混訊、模擬性質(zhì)的可程序邏輯裝置也展露頭角,例如:


CypressSemiconductor 的 PSoC(ProgrammableSystem-on-Chip)即具有可組態(tài)性的混訊電路、Actel 公司也提出可程序化的混訊芯片——Fusion,或者也有業(yè)者提出所謂的現(xiàn)場(chǎng)可程序化模擬數(shù)組(FieldProgrammableAnalogArray;FPAA)等,相信這些都能為可程序化芯片帶來(lái)更多的發(fā)展動(dòng)能。

Cypress 的 PSoC 典型應(yīng)用
FPGA 產(chǎn)品的應(yīng)用領(lǐng)域已經(jīng)從原來(lái)的通信擴(kuò)展到消費(fèi)電子、汽車(chē)電子工業(yè)控制、測(cè)試測(cè)量等廣泛的領(lǐng)域。而應(yīng)用的變化也使 FPGA 產(chǎn)品近幾年的演進(jìn)趨勢(shì)越來(lái)越明顯:
一方面,F(xiàn)PGA 供應(yīng)商致力于采用當(dāng)前最先進(jìn)的工藝來(lái)提升產(chǎn)品的性能,降低產(chǎn)品的成本;


另一方面,越來(lái)越多的通用 IP(知識(shí)產(chǎn)權(quán))或客戶(hù)定制 IP 被引入 FPGA 中,以滿(mǎn)足客戶(hù)產(chǎn)品快速上市的要求。此外,F(xiàn)PGA 企業(yè)都在大力降低產(chǎn)品的功耗,滿(mǎn)足業(yè)界越來(lái)越苛刻的低功耗需求。


4. ASIC、單片機(jī)和 DSP 的區(qū)別與聯(lián)系
ASIC 原本就是專(zhuān)門(mén)為某一項(xiàng)功能開(kāi)發(fā)的專(zhuān)用集成芯片,比如:攝像頭里面的芯片,小小的一片,集成度很低,成本很低,可是夠用了。后來(lái) ASIC 發(fā)展了一些,稱(chēng)為半定制專(zhuān)用集成電路,相對(duì)來(lái)說(shuō)更接近 FPGA,甚至在某些地方,ASIC 就是個(gè)大概念,F(xiàn)PGA 屬于 ASIC 之下的一部分。


單片機(jī)就是一個(gè)“百搭”的通用 CPU,提供各種接口來(lái)對(duì)整體進(jìn)行控制,相當(dāng)一個(gè)總調(diào)度,簡(jiǎn)單的功能一片 CPU 獨(dú)立工作也就完成了。原來(lái)的 51 系列就是一堆 IO 口,后來(lái)慢慢的把常用的 PWM、AD 之類(lèi)的功能加入了單片機(jī)。接下來(lái)又出現(xiàn)了 AVR、PIC、ARM、HOTEK……,其實(shí) ARM9 以后,已經(jīng)說(shuō)不清 ARM 算哪類(lèi)了,目前的架構(gòu)來(lái)看,ARM 更接近 DSP。

與非網(wǎng)原創(chuàng)內(nèi)容,不經(jīng)允許,謝絕轉(zhuǎn)載!

本系列更多內(nèi)容,請(qǐng)參照:處理器史話(huà)匯總。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

1996畢業(yè)于華東理工大學(xué)自控系,同年7月進(jìn)入某大型國(guó)企擔(dān)任電氣員。2000年轉(zhuǎn)行從事硬件研發(fā)相關(guān)工作;后從事RFID相關(guān)產(chǎn)品的研發(fā)、設(shè)計(jì),曾參與中國(guó)自動(dòng)識(shí)別協(xié)會(huì)RFID行業(yè)標(biāo)準(zhǔn)的起草;歷任硬件工程師、主管設(shè)計(jì)師、項(xiàng)目經(jīng)理、部門(mén)經(jīng)理;2012年至今,就職于沈陽(yáng)工學(xué)院,擔(dān)任電子信息工程專(zhuān)業(yè)教師,研究方向:自動(dòng)識(shí)別技術(shù)。已經(jīng)出版教材《自動(dòng)識(shí)別技術(shù)概論》,職場(chǎng)故事《51的蛻變 》。