MicroBlade 處理器軟核 IP是實(shí)現(xiàn)基于 RISC-V(Reduced Instruction Set Computer,精簡指令集計(jì)算機(jī))指令集架構(gòu)的 32 位處理器軟核,支持 RV32IM 指令集,支持 AXI4-Lite 接口,用于簡化 FPGA 中復(fù)雜的控制邏輯。MicroBlade 處理器軟核框架如下圖所示:
MicroBlade 串口設(shè)計(jì),開發(fā)板實(shí)現(xiàn)使用的是億海神針系列EQ6HL45型FPGA。本篇通過原理圖設(shè)計(jì),學(xué)習(xí)MicroBlade基本結(jié)構(gòu),通過創(chuàng)建簡單的MicroBlade工程,實(shí)現(xiàn)MicroBlade調(diào)用AXI Uartlite模塊和AXI GPIO模塊,完成串口打印功能,掌握在模塊化設(shè)計(jì)中,MicroBlade最小系統(tǒng)的組成,學(xué)會(huì)導(dǎo)出、建立以及運(yùn)行基于SDK的工程。
設(shè)計(jì)原理
本系統(tǒng)中的MicroBlade模塊通過AXI Lite總線與AXI Uartlite IP和AXI GPIO IP進(jìn)行通信,完成led指示燈的狀態(tài)改變以及串口打印功能。
操作步驟
基于GUI界面創(chuàng)建工程
1
創(chuàng)建新的工程項(xiàng)目
1)雙擊桌面圖標(biāo)打開eLinx3.0;2)點(diǎn)擊Create Project,或者單擊File>New Project創(chuàng)建工程文件;3)將新的工程項(xiàng)目命名TEST_MICROBLADE,選擇工程保存路徑,勾選Create project subdirectory,創(chuàng)建一個(gè)新的工程文件夾,點(diǎn)擊Next繼續(xù);4)選擇新建一個(gè)RTL工程,由于本工程無需創(chuàng)建源文件,故將Do not specify sources at this time(不指定添加源文件)勾選上。點(diǎn)擊 Next繼續(xù);5)選擇目標(biāo)FPGA器件:Family:eHiChip6 Package:CSG324Available devices: EQ6HL456)最后在新工程總結(jié)中,檢查工程創(chuàng)建是否有誤。沒有問題,則點(diǎn)擊Finish,完成新工程的創(chuàng)建。
2
創(chuàng)建原理圖,添加IP,進(jìn)行原理圖設(shè)計(jì)
1)在Flow Navigator下,展開IP INTEGRATOR,選擇Create Block Design創(chuàng)建新的原理圖設(shè)計(jì);2)將新的設(shè)計(jì)命名為design1;
3)在Diagram中添加MicroBlade IP;
4)添加完成后如下圖所示,點(diǎn)擊Run Block Automation;
5) 在彈出窗口中,使用以下設(shè)置替換默認(rèn)設(shè)置:
Local Memory: 64KB
Debug Module: Debug
Peripheral AXI Port: Enabled
6)完成之后,eLinx會(huì)基于之前的設(shè)置自動(dòng)生成一些額外的IP,并且會(huì)自動(dòng)連接完畢,此時(shí)不要點(diǎn)擊Run Connection Automation;
7)在Diagram中添加AXI Uartlite IP和AXI GPIO IP;
8)完成后,點(diǎn)擊Run Connection Automation,在彈出窗口中勾選所有端口,點(diǎn)擊OK繼續(xù);
9)完成后,雙擊MicroBlade IP,打開界面,取消勾選Enable Interrupt隱藏Interrupt端口;10)雙擊AXI_Lite Interconnect IP,打開界面,把master端口的數(shù)量修改為2。手動(dòng)完成AXI_Lite Interconnect IP與AXI Uartlite IP,與AXI GPIO IP的連線; 11)雙擊AXI Uartlite IP,打開界面,把AXI CLK Frequency修改為50(板卡晶振為50M)。單擊UART端口,引出外設(shè)IO;12)雙擊AXI GPIO IP,打開界面,把GPIO通道GPIO Width修改為2,勾選Enable Dual Channel,把GPIO2通道GPIO Width修改為1。點(diǎn)擊展開GPIO端口,點(diǎn)擊gpio_io_o端口,引出外設(shè)IO;13)完成后,點(diǎn)擊布局重置按鈕重新布局,如下圖所示:
14)Ctrl+S保存設(shè)計(jì)。
3
綜合、實(shí)現(xiàn)、生成比特流文件
1)保存后,在Sources窗格中鼠標(biāo)右鍵design1,選擇Generate Output Products...,開始BD工程綜合,如下圖所示:
2)在Sources窗格中BD文件點(diǎn)擊右鍵,選擇Create HDL Wrapper,自動(dòng)更新Sources列表,同時(shí)工程沒有頂層,則自動(dòng)設(shè)置為頂層;3)在界面上方工具欄中,選擇Toos>Settings…在彈出的界面中點(diǎn)擊Synthesis欄,取消勾選Post_Synthesis Netlist Optimizing;
4)完成后繼續(xù)點(diǎn)擊Flow Navigator中的SYNTHESIS欄中的Run Synthesis進(jìn)行工程綜合;5)綜合結(jié)束后在界面上方工具欄中,選擇Toos >I/O Planning編輯管腳指定;
6)完成后在SYNTHESIS欄中點(diǎn)擊Edit Timing Constraints添加2個(gè)時(shí)序約束后保存;
7)完成后繼續(xù)點(diǎn)擊左側(cè)Run Implemenation按鈕進(jìn)行布局布線編譯實(shí)現(xiàn);8)在PROGRAM AND DEBUG欄點(diǎn)擊Generate Bitstream。連接開發(fā)板,完成后點(diǎn)擊Open target啟動(dòng)Programmer下載碼流。下載成功后默認(rèn)狀態(tài)為led1和led2交替閃爍。
4
導(dǎo)出SDK并啟動(dòng)
1)在頂部工具欄中,選擇File>Export>Export Hardware導(dǎo)出硬件工程到SDK;
2)在工具欄中,選擇File>Launch SDK,使用默認(rèn)工程,啟動(dòng)SDK;
3)啟動(dòng)SDK后,如下界面,點(diǎn)擊Create a project,彈出如下界面:
4)選擇New Application->Application project,輸入工程名helloworld,依次默認(rèn)配置點(diǎn)擊Finish完成創(chuàng)建;
5)工程屬性無需配置,工程中集成了例程,如下圖:
6)構(gòu)建。構(gòu)建成功后左側(cè)生成Debug文件夾
7)進(jìn)行上板運(yùn)行a)在工程名稱上點(diǎn)擊右鍵,彈出界面選擇run as
b)點(diǎn)擊后彈出如下界面,在GDB OpenOCD Debugging按鈕雙擊即可
c)完成后,點(diǎn)擊run可開始板卡聯(lián)調(diào),成功如下圖所示:
5)連接串口。選擇SDK界面下方的Terminal窗口,點(diǎn)擊下圖的按鈕
6)在彈出窗口中,進(jìn)行如下配置:
?
7)點(diǎn)擊OK后,點(diǎn)擊EQ6HL45板卡上的復(fù)位按鈕(F2),Terminal界面出現(xiàn)了’Hello RISC-V World’字樣。
-
處理器
+關(guān)注
關(guān)注
68文章
19387瀏覽量
230526 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7525瀏覽量
88356 -
IP
+關(guān)注
關(guān)注
5文章
1715瀏覽量
149731 -
串口
+關(guān)注
關(guān)注
14文章
1557瀏覽量
76750 -
串口傳輸
+關(guān)注
關(guān)注
0文章
33瀏覽量
1822
發(fā)布評論請先 登錄
相關(guān)推薦
評論