博客專欄

EEPW首頁 > 博客 > FPGA 與微控制器:嵌入式設(shè)計的另一種方法

FPGA 與微控制器:嵌入式設(shè)計的另一種方法

發(fā)布人:電子資料庫 時間:2023-01-18 來源:工程師 發(fā)布文章

大多數(shù)工程師通過學(xué)習(xí)微控制器開始嵌入式系統(tǒng)培訓(xùn)。微控制器在單個集成電路上需要一個完整的微型計算系統(tǒng)。CPU、RAM、ROM 和輸入/輸出外圍設(shè)備都在一個拇指大小的片上系統(tǒng) (SoC) 上——包含所有或大部分電子元件的集成電路。

除了組件之外,嵌入式設(shè)計的另一部分涉及軟件開發(fā)。微控制器(和微處理器)有一個在大小和操作上保持固定的指令集,這意味著工程師通過匯編語言或嵌入式 C 使用相同的指令來解決計算任務(wù),通常用于實際應(yīng)用程序。

好消息是,如果有編程語言方面的經(jīng)驗,使用微控制器學(xué)習(xí)起來相對簡單。流行的版本,如 AVR、8051、PIC 和 ARM,使工程師能夠接觸到嵌入式系統(tǒng)的軟件開發(fā)方面。因此,有幾種選擇。

然而,還有另一種嵌入式軟件開發(fā)方法是微控制器所不具備的能力:基于硬件的嵌入式設(shè)計。為此,需要現(xiàn)場可編程門陣列 (FPGA)。

FPGA 由 Xilinx 于 1984 年發(fā)明。它們是包含數(shù)百萬個邏輯門的集成電路,這些邏輯門以電子方式配置以執(zhí)行特定任務(wù)(這意味著門是現(xiàn)場可編程的)。

讓我們將 FPGA 與計算機進(jìn)行比較。計算機(可以是微控制器、微處理器或圖形處理器)是一種基于指令集執(zhí)行任務(wù)的數(shù)字電子電路。這些指令包含由計算機的數(shù)字電路在數(shù)據(jù)上實現(xiàn)的機器代碼,其中數(shù)據(jù)在寄存器或存儲芯片上存儲和操作。

或者,F(xiàn)PGA 將設(shè)計帶到硬件中,因此工程師可以從架構(gòu)級別設(shè)計一個(簡單的)計算設(shè)備來執(zhí)行特定的任務(wù)或應(yīng)用程序。

image.png


微控制器與 FPGA
盡管 FPGA 通常用于設(shè)計數(shù)字電路以執(zhí)行簡單的計算任務(wù),但在計算方面它無法與微控制器相提并論。微控制器和微處理器是真正的具有復(fù)雜架構(gòu)的計算設(shè)備。

FPGA 可與專用集成電路 (ASIC) 相媲美,并可與其一起工作。ASIC 是為特定任務(wù)定制的,而不是用于一般用途。事實上,任何 ASIC 功能都可以在 FPGA 上定制設(shè)計和制造。

微控制器讓具有匯編或高級編程語言專業(yè)知識的工程師為計算機設(shè)計軟件,而 FPGA 允許設(shè)計簡單的計算設(shè)備。這種基于硬件的嵌入式設(shè)計需要對數(shù)字電路和計算機體系結(jié)構(gòu)有詳細(xì)的了解。

語言上的一些差異:

  • 微控制器使用匯編語言或高級語言(例如“C”)進(jìn)行編程,然后將其轉(zhuǎn)換為機器代碼以在 CPU 上執(zhí)行。

  • FPGA 芯片使用 Verilog 或超高速集成電路硬件描述語言 (VHDL) 進(jìn)行編程。VHDL 被轉(zhuǎn)換為在 FPGA 芯片上制造的數(shù)字邏輯塊,以設(shè)計用于特定應(yīng)用的定制計算機。通過使用 VHDL 或 Verilog,工程師可以從根級別設(shè)計數(shù)據(jù)路徑和算術(shù)邏輯單元 (ALU) 硬件。如果有足夠的邏輯塊來支持設(shè)計,甚至可以在 FPGA 上設(shè)計微控制器。

首先了解微控制器和微處理器是有意義的,因為了解計算機如何運行以及如何編程以執(zhí)行特定任務(wù)非常重要。微控制器、FPGA 和 CPLD(復(fù)雜可編程邏輯設(shè)備)是獨立的嵌入式系統(tǒng),各有優(yōu)缺點。

FPGA 將這種知識擴展到硬件電路,了解如何構(gòu)建計算機。

FPGA 的優(yōu)勢
FPGA 不僅可以作為學(xué)習(xí)數(shù)字設(shè)計和計算機體系結(jié)構(gòu)的一種方式,而且這些芯片還可以在嵌入式系統(tǒng)工程中提供實際應(yīng)用。它們提供了 ASIC 的替代方案,具有某些優(yōu)勢……

