基于FPGA與RISC-V的嵌入式系統設計

基于FPGA與RISC-V的嵌入式系統設計
定價:708
NT $ 559
  • 作者:顧長怡
  • 出版社:清華大學出版社
  • 出版日期:2020-02-01
  • 語言:簡體中文
  • ISBN10:7302545383
  • ISBN13:9787302545385
  • 裝訂:平裝 / 336頁 / 16k / 19 x 26 x 1.68 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

本書詳細介紹了RISC-V指令集及其設計思想,並在此基礎上引入了一種稱為FARM的軟硬體開發模式,將FPGA同RISC-V CPU軟核相結合,並利用Arduino與Make作為軟體快速開發工具,有效地提高了開發效率,使系統設計具有更好的通用性和可攜性。

除了上述有關軟硬體的討論之外,本書的作者還與國內小腳丫FPGA的團隊進行了合作,成功地將書中的大部分內容移植到了小腳丫FPGA旗下的STEP CYC10開發板上,並將相關的技術細節在書中做了詳細陳述,以方便讀者的動手實踐。

本書內容既有深度,又有廣度,對各類從事軟硬體開發的科技人員會有很大的參考價值。對高校相關專業的學生,本書也是一部很好的參考書。
 

作者介紹

顧長怡於1995年免試直升上海交通大學本碩聯讀班,1998年獲該校電腦科學與工程學士學位元,2001年獲該校通信與資訊系統工程碩士學位元。

同年赴美,在美國加州的多家高科技公司從事嵌入式系統和FPGA的開發工作,其間還曾獲得美國南加州大學積體電路設計專業碩士學位。

顧長怡先生對軟硬體開發和數位信號處理有著豐富的業界經驗,他也是美國PulseRain Technology公司的創始人。

在 2018年由RISC-V 基金會官方舉辦的全球首屆RISC-V Soft CPU 設計大賽中,由顧長怡先生主持設計的PulseRain Reindeer 處理器內核在激烈的競爭中脫穎而出,榮獲季軍。在2019年以物聯網安全為主題的第二屆競賽中,他主持設計的PulseRain Rattlesnake處理器成功挫敗了所有的駭客模擬攻擊,並獲綜合成績第一而奪冠。

他同時還是英文學術專著 Building Embedded System - Programmable Hardware 的作者(該書已由美國APress出版社於2016年出版),以及開源軟硬體的狂熱支持者。
 
 

目錄

第 1 章 概述
1.1 背景闡述
1.2 FPGA
1.3 RISC-V
1.4 小腳丫 FPGA 開發平臺
1.5 C/C++,Make 與工具鏈
1.6 嵌入式作業系統
1.7 Arduino 整合式開發環境
1.8 模組授權方式
1.9 PulseRainRTL庫
1.10 資料來源
1.11 代碼資源
 
第 2 章 FPGA
2.1 FPGA 背景概述
2.2 FPGA 與數位晶片的異同
2.2.1 FPGA 與數位元晶片在設計流程上的異同
2.2.2 FPGA 與數位晶片在功耗上的區別
2.2.3 FPGA 與數位元晶片在性能上的區別
2.2.4 邏輯設計規模的衡量單位
2.2.5 避免使用鎖存器
2.3 FPGA 與 CPLD 的區別
2.4 FPGA 開發中硬體設計語言的選擇
2.4.1 VHDL 與 System Verilog / Verilog
2.4.2 HLS
2.4.3 System C
2.4.4 Chisel/SpinalHDL
2.5 FPGA 的片上記憶體
2.6 用 FPGA 實現雙向同步 SRAM 介面
2.7 FPGA 的 DSP Block
2.8 時鐘與重定
2.9 時鐘域跨越
2.9.1 單個電平信號的時鐘域跨越
2.9.2 單個脈衝信號的時鐘域跨越
2.9.3 多比特匯流排的時鐘域跨越
2.10 有限狀態機的 System Verilog 範本
2.11 高速 IO 與源同步匯流排(Source Synchronous Bus)
2.12 FPGA 在數位信號處理中的應用
2.12.1 數字濾波器
2.12.2 4倍頻採樣
2.12.3 複數乘法
2.12.4 補數,值飽和,負值,絕對值,四捨五入
2.12.5 除法
2.12.6 正弦函數與余弦函數
2.12.7 CORDIC 演算法
2.13 其他技巧
2.13.1 寄存器重定時
2.13.2 異或樹與多工器
2.13.3 虛擬輸入輸出
2.13.4 遷移路徑
2.14 面積與性能的平衡
2.14.1 流水線與並行
2.14.2 小面積設計
2.14.3 AT定律
2.15 數位邏輯與處理器各自適用的領域
 
第 3 章 RISC-V 指令集
3.1 RISC-V 的歷史
3.2 8051的 CISC 指令集與 RISC-V 的比較
3.2.1 8051 指令集簡介
3.2.2 8051 指令集對處理器設計的負面影響
3.2.3 RISC-V 指令集對處理器設計的正面影響
3.3 RISC-V 與其他 RISC 指令集的比較
3.4 RISC-V 基礎指令集(RV32I 與 RV32E)
3.4.1 RV32I 與 RV32E 基礎指令集簡介
3.4.2 RISC-V 位址空間
3.4.3 RV32I 通用寄存器與函式呼叫約定
3.4.4 RV32I 指令格式
3.4.5 RV32I 算術與邏輯指令
3.4.6 控制轉移指令
3.4.7 記憶體載入與存儲指令
3.4.8 RV32I 記憶體同步指令
3.4.9 控制與狀態寄存器指令
3.4.10 環境調用與軟體中斷點
3.4.11 基礎指令集的面積優化方案
3.5 RISC-V 擴展指令集
3.5.1 乘除法擴展(M Extension)
3.5.2 壓縮指令集擴展
3.6 RISC-V 特權架構
3.6.1 特權層級
3.6.2 控制狀態寄存器
3.6.3 計時器
3.6.4 中斷與異常
3.6.5 程式的調試
 
