Repository files navigation FPGA / RTL Accelerator 自學完成度 Checklist
Phase 1:RTL 基礎打底(Week 1–2)
項目
說明
完成度
Blocking / Non-blocking 正確使用
熟悉 reg vs wire,always @ (posedge clk) vs combinational
☑
Reset 設計
sync reset / async reset 寫法能正確初始化
☑
Simple MAC pipeline
寫一個 int8 × int8 → int32,至少 2-stage pipeline
☐
Overflow / saturation
簡單處理 pipeline 的 overflow 或 saturation
☐
FSM 設計
1個簡單 counter FSM (IDLE→RUN→DONE)
☐
Testbench
可以自己寫 initial block 驗證 MAC + FSM
☐
Waveform 解讀能力
能看 waveform 解釋每一拍的行為
☐
Phase 2.1:單一計算 Block(Week 3–4)
項目
說明
完成度
Depthwise 3x3 Conv Engine
int8 input, 1-channel, streaming
☐
Line buffer / sliding window
實作 line buffer,確保 conv sliding 正確
☐
Latency 計算
計算一個 pixel 的 processing latency
☐
Pipeline stage 設計
每個 stage 功能明確,資料不丟失
☐
Functional simulation
testbench 可以跑一個小 feature map
☐
Block diagram
畫出 MAC / line buffer / pipeline
☐
Phase 2.2:Block → Subsystem(Week 5–6)
項目
說明
完成度
Controller FSM
start / done / internal counters
☐
Param register
kernel size, stride(至少在 RTL 定義)
☐
Data path vs Control path 分離
pipeline stage + FSM 正確互動
☐
Simulation
testbench 可以跑完整 frame
☐
Top module整合
MAC + Depthwise Conv + Controller
☐
Timing diagram
cycle-level可以解釋整個 block行為
☐
Phase 2.3:最小 SoC 化(Week 7–8)
項目
說明
完成度
AXI-Lite Wrapper
control register + status register
☐
Register Map
清楚定義每個 bit 功能
☐
CPU → PL interface
PS 寫 start register,PL 完成後寫 done
☐
Interrupt / flag (optional)
可選,但最好能演示
☐
Test on PYNQ
Python 寫簡單讀/寫 register demo
☐
Resource / latency report
從 synthesis 或 post-sim 得到簡單數據
☐
Phase 3(Phase 3 可選參考,長期目標)
項目
說明
完成度
AXI-Stream Interface
input / output streaming data
☐
Multi-channel DW Conv
支援多 channel, pipeline reuse
☐
Double Buffer / Line Buffer 優化
提升 throughput
☐
Performance metrics
Latency / Throughput / Utilization
☐
Integration with full ResNetVein block
可以在 PYNQ 上跑完整模型
☐
每完成一個 item 就打勾 ☐ → ☑
每階段至少 80% 完成才進下一階段
Waveform / block diagram / testbench 成果存檔,作為 面試證據
About
我的自學FPGA系統開發
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.