在課堂中所學的知識再搭配此次 lab 的練習,讓我對 HLS 的開發步驟 Csimulation、Co-simulation,及 Block-level protocal 和 Port-level protocal 更加熟悉。在 lab1 中使用的是 axi-lite,而此次 lab 是使用了 axi-master 和 axistream,這裡我列出在此次 lab 中所遇到的問題和需要注意的點,在設定 aximaster 的 directive 設定中需要提供足夠大小的 FIFO Depth 才能避免在 Cosim 中產生 Deadlock,當 depth > dataset 會產生 SIGSEGV 的 error,而當depth < dataset 則會發生 insufficient 的 error,所以 depth 應和 dataset 為相同的 size,在此 lab 中定義的 NUM_SAMPLES 為 600,因此其 depth 也應設定為 600 才不會出現錯誤。在 Block Design 中的 AXI-Master interface 是可以直接連接 IP 和 ZYNQ,能將彼此的 frequency、protocal 等等做 converge,而 AXI-Stream interface 在 output 處須透過 axi-dma(Stream-out to AXI-M)再連接到 AXI interconnect 和 ZYNQ,在 input 處也是從 AXI interconnect 透過 axi-dma(AXI-M to Stream-out)再連接到 IP。使用的板子不同時,在 Jupyter裡 的 Overlay 路 徑 也 不 相 同 , 在 使 用 PYNQ 板 子 時 的 路 徑 為 ”/home/xilinx/jupyter_notebooks/” , 而 在 使 用 KV260 時 的 路 徑 為 ”/home/root/jupyter_notebooks/”。在此次的練習中讓我更熟悉 Kernal 及 Host 之間的 communication 關係。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up