Xilinx Vivado zynq 入門筆記_第1頁
Xilinx Vivado zynq 入門筆記_第2頁
Xilinx Vivado zynq 入門筆記_第3頁
Xilinx Vivado zynq 入門筆記_第4頁
Xilinx Vivado zynq 入門筆記_第5頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、IP Integrator flow1. 創(chuàng)建RTL工程2. 創(chuàng)建IP Integrator Block Design3. 添加zynq 處理器 ip中搜索zynq,添加zynq7 Processing System,其中的BFM版本為先前的IP處理器版本。鼠標右鍵點擊FIXED_IO和DDR接口,選擇make external,連接到芯片外部。但此時處理是完全未經(jīng)過配置的,雙擊處理器進行配置。自動添加的外部接口:(參考ug585文檔)FIXED_IO, 是專用的內(nèi)部固化的外設(shè)IO,作用?54個MIO口,DDR_VRN,DDR_VRP:DDR DCI voltage reference pin

2、s, refer to UG933, Zynq-7000 AP SoC PCB Design and Pin Planning Guide. PS_SRSTB:Debug system reset, active Low. Forces the system to enter a reset sequence.PS_CLK:System reference clockPS_PORB:Power on reset, active lowDDR接口,處理器ddr內(nèi)存尋址接口;M_AXI_GP0_ACLK, M_AXI_GP0,在PS-PL Configuration中可取消對GP Master A

3、XI Tnterface的選擇FCLK_CLK0: PL Pabric Clocks,不使用可在Clock Configuration 中disable。FCLK_RESET0_N:時鐘復位使能,可在General中disable 。4. 配置processing System,配置處理器內(nèi)部控制模塊的詳細功能與特性查看:Soc Technical Reference manual通用配置:(1) MIO配置:Bank0與Bank1分區(qū)的IO對應(yīng)FPGA處理器可配置的IO,由硬件決定電平還是芯片已經(jīng)指定電平?由硬件決定。UART1映射到MIO48:49zedboardBank 0 IO Vol

4、tage:LVCMOS 3.3VzedboardBank 1 IO Voltage:LVCMOS 1.8VzedboardPS與PL電源部分是完全獨立,但是無論什么時候有PL電源供電就必須有PS電源供電。PS電源部分為DDR IO口獨立供電,還為MIO的兩個獨立的分區(qū)Bank0與Bank1供電。PS專用的信號pin匯總表2-2,注意,對于MIO pin允許的輸入電壓取決于slcr, MIO_PIN_xxIO_Type和DisableRcvr bits, 約束條件被定義在Zynq-7000 AP SoC data sheets, 超出限制的電壓輸入可能損壞輸入buffer。(2) 核對IO配置,

5、選擇Zynq Block Design,注意UART1是否已經(jīng)在IO特性中被連接。注意勾上:GPIO,以使其它的MIO口能夠作處理器的GPIO使用。(3) General Setting常規(guī)設(shè)置:設(shè)置端口特性在Zynq Block Design中選擇General Setting或在PS-PL Configuration中設(shè)置。設(shè)置UART1 波特率。(4)配置Memory和Clocks即使一個簡單的Hello World程序被運行,一些不可缺少的PS elements也必須被配置,它包括DDR3 Memory(用來執(zhí)行PS應(yīng)用程序),另外系統(tǒng)時鐘也必須被配置。DDR3為zed board開發(fā)

6、板上的IC25與IC26,MT41K128M16JT_125.Clock Configuration: 默認時鐘頻率與ZedBoard和MicroZed匹配:IO Peripheral CLocks被指定(SPI、QSPI、CAN、SMC、SDIO、ENET),選擇后如何更改,例如SPI?如果不用FCLK_CLK0,可廢除PL Fabric Clock, 同時還需廢除AXI connection to the PL,在PS-PL Configuration中的取消對GP Master AXI Tnterface的選擇。 也可在PS-PL Configuration中取消對FCLK_RESET的

7、選擇。SPI:時鐘要求比cpu_1x頻率111.1111Mhz更大,可設(shè)160Mhz,然后4分頻為10Mhz使能DDR Configuration:必須設(shè)置為PCB使用的DDR設(shè)置。因為使用2x16 DDR3配置,所以在DDR Controller Configuration中設(shè)置游戲的DRAM總線寬度為32bits。DRAM Training必須全被使能和設(shè)置:write level,read gate,read data eye。保存后完成最小系統(tǒng)設(shè)置:其中內(nèi)部設(shè)置的UART1引腳內(nèi)部設(shè)置,未顯示出來,其實包含在了FIXED_IO。展開FIXED_IO可查看被固定的IO口包含了哪些IO口:

