基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計(jì)
在EDK開(kāi)發(fā)套件的XPS集成開(kāi)發(fā)環(huán)境下進(jìn)行系統(tǒng)硬件設(shè)計(jì)。在其界面環(huán)境下,添加IP核,進(jìn)行系統(tǒng)連接和各項(xiàng)參數(shù)設(shè)置。由于系統(tǒng)中包含的硬件算法模塊不是標(biāo)準(zhǔn)模塊,因此工程需要設(shè)置成子模塊方式,利用平臺(tái)產(chǎn)生器,根據(jù)硬件描述文件(.MHS文件),生成嵌入式系統(tǒng)子模塊的網(wǎng)表文件(.NGC)。然后在ISE設(shè)計(jì)環(huán)境下,從外部通過(guò)GPIO端口與硬件算法模塊相連,從而構(gòu)成整個(gè)應(yīng)用系統(tǒng)的硬件模型。
本文引用地址:http://m.butianyuan.cn/article/267948.htm
在EDK中,每一個(gè)外設(shè)IP模塊都有自己的軟件函數(shù)庫(kù)。利用Libgen工具,將所需外設(shè)函數(shù)數(shù)庫(kù)的頭文件添加進(jìn)工程中,通過(guò)調(diào)用這些函數(shù)可以操作和控制這些外設(shè)。例如對(duì)串口的操作如下:
//初始化串口,設(shè)置波特率等參數(shù),清空發(fā)送和接收緩沖,禁止中斷;
XuartLite_Initialize(&UART,XPAR_MYUARTLITE_DEVICE_ID);
//發(fā)送接收數(shù)據(jù)
XuartLite_Send(&UART,&send_data,1);XUartLite_Recv(&UART,&recv_data,1);
使用標(biāo)準(zhǔn)C語(yǔ)言進(jìn)行應(yīng)用程序的開(kāi)發(fā),編寫(xiě)相應(yīng)的算法軟件,完成系統(tǒng)功能。軟件流程如圖9所示。
將編寫(xiě)的程序代碼利用mb-gcc編譯工具,根據(jù)系統(tǒng)的軟件一并,生成.ELF文件。在編譯鏈接之前,若選擇調(diào)試方式,就會(huì)在生成文件中加入調(diào)試接口SMDstub,進(jìn)行程序的硬件調(diào)試。
利用系統(tǒng)的硬件模型以及RAM塊的組織結(jié)構(gòu)文件、ELF文件和用戶(hù)結(jié)束文件,應(yīng)用FPGA綜合實(shí)現(xiàn)工具(如Xilinx XST)進(jìn)行綜合,然后下載生成的配置BIT文件
到目標(biāo)板上。利用EDK中提供的GDB調(diào)試工具可以進(jìn)行程序調(diào)試。有兩種調(diào)試方法:軟件仿真和硬件調(diào)試。軟件仿真可以進(jìn)行程序的功能調(diào)試,在開(kāi)發(fā)工具內(nèi)部就可以進(jìn)行,不需要硬件支持。硬件調(diào)試就是通過(guò)JTAG接口或串口(可在硬件設(shè)計(jì)時(shí)選擇),連接到目標(biāo)板上的應(yīng)用系統(tǒng)中的XMD調(diào)試接口,將軟件程序下載到系統(tǒng)中進(jìn)行調(diào)試。本課題使用的目標(biāo)板上的主芯片為Xilinx Spartan IIE 30萬(wàn)門(mén)的FPGA,系統(tǒng)時(shí)鐘為50MHz。實(shí)際運(yùn)行完全滿足設(shè)計(jì)要求。
結(jié)語(yǔ)
采用FPGA和MicroBlaze進(jìn)行嵌入式系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了多片專(zhuān)用芯片的功能,大大縮小了接收機(jī)體積,便于系統(tǒng)實(shí)現(xiàn)小型化、集成化。捕獲及跳頻同步等算法采用硬件實(shí)現(xiàn),加快了捕獲跟蹤速度。實(shí)驗(yàn)結(jié)果表明,F(xiàn)PGA系統(tǒng)設(shè)計(jì)是正確可行的。如果在系統(tǒng)中配置大容量的SDRAM,加入以太網(wǎng)或USB等高速通信接口,將實(shí)時(shí)操作系統(tǒng)運(yùn)行于處理器上,就可以構(gòu)建一個(gè)較為完善的,基于FPGA的嵌入式系統(tǒng)。這將在網(wǎng)絡(luò)、通信、消費(fèi)類(lèi)產(chǎn)品等多方面有著廣闊的應(yīng)用前景。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論