版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
上的嵌入式系統(tǒng)設計實例教學第1頁/共409頁4.1簡單的硬件設計
1.實驗簡介本實驗將指導讀者使用XILINXPlatformStudio(XPS)創(chuàng)建一個基于Spartan-3EStarterKit的簡單處理器系統(tǒng)。第2頁/共409頁
2.實驗目的本實驗的目的如下:
(1)使用BaseSystemBuilder(BSB)創(chuàng)建一個XPS工程。
(2)使用EmbeddedDevelopmentKit(EDK)上的XILINXIPs創(chuàng)建一個簡單的硬件設計。
3.實驗步驟本次實驗的目的是使讀者完整地完成一個硬件和軟件處理器系統(tǒng)的設計。每個實驗都是建立在先前實驗的基礎上的。圖4.1.1表示完整的設計。第3頁/共409頁圖4.1.1完整設計第4頁/共409頁這次實驗,讀者將會使用XPS系統(tǒng)的BSB創(chuàng)建一個處理器系統(tǒng),該系統(tǒng)由下列處理器IP組成(見圖4.1.2,其中深色方框表示):●?MicroBlaze?!?opb_mdm?!?OPB總線?!?BRAM的LMBBRAM控制器?!?BRAM?!翊袀鬏?shù)腢ART?!?LEDs的GPIO。第5頁/共409頁圖4.1.2處理器IP第6頁/共409頁本次實驗由三個主要步驟組成:使用BaseSystemBuilder創(chuàng)建系統(tǒng),分析已創(chuàng)建工程,生成處理器和硬件IP網表。本次實驗的簡要流程如下:第7頁/共409頁4.1.1使用BaseSystemBuilder創(chuàng)建工程
(1)運行XILINXPlatformStudio(XPS),通過BaseSystemBuilder創(chuàng)建一個基于Spartan-3EStarterKit的工程。選擇MicroBlaze處理器,處理器總線時鐘頻率為50MHz,片上H/W調試模塊作為調試接口。具體步驟如下:①選擇“開始”→“程序”→“XilinxPlatformStudio8.2i”→“XilinxPlatformStudio”(見圖4.1.3),運行XPS。第8頁/共409頁圖4.1.3選擇XilinxPlatformStudio第9頁/共409頁注意:不要選擇“XilinxPlatformStudioSDK”,否則會打開SoftwareDevelopmentKitIDE。②顯示如圖4.1.4所示的對話框,單擊“OK”按鈕來創(chuàng)建工程(如果單擊了“Cance1”,讀者可以選擇File→NewProject,將會顯示類似的對話框)。選擇“BaseSystemBuilderwizard(recommended)”選項后,將會用BSB向導對話框創(chuàng)建一個新的XPS工程(見圖4.1.5)。第10頁/共409頁圖4.1.4創(chuàng)建新的BSB工程第11頁/共409頁圖4.1.5使用BSB向導對話框創(chuàng)建新的XPS工程第12頁/共409頁③定位到c:\xup\embedded\labs文件夾,點擊創(chuàng)建新的文件夾按鈕,命名為lab1(見圖4.1.6)。圖4.1.6指定工程文件夾第13頁/共409頁④點擊“OK”按鈕,顯示“WelcometoBaseSystemBuilder”對話框,選擇“Iwouldliketocreateanewdesign”選項。⑤點擊“Next”按鈕,顯示“SelectBoard”對話框(見圖4.1.7),指定設置如下:●?Boardvendor:Xilinx●?Boardname:Spartan-3EStarterBoard●?Boardrevision:C第14頁/共409頁圖4.1.7“SelectBoard”對話框第15頁/共409頁⑥點擊“Next”按鈕,顯示“SelectProcessor”對話框(見圖4.1.8)。圖4.1.8“SelectProcessor”對話框第16頁/共409頁⑦點擊“Next”按鈕,顯示“ConfigureMicroBlaze”對話框(見圖4.1.9),指定設置如下:●?Referenceclockfrequency:50MHz(這是一個所使用板上的外部時鐘源。該時鐘源用于生成處理器和總線時鐘,數(shù)值與FPGA或所用開發(fā)板有關,因為一定的片上資源(DCMs)要求時鐘分頻。)●?Processor-Busclockfrequency:50MHz●?DebugI/F:On-chipH/Wdebugmodule●?DataandInstruction:8KB●?Cachesetup:NoCache第17頁/共409頁圖4.1.9“ConfigureMicroBlaze”對話框第18頁/共409頁
(2)選擇LEDs_8Bit(OPBGPIO,無中斷)、RS232_DCE(115200比特率,無配類,無中斷)作為外圍設備,生成存儲測試樣本請求和連接圖。①在圖4.1.9所示對話框中點擊“Next”按鈕,顯示“ConfigureIOInterfaces”和“ConfigureAdditionalIOInterfaces”對話框(見圖4.1.10)。確認選中“RS232_DCE”和“LEDs_8Bit”,而其他外圍設備沒有被選中。第19頁/共409頁圖4.1.10“ConfigureIOInterfaces”對話框第20頁/共409頁注意:每個窗口顯示的外圍設備的數(shù)量取決于顯示器的分辨率。②點擊“Next”按鈕,顯示“ConfigureAdditionalIOInterfaces”對話框(見圖4.1.11),未選中其余設備。③點擊“Next”按鈕,直到出現(xiàn)“AddInternalPeripherals”對話框,確認沒有選中其他設備(見圖4.1.12),讀者可以點擊“AddPeripheral”添加一些外圍設備。在下一個實驗中,讀者將學會給已存在項目添加外圍設備的另一種方法。第21頁/共409頁圖4.1.11“ConfigureAdditional
IOInterfaces”對話框第22頁/共409頁圖4.1.12“AddInternalPeripherals”對話框第23頁/共409頁④點擊“Next”按鈕,顯示“SoftwareSetup”對話框。選中“Memorytest”采樣測試,不要選中“Peripheralselftest”(見圖4.1.13)。圖4.1.13“SoftwareSetup”對話框第24頁/共409頁⑤點擊“Next”按鈕,顯示“ConfigureMemoryTestApplication”對話框(見圖4.1.14)。圖4.1.14“ConfigureMemoryTestApplication”對話框第25頁/共409頁⑥點擊“Next”按鈕,顯示“SystemCreated”對話框,框內是創(chuàng)建系統(tǒng)的說明(見圖4.1.15)。圖4.1.15“SystemCreated”對話框第26頁/共409頁⑦點擊“Generate”按鈕彈出一個祝賀對話框,表示BSB已經創(chuàng)建成功。⑧點擊“Finish”按鈕結束生成項目后,顯示下一步對話框,確認選中“StartUsingPlatformStudio”并點擊“OK”按鈕。⑨此時將顯示系統(tǒng)連接圖(見圖4.1.16),顯示系統(tǒng)的外圍設備、總線及系統(tǒng)的連接情況。第27頁/共409頁圖4.1.16顯示系統(tǒng)連接第28頁/共409頁4.1.2分析已創(chuàng)建工程點擊Project→GenerateandViewBlockDiagram,在示意圖中顯示硬件設計。在System標簽下,可以看見已創(chuàng)建的工程文件。使用系統(tǒng)連接圖回答以下各問題。
(1)點擊Project→GenerateandViewBlockDiagram打開模塊圖(見圖4.1.17),觀察已創(chuàng)建設計中的各個組成部分。第29頁/共409頁圖4.1.17創(chuàng)建系統(tǒng)的模塊圖第30頁/共409頁讀者在模塊圖上滾動鼠標滾輪以放大或縮小視圖,可以看到MicroBlaze處理器、LMB控制器和連接MicroBlaze處理器的opb總線。
(2)下拉模塊圖,觀察I/O端口的圖示。
(3)關閉模塊圖。
(4)在系統(tǒng)連接圖中,點擊加號按鈕,觀察系統(tǒng)展開后詳細的連接總線(見圖4.1.18)。第31頁/共409頁圖4.1.18總線連接詳情第32頁/共409頁(5)點擊“Ports”展開視圖,如圖4.1.19所示。第33頁/共409頁圖4.1.19PortsFilter第34頁/共409頁第35頁/共409頁4.1.3生成處理器和硬件網表使用PlatGen生成硬件網表,具體步驟如下:
(1)在XPS中,選擇Hardware→GenerateNetlist或者點擊工具欄中的按鈕。
(2)在控制窗口中查看網表的生成過程。
(3)選擇開始→程序→附件→WindowsExplorer,打開WindowsExplorer。
(4)瀏覽Lab1文件夾。其中一些文件夾包含已創(chuàng)建的VHDL網表文件。第36頁/共409頁4.1.4生成Bitstream下載測試程序生成Bitstream文件并下載到開發(fā)板上,具體步驟如下:
(1)連接并打開Spartan-3EStarterKit。
(2)打開超級終端,設置如圖4.1.20所示。第37頁/共409頁圖4.1.20超級終端設置第38頁/共409頁
(3)在XPS中,選擇DeviceConfiguration→DownloadBitstream,可以看到超級終端的輸出如圖4.1.21所示。圖4.1.21超級終端輸出第39頁/共409頁結論可以使用XPS中的BaseSystemBuilder創(chuàng)建工程。一些文件——包括MHS文件表示已創(chuàng)建的處理器系統(tǒng)。系統(tǒng)連接圖表示系統(tǒng)硬件,提供了一般關鍵系統(tǒng)參數(shù)信息。在系統(tǒng)定義后,創(chuàng)建處理器系統(tǒng)的網表。之后讀者將會學習添加其他核和設計仿真。第40頁/共409頁答案
1.列出下列設備的連接總線。
debug_module: mb_opb
dlmb_cntlr: dlmb
RS232_Uart: mb_opb
2.列出以下端口的連線。
RS232_Uart–OPB_CLK:
sys_clk_s
RS232_Uart–RX: fpga_0_RS232_DCE_RX
RS232_Uart–TX: fpga_0_RS232_DCE_TX
LEDs_4Bit-GPIO:
fpga_0_LEDs_8Bit_GPIO_d_out第41頁/共409頁
3.選擇Addressesfilter,列出以下設備的地址。
RS232_DCE–Baseaddress: 0x40600000
RS232_DCE–Highaddress: 0x4060ffff
LEDs_8Bit–Baseaddress: 0x40000000
LEDs_8Bit–Highaddress: 0x4000ffff
dlmb_cntlr–Baseaddress: 0x00000000
dlmb_cntlr–Highaddress: 0x00001fff
ilmb_cntlr–Baseaddress: 0x00000000
ilmb_cntlr–Highaddress: 0x00001fff第42頁/共409頁
4.列出已創(chuàng)建文件夾。●?
xps●?blkdiagram●?data●?etc●hdl●?implementation●?pcores●?microblaze_0●?synthesis●?TestApp_Memory第43頁/共409頁完整的MHS文件
#
#
#########################################
#
#CreatedbyBaseSystemBuilderWizardforXILINXEDK8.2BuildEDK_Im.14
#
#FriSep0111:41:452006
#第44頁/共409頁
#TargetBoard:XILINXSpartan-3EStarterBoardRevC
#Family: spartan3e
#Device: XC3S500e
#Package: FG320
#SpeedGrade: -4
#
#Processor:Microblaze
#Systemclockfrequency:50.000000MHz
#Debuginterface:On-ChipHWDebugModule
#OnChipMemory:8KB
#
#########################################第45頁/共409頁
PARAMETERVERSION=2.1.0
PORTfpga_0_RS232_DCE_RX_pin=
fpga_0_RS232_DCE_RX,DIR=I
PORTfpga_0_RS232_DCE_TX_pin=
fpga_0_RS232_DCE_TX,DIR=O
PORTfpga_0_LEDs_8Bit_GPIO_d_out_pin=fpga_0_LEDs_8Bit_GPIO_d_out,DIR=O,VEC=[0:7]
PORTsys_clk_pin=dcm_clk_s,DIR=I,SIGIS=CLK,
CLK_FREQ=50000000
PORTsys_rst_pin=sys_rst_s,DIR=I,RST_POLARITY=1,SIGIS=RST第46頁/共409頁
BEGINmicroblaze
PARAMETERINSTANCE=microblaze_0
PARAMETERHW_VER=5.00.a
PARAMETERC_USE_FPU=0
PARAMETERC_DEBUG_ENABLED=1
PARAMETERC_NUMBER_OF_PC_BRK=2
BUS_INTERFACEDLMB=dlmb
BUS_INTERFACEILMB=ilmb第47頁/共409頁
BUS_INTERFACEDOPB=mb_opb
BUS_INTERFACEIOPB=mb_opb
PORTDBG_CAPTURE=DBG_CAPTURE_s
PORTDBG_CLK=DBG_CLK_s
PORTDBG_REG_EN=DBG_REG_EN_s
PORTDBG_TDI=DBG_TDI_s
PORTDBG_TDO=DBG_TDO_s
PORTDBG_UPDATE=DBG_UPDATE_s
END第48頁/共409頁
BEGINopb_v20
PARAMETERINSTANCE=mb_opb
PARAMETERHW_VER=1.10.c
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTOPB_Clk=sys_clk_s
END第49頁/共409頁
BEGINopb_mdm
PARAMETERINSTANCE=debug_module
PARAMETERHW_VER=2.00.a
PARAMETERC_MB_DBG_PORTS=1
PARAMETERC_USE_UART=1
PARAMETERC_UART_WIDTH=8
PARAMETERC_BASEADDR=0x41400000
PARAMETERC_HIGHADDR=0x4140ffff第50頁/共409頁
BUS_INTERFACESOPB=mb_opb
PORTDBG_CAPTURE_0=DBG_CAPTURE_s
PORTDBG_CLK_0=DBG_CLK_s
PORTDBG_REG_EN_0=DBG_REG_EN_s
PORTDBG_TDI_0=DBG_TDI_s
PORTDBG_TDO_0=DBG_TDO_s
PORTDBG_UPDATE_0=DBG_UPDATE_s
END第51頁/共409頁
BEGINlmb_v10
PARAMETERINSTANCE=ilmb
PARAMETERHW_VER=1.00.a
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTLMB_Clk=sys_clk_s
END第52頁/共409頁
BEGINlmb_v10
PARAMETERINSTANCE=dlmb
PARAMETERHW_VER=1.00.a
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTLMB_Clk=sys_clk_s
END第53頁/共409頁
BEGINlmb_bram_if_cntlr
PARAMETERINSTANCE=dlmb_cntlr
PARAMETERHW_VER=2.00.a
PARAMETERC_BASEADDR=0x00000000
PARAMETERC_HIGHADDR=0x00001fff
BUS_INTERFACESLMB=dlmb
BUS_INTERFACEBRAM_PORT=dlmb_port
END第54頁/共409頁
BEGINlmb_bram_if_cntlr
PARAMETERINSTANCE=ilmb_cntlr
PARAMETERHW_VER=2.00.a
PARAMETERC_BASEADDR=0x00000000
PARAMETERC_HIGHADDR=0x00001fff
BUS_INTERFACESLMB=ilmb
BUS_INTERFACEBRAM_PORT=ilmb_port
END第55頁/共409頁
BEGINbram_block
PARAMETERINSTANCE=lmb_bram
PARAMETERHW_VER=1.00.a
BUS_INTERFACEPORTA=ilmb_port
BUS_INTERFACEPORTB=dlmb_port
END第56頁/共409頁
BEGINopb_uartlite
PARAMETERINSTANCE=RS232_DCE
PARAMETERHW_VER=1.00.b
PARAMETERC_BAUDRATE=115200
PARAMETERC_DATA_BITS=8
PARAMETERC_ODD_PARITY=0
PARAMETERC_USE_PARITY=0第57頁/共409頁
PARAMETERC_CLK_FREQ=50000000
PARAMETERC_BASEADDR=0x40600000
PARAMETERC_HIGHADDR=0x4060ffff
BUS_INTERFACESOPB=mb_opb
PORTRX=fpga_0_RS232_DCE_RX
PORTTX=fpga_0_RS232_DCE_TX
END第58頁/共409頁
BEGINopb_gpio
PARAMETERINSTANCE=LEDs_8Bit
PARAMETERHW_VER=3.01.b
PARAMETERC_GPIO_WIDTH=8
PARAMETERC_IS_DUAL=0
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=0
PARAMETERC_BASEADDR=0x40000000
PARAMETERC_HIGHADDR=0x4000ffff
BUS_INTERFACESOPB=mb_opb
PORTGPIO_d_out=fpga_0_LEDs_8Bit_GPIO_d_out
END第59頁/共409頁
BEGINdcm_module
PARAMETERINSTANCE=dcm_0
PARAMETERHW_VER=1.00.a
PARAMETERC_CLK0_BUF=TRUE
PARAMETERC_CLKIN_PERIOD=20.000000
PARAMETERC_CLK_FEEDBACK=1X第60頁/共409頁
PARAMETERC_EXT_RESET_HIGH=1
PORTCLKIN=dcm_clk_s
PORTCLK0=sys_clk_s
PORTCLKFB=sys_clk_s
PORTRST=net_gnd
PORTLOCKED=dcm_0_lock
END第61頁/共409頁4.2在硬件設計中添加IP
1.實驗簡介本實驗將指導讀者通過使用XILINXPlatformStudio(XPS)向一個已存在的處理器系統(tǒng)中添加額外的IP。讀者將學會通過IP目錄表添加額外的IP。在實驗的最后,通過使用ISE創(chuàng)建設計網表并執(zhí)行設計。第62頁/共409頁
2.實驗目的本實驗的目的如下:
(1)向硬件設計中添加一個額外的IP。
(2)通過ISE執(zhí)行設計。
3.實驗步驟本實驗旨在擴充lab1的硬件設計。實驗lab1中已包含MicroBlaze處理器、LMB總線和LMB存儲器、一個GPIO以及MDM。lab2將增加另一個GPIO。本實驗使用XPS系統(tǒng)的對話模式以及文本模式來添加IP到一個已存在的處理器系統(tǒng)中(見圖4.2.1)。第63頁/共409頁圖4.2.1完成后的設計第64頁/共409頁在Spartan-3E啟動工具包中將按鈕以及DIP開關作為接口對應的OPBGPIP的同時,也可通過分析system.mhs文件去理解微處理器硬件規(guī)格的各個部分。本實驗由五個主要步驟組成:添加IP到lab1已經設計好的系統(tǒng)中,擴展硬件系統(tǒng),分析MHS文件,創(chuàng)建一個系統(tǒng)導航以執(zhí)行設計,包括添加一個軟件應用程序以生成位流并把它下載到硬件上進行功能驗證。第65頁/共409頁本次實驗的簡要流程如下:第66頁/共409頁4.2.1在處理器系統(tǒng)中增加IP如果我們希望繼續(xù)在前一次實驗中完成的設計,那么可以創(chuàng)建一個lab2文件夾,并將lab1中的文件復制到新文件夾中。執(zhí)行XILINXPlatformStudio(XPS)并打開工程文件,其路徑在c:\xup\embedded\labs\lab2(繼續(xù)已創(chuàng)建的設計)或者c:\xup\embedded\completed\lab1,具體步驟如下:第67頁/共409頁
(1)如果繼續(xù)在前一次實驗中完成的設計,則可以創(chuàng)建一個lab2文件夾,將lab1中的文件復制到新文件夾中。
(2)通過點擊開始→程序→XILINXPlatformStudio8.2i→XILINXPlatformStudio執(zhí)行XPS。
(3)選擇打開工程文件路徑c:\xup\embedded\labs\lab2或者c:\xup\embedded\completed\lab1。
(4)選擇system.xmp打開工程。第68頁/共409頁4.2.2擴展硬件系統(tǒng)
(1)通過SystemAssemblyView面板添加IP到處理器系統(tǒng)。
XPS提供了兩種向已存在的工程中添加外設的方法。第一種方法是通過SystemAssemblyView面板來添加大部分IP并連接它們;第二種方法是手動編輯MHS文件。①在“XilinxPlatformStudio”左邊窗口中選擇“IPCatalog”標簽并點擊“GeneralPurposeIO”旁邊的加號以查看其可選擇的IP核(見圖4.2.2)。第69頁/共409頁圖4.2.2SystemAssemblyView面板第70頁/共409頁②雙擊“opb_gpio”核(version3.01.b)2次,即可添加2個實例到SystemAssemblyView面板中。③通過點擊名字列,并輸入外設的新名字,重新命名外設實例為“dip”和“push”。完成后,外設表顯示如圖4.2.3所示。第71頁/共409頁圖4.2.3添加外設后的外設表第72頁/共409頁④點擊“BusInterface”旁邊的加號,單擊“push”和“dip”實例的“BusConnection”列并選擇“mb_opb”作為“SOPB”。完成后,“BusConnections”如圖4.2.4所示。第73頁/共409頁圖4.2.4顯示總線到被添加外設的連接第74頁/共409頁⑤選擇“Addresses”,讀者可以手動設置外設的基址及大小,或讓XPS自動生成地址。⑥點擊“GenerateAddresses”,在系統(tǒng)中自動為外設產生低位及高位地址。⑦點擊“push”和“dip”實例的“Size”欄并修改其值為“512”?;泛透呶坏刂穼⒏淖?yōu)槿鐖D4.2.5所示。第75頁/共409頁圖4.2.5外部設備地址第76頁/共409頁
(2)使用Ports為Push_Buttons_4Bit連接必需的端口。我們可以先設置實例的參數(shù),然后在Push_Buttons_4Bit啟動工具箱中生成按鈕的外部連接。①在SystemAssemblyView工具欄中選擇“Ports”并點擊“Push_Buttons_4Bit”旁的加號。②在“push”實例中點擊“GPIO_in”端口的Net列,當下拉列表出現(xiàn)時選擇“push_GPIO_in”作為網線名(見圖4.2.6)。第77頁/共409頁圖4.2.6向“push”實例中添加“GPIO_in”端口連接第78頁/共409頁③在“dip”實例中點擊“GPIO_in”端口的Net列,當下拉列表出現(xiàn)時選擇“dip_GPIO_in”作為網線名(見圖4.2.7)。圖4.2.7向“dip”實例中添加“GPIO_in”端口連接第79頁/共409頁④雙擊“push”實例打開配置窗口。注意到外設可以設置為雙通道,不過鑒于我們只想使用到一個通道,故將“EnableChannel2”保持非選中,見圖4.2.8。⑤將“GPIODataBusWidth”設置為“4”并點擊“OK”按鈕,并按照圖4.2.8進行通用參數(shù)的設置。第80頁/共409頁圖4.2.8GPIO實例的設置參數(shù)第81頁/共409頁⑥點擊“Channel1”查看通道1中可設置的參數(shù)(見圖4.2.9)。圖4.2.9設置配置參數(shù)第82頁/共409頁⑦將“Channel1isBi-directional”設置為“FALSE”,“Channel1isInputOnly”設置為“TRUE”,點擊“OK”按鈕結束。⑧重復上述步驟對dip實例進行配置。⑨在SystemAssemblyView中,點擊“ExternalPorts”旁的加號,發(fā)現(xiàn)按鈕端口尚未列入其中,見圖4.2.10。第83頁/共409頁圖4.2.10按鈕端口尚未列入“ExternalPorts”中第84頁/共409頁⑩在“Net”列上點擊“push”和“dip”實例的“GPIO_in”端口,選擇“MakeExternal”(見圖4.2.11)。圖4.2.11設置外部端口第85頁/共409頁注意:端口將在FPGA上連接到外部,現(xiàn)在外部端口連接域中將顯示[0:3],見圖4.2.12。圖4.2.12按鈕如今被添加作為外部端口第86頁/共409頁
(3)生成庫。添加一個已存在的C程序以實現(xiàn)按鈕和發(fā)光二極管的功能。編譯程序。改變工程選項以生成工程系統(tǒng),將其作為最高層的ISE流。①點擊按鈕或Software→GenerateLibrariesandBSPs,在處理器的Applications表中生成庫和xparameters.h文件。②在Applications表的Sources欄中,右擊TestApp_Memory.c文件以選擇Remove。③右擊Sources,在c:\xup\embedded\source路徑下添加lab.c源代碼文件,見圖4.2.13。第87頁/共409頁圖4.2.13部分源程序第88頁/共409頁④點擊Project表下的system.ucf文件并添加圖4.2.14所示代碼以設置按鈕的管腳(c:\xup\embedded\constraintsdirectory路徑下的lab2.ucf文件中存在相應代碼,可以從中復制)。第89頁/共409頁圖4.2.14UCF文件(管腳設置)第90頁/共409頁⑤在Application表中,雙擊編譯選項設置優(yōu)化方式為“NoOptimization”(見圖4.2.15)。這可以保證代碼中的forloop循環(huán)(用于軟件延遲)不被優(yōu)化。⑥保存?.ucf文件,點擊按鈕編譯源程序,并保證其編譯結果沒有錯誤。第91頁/共409頁圖4.2.15設置優(yōu)化級別第92頁/共409頁4.2.3分析MHS文件打開system.mhs文件,理解其內容并完成習題。
(1)雙擊打開system.mhs文件。
(2)理解外部接口部分。
(3)理解整個MHS文件。第93頁/共409頁第94頁/共409頁第95頁/共409頁4.2.4驗證硬件設計 下載位流至Spartan-3Exc3s500e,具體步驟如下:
(1)雙擊c:xup\embedded\hyperterm目錄下的ht115200.ht文件以啟動一個超級終端。圖4.2.16位流下載時屏幕的顯示
(2)連接并打開Spartan-3E,啟動工具包。
(3)選擇DeviceConfiguration→UpdateBitstream,這將花費幾分鐘在綜合、執(zhí)行以及產生位流的步驟上。
(4)下載位流。第96頁/共409頁注意:一旦位流下載完成,超級終端上將顯示如圖4.2.16所示信息。圖4.2.16位流下載時屏幕的顯示第97頁/共409頁
(5)通過按鈕和撥動開關,超級終端上將作出相應的反應(見圖4.2.17)。圖4.2.17顯示在超級終端上的按鈕和開關的狀態(tài)第98頁/共409頁結論
XILINXPlatformStudio(XPS)可以創(chuàng)建一個MHS文件來代表整個工程系統(tǒng)。用戶可以通過使用外設參數(shù)以及控制內外接口來配置系統(tǒng)。在定義系統(tǒng)后,用戶可以創(chuàng)建工程系統(tǒng)網表。在以后的實驗中,大家將學會在XUPSpartan-3E板上如何添加自定義核、添加軟件到工程、對設計進行仿真、調試軟件程序以及驗證已完成的設計等方法。第99頁/共409頁答案
1.填寫空白框。外部接口數(shù)量:
7
作為輸出的外部接口數(shù)量: 2
作為輸入的外部接口數(shù)量: 5
雙向外部接口數(shù)量:
0 第100頁/共409頁
2.列出連接到sys_clk_s的實例。
microblaze_0、mb_opb、debug_module、ilmb、dlmb、dcm_0、LEDs_8Bit、push,dip、RS232_DCE列出連接到mb_opb總線的設備。
microblaze_0、debug_module、LEDs_8Bit、push、dip、RS232_DCE
3.畫出系統(tǒng)地址圖,標出實例名。讀者可以按照Addresses表中的基址對外設進行分類。第101頁/共409頁第102頁/共409頁完成后的MHS文件
#
###########################################
#CreatedbyBaseSystemBuilderWizardforXILINXEDK8.2BuildEDK_Im.14
#FriSep0111:41:452006
#TargetBoard:XILINXSpartan-3EStarterBoardRevC
#Family: spartan3e
#Device: XC3S500e
#Package: FG320第103頁/共409頁
#SpeedGrade: -4
#Processor:Microblaze
#Systemclockfrequency:50.000000MHz
#Debuginterface:On-ChipHWDebugModule
#OnChipMemory:8KB
#
############################################
###第104頁/共409頁
PARAMETERVERSION=2.1.0
PORTfpga_0_RS232_DCE_RX_pin=fpga_0_RS232_DCE_RX,DIR=I
PORTfpga_0_RS232_DCE_TX_pin=fpga_0_RS232_DCE_TX,DIR=O
PORTfpga_0_LEDs_8Bit_GPIO_d_out_pin=fpga_0_LEDs_8Bit_GPIO_d_out,DIR=O,VEC=[0:7]第105頁/共409頁
PORTsys_clk_pin=dcm_clk_s,DIR=I,SIGIS=CLK,CLK_FREQ=50000000
PORTsys_rst_pin=sys_rst_s,DIR=I,RST_POLARITY=1,SIGIS=RST
PORTpush_GPIO_in_pin=push_GPIO_in,DIR=I,VEC=[0:3]
PORTdip_GPIO_in_pin=dip_GPIO_in,DIR=I,VEC=[0:3]第106頁/共409頁
BEGINmicroblaze
PARAMETERINSTANCE=microblaze_0
PARAMETERHW_VER=5.00.a
PARAMETERC_USE_FPU=0
PARAMETERC_DEBUG_ENABLED=1
PARAMETERC_NUMBER_OF_PC_BRK=2
BUS_INTERFACEDLMB=dlmb
BUS_INTERFACEILMB=ilmb第107頁/共409頁
BUS_INTERFACEDOPB=mb_opb
BUS_INTERFACEIOPB=mb_opb
PORTDBG_CAPTURE=DBG_CAPTURE_s
PORTDBG_CLK=DBG_CLK_s
PORTDBG_REG_EN=DBG_REG_EN_s
PORTDBG_TDI=DBG_TDI_s
PORTDBG_TDO=DBG_TDO_s
PORTDBG_UPDATE=DBG_UPDATE_s
END第108頁/共409頁
BEGINopb_v20
PARAMETERINSTANCE=mb_opb
PARAMETERHW_VER=1.10.c
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTOPB_Clk=sys_clk_s
END第109頁/共409頁
BEGINopb_mdm
PARAMETERINSTANCE=debug_module
PARAMETERHW_VER=2.00.a
PARAMETERC_MB_DBG_PORTS=1
PARAMETERC_USE_UART=1
PARAMETERC_UART_WIDTH=8
PARAMETERC_BASEADDR=0x41400000
PARAMETERC_HIGHADDR=0x4140ffff第110頁/共409頁
BUS_INTERFACESOPB=mb_opb
PORTDBG_CAPTURE_0=DBG_CAPTURE_s
PORTDBG_CLK_0=DBG_CLK_s
PORTDBG_REG_EN_0=DBG_REG_EN_s
PORTDBG_TDI_0=DBG_TDI_s
PORTDBG_TDO_0=DBG_TDO_s
PORTDBG_UPDATE_0=DBG_UPDATE_s
END第111頁/共409頁
BEGINlmb_v10
PARAMETERINSTANCE=ilmb
PARAMETERHW_VER=1.00.a
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTLMB_Clk=sys_clk_s
END第112頁/共409頁
BEGINlmb_v10
PARAMETERINSTANCE=dlmb
PARAMETERHW_VER=1.00.a
PARAMETERC_EXT_RESET_HIGH=1
PORTSYS_Rst=sys_rst_s
PORTLMB_Clk=sys_clk_s
END第113頁/共409頁
BEGINlmb_bram_if_cntlr
PARAMETERINSTANCE=dlmb_cntlr
PARAMETERHW_VER=2.00.a
PARAMETERC_BASEADDR=0x00000000
PARAMETERC_HIGHADDR=0x00001fff
BUS_INTERFACESLMB=dlmb
BUS_INTERFACEBRAM_PORT=dlmb_port
END第114頁/共409頁
BEGINlmb_bram_if_cntlr
PARAMETERINSTANCE=ilmb_cntlr
PARAMETERHW_VER=2.00.a
PARAMETERC_BASEADDR=0x00000000
PARAMETERC_HIGHADDR=0x00001fff
BUS_INTERFACESLMB=ilmb
BUS_INTERFACEBRAM_PORT=ilmb_port
END第115頁/共409頁
BEGINbram_block
PARAMETERINSTANCE=lmb_bram
PARAMETERHW_VER=1.00.a
BUS_INTERFACEPORTA=ilmb_port
BUS_INTERFACEPORTB=dlmb_port
END第116頁/共409頁
BEGINopb_uartlite
PARAMETERINSTANCE=RS232_DCE
PARAMETERHW_VER=1.00.b
PARAMETERC_BAUDRATE=115200
PARAMETERC_DATA_BITS=8
PARAMETERC_ODD_PARITY=0
PARAMETERC_USE_PARITY=0第117頁/共409頁
PARAMETERC_CLK_FREQ=50000000
PARAMETERC_BASEADDR=0x40600000
PARAMETERC_HIGHADDR=0x4060ffff
BUS_INTERFACESOPB=mb_opb
PORTRX=fpga_0_RS232_DCE_RX
PORTTX=fpga_0_RS232_DCE_TX
END第118頁/共409頁
BEGINopb_gpio
PARAMETERINSTANCE=LEDs_8Bit
PARAMETERHW_VER=3.01.b
PARAMETERC_GPIO_WIDTH=8
PARAMETERC_IS_DUAL=0
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=0
PARAMETERC_BASEADDR=0x40040000
PARAMETERC_HIGHADDR=0x4004ffff
BUS_INTERFACESOPB=mb_opb
PORTGPIO_d_out=fpga_0_LEDs_8Bit_GPIO_d_out
END第119頁/共409頁
BEGINdcm_module
PARAMETERINSTANCE=dcm_0
PARAMETERHW_VER=1.00.a
PARAMETERC_CLK0_BUF=TRUE
PARAMETERC_CLKIN_PERIOD=20.000000
PARAMETERC_CLK_FEEDBACK=1X
PARAMETERC_EXT_RESET_HIGH=1
PORTCLKIN=dcm_clk_s
PORTCLK0=sys_clk_s
PORTCLKFB=sys_clk_s
PORTRST=net_gnd
PORTLOCKED=dcm_0_lock
END第120頁/共409頁
BEGINopb_gpio
PARAMETERINSTANCE=push
PARAMETERHW_VER=3.01.b
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=1
PARAMETERC_GPIO_WIDTH=4
PARAMETERC_BASEADDR=0x40000000
PARAMETERC_HIGHADDR=0x400001FF
BUS_INTERFACESOPB=mb_opb
PORTGPIO_in=push_GPIO_in
END第121頁/共409頁
BEGINopb_gpio
PARAMETERINSTANCE=dip
PARAMETERHW_VER=3.01.b
PARAMETERC_GPIO_WIDTH=4
PARAMETERC_IS_BIDIR=0
PARAMETERC_ALL_INPUTS=1
PARAMETERC_BASEADDR=0x40020000
PARAMETERC_HIGHADDR=0x400201FF
BUS_INTERFACESOPB=mb_opb
PORTGPIO_in=dip_GPIO_in
END第122頁/共409頁4.3在嵌入式系統(tǒng)中添加自定義IP
1.實驗簡介本節(jié)中的實驗將指導如何使用CreateandImportPeripheralWizard在處理器系統(tǒng)中添加一個自定義的OPB外圍設備。第123頁/共409頁
2.實驗目的本實驗的目的如下:
(1)創(chuàng)建一個自定義外圍設備并將其添加到IP目錄(IPCatalog)下。
(2)將該自定義外圍設備添加到設計中。
(3)修改UCF文件。
(4)建立Bitstream文件并下載至開發(fā)板,檢驗運行結果。第124頁/共409頁
3.實驗步驟這個實驗是Lab1和Lab2的延續(xù)。Lab1包含有MicroBlaze處理器、調試模塊、UART總線、控制LED的OPB總線GPIO接口、LMB總線上的BRAM控制器和BRAM。Lab2在這個基礎上加入兩個GPIO接口的實例(Instance)。而這個實驗通過加入一個控制LCD的實例(Instance)對原來的硬件設計進一步擴展。第125頁/共409頁在這個實驗里,我們將通過使用XILINXPlatformStudio(XPS)的CreateandImportPeripheralWizard工具來建立一個用HDL語言描述的用戶外設,添加一個該引入外設的實例(Instance),并修改system.ucf文件來為板上LCD模塊提供接口(見圖4.3.1)。第126頁/共409頁圖4.3.1完成后的設計第127頁/共409頁這個實驗其中一步是添加一個OPB外設。盡管對于硬件的改變是簡單的,但是這個實驗闡明了如何通過CreateandImportPeripheralWizard添加用戶外設,同時也闡明了如何給一個已有的外設提供OPB總線接口。實驗的大致流程如下:第128頁/共409頁4.3.1打開工程建立文件夾lab3,并將lab2的內容復制到lab3文件夾中,以繼續(xù)前一個實驗中的設計,然后在XPS中打開工程,具體步驟如下:
(1)如果要繼續(xù)實驗2中的設計,則在c:\xup\embedded\labs目錄下建立lab3文件夾,然后復制lab2中的內容到lab3中。
(2)在XPS中打開工程。第129頁/共409頁4.3.2用向導建立一個用戶自定義OPB外設
(1)在XPS中,采用Create/ImportPeripheralWizard的Create模式,建立HDL模板,再向OPB總線上添加LCD控制器,具體步驟如下:①在XPS中,選擇Hardware→CreateorImportPeripheral來啟動Wizard。②點擊“Next”按鈕繼續(xù),接下來會出現(xiàn)圖4.3.2所示的“CreateandImportPeripheralWizard”對話框中的流程選擇。第130頁/共409頁圖4.3.2“CreateandImportPeripheralWizard”對話框第131頁/共409頁③在“SelectFlow”選擇面板中,選擇“Createtemplatesforanewperipheral”,然后點擊“Next”按鈕,系統(tǒng)會在“RepositoryorProject”對話框中自動選擇“ToanXPSproject”選項,對應地指定工程所在的路徑,見圖4.3.3。第132頁/共409頁圖4.3.3“RepositoryorProject”對話框第133頁/共409頁④點擊“Next”按鈕后在“NameandVersion”對話框中輸入名稱“l(fā)cd_ip”,保持默認的版本號“1.00.a”,之后點擊“Next”按鈕(見圖4.3.4)。第134頁/共409頁圖4.3.4輸入核的名稱和版本號第135頁/共409頁⑤在總線接口選擇面板,選擇“On-chipPeripheralBus(OPB)”,點擊“Next”按鈕(見圖4.3.5)。圖4.3.5選擇OPB總線第136頁/共409頁
(2)繼續(xù)使用向導,選擇UserlogicS/Wregistersupport;選擇只有一個32位的軟件可控的寄存器;建立模板驅動文件;選擇路徑為c:\up\embedded\labs\lab3。在整個步驟的最后回答相關的問題。①在“IPIFServices”對話框中選擇“UserlogicS/Wregistersupport”(見圖4.3.6)后點擊“Next”按鈕。第137頁/共409頁圖4.3.6“IPIFServices”對話框第138頁/共409頁②在“UserS/WRegister”對話框中選擇“Disablepostedwrite…”選項(見圖4.3.7)并點擊“Next”按鈕,接受默認的寄存器值參數(shù)。第139頁/共409頁圖4.3.7“UserS/WRegisters”對話框第140頁/共409頁③瀏覽“IPInterconnect(IPIC)”對話框(見圖4.3.8),上面顯示了默認的IPIC信號,這些是在之前的步驟中選擇的,是用戶邏輯可以使用的。第141頁/共409頁圖4.3.8“IPInterconnect(IPIC)”對話框第142頁/共409頁④在“(OPTIONAL)PeripheralSimulationSupport”對話框中,保持“GenerateBFMsimulationplatformforModelSim-SEorModelSim-PE”(見圖4.3.9)未被選中,點擊“Next”按鈕。第143頁/共409頁圖4.3.9“(OPTIONAL)PeripheralSimulationSupport”對話框第144頁/共409頁⑤在“(OPTIONAL)PeripheralImplementationOptions”對話框中,保持“Generatetemplatedriverfilestohelpyoutoimplementsoftwareinterface”被選中,保持其他的選項未被選中,見圖4.3.10。第145頁/共409頁圖4.3.10“(OPTIONAL)PeripheralImplementationOptions”對話框第146頁/共409頁⑥點擊“Next”按鈕,將會看到信息總結面板(見圖4.3.11)。圖4.3.11信息總結面板第147頁/共409頁⑦點擊“Finish”按鈕關閉向導。⑧點擊XPS中的“IPCatalog”標簽,可以看到“l(fā)cd_ip”已經加入到了工程IP庫中(ProjectRepository),見圖4.3.12。圖4.3.12“IPCatalog”更新后的目錄第148頁/共409頁我們剛剛添加的外設已經加入到了可用核的列表。用Windows瀏覽器打開工程目錄,確保圖4.3.13所示的文件結構已經由“CreateandImportPeripheralWizard”建立起來了。第149頁/共409頁圖4.3.13“CreateandImportPeripheralWizard”建立的文件結構第150頁/共409頁
(3)在MPD文件中加入一個名為“l(fā)cd”的端口,作為LCD外設控制器。①打開目錄?\pcores\lcd_ip_v1_00_a\data。②用文本編輯器(比如寫字板)打開lcd_ip_v2_1_0.mpd文件。③如圖4.3.14所示,添加以下代碼到“Ports”部分之后、“OPB_Clk”之前:
PORTlcd="",DIR=O,VEC=[0:6]。第151頁/共409頁圖4.3.14為LCD控制器外設更新MPDfile第152頁/共409頁④保存文件,關閉文件。
(4)用文本編輯器打開目錄c:\xup\embedded\labs\lab3\pcores\lcd_ip_v1_00_a\hdl\vhdl下的文件lcd_ip.vhd和user_logic.vhd,在這兩個文件中添加必要的聲明和邏輯。①打開\pcores\lcd_ip_v1_00_a\hdl\vhdl目錄。②選擇lcd_ip.vhd文件,并用文本編輯器打開它。③在標注“USERportsaddedhere”后面添加7位的用戶端口lcd(見圖4.3.15)。第153頁/共409頁圖4.3.15添加用戶端口lcd第154頁/共409頁④搜索下一個“-USER”,添加端點映射聲明(見圖4.3.16),然后保存文件,關閉文件。圖4.3.16添加端口映射聲明第155頁/共409頁⑤在vhdl文件夾下打開文件user_logic.vhd,在USERPorts區(qū)域添加端點lcd的定義,見圖4.3.17。圖4.3.17添加端點lcd的定義第156頁/共409頁⑥搜索下一個“-USER”,并為用戶邏輯定義內部信號,見圖4.3.18。圖4.3.18UserLogic內部信號的定義第157頁/共409頁⑦搜索“-USERlogicimplementation”,添加如圖4.3.19所示的代碼。圖4.3.19添加代碼第158頁/共409頁4.3.3將自定義外設添加到系統(tǒng)中
(1)使用SystemAssemblyView添加lcd_ip實例(Instance),并將實例掛接到OPB總線上,再為它分配地址序列,連接lcd數(shù)據(jù)端點。①在IPCatalog中,選擇lcd_ip核并拖動到SystemAssemblyView對話框中。②確保SystemAssemblyView的“Filters”選項框選擇的是“BusInterface”,點擊總線連接圖表中的圓環(huán)來建立總線連接(見圖4.3.20),就會看到實心的圓環(huán),表示總線連接已經建立。第159頁/共409頁圖4.3.20建立總線連接第160頁/共409頁③在“Filters”選項框中選擇“Ports”,再點擊“l(fā)cd_ip_0”實例(見圖4.3.20),點擊其下端點“l(fā)cd”的下拉選項框,選擇“l(fā)cd_ip_0_lcd”作為網絡的名稱(見圖4.3.21)。第161頁/共409頁圖4.3.21對lcd_ip_0實例進行分配第162頁/共409頁④點擊同樣的位置,選擇MakeExternal,于是這個端點也被添加到了外部端點列
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市金山區(qū)華東師大三附中2013-2014學年高一下學期期末考試數(shù)學試題
- 【全程復習方略】2020年人教A版數(shù)學理(福建用)課時作業(yè):第三章-第八節(jié)應-用-舉-例
- 學校的八年級的班級工作計劃范文
- 陜西省渭南市2025屆高三教學質量檢測(Ⅰ)物理試題(含答案)
- 四川省綿陽市綿陽中學2024-2025學年高一上學期期末模擬測試物理試題(含答案)
- 【備戰(zhàn)2021高考】全國2021屆高中英語試題匯編(第六期-11月):U單元-重慶
- 【名師一號】2022屆高三歷史一輪復習調研試題:第七單元-古代中國經濟的基本結構與特點7-13a
- 【走向高考】2021屆高三生物二輪復習專項檢測:專題4-第3講-變異、育種與生物進化
- 一年級數(shù)學計算題專項練習匯編
- 【名師一號】2020-2021學年蘇教版化學檢測題-選修五:專題3
- 《格林童話》課外閱讀試題及答案
- “銷售技巧課件-讓你掌握銷售技巧”
- 2019北師大版高中英語選修一UNIT 2 單詞短語句子復習默寫單
- 房地產項目保密協(xié)議
- 2023年云南省初中學業(yè)水平考試 物理
- 【安吉物流股份有限公司倉儲管理現(xiàn)狀及問題和優(yōu)化研究15000字(論文)】
- 火災自動報警系統(tǒng)施工及驗收調試報告
- 《13464電腦動畫》自考復習必備題庫(含答案)
- 中國成人血脂異常防治指南課件
- 2023塔式太陽能熱發(fā)電廠集熱系統(tǒng)設計規(guī)范
- 消費稅改革對商貿企業(yè)的影響與對策
評論
0/150
提交評論