教學(xué)優(yōu)勢(shì)
曙海教育的課程培養(yǎng)了大批受企業(yè)歡迎的工程師。大批企業(yè)和曙海
建立了良好的合作關(guān)系。曙海教育的課程在業(yè)內(nèi)有著響亮的知名度。
本課程,秉承20年積累的教學(xué)品質(zhì),以項(xiàng)目實(shí)現(xiàn)為導(dǎo)向,老師將會(huì)與您分享設(shè)計(jì)的全流程以及工具的綜合使用經(jīng)驗(yàn)、技巧。
課程簡(jiǎn)介:
課程目標(biāo):
課程大綱:
程大綱:
?
1、ZYNQ-7000硬件系統(tǒng)設(shè)計(jì)知識(shí)點(diǎn)
(1)基本電路設(shè)計(jì):主要管腳、常用外設(shè)設(shè)計(jì)、JTAG電路設(shè)計(jì)、上電啟動(dòng)流程。
(2)片上資源介紹:邏輯資源Slice、LUT和CLB,時(shí)鐘管理和分配,IO和存貯資源。
(3)PS外設(shè)接口資源與設(shè)置,PS與PL連接資源與方式。
(4)Xilinx自帶IP庫功能、例化與使用。
(5)定制IP核設(shè)計(jì)與使用,分別介紹單個(gè)IP核、子系統(tǒng)IP核和RTL IP核。
(6)AXI總線介紹和AXI?IP核設(shè)計(jì)。
(7)XDC管腳與時(shí)序約束文件的設(shè)計(jì)與使用。
(8)時(shí)序分析技術(shù),前仿真、后仿真和原理圖時(shí)序定位。
(9)時(shí)序優(yōu)化技術(shù),插入寄存器、并行結(jié)構(gòu)、邏輯展開、寄存器平衡、路徑重組、Fanout限制、IP核的引入。
(10)裸機(jī)地址映射與庫函數(shù)、初始化、中斷程序和主程序編寫,以實(shí)現(xiàn)用戶對(duì)硬件的控制。
2、ZYNQ-7000?裸機(jī)開發(fā)實(shí)例(工具Vitis、Vivado和SDK)
(1)三種I/O接口方式MIO、EMIO和AXI?GPIO流水燈例程。從流水燈例程中學(xué)會(huì)使用MIO、EMIO和AXI?GPIO,Vivado的設(shè)計(jì),IP核的使用,Vitis軟件創(chuàng)建硬件平臺(tái)與應(yīng)用平臺(tái),BSP生成,庫函數(shù)使用和應(yīng)用程序編寫。
(3) FIFO例程。FIFO原理、IP核例化與測(cè)試、開發(fā)板調(diào)試,學(xué)會(huì)testbench與邏輯分析儀ILA的使用。
(4)DMA原理、分類、IP核的例化、SDK的讀寫調(diào)用、開發(fā)板調(diào)試。
(5)任意信號(hào)發(fā)生器的設(shè)計(jì)與驗(yàn)證。自制IP核的設(shè)計(jì)、驗(yàn)證與使用,掌握testbench、邏輯分析儀ILA和虛擬輸入輸出VIO等FPGA調(diào)試工具。
(6)基于LwIP協(xié)議千兆以太網(wǎng)的設(shè)計(jì)與驗(yàn)證。學(xué)會(huì)ZYMQ7 IP核的配置和網(wǎng)絡(luò)通信的程序設(shè)計(jì),在開發(fā)板上使用網(wǎng)絡(luò)調(diào)試助手進(jìn)行設(shè)計(jì)驗(yàn)證。
3、ZYNQ-7000軟件系統(tǒng)設(shè)計(jì)
(1)定制Linux工具Petalinx軟件原理和開發(fā)流程介紹。
(2)工程文件參數(shù)配置、本地sstate-cache和根文件系統(tǒng)配置介紹。
(3)網(wǎng)絡(luò)連接、鏡像源和域名服務(wù)器的配置。
(4)定制模塊module、層layer、應(yīng)用app和軟件包package的方法。
(5)開機(jī)自啟動(dòng)程序配置方法。
(6)設(shè)備樹的概念和設(shè)置
(7)開發(fā)板具備編譯功能的設(shè)計(jì)方法,不必使用交叉編譯。
(8)硬件設(shè)計(jì)的升級(jí)方法。
(9)啟動(dòng)串口輸出內(nèi)容介紹與故障診斷。
(10)鏡像文件BOOT、image.ub和root文件介紹。
(11)SD啟動(dòng)盤的制作和燒寫。
4、Petalinux定制Linux系統(tǒng)與驅(qū)動(dòng)程序開發(fā)實(shí)例
(1)GPIO驅(qū)動(dòng)與應(yīng)用程序編寫,Petalinux制作Linux系統(tǒng)。介紹字符驅(qū)動(dòng)的概念與編程方法。介紹文件描述符、打開設(shè)備文件、讀文件、寫文件與釋放設(shè)備文件,設(shè)備的初始化函數(shù),設(shè)備號(hào)的靜態(tài)與動(dòng)態(tài)申請(qǐng),設(shè)備結(jié)構(gòu)體的初始化與注冊(cè),設(shè)備節(jié)點(diǎn)的創(chuàng)建等概念與編程,用Petalinux工具生成系統(tǒng)和驅(qū)動(dòng)程序,并在開發(fā)板制作的Linux系統(tǒng)上用C語言編程實(shí)現(xiàn)GPIO流水燈的控制。亦介紹了GPIO另外一種簡(jiǎn)單的控制方法SysFs編程與實(shí)現(xiàn)。
(2)DMA驅(qū)動(dòng)與應(yīng)用程序編寫,Petalinux制作Linux系統(tǒng)。介紹DMA基本概念,系統(tǒng)描述符、設(shè)備樹配置、自啟動(dòng)模塊與腳本的編寫、GCC編譯功能的添加、BSP作用與輸入輸出、本地化配置sstate-cache、網(wǎng)絡(luò)參數(shù)配置、硬件引入與升級(jí)、SD卡鏡像制作、DMA驅(qū)動(dòng)程序和應(yīng)用程序編寫與解讀,并對(duì)這些內(nèi)容進(jìn)行實(shí)操,最后在開發(fā)板上用全流程自己制作的SD卡鏡像進(jìn)行驗(yàn)證。
5、新技術(shù)PYNQ 和ZYNQ MPSoC介紹
本節(jié)將為學(xué)員展示Xilinx的新產(chǎn)品、新技術(shù),為學(xué)員展望未來FPGA的發(fā)展之路。
(1)PYNQ技術(shù)介紹。使用高級(jí)語言Python來開發(fā)FPGA, 通過Python編程就可以調(diào)用FPGA模塊,不需要懂Verilog/VHDL硬件編程就可以享受FPGA可并行計(jì)算、接口可方便擴(kuò)展和可靈活配置帶來的諸多好處。
(2)演示通過PYNQ在ZYNQ 7000開發(fā)板上實(shí)現(xiàn)點(diǎn)燈、圖像處理和神經(jīng)網(wǎng)絡(luò)諸多功能,展示其通過簡(jiǎn)易方法來實(shí)現(xiàn)復(fù)雜功能的強(qiáng)大處理能力。
(3)演示基于Ultrascale+ MPSoC系列的Ultra96或Kria?KV260開發(fā)板的項(xiàng)目例程,其作為ZYNQ系列的升級(jí)產(chǎn)品,展示其在異構(gòu)加速、圖像處理和人工智能方面的強(qiáng)大功能。
練習(xí)
答疑