施工中!!! 持續更新
文件結構規劃(4~5 頁)
第 1 頁:學習背景與目標
-
背景簡述
-
學習動機
-
為什麼選擇 PicoRV32 與 PicoSoC 作為學習對象
-
-
學習目標
-
理解 RISC-V 指令集(RV32I/M/C/E)
-
熟悉 CPU 與外設互連(native memory interface、AXI4-Lite、Wishbone)
-
實作與驗證 SoC firmware + testbench 流程
-
-
工具環境
-
GNU RISC-V toolchain (
riscv32-unknown-elf-) -
Icarus Verilog、GTKWave
-
Makefile 驅動編譯與模擬
-
Vivado(若有 FPGA 實測)
-
第 2 頁:PicoRV32 架構與關鍵模組
-
PicoRV32 核心特色【可用表格呈現】
功能 說明 ISA RV32IMC(可配置) 介面 Native Memory / AXI4-Lite / Wishbone 中斷系統 內建 32 路 IRQ,支援 q-register 快速中斷 協處理器 PCPI(支援 MUL/DIV 擴展) 可配置參數 ENABLE_IRQ、COMPRESSED_ISA、TWO_CYCLE_ALU... -
重要檔案
-
picorv32.v→ CPU 主體 RTL -
custom_ops.S→ 自訂 IRQ/Timer 指令 -
start.S→ 啟動與中斷處理流程 -
irq.c→ C 語言中斷處理
-
-
IRQ 處理流程圖(可畫出
q0保存 PC、q1保存 IRQ mask、IRQ handler 儲存暫存器的流程)
第 3 頁:PicoSoC 系統架構
-
PicoSoC 架構圖
-
PicoRV32 核心
-
SRAM / ROM
-
SPI Flash 映射
-
Memory-mapped I/O
-
-
Memory Map 範例
位址範圍 功能 0x0000_0000 ~ 0x0000_FFFF SRAM 0x1000_0000 ~ 0x1000_00FF UART 0x2000_0000 ~ ... GPIO -
模擬與外設互動
-
使用 firmware 寫入 UART、GPIO 驗證 SoC
-
第 4 頁:Firmware 與 Build 流程
-
Firmware 開發流程
-
編寫 C/ASM 程式(
hello.c,irq.c,start.S) -
使用 GNU toolchain 編譯 →
.elf -
makehex.py轉為.hex -
Testbench 載入
.hex進行模擬
-
-
Linker Script(
riscv.ld/sections.ld)作用-
.text、.data、.bss段落配置 -
起始位址設定(如 0x10000)
-
-
Testbench 驗證項目
-
指令正確性(riscv-tests)
-
IRQ 觸發與回應
-
記憶體存取與外設讀寫
-
第 5 頁:學習成果與心得
-
成果
-
完整分析 PicoRV32 與 PicoSoC 架構
-
實作中斷服務程式與多檔案 firmware
-
建立可重複的模擬與編譯流程
-
-
技術收穫
-
深入理解 RISC-V 指令集與硬體實作對應
-
熟悉 SoC 記憶體配置與外設映射
-
掌握從 C/ASM 程式到 Verilog 硬體模擬的流程
-
-
未來應用
-
延伸至自訂外設設計
-
與 FPGA 實測結合
-
-
文字 + 圖表 搭配(架構圖、流程圖、表格),讀起來更容易。
-
關鍵字粗體(如 IRQ, PCPI, AXI4-Lite)方便快速掃讀。
-
每頁都有小結,讓不必看完整份文件就能抓重點。
-
最後一頁加 技術關鍵字索引,。

5288

被折叠的 条评论
为什么被折叠?