第 4 章 設計基於 RISC-V 指令集的 Soft—CPU
4.1 2018 RISC-V Soft CPU Contest 獲獎作品:PulseRain Reindeer
4.2 適合於 FPGA 的設計目標
4.3 PulseRain Reindeer 的設計策略
4.4 PulseRain Reindeer 的 RTL 設計
4.4.1 與 FPGA 平臺相關部分
4.4.2 獨立於 FPGA 平臺部分
4.4.3 通用寄存器的設計
4.4.4 CSR 寄存器的實現
4.4.5 時鐘計時器的實現
4.4.6 流水線的設計
4.5 處理器驗證的方式
4.5.1 黑盒(Black Box)測試與白盒(White Box)測試
4.5.2 用 Verilator 做處理器內核的黑盒驗證
4.5.3 用 Modelsim 做處理器的白盒驗證
 
第 5 章 週邊設備介面
5.1 UART
5.2 I 2 C 和 SMBus
5.3 SPI
5.4 PWM
5.5 microSD 存儲卡
5.6 PS/2 介面
5.7 旋轉編碼器
5.8 7段數碼管顯示器
5.9 USB
5.10 乙太網
 
第 6 章 嵌入式軟體發展基礎
6.1 目的檔案格式
6.2 Link Script(編譯用連結腳本)
6.3 工具鏈
6.3.1 readelf
6.3.2 objdump
6.3.3 objcopy
6.4 嵌入式系統中高級程式設計語言的選擇
6.5 C 語言在嵌入式系統中的應用
6.5.1 C 語言的模組封裝
6.5.2 C 語言的記憶體對齊訪問
6.5.3 C 語言的靜態編譯檢查
6.5.4 volatile 與 const
6.6 C++ 語言在嵌入式系統中的應用
6.6.1 C++ 語言的口水仗
6.6.2 C++ 語言對 C 的改進
6.6.3 C++ 語言引入的新概念和新方法
6.7 MAKE
6.7.1 支持增量編譯的 Makefile(Makefile for Incremental Build)
6.7.2 支援內核配置語言的 Makefile
 
第 7 章  嵌入式作業系統的移植
7.1 嵌入式作業系統的分類
7.1.1 裸金屬系統
7.1.2 即時操作系統
7.1.3 通用作業系統
7.2 Zephyr 作業系統的 RISC-V 移植
7.2.1 Zephyr 作業系統簡介
7.2.2 串列口的支援
7.2.3 計時器的支持
7.2.4 中斷的設置
7.2.5 修改編譯連結選項
7.2.6 樣本應用程式
 
第 8 章  Arduino開發系統
8.1 Arduino 的歷史
8.2 Arduino 的技術貢獻
8.3 Arduino 開發板
8.4 Arduino IDE 整合式開發環境和 Arduino Language
8.4.1 Arduino IDE 整合式開發環境的工作原理
8.4.2 Arduino Language
8.5 Arduino IDE 整合式開發環境下協力廠商開發包的使用和製作
8.5.1 Arduino IDE 協力廠商開發包的使用
8.5.2 Arduino IDE 協力廠商開發包的製作
8.6 Arduino IDE 整合式開發環境下協力廠商支援函式庫的使用和製作
8.6.1 Arduino IDE 協力廠商支援函式庫的使用
8.6.2 Arduino IDE 協力廠商支援函式庫的製作
 
第 9 章 綜合實驗平臺:小腳丫 STEP FPGA開發板
9.1 STEP CYC10 開發板簡介
9.2 RISC-V for Step FPGA
9.3 動態記憶體的訪問與時序約束
9.3.1 動態記憶體的模擬
9.3.2 動態記憶體的時鐘設置
9.3.3 動態記憶體的時序約束
9.3.4 動態記憶體的讀寫測試
9.4 處理器模擬
9.4.1 用 Verilator 做模擬
9.4.2 用 Modelsim 做模擬
9.5 週邊設備與中斷
9.5.1 週邊設備(RTL 模組)與物理設備
9.5.2 中斷映射
9.5.3 中斷處理常式
9.6 週邊設備寄存器位址清單
9.7 串列口
9.8 GPIO
9.9 5 向按鍵
9.10 7 段管顯示器
9.11 三軸加速度感測器 (ADXL345)
9.12 開發板示範 Sketch
 
第 10 章  智慧財產權保護
10.1 智慧財產權保護的方式
10.2 電腦指令集的智慧財產權保護
10.3 逆向工程
10.4 協議授權
10.4.1 GPL
10.4.2 LGPL
10.4.3 Apache
10.4.4 知識共用
10.4.5 雙授權協議
 
網路書店 類別 折扣 價格
  1. 新書
    79
    $559