- 在zynq系列的開發板中有三種GPIO腳位。
- MIO
腳位直接從PS端拉出,且接線已經固定。 - EMIO
通過PL部份擴展(拉線的意思),接到指定腳位。 - AXI_GPIO
透過AXI界面與PS通訊。
- MIO
- 開啟Vivado,在Block design中加入Zynq UltraScale+ MPSoC的IP,並按Run Block Automation採用預設設定,設定好如下圖。
- 雙擊MPSoC,將不需要的設定拿掉(下左圖),也就是PS-PL界面與中斷,並開啟EMIO的功能(下右圖),在這範例中只需要2個EMIO腳位。
- 在MPSoC block的GPIO上按滑鼠右鍵,選擇Make External選項,此時接腳會自動拉出。
- 將剛剛做的Block design使用Validate Design(f6)確認沒問題。
- 在Source視窗且Hierarchy下執行Create HDL Wrapper,產出*.v或*.vhd檔案。
- 在Constraints目錄上按右鍵,Add Source加入一個約束檔top.xdc,主要的功用是指定EMIO與實際晶片的pin腳有所對應。
- 在Flow Navigator的PROGRAM AND DEBUG的項目下,按Generate Bistream,然後發揮耐心等待執行完成。
- 完成後會跳出一個視窗,請選Open Implemented Design後按OK。
- 主選單File/Export/Export Hardware,Include bitstream選項要勾。
- 主選單File/Launch SDK,開啟SDK軟體來寫PS的程式碼。
- 步驟11結束後會開啟SDK2019.1,以下操作都在SDK軟體中,首先會看到左方Project Explorer會有步驟10匯出的資料夾,內容名稱不見得一樣。
- 按組合鍵SHIFT+ALT+N,在資料夾上會跑出選單,選擇Application Project,填寫應用程式的名稱,並按Next>。
- 選擇Empty Application,並按Finish。
- 在所建立的Application Project資料夾裡找到src資料夾,點滑鼠右鍵New一個File取名為main.c。
-
可以開始寫PS的程式。
-
電腦連上FPGA(Jtag),燒bit檔案到FPGA,Xilinx/Program FPGA,按下Program便會開始燒錄。
- 在Application Project資料夾上點滑鼠右鍵,在Run As找到Launch on Hardware(GDB),點擊就會開始燒入PS程式,並由ZCU111的CPU執行。