RISC-V處理器設計——riscv-mini的Chisel源碼分析與實驗
羅秋明、劉剛
- 出版商: 清華大學
- 出版日期: 2026-08-01
- 售價: $354
- 語言: 簡體中文
- ISBN: 7302725675
- ISBN-13: 9787302725671
-
相關分類:
RISC-V、Computer-architecture、FPGA
下單後立即進貨 (約4週~6週)
相關主題
商品描述
作者簡介
目錄大綱
目錄
配套資源第一篇RISCV基礎
第1章引言3
1.1RISCV指令集架構3
1.2Chisel硬件設計語言4
1.3目標讀者5
1.3.1讀者的學習動機5
1.3.2讀者所需的背景5
1.3.3讀者將獲得的成長5
1.4小結6
第2章RISCV指令與匯編7
2.1RISCV ISA7
2.1.1內存與寄存器7
2.1.2指令集9
2.1.3陷阱(中斷和異常)機制11
2.1.4處理器運行級/特權級12
2.2用戶態指令13
2.2.1RV32I基礎整數指令13
2.2.2標準擴展指令19
2.2.3指令格式22
2.3特權指令24
2.3.1控制狀態寄存器(CSR)25
2.3.2特權指令概述26
2.4匯編程序27
2.4.1匯編程序框架27
2.4.2基礎示例代碼28
2.5小結32
練習32第3章RISCV虛擬機——Ripes33
3.1Ripes簡介33
3.1.1Ripes的下載33
3.1.2功能簡介33
3.2Ripes的使用36
3.2.1示例代碼36
3.2.2模擬運行38
3.2.3IO外設40
3.2.4數據通路觀察40
3.3小結45
練習45
第二篇riscvmini的Chisel源碼分析
第4章實驗環境的構建49
4.1Chisel概述49
4.2Chisel開發環境的構建50
4.2.1安裝JDK50
4.2.2安裝SBT50
4.2.3安裝Mill(可選)51
4.2.4安裝Verilator52
4.2.5安裝GTKWave53
4.3Chisel簡單實踐53
4.3.1克隆樣例項目53
4.3.2LED閃爍項目介紹53
4.3.3硬件描述+Verilog生成55
4.3.4模塊單元測試58
4.4riscvmini的安裝與使用61
4.4.1下載riscvmini62
4.4.2構建及使用62
4.4.3編譯程序與仿真運行63
4.5小結67
練習68
第5章Chisel數字系統設計69
5.1Chisel的基本語法69
5.1.1基本概念69
5.1.2數據類型及其運算72
5.1.3組合類型75
5.1.4模塊75
5.2組合邏輯電路78
5.2.1線網及其連接78
5.2.2多路選擇與條件選擇79
5.2.3組合邏輯示例80
5.3時序邏輯電路82
5.3.1寄存器82
5.3.2寄存器組83
5.3.3時序邏輯示例84
5.4Chisel層次性設計86
5.4.1設計理念86
5.4.2整體/總線連接86
5.4.3層次性設計示例87
5.5Chisel內置組件90
5.5.1譯碼器91
5.5.2通信協議93
5.5.3仲裁器95
5.5.4內存96
5.6輸出Verilog與功能測試98
5.6.1硬件描述的生成98
5.6.2代碼生成原理103
5.6.3Chisel仿真測試104
5.7小結107
練習108
第6章riscvmini處理器核109
6.1riscvmini概述109
6.1.1項目概述109
6.1.2源代碼目錄結構109
6.2處理器核結構112
6.2.1基本部件模塊114
6.2.2數據通路(Datapath.scala)125
6.2.3數據通路高級特性134
6.2.4處理器核Core模塊142
6.3小結143
練習144
第7章系統構建與仿真運行145
7.1riscvmini緩存145
7.1.1緩存結構145
7.1.2緩存的實現147
7.2nasti總線159
7.2.1AXI總線的概念160
7.2.2nasti信號的組成160
7.2.3工作原理161
7.2.4Cache通過nasti訪存169
7.3Tile整合171
7.3.1頂層結構Tile171
7.3.2處理器規格配置(Config.scala)176
7.3.3生成處理器Tile.sv177
7.4riscvmini系統的構建179
7.4.1Makefile179
7.4.2make構建目標181
7.4.3VTile仿真運行183
7.5小結191
練習191
第三篇RISCV(riscvmini)實驗
第8章基礎觀測實驗195
8.1功能模塊測試195
8.1.1模塊測試方法195
8.1.2ImmGenTester測試197
8.2指令執行過程觀察201
8.2.1測試代碼201
8.2.2R型指令的執行203
8.2.3LW/SW指令的執行208
8.2.4BNE指令的執行209
8.3Cache內部行為觀察211
8.3.1icache內部信號211
8.3.2dcache內部信號212
8.4小結214
練習214
第9章初級設計實驗215
9.1極簡化的RISCV——RRISCV215
9.1.1RRISCV頂層設計215
9.1.2Core(Datapath)219
9.1.3RRISCV測試223
9.1.4Core.scala225
9.2雙發射改造228
9.2.1原理框圖228
9.2.2內存的升級改造228
9.2.3數據通路的改造230
9.2.4測試232
9.3小結234
練習235
第10章中級設計實驗236
10.1新增POPCNT指令實驗236
10.1.1流程步驟236
10.1.2POPCNT實現237
10.1.3功能測試239
10.2組相聯Cache設計240
10.2.1Cache存儲結構修改240
10.2.2訪問邏輯修改240
10.2.3Cache的測試244
10.3小結247
練習248
第11章高級增強實驗249
11.1流水級細分249
11.1.1基本思路249
11.1.2新增流水線寄存器251
11.1.3數據通路改造254
11.2冒險與阻塞257
11.2.1數據冒險257
11.2.2控制冒險261
11.3功能測試262
11.4小結265
練習265
附錄A五級流水Datapath.scala266
附錄B教學安排示例276