8、包含了含有串口UART1的MIO口、處理器的時鐘口.。(5) 完成IP 集成文件(bd文件)完成處理器配置后,為了便于bd文件作為工程的子模塊,可以將bd文件例化為HDL文件。展開design Sources,右鍵點擊bd文件創(chuàng)建HDL wrapper。再把HDL文件設(shè)為頂層文件或例化在其它工程中。5. 輸出設(shè)計到SDK(software development kit)5.1 輸出到SDK前先完成硬件設(shè)計在FLow Navigator中點擊Generate Bitstream,如沒有綜合和實現(xiàn),軟件將自動綜合布線后產(chǎn)生二進制文件。Bitstream產(chǎn)生完成后,選擇Open Implement

9、ed Design才能使能Vivado輸出bitstream到SDK。輸出到SDK:File >Export >Export Hardware for SDK5.2 輸出到SDK后產(chǎn)生的文件產(chǎn)生文件夾hw_platform_0產(chǎn)生文件:System.xml, 包含系統(tǒng)的地址映射ps7_init.c和ps7_init.h,包含ZYNQ processing system初始化代碼和DDR,Clocks,PLL,MIO的初始化設(shè)置。ps7_init.html,將初始化等設(shè)置以網(wǎng)頁的格式顯示出來。?_wrapper.bit,implemented設(shè)計時,PL bitstream產(chǎn)生的二進

10、制文件,用于初始化PL。5.3 SDK中創(chuàng)建硬件級支持包(Board Support Package)常規(guī)默認設(shè)置即可點擊完成后彈出支持包設(shè)置設(shè)置標準輸入輸出設(shè)備:stdin、stdout自動設(shè)置為uart_1,添加其他外設(shè)時可以更改。設(shè)置驅(qū)動包:自動列出驅(qū)動,不需要的驅(qū)動選擇none5.4 新建Application Project,使用existing的Board Support Package5.5 一個軟件工程包含了3個部分:硬件信息、驅(qū)動包、軟件包5.6 運行調(diào)試程序 右鍵點擊Hello應(yīng)用程序run as->run configurations(1)選擇Xilinx C/C+

11、 Application(GDB)然后點擊New圖標。(2)選擇STDIO連接,連接到Console。如不選擇,則直接輸出到串口上。(3)編譯完成,生成二進制elf文件。點擊Apply和Run,工具編譯好下載elf文件到DDR。JTAG模式:設(shè)置MIO26為000005.7 上電啟動配置 利用FSBL模板建立FSBL的boot程序(1) 建立boot啟動程序: 新建應(yīng)用工程Application Project,選擇FSBL模板。應(yīng)用要求xilffs library庫支持,如未在建立Board Support Package 時選擇該庫,可右鍵點擊standalone_bsp_0選擇Board

12、 Support Package設(shè)置。建立完成即可,默認設(shè)置。輸出在fsbl程序的Properties>C/C+ Build>Settings>ARM gcc compiler>添加兩 個符號:RSA_SUPPORT和FSBL_DEBUG_INFO(用于打開FSBL的輸出,可選)>apply>ok。(2) 使用Xilinx Tools/Create Zynq Boot Image命令建立鏡像文件。首先在FSBL elf的Browse中選擇Boot.elf,該文件會自動添加到下邊的文件列表中。然后添加Bitstream,在hw下;再添加LED_Dimmer.e

13、lf文件。三者的順序不能顛倒。最后Create。(需要先編譯工程Project>build all)。在boot image partitions中添加bootloader類型的FSBL生成的.elf文件;添加hw_platform中的硬件.bit二進制文件; 添加軟件工程生成的.elf文件;(3) 使用xilinx-tool/Program Flash.選擇qspi single,offset可以不填寫內(nèi)容。Program.(4) 下載文件:QSPIFlash對應(yīng).MSC文件,SD card對應(yīng).bin文件6 其它操作Zedboard Processing System配置:最重要的外

14、設(shè)配置是boot device,ZYNQ允許使用QSPI、NOR/NAND、SD Card。QSPI: QSPI固定使用MIO1-6,8, 其中MIO8為feedback clk, 通常應(yīng)勾選上。如果有靈感QSPI,選擇Dual配置。注意:SRAM/NOR/NAND Flash接口不能被配置,是因為ZYNQ PS僅僅允許一個存儲器接口。USB0: MIO28-39,LVCMOS1.8V以太網(wǎng)ENET0: MIO16-27, LVCMOS 1.8V MDIOMIO52-53SDCARD:SD0MIO40-45;CD=MIO47;WP=MIO46預設(shè)為Zedboard默認值:Presets>

