# Tutorial: ILA with PYNQ 以下展示如何使用ILA並讀取PYNQ環境下產生的訊號。 ## 環境 + vivado 2019.1 ![](https://i.imgur.com/MSHNA1E.png) + PYNQ ## 實現 以下使用SPI module做示範。 ### 1. 加入debug probe 在目標訊號右鍵並選擇debug。 ![](https://i.imgur.com/5u6bs6a.png) 點選"Run Connection Automation",以自動生成ILA probe。 ![](https://i.imgur.com/ipmwpYo.png) ![](https://i.imgur.com/MBPDF67.png) 詳細I【A設定可進入ILA probe設定。 ![](https://i.imgur.com/MzH3QaW.png) 接著生成bitstream並放入Jupyter。 ### 2. Run IP 載入bitsream as overlay。 並完成IP初始化,注意需先將overlay載入,Hardware Manerger才看的到ILA。 ```python= from pynq import Overlay import time import numpy as np from pynq.lib import AxiGPIO ol = Overlay("0321.bit") def PYNQ_SPIWrite(x, y): # PYNQ_SPIWrite(‘007’, ‘08’) ADI9361_Conf_comm = int(x + y, 16)+2**24+2**23 #int('123')=123 SPI_channel.write(0x0, mask) SPI_channel.write(ADI9361_Conf_comm, mask) #SPIWrite SPI_channel.write(0x0, mask) print(hex(ADI9361_Conf_comm)) print(x) def PYNQ_SPIRead(x): # PYNQ_SPIRead(‘007’) ADI9361_Conf_comm = int(x + '00', 16) + 2**24 SPI_channel.write(0x0, mask) SPI_channel.write(ADI9361_Conf_comm, mask) #SPIWrite SPI_DO = SPI_RD_Channel.read() SPI_DO = hex(SPI_DO) print(SPI_DO) mask = 0xffffffff SPI_ip = ol.ip_dict['axi_to_gpio'] SPI_channel = AxiGPIO(SPI_ip).channel1 ``` ```python= i=0 while i<5: PYNQ_SPIWrite('00'+str(i), 'AA') i=i+1 ``` 本測試中傳送的封包如下圖 ![](https://i.imgur.com/Pj39ezc.png) ### 3. 使用ILA in Vivado 確保usb接上後並打開Hardware Manerger,並Open target,理論上jtag接上就能看到chip name。 改名後Hardware Device Properties中Programming file可能會跑掉,須手動指向為剛剛生成的bitstream file. 有時ILA報錯也是因為probes file檔案指向錯誤,重新選取正確的.itx file即可。 ![](https://i.imgur.com/eBEc4L8.png) 理想上這時就可以看到剛剛設定的ILA probe,若沒有可以先執行一次模組,如先對SPI發送一組資料。 ![](https://i.imgur.com/5kSNdJ3.png) 如下圖可以設定trigger,但因這邊ila深度僅開1024bit,trigger位置10,因此只能擷取到第一筆SPI packge。 ![](https://i.imgur.com/2YkPmTn.png) ### 使用邏輯分析儀驗證 這邊將同一bitstream中的SPI訊號透過constrain file將腳位輸出到PMOD,並透過外接邏輯分析儀驗證ILA及PMOD輸出訊號結果。 詳細邏輯分析儀設定這邊不贅述。 ![](https://i.imgur.com/ymZkPGJ.png) 因這邊邏輯分析儀深度為512KB,並有設置data filter,因此可正確抓取所有SPI package。 ## Reference + NCU-CE, SDR LAB + http://www.pynq.io/ + Vivado Design Suite Tutorial - Embedded Processor Hardware Design(UG940) ###### tags: `Zedboard` >jessest94106@g.ncu.edu.tw Department of Space Science & Engineering Center for Astronautical Physics & Engineering National Central University, Taiwan [name=PieappleJ] [time=Sun, Mar 23, 2022]