點(diǎn)擊上方藍(lán)字關(guān)注我們
有時(shí),微控制器本身可以完全吸收設(shè)計(jì)的所有功能要求。對于絕大多數(shù)嵌入式系統(tǒng)設(shè)計(jì)而言,編程良好,高度集成的嵌入式處理器是工程師可以使用的成本效益,功效,速度快的解決方案。
當(dāng)原始性能至關(guān)重要時(shí),捕獲的邏輯專用硬件可實(shí)現(xiàn)性能。例如,定序器可以比軟件中實(shí)現(xiàn)的相同邏輯快一個(gè)數(shù)量級。由于分立邏輯器件占用大量空間和功率,因此添加FPGA是一種可行的替代方案。在許多情況下,F(xiàn)PGA和微控制器的組合是一個(gè)很好的解決方案。當(dāng)微控制器在FPGA的邏輯中實(shí)現(xiàn)時(shí),可以實(shí)現(xiàn)更密集的解決方案。作為硬編碼的宏,或者在每個(gè)新設(shè)計(jì)中被替換和布線的軟宏,整個(gè)微控制器吸收到FPGA的房子不僅可以產(chǎn)生的密度,而且可以產(chǎn)生的靈活性,特別是如果你足夠勇敢地修改以提高性能。本文著眼于在現(xiàn)有FPGA中快速運(yùn)行的微核。這些可以從各種來源獲得,包括開放和封閉,和IP許可。
比原始版本更好
可以使用傳統(tǒng)架構(gòu)和專有架構(gòu),每種架構(gòu)都有優(yōu)勢。傳統(tǒng)內(nèi)核與傳統(tǒng)微處理器兼容,并提供熟悉的體系結(jié)構(gòu)。您公司生產(chǎn)的產(chǎn)品可以使用已經(jīng)過測試和驗(yàn)證的代碼。當(dāng)需要下一代產(chǎn)品甚至是新的改進(jìn)模型時(shí),組織良好且可靠的代碼庫的可重用性可以節(jié)省大量時(shí)間。
幾種流行的內(nèi)核已經(jīng)以原始邏輯形式實(shí)現(xiàn)了各種各樣的FPGA系列包括諸如Microchip PIC,Intel 8051,Atmel AVR,Motorola 6502,Intel 8080和Zilog Z80微控制器等處理器。一個(gè)不那么明顯的優(yōu)點(diǎn)是能夠改進(jìn)初始化建筑。如果時(shí)間和資源允許,可以克服缺點(diǎn),因?yàn)槟梢孕薷脑O(shè)計(jì)。例如,非常流行的8051架構(gòu)初采用有序架構(gòu),每條指令需要12個(gè)時(shí)鐘周期。的傳統(tǒng)實(shí)現(xiàn)可以反映初始功能,或者可以實(shí)現(xiàn)更現(xiàn)代的風(fēng)格,減少每條指令的時(shí)鐘周期數(shù)。
改進(jìn)的8051 IP內(nèi)核也可用于跨平臺開發(fā)。 R8051XC2-BF?可用于ASIC或Xilinx和Altera FPGA;它通過添加第二個(gè)數(shù)據(jù)指針(初始設(shè)計(jì)的缺點(diǎn))和JTAG調(diào)試接口(圖1)改進(jìn)了初始設(shè)計(jì)。
圖1:傳統(tǒng)的商業(yè)可用實(shí)現(xiàn)通常會(huì)改進(jìn)初始的離散設(shè)計(jì)。這個(gè)8051內(nèi)核每個(gè)指令運(yùn)行一個(gè)時(shí)鐘,并添加JTAG和第二個(gè)數(shù)據(jù)指針。
ARM內(nèi)核雖然許多設(shè)計(jì)可以使用8位內(nèi)核,但現(xiàn)代功能可能需要更高的總線寬度來簡化處理。如果您正在操作24位寬的圖形數(shù)據(jù),則單個(gè)32位傳輸比三個(gè)8位傳輸更有效。
的32位架構(gòu)也許是ARM?Cortex?,令人驚訝的是,它已成為FPGA實(shí)現(xiàn)的流行且受到良好支持的架構(gòu)。從面積和功耗角度來看,ARM Cortex非常高效。可擴(kuò)展的架構(gòu)得到眾多工具和開發(fā)套件的很好支持,以及外圍設(shè)備,內(nèi)存管理,數(shù)學(xué)和DSP功能的開源代碼。
ARM內(nèi)核的一個(gè)很好的特性是它們不屬于一個(gè)FPGA制造商,可以在不同制造商的設(shè)備上實(shí)現(xiàn)。這意味著隨著設(shè)計(jì)的發(fā)展或需求的變化,您不會(huì)被鎖定在一個(gè)供應(yīng)商中。另一個(gè)好處是,架構(gòu)可以從更簡單,功能更少的Cortex M0擴(kuò)展到非常高端的多核A8和A9風(fēng)格。此外,還具有經(jīng)過賽道驗(yàn)證的驅(qū)動(dòng)程序和堆棧,可用于高端外設(shè),如USB,以太網(wǎng),Wi-Fi,ZigBee,藍(lán)牙等。
Xilinx系列產(chǎn)品是嵌入式微核的大支持者,而ARM架構(gòu)也不例外。像XC5VLX50-1FFG676C這樣的器件是XilinxVirtex?5系列的一部分,它是一個(gè)非常大,密集,高端的FPGA的例子,它可以在芯片上安裝一個(gè)快速而密集的系統(tǒng)。 550 MHz器件具有440個(gè)I/O和超過46,000個(gè)邏輯模塊,不僅支持ARM內(nèi)核功能,還支持高達(dá)72位寬的存儲(chǔ)器寬度,流水線操作,F(xiàn)IFO,具有高達(dá)16.4 Mbits內(nèi)部塊存儲(chǔ)器的雙端口存儲(chǔ)器和DSP功能。
Microsemi是另一家提供ARM內(nèi)核支持的FPGA制造商,ProASIC3系列是一款的目標(biāo)技術(shù),具有令人印象深刻的低端到高端邏輯,I/O,RAM和門數(shù)15,000到3,000,000。一個(gè)很好的例子是A3PE3000-FGG484具有341個(gè)I/O和516 Kbits的內(nèi)部RAM。
Altera具有可比較的部件,如EP3SL50F780C4N,它同樣支持ARM處理器,并為DDR,DDR2,DDR3,SDRAM提供內(nèi)存支持更多,多24個(gè)模塊化I/O bank,448 I/O(系列中多744個(gè))。作為Stratix?III系列的成員,Altera可以訪問Altera Mega-Function合作伙伴計(jì)劃(AMPP),以獲取可用的外設(shè),內(nèi)核和支持。 Altera還通過其Altera MegaCore功能支持多種知識產(chǎn)權(quán)(圖2)。
圖2:高端32位ARM架構(gòu)是許多FPGA的流行。該Altera版本增加了多核調(diào)試和跟蹤功能,簡化了單個(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位的性能水平。這些供應(yīng)商的關(guān)鍵不是在不需要的功能和外圍設(shè)備上浪費(fèi)邏輯;經(jīng)常縮減,實(shí)現(xiàn)了裸機(jī)處理單元,以提供基本的可編程性和FPGA內(nèi)部大型邏輯池的接口。這不僅可以讓內(nèi)核快速運(yùn)行,而且還可以保持它們足夠小,以便在SoC內(nèi)部創(chuàng)建自己的雙核,四核甚至八核處理器。
Xilinx指定Blaze這樣的內(nèi)核,可以同時(shí)使用PicoBlaze和MicroBlaze口味。 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ù)雜性的角度來看,PicoBlaze是Spartan(雙關(guān)語)。它具有一個(gè)16 x字節(jié)寬的通用數(shù)據(jù)寄存器,1K可編程片上程序存儲(chǔ)器(在FPGA配置期間自動(dòng)加載),一個(gè)帶有CARRY和ZERO指示器標(biāo)志的字節(jié)寬運(yùn)算邏輯單元(ALU),64字節(jié)內(nèi)部暫存器RAM,256個(gè)輸入和256個(gè)輸出端口,便于擴(kuò)展和增強(qiáng)。另一方面,它具有可預(yù)測的性能,每條指令總是兩個(gè)時(shí)鐘周期,高達(dá)240 MHz(或Virtex-4中的100 MIPS) FPGA)和88 MHz(或Spartan-3 FPGA中的44 MIPS)。 PicoBlaze對Xilinx用戶提供,并附帶匯編程序和VHDL源代碼。
高端是Xilinx MicroBlaze。這是一個(gè)32位RISC Harvard架構(gòu)軟核處理器內(nèi)核,具有32個(gè)通用32位寄存器,ALU,針對嵌入式應(yīng)用優(yōu)化的豐富指令集,三級MMU/MPU支持等。
靈活性該(圖3)允許您選擇性能優(yōu)化的五級流水線,使用Kinetix-7系列(例如XC7K70T-1FBG676C)或3級流水線區(qū)域優(yōu)化版本可實(shí)現(xiàn)高達(dá)317 DMIPS在Xintex-7或Virtex-6和7系列器件(如XC6VLX130T-1FFG784C)上仍然可以達(dá)到令人尊敬的264 DMIPS。
圖3:用于Xilinx FPGA的專有32位MicroBlaze內(nèi)核有條件編譯指令允許你添加你需要的塊,并消除你不保存邏輯和提高密度的塊。
Altera還提供了一個(gè)名為NIOS的專有內(nèi)核,現(xiàn)在是第二代NIOS II版本(圖4) 。作為業(yè)界使用廣泛的軟處理器,它具有功率靈敏度和安全關(guān)鍵(DO-254)兼容性的實(shí)時(shí)性能。
圖4:Altera的第二代NIOS II內(nèi)核被譽(yù)為FPGA中使用廣泛且支持的IP內(nèi)核,并帶來了許多開發(fā)和調(diào)試功能。
六級流水線NIOS內(nèi)核可以實(shí)現(xiàn)少至600個(gè)邏輯單元和特征向量中斷控制,緊密內(nèi)存和DSP耦合,以及添加自定義指令(多256個(gè))的能力。它可以使用內(nèi)存管理單元(MMU),并在開源和商業(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)的微控制器及其所有支持電路可能在靈活性,效率,性能,功耗和空間方面,這是一個(gè)更好的解決方案。
掃碼加微信邀請您加入FPGA學(xué)習(xí)交流群
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個(gè)在看你最好看
原文標(biāo)題:在FPGA中實(shí)現(xiàn)MCU內(nèi)核的快速運(yùn)行
文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21769瀏覽量
604648
原文標(biāo)題:在FPGA中實(shí)現(xiàn)MCU內(nèi)核的快速運(yùn)行
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論