多線程。 FPGA 可以同時或以并行形式處理多條指令。與微控制器相比,這是一個很大的優(yōu)勢,微控制器一次只能按順序執(zhí)行一條指令。這意味著 FPGA 在處理任務(wù)時通常要快得多。由于這些過程在硬件級別進(jìn)行邏輯編碼,因此 FPGA 芯片非常適合專用或?qū)I(yè)應(yīng)用,包括預(yù)處理傳感器數(shù)據(jù)、密碼學(xué)、邏輯電路設(shè)計、數(shù)字音頻應(yīng)用、視頻流等。

另一方面,微控制器具有帶有專用指令集的通用架構(gòu),這使得它們更適合以較慢的速度解決可能需要標(biāo)準(zhǔn)接口的復(fù)雜計算任務(wù)。

總的來說,由于這種多線程特性,當(dāng)應(yīng)用程序中要處理的數(shù)據(jù)量很大時,F(xiàn)PGA 具有優(yōu)勢。如今,F(xiàn)PGA 板可提供內(nèi)置 CPU,因此特定應(yīng)用程序處理只需要設(shè)計邏輯。

靈活性和設(shè)計范圍。 任何數(shù)字電路,無論復(fù)雜程度如何,都可以在 FPGA 上設(shè)計,前提是該芯片包含足夠數(shù)量的邏輯塊來模擬設(shè)計。因此,從技術(shù)上講,F(xiàn)PGA 可用于設(shè)計任何外圍設(shè)備或執(zhí)行任何計算任務(wù)。

它們還可以被編程為具有多個定時器、通道 UART 或通道脈沖寬度調(diào)制 (PWM) 發(fā)生器——這與不提供這種靈活性的微控制器不同。這是因為無法更改微控制器中的芯片組以適應(yīng)應(yīng)用程序。相反,它們具有通用計算單元和內(nèi)置外圍設(shè)備(例如定時器、GPIO、中斷和串行接口)。

FPGA 的這種靈活性為專門設(shè)計的工程師提供了更大的能力。

模擬因素。通常,在任何嵌入式系統(tǒng)中,控制器或處理器與提供模擬輸入的傳感器或需要來自控制器或處理器的模擬輸出的執(zhí)行器耦合。

現(xiàn)場可編程模擬陣列 (FPAA) 也是讓設(shè)計人員對復(fù)雜模擬電路進(jìn)行編程的一種選擇。許多 FPGA 芯片都包含 FPAA,因此可以針對數(shù)字電路對芯片進(jìn)行編程處理模擬信號。這些混合信號芯片包含模數(shù)轉(zhuǎn)換器 (ADC) 或數(shù)模轉(zhuǎn)換器 (DAC) 外圍設(shè)備,以及模擬信號調(diào)節(jié)塊。

此類設(shè)備中的輸出引腳可以根據(jù)該引腳上負(fù)載的需要,針對驅(qū)動強度和轉(zhuǎn)換速率進(jìn)行編程。這是 FPGA 如何提供更大靈活性的另一個示例,能夠為特定應(yīng)用提供模擬編程。

可重用性。FPGA 可以重新編程以模擬任何其他數(shù)字(或模擬)電路,因此電路永遠(yuǎn)不會固定。當(dāng)芯片上電時,根據(jù)配置數(shù)據(jù)的數(shù)字設(shè)計被加載到芯片上。每次芯片上電時都會發(fā)生這種情況。

下一次啟動新設(shè)計時可以更改配置數(shù)據(jù)。由于芯片是可重復(fù)使用的,工程師可以在同一芯片上無休止地試驗不同的數(shù)字設(shè)計。

單芯片解決方案。FPGA 為應(yīng)用程序提供單芯片解決方案。這不同于通常必須與其他外圍設(shè)備(可能不是內(nèi)置的)、接口或 ASIC 接口的微控制器。

實時處理。FPGA 不是通用計算 IC,而是用于在芯片上設(shè)計專用計算設(shè)備。與運行程序(機器代碼)的微控制器不同,數(shù)據(jù)路徑和 ALU 在 FPGA 上制造以解決計算任務(wù)。

這意味著 FPGA 不是運行程序,而是被編程為執(zhí)行特定任務(wù)。這種在硬件級別執(zhí)行的邏輯允許實時處理數(shù)據(jù)和信息。這就是為什么 FPGA 通常用于高速、關(guān)鍵的應(yīng)用程序,在這些應(yīng)用程序中,微控制器可能會因為依賴代碼在指令集有限的固定架構(gòu)上運行而出現(xiàn)故障。

~

鑒于這些優(yōu)勢,F(xiàn)PGA 是高速并行處理的理想選擇,在這些情況下,要處理的數(shù)據(jù)量很大,或者處理芯片需要定制的外圍設(shè)備、可配置的模擬輸出或時間關(guān)鍵的專用應(yīng)用程序(這在其他情況下是不可能的)通用 CPU)。

FPGA 提供了對復(fù)雜集成設(shè)計的訪問,否則這些設(shè)計只能以高昂的工程成本獲得。這種芯片就像****大小板上的微型半導(dǎo)體鑄造廠。

在實際應(yīng)用中,F(xiàn)PGA 用于產(chǎn)量較低的特定垂直領(lǐng)域。它廣泛用于 ASIC 設(shè)計原型制作,通常無需冗長的制造過程即可快速上市。

