FPGA建立HPS硬件系統(tǒng)模型_第1頁(yè)
FPGA建立HPS硬件系統(tǒng)模型_第2頁(yè)
FPGA建立HPS硬件系統(tǒng)模型_第3頁(yè)
FPGA建立HPS硬件系統(tǒng)模型_第4頁(yè)
FPGA建立HPS硬件系統(tǒng)模型_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.2.1建立HPS硬件系統(tǒng)模型本硬件模型中包括: ARMCortex-A9MPCoreHPS、 用戶(hù)按鍵輸入(PIOButton)、 用戶(hù)撥碼開(kāi)關(guān)輸入(PIODIPSW)、 LED輸出(PIOLED)、 64KB片上存儲(chǔ)器、 JTAG-to-Avalon主接口連接橋(JTAGMaster)、 JTAG-UART調(diào)試模塊、 中斷捕獲器(InterruptCapturer)、 系統(tǒng)ID(SysID)等。圖6.12本系統(tǒng)的結(jié)構(gòu)框圖啟動(dòng)QuartusⅡ13.0EDA軟件,選擇菜單FileNewProjectWizard,建立一個(gè)新的QuartusⅡ工程(這里命名為HPS_Qsys_Prj),并在建立工程向?qū)У牡?個(gè)界面選擇SoCFPGA器件,這里選擇CyeloneV系列SCSXFC6D6F31CSES芯片(實(shí)際選5CSEMA5F31C6芯片),如圖6.13所示。最后點(diǎn)擊Finish按鈕完成QuartusⅡ工程的建立。在QuartusⅡ主界面中選擇菜單ToolsQsys命令,或者直接點(diǎn)擊如圖6.14所示的QuartusⅡ主界面上的快捷按鈕,啟動(dòng)Qsys工具。添加并設(shè)置HPS(HardProeessorsystem)參數(shù)首先添加HPS處理器模塊,如圖6.15所示。在Qsys左邊的ComponentLibrary下面選擇展開(kāi)Embeddedproeessors,選中其中的HardproeessorSystem并雙擊鼠標(biāo)左鍵,或點(diǎn)擊“Add”按鈕,在彈出如圖所示的AddModule對(duì)話(huà)框后,即可彈出如圖6.16所示的HardProcessorSystem屬性設(shè)置對(duì)話(huà)框。該對(duì)話(huà)框包括FPGAInterfaees、PeripheralPinMultiplexing、HPSClocks和SDRAM四個(gè)標(biāo)簽頁(yè)面;在該對(duì)話(huà)框中我們需要根據(jù)開(kāi)發(fā)板(或用戶(hù)自己的板卡)上連接的HPS外設(shè)正確設(shè)置相應(yīng)的引腳復(fù)用開(kāi)關(guān),以及HPS時(shí)鐘、多端口存儲(chǔ)器控制器、HPS到FPGA、FPGA到HPS和FPGA到多端口存儲(chǔ)器控制器等各種參數(shù)。FPGAInterfaees標(biāo)簽頁(yè)設(shè)置在FPGAInterfaces標(biāo)簽頁(yè)中有General、AXIBridges、FPGA-to-HPSSDRAMInterface、Resets、DMAPeripheralRequest、Interrupts、HPS-to-FPGA幾個(gè)部分。FPGA-to-HPSSDRAMInterface、Resets、DMAPeripheralRequest和Interrupts幾個(gè)部分。HPS-to-FPGAGeneral部分。表6.11所示為FPGAInterfaceS標(biāo)簽中General部分的設(shè)置項(xiàng)功能描述(解釋p199表6.11),當(dāng)這些選項(xiàng)被選中時(shí),相應(yīng)的接口名在圖6.16左邊的HPS模塊中就可顯示出來(lái)。沒(méi)有選中選項(xiàng)時(shí)的情況如下圖所示:General部分的選項(xiàng)被選中時(shí),相應(yīng)的接口名在下圖左邊的HPS模塊中就可顯示出來(lái)。本項(xiàng)目實(shí)例系統(tǒng)中除使能EnableHLGPIInterface選項(xiàng)外,其他選項(xiàng)保持無(wú)效,設(shè)置結(jié)果如圖6.16或下圖所示。勾選Showsignals后的情況如下圖所示:②AXIBridge部分。在FPGAInterface標(biāo)簽中AXlBridge部分,F(xiàn)PGA-to-HPSinterfacewidth和HPS-to-FPGAinterfacewidth可設(shè)置為Unused、32-bit、64-bit和128-bit,這里將這兩項(xiàng)都設(shè)置為64-bit,將HPS與FPGA之間的HPS2FPGA(接口名為f2h_axi_slave)和FPGA2HPS(接口名為h2f_axi_master)接口都設(shè)置為64位。然后將LightweightHPS-to-FPGAinterfacewidth設(shè)置為32-bit,即使能了32位的輕量級(jí)LHPS2FPGA接口(接口名為h2f_lw_axi_master)。設(shè)置結(jié)果如圖6.16所示。③FPGA-to-HPSSDRAMInterface部分。本實(shí)例系統(tǒng)中的FPGA-to-HPSSDRAMInterface部分內(nèi)容設(shè)置為空??梢酝ㄟ^(guò)添加一個(gè)或多個(gè)SDRAM從端口(最多6個(gè))讓FPGA來(lái)訪(fǎng)問(wèn)HPSSDRAM子系統(tǒng),其數(shù)據(jù)寬度可配置為32、64、128或256位。例如,圖6.16下方的FPGA-to-HPSSDRAMInterface部分,其中的Name列表示接口名,系統(tǒng)根據(jù)FPGA-to-HPSSDRAM端口設(shè)置情況自動(dòng)分配。表6.12所示為每個(gè)SDRAM接口可以設(shè)置的參數(shù)(解釋p200表6.12)。點(diǎn)+號(hào)添加;點(diǎn)-號(hào)刪除本實(shí)例系統(tǒng)中的FPGA-to-HPSSDRAMInterface部分內(nèi)容設(shè)置為空。結(jié)果如下圖所示。④ResetS部分。表6.13所示為Resets部分可設(shè)置的選項(xiàng)及其說(shuō)明(解釋p200表6.13)。本實(shí)例系統(tǒng)中的Resets部分所有設(shè)置選項(xiàng)均設(shè)置為無(wú)效,如圖6.17或下圖所示。⑤DMAPeripheralRequest部分。在這里可以單獨(dú)使能每個(gè)DMA控制器外設(shè)請(qǐng)求ID(peripheralRequestID),每個(gè)請(qǐng)求ID可以使能連接FPGA的8個(gè)邏輯DMA通道中對(duì)應(yīng)的通道接口。需要注意的是,外設(shè)請(qǐng)求ID[4-7]是與CAN控制器共用的。一共有8個(gè)通道:本實(shí)例系統(tǒng)中的DMAPeripheralRequest部分所有外設(shè)請(qǐng)求ID使能設(shè)置均為No,如圖6.17或下圖所示。⑥Interrupts部分。在該部分首先選中EnableFPGA-to-HPSInterrupts選項(xiàng),如圖6.17所示,即可在圖6.17左側(cè)的BlockDiagram中出現(xiàn)f2h_irq0和f2h_irq1兩個(gè)信號(hào),表示使能了HPS中FPGA對(duì)MPU的中斷信號(hào)。如下圖所示。又勾選3個(gè)選項(xiàng)后的情況如下圖所示。HPS中的每個(gè)外設(shè)都可以提供一個(gè)中斷信號(hào)給FPGA邏輯。在本實(shí)例系統(tǒng)中,將HPS-to-FPGA下面所列的所有外設(shè)中斷信號(hào)均設(shè)置為無(wú)效,如圖6.17或下圖所示。PeripheralPinMultiplexing標(biāo)簽頁(yè)設(shè)置在這個(gè)標(biāo)簽頁(yè)中包含了HPS所有可用外設(shè)的參數(shù)設(shè)置,通過(guò)選擇HPSI/O引腳設(shè)置可用使能所對(duì)應(yīng)的外設(shè)。第1圖第2圖第3圖第4圖第5圖當(dāng)使能某個(gè)外設(shè)時(shí),還需要設(shè)置其相應(yīng)的工作模式。將鼠標(biāo)箭頭放到相應(yīng)的外設(shè)模式(mode)設(shè)置選項(xiàng)位置幾秒時(shí)間,即可出現(xiàn)一個(gè)下拉列表,該下拉列表給出了相應(yīng)外設(shè)工作模式下的引腳定義,如圖6.18或下圖所示。、該標(biāo)簽頁(yè)中的外設(shè)引腳復(fù)用設(shè)置應(yīng)該與所用SoCFPGA開(kāi)發(fā)板(或自己的系統(tǒng)板)上的實(shí)際外設(shè)連接匹配。在本實(shí)例系統(tǒng)中,PeripheralPinMultiPleXing標(biāo)簽頁(yè)的外設(shè)引腳復(fù)用及模式選擇如表6.14(稍加解釋?zhuān)┧?。沒(méi)有在表6.14中列出的外設(shè)引腳復(fù)用選擇Unused,模式選擇N/A。在PeripheralPinMultiplexing標(biāo)簽頁(yè)最下方,Conflicts表中列出了HPS外設(shè)的引腳分配情況(13.1版中無(wú)Conflicts表),其中包括沒(méi)有分配給任何外設(shè)的引腳,可以將沒(méi)有分配給HPS外設(shè)的引腳作為普通目的I/O(GPIO)使用,將表中GPIOEnabled設(shè)置為“Yes”即可(默認(rèn)情況下該設(shè)置均為No),如圖6.19所示。本實(shí)例系統(tǒng)將Conflicts表中還沒(méi)有被分配的引腳RGMll0_TX_CLK使能為GPIO。如果外設(shè)引腳復(fù)用設(shè)置有沖突,則該表Usedby列將給出沖突的外設(shè)引腳。13.1版新增PeripheralsMuxTable(3)HPSClocks標(biāo)簽頁(yè)設(shè)置在HPS屬性設(shè)置窗口選擇HPSClocks標(biāo)簽,如圖6.20或下圖所示,其中包括用戶(hù)時(shí)鐘(userClocks)、鎖相環(huán)參考時(shí)鐘(PLLReferenceClocks)和外設(shè)FPGA時(shí)鐘(PeripheralFPGAClocks)三個(gè)部分。可以設(shè)置HPS對(duì)FPGA以及FPGA對(duì)HPS的時(shí)鐘使能。表6.15所示為用戶(hù)時(shí)鐘(UserClocks)參數(shù)及其說(shuō)明。這里設(shè)置的時(shí)鐘頻率是指所期望的最高頻率。實(shí)際時(shí)鐘頻率可以通過(guò)MPU上的軟件對(duì)寄存器的設(shè)置進(jìn)行修改。這里所設(shè)置的時(shí)鐘頻率將出現(xiàn)在由Qsys產(chǎn)生的Synopsys設(shè)計(jì)約束文件(.sdc)中。HPSClocks標(biāo)簽中的PLLReferenceClocks部分的參數(shù)描述如表6.16所示。表6.15和表6.16中所列的相關(guān)時(shí)鐘接口可參考HPS中的時(shí)鐘管理器模塊,如圖6.21所示。由于在PeripheralPinMultiplexing標(biāo)簽頁(yè)中沒(méi)有HPS外設(shè)(如EMAC0、EMAC1、QSPI、SDIO、SPIM0、SPIM1、I2C0、I2C2以及I2C3)被設(shè)置為在FPGA中可以使用(即相應(yīng)外設(shè)的引腳復(fù)用選擇FPGA),因此PeripheralFPGAClocks部分的時(shí)鐘都是無(wú)效的。在本實(shí)例系統(tǒng)中,將HPSClocks標(biāo)簽頁(yè)下面所列的所有選項(xiàng)均設(shè)置為無(wú)效。(4)SDRAM標(biāo)簽頁(yè)設(shè)置HPS支持DDR2、DDR3和LPDDR2協(xié)議的存儲(chǔ)器接口,并且支持高達(dá)40位寬的ECC(錯(cuò)誤糾正編碼)。SDRAM標(biāo)簽頁(yè)中還包括PHYSettings、MemoryParameters、MemoryTiming和BoardSettings設(shè)置頁(yè)面,可根據(jù)實(shí)際所用的SDRAM存儲(chǔ)器設(shè)置該標(biāo)簽頁(yè)中的相應(yīng)參數(shù),如圖6.22所示。本實(shí)例系統(tǒng)所用的開(kāi)發(fā)板上連接到HPS的是兩片Micron公司的1.35VDDR3LSDRAM器件(256Mbx16x2=1GB)。首先選擇SDRAM標(biāo)簽中的SDRAMProtoeol為DDR3。PHYSettings頁(yè)面設(shè)置。在SDRAM標(biāo)簽頁(yè)中的PHYSettings頁(yè)面,根據(jù)Micron存儲(chǔ)器芯片的速率將Memoryclockfrequeney設(shè)置為400MHz。將AdvancedPHYSettings下而的SupplyVoltage設(shè)置為1.5VDDR3(也可以根據(jù)實(shí)際情況選擇1.35vDDR3L),如圖6.22所示。雖然Micron器件手冊(cè)中給出的是1.35V的工作電壓,但為了簡(jiǎn)化開(kāi)發(fā)板L上的電源電路,可以將存儲(chǔ)器的vdd和vddq連接到1.5V電源。②MemoryParameters頁(yè)面設(shè)置。根據(jù)DDR3芯片手冊(cè)中的參數(shù)來(lái)設(shè)置MemoryParameterS頁(yè)面。在本實(shí)例開(kāi)發(fā)板上所用的Mieron1.35VDDR3LSDRAM器件手冊(cè)中,地址表給出器件的行地址(Rowaddress)、Bank地址和列地址(Columnaddress)。圖6.23所示為Micron手冊(cè)中的地址參數(shù)截圖。本實(shí)例所用開(kāi)發(fā)板上的Micron存儲(chǔ)器參數(shù)是圖6.23中的最后一列(256Meg*16)。MemoryParameters頁(yè)面的設(shè)置如圖6.24所示,根據(jù)Micron手冊(cè)使能DM和DQS#選項(xiàng)。MemoryParameters頁(yè)面下面的MemoryInitializationOptions相關(guān)參數(shù)也需要根據(jù)Micron手冊(cè)上的參數(shù)進(jìn)行設(shè)置。設(shè)置結(jié)果如圖6.25所示。③MemoryTiming頁(yè)面設(shè)置??筛鶕?jù)DDR3芯片手冊(cè)中的相關(guān)參數(shù)來(lái)驗(yàn)證Memory頁(yè)面中的時(shí)序參數(shù),如圖6.26所示。④BoardSettings頁(yè)面設(shè)置。本實(shí)例系統(tǒng)中該頁(yè)面下SetupandHoldDerating和IntersymbolInterference均選擇UseAltera’sdefaultsettings,如圖6.27所示。當(dāng)然,也可以根據(jù)手冊(cè)中的相關(guān)參數(shù)進(jìn)行設(shè)置。在SDRAM的參數(shù)設(shè)置中,還需要根據(jù)實(shí)際使用的開(kāi)發(fā)板(或自定制的硬件)參數(shù)設(shè)置BoardSkews,如圖6.28所示。利用這些參數(shù)SDRAM可以校準(zhǔn)I/O延時(shí)以及FIFO設(shè)置來(lái)補(bǔ)償板級(jí)、FPGA部分或存儲(chǔ)器件的時(shí)間飄移。以上有關(guān)HPS的屬性都設(shè)置完成后,點(diǎn)擊HardProcessorSystem對(duì)話(huà)框右下角的Finish按鈕退出HPS設(shè)置對(duì)話(huà)框,如圖6.28所示。在Qsys的systemcontents頁(yè),找到Export列hps_0元件的h2f_reset行中的Double-clocktoexport并用鼠標(biāo)左鍵雙擊,則出現(xiàn)如圖6.29所示的hps_0_h2f_reset,即總是使能HPS到FPGA的冷/熱復(fù)位信號(hào)。另外,在clock列選擇hps_0的h2f_axi_clock、f2h_axi_clock和h2f_lw_axi_clock連接到lck_0。添加并設(shè)置其他Qsys元件根據(jù)實(shí)例系統(tǒng)需要,QsyS中還需要添加片上RAM、JTAGMaster橋、系統(tǒng)ID、JTAGUART、LED輸出、撥碼輸入、按鍵輸入以及中斷捕獲等元件。添加片上RAM。在Qsys左邊的ComponentLibrary下面選擇展開(kāi)MemoriesandMemoryControllers,選中其中的On-ChipMemory(RAMorROM)并雙擊鼠標(biāo)左鍵(或點(diǎn)擊Add按鈕);即可彈出如圖6.30或下圖所示的On-ChipMemory(RAMorROM)屬性設(shè)置對(duì)話(huà)框。片上RAM為HPSCortex-A9MPU訪(fǎng)問(wèn)低延遲、高速存儲(chǔ)器提供代碼或變量的存儲(chǔ)。在On-ChipMemory(RAMorRoM)屬性設(shè)置對(duì)話(huà)框中設(shè)Datawidth為64,設(shè)置Totalmemorysize為65536(即64K)字節(jié),其他保持默認(rèn)設(shè)置。點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk、reset、s1,結(jié)果如下圖所示。注意:0Errors,0Warnings添加JTAGMaster橋。在Qsys左邊的ComponentLibrary下面選擇展開(kāi)BridgesMemory-Mapped,選中其中的JTAGtoAvalonMasterBridge并雙擊鼠標(biāo)左鍵(或點(diǎn)擊Add按鈕);即可彈出如圖6.31所示的JTAGtoAvalonMasterBridge屬性設(shè)置對(duì)話(huà)框。JTAGtoAvalonMaster橋接收J(rèn)TAG接口上的字節(jié)編碼處理數(shù)據(jù)流,并在Avalon-MM接口發(fā)起Avalon-MM處理過(guò)程。JTAGtoAvalonMaster橋也可用于系統(tǒng)控制臺(tái)(SystemConsole)和SignalTap的調(diào)試。直接點(diǎn)擊窗口右下角的“Finish”按鈕完成。連接clk、clk_reset、master,結(jié)果如下圖所示。根據(jù)本實(shí)例系統(tǒng)要求(如圖6.11中包括兩個(gè)JTAGMaster),需要按照以上方法在Qsys中再添加一個(gè)JTAGtoAvalonMasterBridge元件。重復(fù)上面操作并連線(xiàn),結(jié)果如下圖所示。添加系統(tǒng)ID。在Qsys左邊的ComponentLibrary下面選擇展開(kāi)peripheralsDebugandPerformance,選中其中的SystemIDPeripheral并雙擊鼠標(biāo)左鍵(或點(diǎn)擊Add按鈕);即可彈出如圖6.32所示的SystemIDperipheral屬性設(shè)置對(duì)話(huà)框。SystemID可以驗(yàn)證軟件與硬件處理器系統(tǒng)的一致性,不允許軟件運(yùn)行在不兼容的硬件配置系統(tǒng)上。在圖6.32所示的SystemIDPeripheral屬性設(shè)置對(duì)話(huà)框的32bitSystemID中輸入十六進(jìn)制的系統(tǒng)ID號(hào),之后點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk等,結(jié)果如下圖所示。添加JTAGUART。在Qsys左邊的ComponentLibrary下面選擇InterfaceProtocolsSerial,選中其中的JTAGUART并雙擊鼠標(biāo)左鍵(或點(diǎn)擊Add按鈕),即可彈出如圖6.33所示的JTAGUART屬性設(shè)置對(duì)話(huà)框。保持所有默認(rèn)設(shè)置,直接點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk等信號(hào),結(jié)果如下圖所示。出現(xiàn)地址重疊錯(cuò)。選System-〉A(chǔ)ssignBaseAddresses結(jié)果如下圖所示。(5)添加并行I/O(PIO)外設(shè)。①添加LED輸出MicrocontrollerPeripherals,選中PIO并雙擊鼠標(biāo)左鍵(或點(diǎn)擊Add按鈕),即可彈出如圖6.34所示的PIO(ParallelI/O)屬性設(shè)置對(duì)話(huà)框在Width(1-32bits)中填入4,并在Direction中選擇Output,這樣即表示在Qsys中添加4位輸出接口。然后點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk等信號(hào),結(jié)果如下圖所示。加撥碼開(kāi)關(guān)輸入接口。在Qsys的ComponentLibrary中選擇添加PIO(parallelI/O);彈出PIO(ParallelI/O)對(duì)話(huà)框,在width(1-32bits)中填入4,并在Direction中選擇Input,如圖6.35或下圖所示。在Edgecaptureregister下面選中Synchronouslycapture,并在EdgeType右側(cè)選擇ANY;在Interrupt下面選中GenerateIRQ,并在IRQType后選擇EDGE。然后點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk等,結(jié)果如下圖所示。出現(xiàn)地址重疊錯(cuò)。選System-〉A(chǔ)ssignBaseAddresses,結(jié)果如下圖所示。③添加按鍵輸入接口。在Qsys的ComponentLibrary中選擇添加PlO(ParallelI/O)并彈出PIO(ParallelI/O)對(duì)話(huà)框后,在Width(1-32bits)中填入4,并在Direction中選Input,如圖6.36所示。在Edgecaptureregister下面選中Synchronouslycapture,并在EdgeType右側(cè)選擇FALLING;在Interrupt下面選中GenerateIRQ,并在IRQType后選擇EDGE。然后點(diǎn)擊窗口右下角的Finish按鈕完成。連接clk等信號(hào),選System-〉A(chǔ)ssignBaseAddresses,消除地址重疊錯(cuò)。結(jié)果如下圖所示。所有并行I/O(PIO)外設(shè)添加完成后,可以在Qsys的SystemContents中看到pio_0添加的LED輸出接口)、pio_1(添加的撥碼開(kāi)關(guān)輸入接口)和pio_2(添加的按鍵輸入接口),如圖6.37所示。(6)添加中斷捕獲模塊。中斷捕獲模塊是用Verilog寫(xiě)好的Avalon存儲(chǔ)器映射(MemoryMapped)用戶(hù)自定義的Qsys元件,該模塊連接到FPGA外設(shè)的中斷源,可以通過(guò)系統(tǒng)控制臺(tái)(SystemConsole)查看每個(gè)FPGA外設(shè)的中斷狀態(tài)。Altera公司提供的黃金參考設(shè)計(jì)(GSRD)硬件模塊(GoldenHardwareReferenceDesign,GHRD)中提供的中斷捕獲模塊的源代碼(intr_capturer.v)如下:回到QurtusII下,選File->New選VerilogHDLFile,然后點(diǎn)OK按鈕。編輯intr_capturer.vp212-213另外方法:將已有的intr_capturer.v加入工程。根據(jù)intr_capturer.v在Qsys中創(chuàng)建新的元件在Qsys中選擇菜單FileNewComponent命令;將彈出如圖6.35所示ComponentEditor對(duì)話(huà)框。新的元件編輯器(ComponentEditor)對(duì)話(huà)框包括ComponentType、Files、Parameters、Signals和Interfaces五個(gè)標(biāo)簽頁(yè)。首先在ComponentType標(biāo)簽頁(yè)中,輸入Name為Interrupt_Capturer,輸入Displayname為Interrupt_Capturer,version默認(rèn)為1.0,Group選擇Others。可以在Deseription中輸入描述該模塊的說(shuō)明性文字。在Files標(biāo)簽頁(yè)界面,如圖6.39所示,點(diǎn)擊SynthesisFiles下面的+按鈕添加intr_capturer.v文件。然后點(diǎn)擊+后面的AnalyzeSynthesisFiles按鈕對(duì)添加的intr_capturer.v文件進(jìn)行分析綜合。如果文件沒(méi)有錯(cuò)誤,則將彈出圖6.40所示界面,否則根據(jù)錯(cuò)誤修改添加的文件。點(diǎn)Close按鈕。點(diǎn)CopyfromSynthesisFiles按鈕。在Signals標(biāo)簽頁(yè)需要設(shè)置所有信號(hào)名稱(chēng)所對(duì)應(yīng)的接口(Interface)和信號(hào)類(lèi)型(SignalType),如圖6.41所示。分別在Interface和SignalType列中為所有信號(hào)按照表6.17選擇正確的接口和信號(hào)類(lèi)型。設(shè)置好后的Signals標(biāo)簽頁(yè)如圖6.42所示。在Interfaces標(biāo)簽頁(yè)中,根據(jù)圖6.42界面最下方的提示,分別設(shè)置好avalon_slave_0部分、interrupt_receiver部分的AssociatedReset選項(xiàng),選擇reset_sink,如圖6.43所示,其他部分保持默認(rèn)設(shè)置即可。如果在圖6.43最下方的信息欄提示Info:Noerrorsorwamings.,即可點(diǎn)擊Finish按鈕退出元件編輯器,否則需要根據(jù)提示修改設(shè)置。退出自定義元件編輯器對(duì)話(huà)框后,可以在Qsys界面的ComponentLibrary中看到多了Other目錄,其中包括自定義的元件Interrupt_Capturer,如圖6.44所示。點(diǎn)Add按鈕,添加該元件即彈出Interrupt_eapturer窗口;直接點(diǎn)擊Finish按鈕。連接clk等信號(hào)線(xiàn),消除地址重疊。3)配置添加的Qsys系統(tǒng)元件(1)修改相關(guān)元件及外設(shè)名稱(chēng)。在Qsys中按照以上方法添加到SystemContents中的元件及外設(shè)的名稱(chēng)(Name列)是默認(rèn)的,如中斷捕獲模塊的名稱(chēng)為Interrupt_Capture_0。因此,需要根據(jù)實(shí)際情況對(duì)其重新命名。對(duì)Qsys界面SystemContents中的某個(gè)元件重新命名的方法是:在需要重新命名的元件名上點(diǎn)擊鼠標(biāo)右鍵,然后選擇右鍵菜單中的Rename命令,即可輸入新的元件名稱(chēng),如圖6.45所示。根據(jù)上面的重命名方法,按照表6.18對(duì)Qsys中添加的元件及外設(shè)重新命名,表6.18沒(méi)有列出的元件保持默認(rèn)名稱(chēng),如clk_0、hps_0、onchip_memory2_0、Interrupt_Capturer_0右鍵選Rename將pio_1改為dipsw_pio、pio_2改為button_pio(2)設(shè)置外設(shè)的頂層I/O接口。在Qsys的SystemContents標(biāo)簽頁(yè)面的Export列,將Led_pio、dipsw_pio和button_pio所對(duì)應(yīng)的external_connection的頂層I/O導(dǎo)出并命名。方法是:在Export列相應(yīng)位置雙擊鼠標(biāo)左鍵,并分別輸入fpga_led_pio、fpga_dipsw_pio和fpga_button_pio,如圖6.46所示。3)連接Qsys外設(shè)接口。Qsys中所添加的每個(gè)元件及外設(shè)都包括一些接口信號(hào),默認(rèn)情況下這些信號(hào)相互之間是不連接的,需要根據(jù)實(shí)際系統(tǒng)要求進(jìn)行連接。例如將led_pio的clk信號(hào)連接到clk_0的clk信號(hào)上,可以在led_io的clk信號(hào)上點(diǎn)擊鼠標(biāo)右鍵,在彈出的右鍵菜單中選擇led_pio.clkConnections下一級(jí)菜單中的clk_o.clk命令,如圖6.47所示。此時(shí)將發(fā)現(xiàn)該信號(hào)前面ConnectionS列中對(duì)應(yīng)信號(hào)上的實(shí)心圓點(diǎn)即表示信號(hào)已經(jīng)連接(也可以直接用鼠標(biāo)左鍵點(diǎn)擊Connections列中需要連接信號(hào)上的空心圓點(diǎn)進(jìn)行信號(hào)連接)。按照以上方法,根據(jù)表6.19將相關(guān)的元件信號(hào)連接起來(lái)。連接后的信號(hào)情況如下:(4)設(shè)置Qsys中帶中斷元件的中斷請(qǐng)求(IRQ)。本實(shí)例Qsys系統(tǒng)中,撥碼開(kāi)關(guān)Dipsw_pio、按鍵輸入button_pio和JTAGUART均具有中斷信號(hào),這些中斷信號(hào)需要連接到HPS以及中斷捕獲Interrupt_Capturer_0上,同時(shí)需要設(shè)置相應(yīng)的中斷等級(jí)。例如設(shè)置dipsw_pio的IRQ在dipsw_pio的s1上點(diǎn)擊鼠標(biāo)右鍵,并選擇Connectionsdipsw_pio.irqhps_0.f2hirq0;下圖為設(shè)置按鍵輸入button_pio的中斷信號(hào):注意:13.1與教材13.0版略有不同!重復(fù)上面的步驟,再選擇Connectionsdipsw_pio.irqInterrupt_Capturer_0.interrupt_receiver,如圖6.48所示。設(shè)置好中斷連接后,在Qsys的IRQ列分配IRQ等級(jí),如圖6.49所示,分配給dipsw_pio的IRQ等級(jí)為0。仿照上面的方法,根據(jù)表6.20完成相關(guān)元件的IRQ及其等級(jí)設(shè)置。分配給dipsw_pio的IRQ等級(jí)為0、分配給button_pio的IRQ等級(jí)為1、分配給jtag-uart的IRQ等級(jí)為2。4)配置Qsys的地址映射(AddressMap)Qsys中所添加的元件及外設(shè)都需要分配對(duì)應(yīng)的基地址,可以自動(dòng)分配(在Qsys中選擇菜單SystemAssignBaseAddresses命令),也可以手動(dòng)分配,本實(shí)例系統(tǒng)根據(jù)需要手動(dòng)分配相應(yīng)外設(shè)的基地址。在Qsys界面選擇AddressMap標(biāo)簽頁(yè),該標(biāo)簽頁(yè)給出了系統(tǒng)中所有基于存儲(chǔ)器映射的從端口(slave)連接到存儲(chǔ)器映射主端口(master)的地址范圍,其中的空自部分表示主端口與從端口之間沒(méi)有連接,如圖6.50所示。自動(dòng)分配的外設(shè)基地址手動(dòng)分配相應(yīng)外設(shè)的基地址(略)。參考:p222-223Qsys中外設(shè)基地址修改后,還可以將重要外設(shè)的基地址進(jìn)行鎖定。例如要鎖定button_pio的基地址,在Qsys中返回到SystemContents標(biāo)簽頁(yè),在Base列,點(diǎn)擊button_pio.sl基地址前面的“鎖”圖標(biāo)即可在基地址鎖定與解鎖狀態(tài)間切換。圖6.51所示為鎖定基地址后的結(jié)果。按照相同步驟,可以鎖定led_pio的基地址。設(shè)計(jì)好的系統(tǒng)Qsys界面最下方的Messages窗口中所提示的所有錯(cuò)誤都應(yīng)該解決了,在Qsys界而下方狀態(tài)欄顯示“0Errors,0Wamings”,如圖6.50或上圖所示。如果在Messages中還有錯(cuò)誤存在,則需要根據(jù)錯(cuò)誤提示進(jìn)行相應(yīng)的修改,直到?jīng)]有錯(cuò)誤為止。5)產(chǎn)生Qsys系統(tǒng)注意:13.1的生成操作與教材中13.0版完全不同!實(shí)際操作以下面為準(zhǔn)。在Qsys中,選Generate->Generate…,出現(xiàn)生成對(duì)話(huà)框。點(diǎn)Generate按鈕,開(kāi)始生成。。。生成成功:點(diǎn)擊Close按鈕,回到Qsys界面。Qsys將產(chǎn)生指定格式的硬件描述語(yǔ)言(HDL)文件(Verilog或VHDL)用于QuartusⅡ工程編譯,同時(shí)產(chǎn)生一組與硬件系統(tǒng)定義相關(guān)的文件,包括定義了選定的HPS外設(shè)默認(rèn)引腳分配的Tcl(ToolCommandLanguage)文件,定義了HPS與FPGA中多端口存儲(chǔ)器控制器的Tcl文件,定義了系統(tǒng)所用IP和用于TimeQuest時(shí)序約束的QIP文件。這些文件可以在工程目錄\soc_system\synthesis子目錄中找到。3.完成QuartusⅡ工程的編譯以上任務(wù)完成以后,Qsys將產(chǎn)生QuartusⅡ工程所需的硬件描述語(yǔ)言(HDL)文件及一組硬件系統(tǒng)信息文件,包括定義了HPS外設(shè)默認(rèn)引腳分配的Tcl(ToolCommandLanguage)腳本文件,定義了HPS與FPGA中的多端口存儲(chǔ)器控制器的Tcl文件以及QIP文件。QIP文件中包括系統(tǒng)所用IP和TimeQuest時(shí)序約束所需的SDC(SynthesisDesignConstraint)文件。所有Qsys產(chǎn)生的這些文件可以在工程目錄\soc_system\synthesis中找到。1)在Quartusll工程中添加Qsys產(chǎn)生的系統(tǒng)模塊在QuartusⅡ中選擇菜單AssignmentsSettings命令,彈出如圖6.54所示的Settings對(duì)話(huà)框。選擇Category下面的Files,點(diǎn)擊Filename右側(cè)的“…”按鈕,在彈出的SelectFile對(duì)話(huà)框中,將文件類(lèi)型設(shè)置為AllFiles(*.*),并選擇工程目錄\\soc_system\synthesis子目錄中的soc_system.qip文件(本例中是D:\altera_design\HPS_Qsys_Prj\HPS_Qsys_Prj\synthesis\HPS_Qsys_Prj.qip),最后點(diǎn)擊“打開(kāi)”按鈕返回到Settings對(duì)話(huà)框。在Settings對(duì)話(huà)框中點(diǎn)擊Add按鈕,然后點(diǎn)擊OK按鈕返回到QuartusⅡ軟件。在QuartusⅡ軟件中新建一個(gè)原理圖文件,在原理圖空白處雙擊鼠標(biāo)左鍵,彈出如圖6.55所示的Symbol對(duì)話(huà)框。在Libraries中選擇project下面的soc_system(本例為HPS_Qsys_Prj)符號(hào),點(diǎn)擊OK按鈕返回,并將soc_system(本例為HPS_Qsys_Prj)符號(hào)添加到原理圖中。下圖是Qsys生成的系統(tǒng)如圖6.56所示,在添加的soc_system(本例為HPS_Qsys_Prj)元件上點(diǎn)擊鼠標(biāo)右鍵,在彈出的右鍵菜單中選擇GeneratePinsforSymbolPorts命令,為元件添加輸入/輸出端口,所有端口名稱(chēng)保存默認(rèn)名稱(chēng)不變(也可以根據(jù)需要修改端口名)。本實(shí)例系統(tǒng)中將hps_0_h2f_reset的輸出(命名為hps_fpga_reset_n)連接到系統(tǒng)的復(fù)位reset信號(hào)上,如圖6.57所示。點(diǎn)擊QuartusⅡ菜單FIIeSave(或SaveAs)命令保存原理圖文件,文件名用默認(rèn)的原理圖文件名即可。2)分析綜合工程文件并分配引腳在分配引腳之前應(yīng)該先對(duì)工程文件進(jìn)行分析綜合(AnalysisandSynthesis),產(chǎn)生分配引腳所需的工程網(wǎng)表文件。在QuartusⅡ中選擇菜單processingStartStartAnalysis&Synthesis命令,如圖6.58所示,或直接點(diǎn)擊圖6.58中快捷工具欄所圈的快捷圖標(biāo),完成分析綜合后,如果沒(méi)有錯(cuò)誤即可進(jìn)入工程文件的引腳分配;分析綜合成功。進(jìn)行引腳分配。由于系統(tǒng)中的HPS是在Qsys集成工具中例化得到的,因此,除了所使用的外部存儲(chǔ)器引腳以外,其他的專(zhuān)用引腳不需要在QuartuII中進(jìn)行分配,而是在HPS例化過(guò)程中由Qsys自動(dòng)完成HPs的引腳分配,并把相關(guān)信息保存在XML格式的文件中提供給軟件開(kāi)發(fā)工具使用。但是HPS的外部存儲(chǔ)器引腳需要在QuartusⅡl中進(jìn)行引腳分配,該引腳分配信息同樣保存在由Qsys產(chǎn)生的Tcl腳本文件中,只需要在Quartusll中執(zhí)行該腳本文件即可。在QuartusⅡ中選擇菜單ToolsTclScripts命令,在TCLScripts對(duì)話(huà)框中選擇project\soc_system\synthesis\submodules子目錄中的hps_sdram_p0_pin_assignments.tel文件;點(diǎn)擊Run按鈕執(zhí)行該Tcl文件,如圖6.59或上圖所示。Run后的結(jié)果如下圖。點(diǎn)OK按鈕可以在QuartusⅡ中點(diǎn)擊菜單ViewUtilitywindowsTclConsole命令,在TclConsole窗口中查看Tcl腳本文件的執(zhí)行結(jié)果。最后根據(jù)開(kāi)發(fā)板(或系統(tǒng)板)上LED、撥碼開(kāi)關(guān)以及按鍵的實(shí)際連接,選擇菜單Assignmentspinplanner命令,在pinplanner窗口對(duì)LED輸出、撥碼開(kāi)關(guān)輸入及按鍵輸入端口進(jìn)行引腳分配。參考補(bǔ)課材料:學(xué)習(xí)使用DE1-SoC開(kāi)發(fā)板.docx時(shí)鐘引腳pio引腳分配:?jiǎn)?dòng)全編譯:出錯(cuò)!將與hps的gpio有關(guān)引腳電平改為1.8V再進(jìn)行全編譯。全部100%通過(guò)。3-2)FPGA編程在QuartusⅡ中選擇菜單Toolsprogrammer命令,彈出如圖6.60所示的programmer對(duì)話(huà)框,點(diǎn)擊左上角的HardwareSetup按鈕,在彈出的硬件設(shè)置對(duì)話(huà)框中,選擇CurrentlySelectedhardware中的CVSoCKit[USB-1],點(diǎn)擊Close按鈕返回到Programmer對(duì)話(huà)框。在Programmer對(duì)話(huà)框中點(diǎn)擊左側(cè)的AutoDetect按鈕,如圖6.61所示。在彈出的SelectDeviee窗口選擇SCSXFC6D6ES芯片,點(diǎn)擊OK按鈕返回。在彈出如圖6.62所示的確認(rèn)對(duì)話(huà)框中點(diǎn)擊Yes按

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論