15、Zedboard設(shè)置PS PLL CLocks:有三個PLL-ARM,DDR和IO,每一個在Zedboard上都使用同樣的輸入?yún)⒖紩r鐘33.3333MHz。PLL輸出設(shè)定好后可以更改為整數(shù)倍的其它時鐘。例如:ARM PLL1333.33MHz(33.333MHz*40)DDR PLL1600MHz(33.333Mhz*48)或1066.667MHz(33.3333*32)QSPI可設(shè)置為200MHzPS能夠驅(qū)動4個不同時鐘頻率給PL例如:7 綁定PL管腳 管腳約束PS部分使用的I/O直接由軟件配置,綜合后可在I/O Planning中直接查看。如DDR部分與FIXED部分,為PS指定I/O,綜

16、合后直接映射到對應(yīng)I/O,不需用戶單獨指定。方法一:I/O Planing(1)打開Synthesized Design(2)菜單Layout>I/O planing(3)方法二:xdc約束文件(1) 注釋語句,語句前加“#”(2) IO位置: set_property PACKAGE_PIN <pin name> get_ports <port>(3) IO電平標準:set_property IOSTANDARD <IO standard> get_ports <ports>例:set_property PACKAGE_PIN U14 g

17、et_ports led1sset_property IOSTANDARD LVCMOS33 get_ports led1s8. 使用GP AXI總線(需要配置的AXI Master,F(xiàn)CLK,F(xiàn)CLK_RESET)These interfaces are for general-purpose use only and are not intended to achieve high performance.8.1 配置,使能AXI Master總線,同時必須為AXI Master配置一個FCLK時鐘,和一個FCLK_RESET復位信號。配置完成后處理器增加兩個端口:M_AXI_GP0,M_

18、AXI_GP0_ACLK。與兩個必須的輔助AXI的信號端口:FCLK_CLK,F(xiàn)CLK_RESET。8.2 在bd文件中添加ip: axi_gpio8.3 運行自動連接8.4 添加Port,連接到axi_gpio的輸出口。8.5 SDK操作外設(shè)AXI_GPIO(1) 查找外設(shè):點擊system.mss,可以找到外設(shè)的驅(qū)動和例程,axi_gpio_0,Examples(點擊);打開xgpio_example.c。 (板級驅(qū)動包standalone_bsp_0中的system.mss對系統(tǒng)使用的驅(qū)動包進行了說明)(2)添加頭文件:復制examples中的頭文件: xparameters.h,xgp

19、io.h;(3) 查找外設(shè)ID:打開xparameters.h,可以通過右鍵點擊程序中的頭文件,選擇open declaration打開。XPAR_AXI_GPIO_0_DEVICE_ID。Xparameters.h文件由libgen庫自動產(chǎn)生,包含了處理器的各個外設(shè)的驅(qū)動地址與訪問ID(4) 訪問函數(shù):在頭文件xgpio.h中查詢xgpio的驅(qū)動函數(shù),或參考example。8.6 AXI BRAM Controller 與AXI Interconnect,(1) 在處理器中增添端口:a) 32b GP AXI Master Ports,選擇M AXI GP0 Interfaceb) 選擇Cl

20、ock Configuration,使能FCLK_CLK0,設(shè)置為50MHzc) 選擇PS-PL Configuration,在General的時鐘復位中使能FCLK_RESET0_N(2) 使用BRAM控制器,添加IP(AXI BRAM Controll):設(shè)置BRAM控制器:a) 增加數(shù)據(jù)寬度到64bits,點擊OKb) ID Width(Auto)設(shè)置成Yes,以支持AXI Narrow Bursts。如果不能設(shè)置,將虛擬開關(guān)指到Manual再進行設(shè)置。(3) 添加存儲器IP并雙擊進行設(shè)置:Block Memory Generatea)選擇True Dual Portb)設(shè)置數(shù)據(jù)寬度:不能設(shè)置,默認32bits(4) 添加IP模塊:AXI Interconnect,設(shè)置interface數(shù)量(5) 連接各模塊:連接復位:連接時鐘:連接總線,重新產(chǎn)生布線:(6) 為BRAM在AXI總線上創(chuàng)建地址空間。編輯Address Editor >Auto Assign Address(7) 使設(shè)計有效化(8) 雙擊blk_mem模塊,點擊Port A和Port B選項卡,看數(shù)據(jù)的寬度的深度,此時已經(jīng)自動變?yōu)?4bits寬度。(9) 保存BD文件,創(chuàng)建 HDL Wr

溫馨提示

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

評論

0/150

提交評論