常見應(yīng)用包括數(shù)字信號處理、圖像處理、生物信息學(xué)、密碼學(xué)、軟件設(shè)計的無線電、醫(yī)學(xué)成像、語音識別、電信、數(shù)據(jù)中心、航空航天電子和安全系統(tǒng)。

相比之下,微控制器用于一般嵌入式應(yīng)用,例如汽車、消費和工業(yè)電子產(chǎn)品、通信系統(tǒng)等。

FPGA 的缺點 FPGA
有一些明顯的缺點,具體取決于應(yīng)用。這些包括復(fù)雜性、高功率要求和價格點。

成本——FPGA 板比微控制器成本更高(大約 50 美元,而 10 美元或更低)。這是嵌入式設(shè)計培訓(xùn)課程開始時通常不討論 FPGA 芯片的原因之一。

然而,F(xiàn)PGA 是可重復(fù)使用的,從而賦予它們更大的長期價值,特別是對于研發(fā)或原型目的。在其他情況下,盡管微控制器的速度低且架構(gòu)通用,但它們通常更實惠。

image.png


FPGA開發(fā)板。

高功率要求。大多數(shù) FPGA 板由 48V 背板供電。不幸的是,高功率要求使它們不適用于多種嵌入式應(yīng)用。將此與微控制器板進(jìn)行比較,微控制器板通常只需要 5 或 3.3 V 電源即可運行。它們是設(shè)計任何電池供電的便攜式嵌入式設(shè)備的不二之選。

揮發(fā)性。FPGA 的數(shù)字設(shè)計通過配置數(shù)據(jù)傳遞給它。通電后,電路板會進(jìn)行相應(yīng)配置并開始運行。配置數(shù)據(jù)必須在主模式下存儲在閃存中,或者在從模式下由處理器通過邊界掃描 (JTAG) 接口傳遞。一旦電路板斷電,這些數(shù)據(jù)就會丟失。

大多數(shù) FPGA 的易失性使其不適合存在斷電或中斷風(fēng)險的應(yīng)用。

啟動時間。FPGA 每次上電時都必須加載配置數(shù)據(jù)。這會顯著增加其操作的啟動時間。然而,一旦加載了配置數(shù)據(jù),F(xiàn)PGA 板的運行速度通常比微控制器快得多。

對于某些需要在激活后立即采取行動的關(guān)鍵應(yīng)用程序,啟動時間可能是個問題。FPGA 不適合嵌入式設(shè)備頻繁開關(guān)機的應(yīng)用。由于嵌入式設(shè)備的高功率要求,也不可能讓這些芯片在嵌入式設(shè)備中持續(xù)通電。

高引腳數(shù)。通常,大多數(shù) FPGA 都有多個引腳。因此,這些芯片不適合計算處理器或控制器必須緊湊的狹小空間或受限嵌入式應(yīng)用。相比之下,有許多具有八個或更少引腳的微控制器,很容易安裝在小型設(shè)備中。

復(fù)雜。使用 FPGA 需要詳細(xì)了解數(shù)字設(shè)計和計算機體系結(jié)構(gòu)。它不像微控制器那么簡單。與軟件開發(fā)所需的高級編程或匯編語言相比,F(xiàn)PGA 的語言(VHDL 或 Verilog)學(xué)習(xí)起來相當(dāng)復(fù)雜。

雖然大多數(shù)用于 FPGA 開發(fā)的工具都是免費提供的,但它們使用起來很復(fù)雜,而且很難選擇理想的電路板。數(shù)字設(shè)計中也有許多并發(fā)癥、陷阱和注意事項,只能通過時間和實踐經(jīng)驗來學(xué)習(xí)。

設(shè)計限制。只能將數(shù)字設(shè)計的邏輯塊與 FPGA 互連。在門級也沒有控制,而且通常合成是非標(biāo)準(zhǔn)的。但是,F(xiàn)PGA 非常適合測試架構(gòu)或早期 ASIC 設(shè)計。

耐用性。與微控制器相比,F(xiàn)PGA IC 的使用壽命較短。雖然微控制器可以在設(shè)備中使用數(shù)十年,但嵌入式設(shè)備中的 FPGA 芯片通常需要每兩到五年更換一次。

高成本、引腳、數(shù)量和功率要求,以及復(fù)雜性、易變性和設(shè)計限制意味著 FPGA 在嵌入式應(yīng)用中不太常見。目前,它們僅用于需要專用架構(gòu)、定制外圍設(shè)備或通過并行處理執(zhí)行關(guān)鍵機器代碼的高功率設(shè)備。

結(jié)論
FPGA 有優(yōu)點也有缺點。這取決于應(yīng)用程序??偟膩碚f,它們使工程師能夠更好地訪問硬件設(shè)計并能夠探索集成電路,而微控制器是不可能做到的。但這需要一定程度的知識和經(jīng)驗。全面了解嵌入式設(shè)計工程是值得的。

微控制器和處理器提供軟件經(jīng)驗,而 FPGA 提供硬件知識。就像第一次從頭開始構(gòu)建代碼一樣,經(jīng)驗會隨著時間的推移變得更容易。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: FPGA

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