FPGA 供應(yīng)商一直在故意推動(dòng) FPGA 架構(gòu)中不斷擴(kuò)大的分歧。主要供應(yīng)商要么傾向于使用具有高性能應(yīng)用處理器的 SoC FPGA,要么提供不帶處理器的低端 FPGA。服務(wù)器群和高性能計(jì)算等應(yīng)用程序需要不斷提高性能。為了解決這個(gè)問(wèn)題,許多 SoC FPGA 都采用了非常適合這些應(yīng)用的 ARM A 級(jí)應(yīng)用處理器。許多其他應(yīng)用程序的現(xiàn)實(shí)情況是,這些處理器超出了所需。A 級(jí) SoC FPGA 通常過(guò)于昂貴,由于所需的操作系統(tǒng)而需要過(guò)多的軟件支持負(fù)擔(dān),并且具有更高的功耗。此外,通常不需要原始計(jì)算性能。
另一方面,沒(méi)有硬微控制器或處理器的低端 FPGA 可能會(huì)限制眾多設(shè)計(jì)。低端 FPGA 僅提供軟微控制器,沒(méi)有附帶的外圍設(shè)備或子系統(tǒng)。如果需要外設(shè),則必須使用 FPGA 門(mén)創(chuàng)建它們。帶有軟微控制器的低端 FPGA 運(yùn)行速度非常慢,由于創(chuàng)建微控制器和子系統(tǒng)所需的 FPGA 門(mén)而效率低下,不提供安全性,并且是在專(zhuān)有架構(gòu)上開(kāi)發(fā)的。
對(duì)于廣泛的應(yīng)用,基于硬化微控制器的 SoC FPGA 通常是更有效的解決方案。每年都會(huì)生產(chǎn)大量 32 位微控制器架構(gòu),因?yàn)橛性S多應(yīng)用程序可以使用它們。想象一下,如果有一個(gè)帶有通用組件子系統(tǒng)的微控制器,并且它還包括一個(gè)可以實(shí)現(xiàn)硬件加速任務(wù)或其他邏輯功能的可配置塊?ARM Cortex-M3 SoC FPGA 可以被視為具有可配置硬件加速的微控制器。硬件加速和邏輯功能的實(shí)現(xiàn)是 FPGA 架構(gòu)擅長(zhǎng)的兩個(gè)關(guān)鍵特性。結(jié)合使用 ARM Cortex-M3 和 FPGA 架構(gòu),可以為各種應(yīng)用中的許多任務(wù)實(shí)現(xiàn)理想的分工。
使用處理器和 FPGA 結(jié)構(gòu)對(duì)設(shè)計(jì)示例進(jìn)行分區(qū)
由于架構(gòu)和訪(fǎng)問(wèn)存儲(chǔ)器指令的要求,微控制器非常適合低速串行任務(wù)。FPGA 架構(gòu)非常適合對(duì)時(shí)間要求更高的并行處理功能。當(dāng)以這種方式劃分設(shè)計(jì)時(shí),每個(gè)組件應(yīng)該實(shí)現(xiàn)哪些功能就變得很清楚了。例如,控制多個(gè)電機(jī)的主要挑戰(zhàn)之一是需要電機(jī)控制回路的確定性響應(yīng)。為確保設(shè)計(jì)可靠,每個(gè)電機(jī)都必須在嚴(yán)格的、確定的時(shí)間內(nèi)進(jìn)行維修,且時(shí)間不存在較大的變化。因?yàn)槎噍S電機(jī)控制算法是一個(gè)時(shí)間關(guān)鍵的功能,它應(yīng)該駐留在 FPGA 架構(gòu)中。FPGA 是實(shí)現(xiàn)具有嚴(yán)格確定性時(shí)序的控制回路的理想選擇。圖 1 是多軸電機(jī)控制設(shè)計(jì)的框圖。大部分電機(jī)控制算法在 FPGA 架構(gòu)中,而速度較慢的接口連接到 ARM Cortex-M3。
圖 1:多軸電機(jī)控制設(shè)計(jì)框圖。
電機(jī)控制算法不是唯一需要的功能。完整的電機(jī)控制設(shè)計(jì)通常需要一個(gè)或多個(gè)通信接口和控制 I/O。這些接口不是面向高性能的,是 Cortex-M3 等微控制器實(shí)現(xiàn)的理想選擇。通信接口可以是CAN總線(xiàn)、SPI、UART或其他控制總線(xiàn)。
為設(shè)計(jì)添加數(shù)據(jù)安全性
增加數(shù)據(jù)安全性需要證書(shū)和密鑰交換,以及對(duì)數(shù)據(jù)實(shí)施加密和解密算法。有多個(gè)數(shù)據(jù)安全握手交換,并且通常需要對(duì)多種格式的支持。交換握手通常不是時(shí)間關(guān)鍵的,但每個(gè)交換算法都有不同的字符串需要解析、各種驗(yàn)證協(xié)議和多輪證書(shū)檢查。由于所有這些程序和時(shí)間緊迫性的缺乏,在 Cortex-M3 等微控制器中實(shí)現(xiàn)證書(shū)和密鑰交換是理想的??梢愿鶕?jù)請(qǐng)求的握手交換調(diào)用和執(zhí)行適當(dāng)?shù)拇a。一旦交換了密鑰并且兩個(gè)設(shè)備都受信任,則需要對(duì)數(shù)據(jù)通信進(jìn)行加密和解密。有許多有線(xiàn)和無(wú)線(xiàn)通信速度和協(xié)議,并且根據(jù)鏈路速度,數(shù)據(jù)加密和解密通常需要性能。當(dāng)需要性能吞吐量時(shí),建議在 FPGA 架構(gòu)中實(shí)現(xiàn)。發(fā)送設(shè)備將實(shí)施諸如 AES 256、三重 DES、RSA 或類(lèi)似的加密算法,而接收設(shè)備將實(shí)施相同的解密算法。如果數(shù)據(jù)鏈路性能不重要,Cortex-M3 可以實(shí)現(xiàn)加密和解密。然而,F(xiàn)PGA 架構(gòu)非常適合需要更高吞吐量的情況。建議在 FPGA 架構(gòu)中實(shí)現(xiàn)它。發(fā)送設(shè)備將實(shí)施諸如 AES 256、三重 DES、RSA 或類(lèi)似的加密算法,而接收設(shè)備將實(shí)施相同的解密算法。如果數(shù)據(jù)鏈路性能不重要,Cortex-M3 可以實(shí)現(xiàn)加密和解密。然而,F(xiàn)PGA 架構(gòu)非常適合需要更高吞吐量的情況。建議在 FPGA 架構(gòu)中實(shí)現(xiàn)它。發(fā)送設(shè)備將實(shí)施諸如 AES 256、三重 DES、RSA 或類(lèi)似的加密算法,而接收設(shè)備將實(shí)施相同的解密算法。如果數(shù)據(jù)鏈路性能不重要,Cortex-M3 可以實(shí)現(xiàn)加密和解密。然而,F(xiàn)PGA 架構(gòu)非常適合需要更高吞吐量的情況。
向設(shè)計(jì)中添加自定義外圍設(shè)備
盡管處理器和微控制器提供通用外設(shè),但許多設(shè)計(jì)都需要定制接口。許多醫(yī)療、工業(yè)和嵌入式設(shè)計(jì)通常需要添加額外的接口,而開(kāi)放式總線(xiàn)接口連接器解決了這個(gè)問(wèn)題。兩個(gè)比較流行的外圍總線(xiàn)連接器是外圍模塊 (Pmod) 和 Arduino shield。有許多外設(shè)設(shè)計(jì)利用了這些連接器,而 SoC FPGA 非常適合在這些定制外設(shè)和設(shè)計(jì)的其余部分之間進(jìn)行橋接。當(dāng)需要額外的外圍設(shè)備時(shí),可以獨(dú)特地利用基于微控制器的 SoC FPGA。微控制器和FPGA架構(gòu)的結(jié)合可以實(shí)現(xiàn)橋接、加速功能、通信協(xié)議管理、I/O擴(kuò)展和控制邏輯。一個(gè)示例是需要添加自定義顯示的設(shè)計(jì)。與顯示器接口需要接口控制邏輯、圖像處理以及寄存器配置。ARM Cortex-M3 可以解決后者并執(zhí)行其他管理任務(wù),而 FPGA 最適合與顯示器接口并根據(jù)需要修改圖像。
Avnet Electronics 最近創(chuàng)建了一個(gè)硬件套件,以展示基于微控制器的 SoC 可以為廣闊市場(chǎng)帶來(lái)的強(qiáng)大功能(圖 2)。該板可以使用許多外圍選項(xiàng),因?yàn)樗哂?Pmod 連接器和 Arduino 屏蔽連接器組。其他主要功能包括板載外圍設(shè)備、低功耗藍(lán)牙 (BLE)、USB 以及大量傳感器和開(kāi)關(guān)。該板采用 Microsemi SmartFusion2 SoC FPGA,其中包括硬核 ARM Cortex-M3 微控制器和綜合子系統(tǒng)。該架構(gòu)包含 HDL 和 C 代碼參考設(shè)計(jì)、基于 Windows 的軟件 GUI 和 Android 應(yīng)用程序,以增加靈活性。Windows GUI 可以連接到所有板載組件,參考設(shè)計(jì)示例支持添加 Arduino 擴(kuò)展板或 Pmod 外設(shè)。使用 Windows GUI 連接到 Android 手機(jī)時(shí),可以看到完整的數(shù)據(jù)安全演示。這種數(shù)據(jù)安全設(shè)計(jì)實(shí)現(xiàn)了 SmartFusion2 FPGA 和 Android 智能手機(jī)之間的密鑰交換和數(shù)據(jù)加密。
圖 2: Avnet SmartFusion2 KickStart 套件。
有各種各樣的通用應(yīng)用程序理想地在基于微控制器的 SoC FPGA 中實(shí)現(xiàn),可以解決橋接、I/O 擴(kuò)展、硬件加速、協(xié)議管理和電路板初始化等解決方案。使用帶有參考設(shè)計(jì)和軟件 GUI 的硬件解決方案可以讓設(shè)計(jì)理念迅速變?yōu)楝F(xiàn)實(shí)。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7552瀏覽量
151426 -
FPGA
+關(guān)注
關(guān)注
1629文章
21736瀏覽量
603419 -
soc
+關(guān)注
關(guān)注
38文章
4165瀏覽量
218269
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論