0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在可編程邏輯中實(shí)現(xiàn)MCU內(nèi)核設(shè)計(jì)

FPGA設(shè)計(jì)論壇 ? 來(lái)源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2023-04-01 13:20 ? 次閱讀

有時(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)。

73ae8a88-d04c-11ed-bfe3-dac502259ad0.png

圖 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)。

73e92152-d04c-11ed-bfe3-dac502259ad0.png

圖 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)化版本。

740c1a54-d04c-11ed-bfe3-dac502259ad0.png

圖 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ī)性。

742c3712-d04c-11ed-bfe3-dac502259ad0.png

圖 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)的微控制器及其所有支持電路在靈活性、效率、性能、功率、和空間。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150855
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601239
  • mcu
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在可編程邏輯實(shí)現(xiàn) MCU 內(nèi)核設(shè)計(jì)

    六級(jí)流水線 NIOS 內(nèi)核可以用少至 600 個(gè)邏輯元件和特征向量中斷控制、緊密的內(nèi)存和 DSP 耦合以及添加自定義指令(最多 256 個(gè))的能力來(lái)實(shí)現(xiàn)。它可以使用內(nèi)存管理單元 (MMU),并支持開(kāi)源和商業(yè)支持版本的嵌入式 Li
    發(fā)表于 08-09 10:45 ?764次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>可編程</b><b class='flag-5'>邏輯</b><b class='flag-5'>中</b><b class='flag-5'>實(shí)現(xiàn)</b> <b class='flag-5'>MCU</b> <b class='flag-5'>內(nèi)核</b>設(shè)計(jì)

    什么是可編程邏輯

    。事實(shí)上,由于有了可編程邏輯器件,一些設(shè)備制造商現(xiàn)在正在嘗試為已經(jīng)安裝在現(xiàn)場(chǎng)的產(chǎn)品增加新功能或者進(jìn)行升級(jí)。要實(shí)現(xiàn)這一點(diǎn),只需要通過(guò)因特網(wǎng)將新的編程文件上載到PLD就可以在系統(tǒng)創(chuàng)建出新
    發(fā)表于 05-29 11:36

    可編程邏輯器件

    可編程邏輯器件到底是干什么用的呢,簡(jiǎn)單的說(shuō),就是通過(guò)重新寫程序,重新注入到這個(gè)器件達(dá)到實(shí)現(xiàn)其它的功能。最常見(jiàn)的當(dāng)屬電腦了。電腦本身除了加法,減法和簡(jiǎn)單的邏輯運(yùn)算四種。比如要是想
    發(fā)表于 04-15 10:02

    什么是可編程邏輯控制器?可編程邏輯控制器有哪些特點(diǎn)?

    什么是可編程邏輯控制器?可編程邏輯控制器主要有哪些特點(diǎn)?可編程邏輯控制器主要有哪些應(yīng)用領(lǐng)域?
    發(fā)表于 07-05 06:00

    可編程邏輯基礎(chǔ)電子書(shū)

    可編程邏輯基礎(chǔ)電子書(shū)
    發(fā)表于 03-23 16:48 ?0次下載

    可編程邏輯器件基礎(chǔ)及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)

    可編程邏輯器件基礎(chǔ)及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū) 《可編程邏輯器件基礎(chǔ)及應(yīng)用》是一門側(cè)重掌握可編程邏輯器件的基本結(jié)構(gòu)和原理的課程。重點(diǎn)是使學(xué)生掌握基于可編程
    發(fā)表于 03-24 14:22 ?29次下載

    什么是PLD(可編程邏輯器件)

    什么是PLD(可編程邏輯器件) PLD是可編程邏輯器件(Programable Logic Device)的簡(jiǎn)稱,F(xiàn)PGA是現(xiàn)場(chǎng)可編程門陣列(Field Programable Gate Array)
    發(fā)表于 06-20 10:32 ?2.5w次閱讀
    什么是PLD(<b class='flag-5'>可編程邏輯</b>器件)

    可編程陣列邏輯(Programmable Array Log

    可編程陣列邏輯(Programmable Array Logic) 可編程陣列邏輯(PAL)是一種與項(xiàng)可編程、或項(xiàng)固定結(jié)構(gòu)的
    發(fā)表于 09-18 09:13 ?2015次閱讀

    EDA技術(shù)與應(yīng)用(可編程邏輯器件)

    7.1 可編程邏輯器件的基本原理 7.2 可編程邏輯器件的設(shè)計(jì)技術(shù) 7.3 可編程邏輯器件的編程與配置
    發(fā)表于 05-23 10:46 ?142次下載
    EDA技術(shù)與應(yīng)用(<b class='flag-5'>可編程邏輯</b>器件)

    基于可編程邏輯的SDRAM控制方法設(shè)計(jì)

    基于可編程邏輯的SDRAM控制方法設(shè)計(jì)
    發(fā)表于 06-30 10:16 ?8次下載

    可編程邏輯控制繼電器

    可編程邏輯控制繼電器 可編程邏輯控制繼電器是一種“可編程序”、“通用”、“智能化”控制繼電器,不同廠商的產(chǎn)品有不同的名稱,如,德國(guó)金鐘-默勒
    發(fā)表于 11-01 13:16 ?1133次閱讀

    可編程邏輯器件測(cè)試

    可編程邏輯器件 (Programmable Loeie Device,PLD)是一種用戶編程實(shí)現(xiàn)某種邏輯功能的邏輯器件,主要由
    發(fā)表于 06-06 15:37 ?641次閱讀
    <b class='flag-5'>可編程邏輯</b>器件測(cè)試

    什么叫可編程邏輯器件 可編程邏輯器件有哪些特征和優(yōu)勢(shì)?

    可編程邏輯器件(Programmable Logic Device,PLD)是一類集成電路器件,可以根據(jù)用戶的需求進(jìn)行編程和配置,以實(shí)現(xiàn)特定的邏輯功能。它們具有
    發(fā)表于 09-14 15:25 ?2570次閱讀

    可編程邏輯器件的特征及優(yōu)勢(shì)科普

    可編程邏輯器件是一種集成電路,具有可編程功能的特性。它們可以根據(jù)用戶的需求進(jìn)行編程,從而實(shí)現(xiàn)不同的邏輯功能。
    的頭像 發(fā)表于 02-26 18:24 ?1060次閱讀

    什么是現(xiàn)場(chǎng)可編程邏輯陣列?它有哪些特點(diǎn)和應(yīng)用?

    可編程邏輯元件和可編程互連,實(shí)現(xiàn)邏輯電路的設(shè)計(jì)和配置。FPLA在電子系統(tǒng)設(shè)計(jì)、數(shù)字信號(hào)處理、網(wǎng)絡(luò)通信等多個(gè)領(lǐng)域都有廣泛應(yīng)用。本文將對(duì)現(xiàn)場(chǎng)
    的頭像 發(fā)表于 05-23 16:25 ?745次閱讀