Lab6 observe 這次 lab 主要分為 2 個部分,主要是驗證 firmware 端的 4 個 功能正確性,以及把它們整合在一起,最後在放到 FPGA 來上來進行驗證,相較於 LAB5 此次多了兩個 IP,分別是 axi-uartlite 和 interrupt-Control,當收到資料時,需要產生 中斷訊號的 ip 以及收資料的 ip,運作原理如下 當 ps 端寫一筆 data 給 caravel,它會透過 axi-interconnect 送 到 axi-uartlite,然後 caravel 會去接這筆資料,data 會經過 axi-uartlite-rx 傳給 caravel_uart-tx,而從 caravel 端要傳 data 給 ps 端,data 會經由 caravel_uart-rx 傳給 axi-uartlite-tx,然 後當 axi-uartlite 接收到資料時,它會去 trigger interrupt,而 資料會經由 interrupt-ctrl 傳給 ps 端。(ps 端的 irq 會讓 ps 端 知道已經有資料從 caravel 送過來了) 而其他的 ip 功能跟 lab5 相同,執行 pythin code 來進行驗 證,透過 ip 來完成資料的傳遞。 透過 read_romcode ip 來將.hex 傳遞。將資料從 DDR 內傳遞 至硬體 BRAM 內。 透過 RsetControl ip 來溝通 PS 與 Caravel 內的 MPRJ_IO。 用此 ip 設定 reset 信號控制,1 或 0 分別控制 Caravel 的 reset pin 是 assert 還是 de-assert。 透過 MPRJ_IO 經由 caravel_ps 這個 ip 在執行完後溝通。提 供 AXI Lite 接口供 PS CPU 讀取 MPRJ_IO/OUT/EN bit,用 HLS 實現並導出 IP 以供 Vivado 使用。 在此次實驗過程中,因為忘了在 include.rtl.list 放入修改的 檔案路徑,導致一直跑出 error,以及一開始在 run firmware 時會一直出現 time_out,所幸最後都有在 github 上找到解 答。
×
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