在Block Design中查找IP時(shí)輸入Microblaze,就會(huì)發(fā)現(xiàn)下面幾種IP,我們常規(guī)使用的就是第一個(gè)IP,是一個(gè)可以自定義外設(shè)的軟核,但是第三個(gè)MicroBlaze MCS到底是個(gè)啥,我們接下來詳解。
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 – 具有可配置的波特率、停止位和中斷或輪詢模式。
固定間隔定時(shí)器 (FIT) – 四個(gè)具有 32 位的固定內(nèi)部定時(shí)器。每個(gè) FIT 均提供專用輸出,可生成 50% 占空比輸出。
周期間隔定時(shí)器 (PIT) – 四個(gè)周期間隔定時(shí)器,可在運(yùn)行時(shí)更改。
中斷 – IO 模塊的中斷控制器還可以處理外部中斷。
GPIO – 四個(gè)通用輸出和四個(gè)通用輸入GPIO。
為了探索 MCS,創(chuàng)建一個(gè)針對(duì) Arty S7 的項(xiàng)目。項(xiàng)目打開后,可以將 MCS 添加到BD中,并且可以將 GPIO 輸出連接到 Arty S7 上提供的按鈕、開關(guān)、LED 和 RGB LED。
在此示例中,代碼讀取 DIP 開關(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 配置完成后立即開始運(yùn)行。
當(dāng)然,當(dāng)我們開發(fā)這些應(yīng)用程序時(shí),我們希望應(yīng)用程序適合用于 MCS 的 BRAM。我們還希望確保不會(huì)在 MCS 定義階段分配過多的 BRAM 。
當(dāng)我們?cè)?Vitis 中編譯程序時(shí),我們可以在控制臺(tái)中看到已編譯程序的字節(jié)大小。
我們可以使用此值來確保最佳的 BRAM 大小。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7542瀏覽量
151311 -
存儲(chǔ)器
+關(guān)注
關(guān)注
38文章
7484瀏覽量
163761 -
mcs
+關(guān)注
關(guān)注
0文章
73瀏覽量
24795 -
UART接口
+關(guān)注
關(guān)注
0文章
124瀏覽量
15288 -
中斷控制器
+關(guān)注
關(guān)注
0文章
59瀏覽量
9452 -
Vivado
+關(guān)注
關(guān)注
19文章
812瀏覽量
66470
原文標(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)先 登錄
相關(guān)推薦
評(píng)論