# 2024_Fall_NTU_AAHLS * SoC Design Study Journal Name : 陳瀚坪 Student ID : r12943168 user passwd: guxlss ## Lab 1 HLS Multiplier * Lab1 HLS 乘法器 (AXI-Lite) * FPGA Board : PYNQ-Z2 (xc7z020clg400-1) * FPGA P & R : * FPGA Layout: * FPGA Result: * 注意事項 * 1 #include "multiplication.h" 改成 #include "Multiplication.h" (Ubuntu/Linux is case sensitivity)(大小寫要完全符合) * 2 #pragma HLS INTERFACE ap_ctrl_none port=return in Multiplication.cpp在Co-Sim時要註解,但之後要解除註解並重新Synthesis,才能輸出成IP * 3 Vivado: Create Block Design: double click Create Block Design -> add ZYNQ7 -> add multiplier multip_2num -> click regenerate layout -> click Run Block Automation -> double click ZYNQ7 block -> click Clock Configuration -> change to 100Mhz (due to your clock period is 10ns) -> click Run Connection Automation (記得要改clock period) ## Lab 2 HLS FIR * Lab2 HLS 11-tap FIR (AXI-Master & AXI Stream) * FPGA Board: KV260 (Kria KV260 Vision AI Starter Kit) * Lab2-1 AXI-Master * FPGA P & R : * FPGA Layout: * FPGA Result: * Lab2-2 AXI-Stream * FPGA P & R : * FPGA Layout: * FPGA Result: * 注意事項 * 1 Change Windows fc command to Ubuntu diff command在FIRTester程式中 * 2 FPGA Board xc7z020clg400-1 改成 xck26-sfvc784-2LV-c * 3 Jupyter Notebook 的 KV260 檔案位置為 ol = Overlay("/home/root/jupyter_notebook/FIRN11Stream.bit") * 4 在vivado中記得改Zynq UltraScale+ MPSoC的HP port 設定 ## Lab 3 Verilog FIR * Lab3 Verilog 11-tap FIR (AXI-Master & AXI Stream)               * 注意事項 * 1 AXI-BUS中的控制訊號(valid和ready)都是獨立 * 2 data-in和data-out最好能latch起來,增加margin的時間,讓software能更充裕地傳資料和收資料 * 3 design的正確與否要從design本身來驗證,而不是單從testbench來驗證 ## Lab 4 Caravel-FIR Hardware-Software Codesign * Lab4 Caravel-FIR Hardware-Software Codesign * Caravel RISC-V                    * 注意事項 * 1 尚未優化前存在read after write hazard的問題,因此需要改變Instruction的順序,並且加入-O2進一步優化compiler的編譯 * 2 Input和Output Latch的重要性在Lab4中明顯地展現出來 ## Lab 5 Caravel SoC FPGA Integration * Lab5 Caravel SoC FPGA Integration * FPGA Board: PYZQ-Z2  * a. counter_wb  * b. counter_la  * c. gcd_la  * 注意事項 * 1 更改caravel_fpga.ipynb中的caravel_fpga.bit的路徑位置  ## Final WLOS Optimization * Final WLOS Optimization (SDRAM、DMA、FIR、Matmul、Quick sort) * FPGA Board: PYZQ-Z2               * 注意事項 * 1 SDRAM中的bank interleaving是第9、10bit * 2 在DMA的幫助下,CPU只需負責發送指令給DMA和接收最終答案,因此可以達成多Accelerator同步執行 * 3 Quick Sort演算法的硬體需參考paper做優化 ## Week2 上課問答 * Week2 上課問答 * Q:In Lab#1 (multiplication), how does the kernel get its two operands?  * A: #pragma HLS INTERFACE s_axilite port=n32In2 #pragma HLS INTERFACE s_axilite port=n32In1 使用AXI-Lite(32 bits)讓資料可以從SoC Cache傳送到FPGA ## Week3 上課問答 * Week3 上課問答 * Q:FSM Design for better synthesis timing - register out (p#11 - 14) * A: * 穩定性:寄存器輸出可以確保輸出信號在一個時鐘週期內保持穩定,減少glitch的發生。 時序優化:register out可以幫助優化時序,因為register可以將輸出信號的變化與clock synchronous,避免combinational logic delay的問題. **Page.11**  **Fig.Setup Slack**  **Page.12** * A:將Mealy logic分別複製到Module C和Module D,當分別對FSM、Module C和Module D的Logic Synthesis時,每個module都能夠有完整的Cycle,而不會像左圖一樣Module C和Module D無法擁有完整的Cycle  **Page.13**  **增加extra FF**  **Page.14 最終版**  ## Week4 上課問答 * Week4 上課問答 (無) ## Week5 上課問答 * Week5 上課問答 * Q:Explain and compare SMT v.s. Multi-core? * A:Simultaneous Multithreading和Multicore * **SMT**  * **Multicore**  * **Comparison**  ## Week6 上課問答 * Week6 上課問答 (無) ## Week7 上課問答 * Week7 上課問答 * Q:Explain the system operation for IO read/write in a cache system * A: * 優點:使用cache snoop系統,確保cache與system memory之間數據的一致性,避免數據錯誤或不一致 * 優點:透過cache hit機制,減少對system memory的存取次數,大幅降低延遲並提升整體運算效能 * 缺點:為維持cache與system memory的一致性,需要執行額外的操作(如invalidate或write-back),這增加了運算負擔 * 缺點:當處理程序讀取數據時,若發生cache miss,會導致更多的延遲,並降低整體效能 ## Week8 上課問答 * Week8 上課問答 * Q:Explain multi-level cache and snoop filter mechanism (p#83-85) * A:P.83 [Note:multi-level cache設計中,L1 快取提供最快速的資料存取,而 L3 作為最後一層快取共享用於cache coherence snoop filtering] P.84 [Note:包含式快取 (Inclusive Cache) 強制 L1 的資料必須存在於 L2,而排除式快取 (Exclusive Cache) 僅允許資料存在於 L1 或 L2 的其中一個] <div style="background-color: #e6f7ff; padding: 10px; border-radius: 5px; border: 1px solid #91d5ff;"> P.85 [Note:Snoop Filter在最後一層cache執行,用於減少對較L1/L2 cache的snoop需求,提升一致性檢查效率] </div> <img src="https://hackmd.io/_uploads/rkB67gQ7yx.png" alt="image">
×
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