有時(shí),微控制器本身可以完全滿足設(shè)計(jì)的所有功能要求。對(duì)于大多數(shù)嵌入式系統(tǒng)設(shè)計(jì),編程良好、高度集成的嵌入式處理器是工程師可用的最具成本效益、最節(jié)能、最快的解決方案。
當(dāng)原始性能至關(guān)重要時(shí),專用硬件中捕獲的邏輯可以實(shí)現(xiàn)最高水平的性能。例如,定序器可以比在軟件中實(shí)現(xiàn)的相同邏輯快一個(gè)數(shù)量級(jí)。
由于分立邏輯器件占用大量空間和功率,添加 FPGA 可能是一種可行的替代方案;在許多情況下,F(xiàn)PGA 和微控制器的組合是一個(gè)很好的解決方案。當(dāng)微在 FPGA 的邏輯中實(shí)現(xiàn)時(shí),更密集的解決方案是可能的。作為硬編碼宏,或在每個(gè)新設(shè)計(jì)中被替換和路由的軟宏,將整個(gè)微控制器吸收到 FPGA 內(nèi)部不僅可以產(chǎn)生最高的密度,而且可以產(chǎn)生最大的靈活性,特別是如果你有足夠的勇氣去實(shí)際修改核心以提高性能。
本文著眼于在現(xiàn)成的 FPGA 中愉快地運(yùn)行的微內(nèi)核。這些可從各種來(lái)源獲得,包括開(kāi)放式和封閉式、免費(fèi)和 IP 許可的。
比原來(lái)的更好
遺留和專有架構(gòu)都可以使用,并且各有優(yōu)勢(shì)。舊版內(nèi)核與舊版 micros 兼容,并提供熟悉的架構(gòu)。然后,您公司生產(chǎn)的產(chǎn)品可以使用已經(jīng)過(guò)測(cè)試和驗(yàn)證的代碼。當(dāng)需要下一代產(chǎn)品甚至新的改進(jìn)模型時(shí),組織良好且可靠的代碼庫(kù)的可重用性可以節(jié)省大量時(shí)間。
幾個(gè)流行的內(nèi)核已經(jīng)以原始邏輯形式用于各種 FPGA 系列,包括處理器,例如Microchip PIC、英特爾 8051、Atmel AVR、摩托羅拉 6502、英特爾 8080 和Zilog Z80 微控制器,僅舉幾例。
一個(gè)不那么明顯的優(yōu)點(diǎn)是能夠改進(jìn)初始架構(gòu)。如果時(shí)間和資源允許,可以克服缺點(diǎn),因?yàn)槟梢孕薷脑O(shè)計(jì)。例如,非常流行的 8051 架構(gòu)最初是采用順序架構(gòu)引入的,每條指令需要 12 個(gè)時(shí)鐘周期。精確的遺留實(shí)現(xiàn)可以反映初始功能,或者可以實(shí)現(xiàn)更現(xiàn)代的風(fēng)格,減少每條指令的時(shí)鐘周期數(shù)。
8051 的改進(jìn) IP 內(nèi)核也可用于跨平臺(tái)開(kāi)發(fā)。R8051XC2-BF 內(nèi)核1可用于 ASIC 或Xilinx和Altera FPGA;它通過(guò)添加第二個(gè)數(shù)據(jù)指針(初始設(shè)計(jì)的一個(gè)缺點(diǎn))和 JTAG 調(diào)試接口(圖 1)對(duì)初始設(shè)計(jì)進(jìn)行了改進(jìn)。
圖 1:傳統(tǒng)內(nèi)核的商用實(shí)現(xiàn)通常會(huì)改進(jìn)最初的分立設(shè)計(jì)。這個(gè) 8051 內(nèi)核每條指令運(yùn)行一個(gè)時(shí)鐘,并添加了 JTAG 和第二個(gè)數(shù)據(jù)指針。
ARM內(nèi)核
雖然許多設(shè)計(jì)可以使用 8 位內(nèi)核,但現(xiàn)代功能可能需要更高的總線寬度來(lái)簡(jiǎn)化處理。如果您正在處理 24 位寬的圖形數(shù)據(jù),則單個(gè) 32 位傳輸比三個(gè) 8 位傳輸更有效。
也許最流行的 32 位架構(gòu)是 ARM Cortex,毫無(wú)疑問(wèn),它已成為流行且得到良好支持的 FPGA 實(shí)現(xiàn)架構(gòu)。從面積和功耗的角度來(lái)看,ARM Cortex 非常高效。眾多工具和開(kāi)發(fā)套件以及用于外圍設(shè)備、內(nèi)存管理、數(shù)學(xué)和 DSP 功能的開(kāi)源代碼都很好地支持可擴(kuò)展架構(gòu)。
ARM 內(nèi)核的一個(gè)很好的特性是它們不是某個(gè) FPGA 制造商專有的,并且可以在不同制造商的設(shè)備上實(shí)現(xiàn)。這意味著隨著設(shè)計(jì)的發(fā)展或需求的變化,您不會(huì)被鎖定在一個(gè)供應(yīng)商中。
另一個(gè)好處是架構(gòu)從更簡(jiǎn)單、功能更弱的Cortex M0擴(kuò)展而來(lái)高達(dá)非常高端的多核A8和A9口味。這還帶來(lái)了經(jīng)過(guò)軌道驗(yàn)證的驅(qū)動(dòng)程序和堆棧的好處,這些驅(qū)動(dòng)程序和堆棧適用于 USB、以太網(wǎng)、Wi-Fi、ZigBee、藍(lán)牙等高端外圍設(shè)備。
Xilinx 系列器件是嵌入式微核的大力支持者,ARM 架構(gòu)也不例外。XC5VLX50-1FFG676C等部件是流行的 Xilinx Virtex 5的一部分系列,并且是可以在芯片上容納快速和密集系統(tǒng)的非常大、密集和高端 FPGA 的示例。550 MHz 部件具有 440 個(gè) I/O 和超過(guò) 46,000 個(gè)邏輯塊,不僅支持 ARM 內(nèi)核功能,還支持高達(dá) 72 位寬的存儲(chǔ)器寬度、流水線操作、FIFO、具有高達(dá) 16.4 Mb 內(nèi)部塊存儲(chǔ)器的雙端口存儲(chǔ)器和 DSP 功能。
Microsemi是另一家提供 ARM 內(nèi)核支持的 FPGA 制造商,ProASIC3系列是一個(gè)很好的目標(biāo)技術(shù),具有令人印象深刻的低端到高端邏輯、I/O、RAM 和 15,000 到 3,000,000 門數(shù)。一個(gè)很好的例子是具有 341 I/O 和 516 Kb 內(nèi)部 RAM 的A3PE3000-FGG484 。
Altera 有類似的部件,如EP3SL50F780C4N,它同樣支持 ARM 核心處理器,還為 DDR、DDR2、DDR3、SDRAM 等提供內(nèi)存支持,最多可在 24 個(gè)模塊化 I/O bank 上使用 448 個(gè) I/O(該系列中最多 744 個(gè))。作為Stratix III系列的一員,Altera 提供對(duì) Altera Mega-Function Partner Program (AMPP) 的訪問(wèn),以獲得可用的外設(shè)、內(nèi)核和支持。Altera 還通過(guò)其 Altera MegaCore 功能支持多種知識(shí)產(chǎn)權(quán)(圖 2)。
圖 2:高端 32 位 ARM 架構(gòu)是許多 FPGA 的流行內(nèi)核。這個(gè) Altera 版本增加了多核調(diào)試和跟蹤功能,簡(jiǎn)化了單個(gè) FPGA 內(nèi)多個(gè)實(shí)例化處理器內(nèi)核的設(shè)計(jì)。
專有內(nèi)核
除了行業(yè)標(biāo)準(zhǔn)的微控制器內(nèi)核之外,F(xiàn)PGA 制造商還提供專有內(nèi)核,這些內(nèi)核邏輯效率非常高,可擴(kuò)展至 8 至 32 位性能級(jí)別。這些供應(yīng)商的關(guān)鍵是不要在不需要的功能和外圍設(shè)備上浪費(fèi)邏輯;如此經(jīng)??s減,實(shí)現(xiàn)了準(zhǔn)系統(tǒng)處理單元,以提供基本的可編程性和與 FPGA 內(nèi)部大型邏輯池的接口。這不僅可以讓內(nèi)核快速運(yùn)行,還可以讓它們足夠小,以便在您的 SoC 內(nèi)創(chuàng)建您自己的雙核、四核甚至八核處理器。
Xilinx 將此類內(nèi)核指定為 Blaze,提供 PicoBlaze 和 MicroBlaze 兩種風(fēng)格。PicoBlaze 是一種 8 位 RISC 架構(gòu),具有高達(dá) 240 MHz 的性能。它主要設(shè)計(jì)用于 VHDL 設(shè)計(jì)流程,并作為 VHDL 源文件提供。一旦在 13 個(gè)不同的 Xilinx 系列之一中實(shí)現(xiàn),它就不需要外部組件,并且完全在主機(jī)部分內(nèi)運(yùn)行。
支持的系列包括Kinetex-7、Artix-7、Virtex(4、5、6、7、II-Pro)和Spartan(3 和 6)。
從資源和復(fù)雜性的角度來(lái)看,PicoBlaze 相當(dāng)斯巴達(dá)(雙關(guān)語(yǔ))。它具有一個(gè) 16 x 字節(jié)寬的通用數(shù)據(jù)寄存器、1K 的可編程片上程序存儲(chǔ)(在 FPGA 配置期間自動(dòng)加載)、一個(gè)字節(jié)寬的算術(shù)邏輯單元 (ALU),帶有 CARRY 和 ZERO 指示標(biāo)志,64 字節(jié)內(nèi)部暫存器 RAM,以及 256 個(gè)輸入和 256 個(gè)輸出端口,便于擴(kuò)展和增強(qiáng)。
另一方面,它具有可預(yù)測(cè)的性能,每條指令總是兩個(gè)時(shí)鐘周期,最高可達(dá) 240 MHz(或在 Virtex-4 FPGA 中為 100 MIPS)和 88 MHz(或在 Spartan-3 FPGA 中為 44 MIPS)。PicoBlaze 對(duì) Xilinx 用戶免費(fèi),并附帶一個(gè)匯編程序和 VHDL 源代碼。
高端的是 Xilinx MicroBlaze。這是一個(gè) 32 位 RISC 哈佛架構(gòu)軟處理器內(nèi)核,具有 32 個(gè)通用 32 位寄存器、ALU、針對(duì)嵌入式應(yīng)用程序優(yōu)化的豐富指令集、三級(jí) MMU/MPU 支持等。
該內(nèi)核的靈活性(圖 3)允許您選擇性能優(yōu)化的五級(jí)流水線,通過(guò) Kinetix-7 系列(如XC7K70T-1FBG676C)或 3 級(jí)流水線區(qū)域可實(shí)現(xiàn)高達(dá) 317 DMIPS在 Kintex-7 或 Virtex-6 和 7 系列部件(如XC6VLX130T-1FFG784C)上仍可實(shí)現(xiàn)可觀的 264 DMIPS 的優(yōu)化版本。
圖 3:Xilinx FPGA 的專有 32 位 MicroBlaze 內(nèi)核具有條件編譯指令,允許您添加所需的模塊并刪除不需要的模塊,以節(jié)省邏輯并提高密度。
Altera 還提供了一個(gè)稱為 NIOS 的專有內(nèi)核,現(xiàn)在是第二代NIOS II版本(圖 4)。它被譽(yù)為業(yè)內(nèi)使用最廣泛的軟處理器,具有實(shí)時(shí)性能、功率靈敏度和安全關(guān)鍵 (DO-254) 合規(guī)性。
圖 4:Altera 的第二代 NIOS II 內(nèi)核被吹捧為 FPGA 使用和支持最廣泛的 IP 內(nèi)核,并帶來(lái)了許多開(kāi)發(fā)和調(diào)試功能。
六級(jí)流水線 NIOS 內(nèi)核可以用少至 600 個(gè)邏輯元件和特征向量中斷控制、緊密的內(nèi)存和 DSP 耦合以及添加自定義指令(最多 256 個(gè))的能力來(lái)實(shí)現(xiàn)。它可以使用內(nèi)存管理單元 (MMU),并支持開(kāi)源和商業(yè)支持版本的嵌入式 Linux。
可行的替代方案
您的設(shè)計(jì)細(xì)節(jié)將決定您應(yīng)該選擇硬宏還是軟宏。硬宏占用 FPGA 內(nèi)部的特定位置和資源,但硬編碼宏具有更好的特性,可以實(shí)現(xiàn)更好的性能。
軟宏也可以實(shí)現(xiàn)良好的性能,特別是如果您有足夠的勇氣修改、改進(jìn)或并行它們。與往常一樣,良好的設(shè)計(jì)實(shí)踐將產(chǎn)生最佳結(jié)果。
總之,當(dāng)需要盡可能高的密度和/或性能時(shí),選擇 FPGA 內(nèi)部的軟處理器而不是傳統(tǒng)的微控制器及其所有支持電路在靈活性、效率、性能、功率、和空間。
-
微控制器
+關(guān)注
關(guān)注
48文章
7454瀏覽量
150855 -
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601239 -
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349922 -
可編程邏輯
+關(guān)注
關(guān)注
7文章
514瀏覽量
44056 -
微內(nèi)核
+關(guān)注
關(guān)注
0文章
57瀏覽量
13416
原文標(biāo)題:如何在可編程邏輯中實(shí)現(xiàn) MCU 內(nèi)核設(shè)計(jì)
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論