在Block Design中查找IP時(shí)輸入Microblaze,就會(huì)發(fā)現(xiàn)下面幾種IP,我們常規(guī)使用的就是第一個(gè)IP,是一個(gè)可以自定義外設(shè)的軟核,但是第三個(gè)MicroBlaze MCS到底是個(gè)啥,我們接下來(lái)詳解。

MicroBlaze 微控制器系統(tǒng) (MCS)是一個(gè) MicroBlaze 實(shí)例。MCS 是一個(gè)集成的 MicroBlaze 解決方案,在單個(gè)模塊中包含本地存儲(chǔ)器、UART、定時(shí)器和 GPIO。MCS 旨在減少邏輯資源和程序存儲(chǔ)器的占用空間。MCS 可以使用三級(jí)或五級(jí)管道,具體取決于優(yōu)化是針對(duì)面積還是性能。

MCS 的優(yōu)勢(shì)之一是,與使用 MicroBlaze 和分立IP創(chuàng)建等效系統(tǒng)相比,MCS 能夠?qū)崿F(xiàn)進(jìn)一步優(yōu)化。
MCS 和 MicroBlaze 之間的主要區(qū)別如下表所示。

MCS 為我們想要與 GPIO 交互和 UART 接口使用提供了出色的解決方案。
MCS 解決方案提供以下功能:
UART – 具有可配置的波特率、停止位和中斷或輪詢(xún)模式。
固定間隔定時(shí)器 (FIT) – 四個(gè)具有 32 位的固定內(nèi)部定時(shí)器。每個(gè) FIT 均提供專(zhuān)用輸出,可生成 50% 占空比輸出。
周期間隔定時(shí)器 (PIT) – 四個(gè)周期間隔定時(shí)器,可在運(yùn)行時(shí)更改。
中斷 – IO 模塊的中斷控制器還可以處理外部中斷。
GPIO – 四個(gè)通用輸出和四個(gè)通用輸入GPIO。
為了探索 MCS,創(chuàng)建一個(gè)針對(duì) Arty S7 的項(xiàng)目。項(xiàng)目打開(kāi)后,可以將 MCS 添加到BD中,并且可以將 GPIO 輸出連接到 Arty S7 上提供的按鈕、開(kāi)關(guān)、LED 和 RGB LED。


在此示例中,代碼讀取 DIP 開(kāi)關(guān)并以一秒循環(huán)驅(qū)動(dòng) LED。
#include#include"platform.h" #include"xil_printf.h" #include"xiomodule.h" #include"xparameters.h" #include"xil_printf.h" intmain() { XIOModuleIOModule; XIOModule_Config*IOCfgPtr=IOModule.CfgPtr; u32switches; init_platform(); print("MicroBlazeMCS "); XIOModule_Initialize(&IOModule,XPAR_IOMODULE_0_NUM_INSTANCES); while(1){ switches=XIOModule_DiscreteRead(&IOModule,1); usleep(1000000); xil_printf("DIPSwitches%x ",switches); XIOModule_DiscreteWrite(&IOModule,3,switches); } cleanup_platform(); return0; }
由于 MCS 不提供從外部存儲(chǔ)器運(yùn)行的能力,因此由 Vitis 生成并包含應(yīng)用程序的 ELF 文件必須與 Vivado 中的比特流合并。這也能確保了 MCS 應(yīng)用程序在 FPGA 配置完成后立即開(kāi)始運(yùn)行。

當(dāng)然,當(dāng)我們開(kāi)發(fā)這些應(yīng)用程序時(shí),我們希望應(yīng)用程序適合用于 MCS 的 BRAM。我們還希望確保不會(huì)在 MCS 定義階段分配過(guò)多的 BRAM 。
當(dāng)我們?cè)?Vitis 中編譯程序時(shí),我們可以在控制臺(tái)中看到已編譯程序的字節(jié)大小。

我們可以使用此值來(lái)確保最佳的 BRAM 大小。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
8375瀏覽量
164546 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7738瀏覽量
171650 -
mcs
+關(guān)注
關(guān)注
0文章
75瀏覽量
25757 -
UART接口
+關(guān)注
關(guān)注
0文章
124瀏覽量
16370 -
中斷控制器
+關(guān)注
關(guān)注
0文章
63瀏覽量
9819 -
Vivado
+關(guān)注
關(guān)注
19文章
857瀏覽量
71104
原文標(biāo)題:【Vivado那些事兒】MicroBlaze MCS 和 MicroBlaze區(qū)別
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
MEN文件無(wú)法創(chuàng)建,MicroBlaze MCS仿真失敗,究竟怎么辦?
MicroBlaze串口設(shè)計(jì)
請(qǐng)問(wèn)使用microblaze和使用vhdl核心有什么區(qū)別?
Microblaze MCS設(shè)計(jì)時(shí)命令行出現(xiàn)錯(cuò)誤該怎么辦?
基于MicroBlaze 軟核的FPGA 片上系統(tǒng)設(shè)計(jì)
基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計(jì)
利用Vivado進(jìn)行MicroBlaze處理器應(yīng)用教程
MicroBlaze性能詳解
基于MicroBlaze嵌入式高級(jí)應(yīng)用及設(shè)計(jì)技巧
Xilinx公司的MicroBlaze處理器的結(jié)構(gòu)和原理是怎么樣的?
MicroBlaze MCS和MicroBlaze的區(qū)別在哪?
評(píng)論