幫助中心 | 我的帳號 | 關於我們

敏捷硬體開發語言Chisel與數字系統設計(第2版集成電路科學與工程系列教材西安交通大學研究生十四五規劃精品系列教材)

  • 作者:編者:梁峰//雷冰潔//王旭輝//張國和|責編:王曉慶
  • 出版社:電子工業
  • ISBN:9787121526282
  • 出版日期:2026/05/01
  • 裝幀:平裝
  • 頁數:265
人民幣:RMB 69 元      售價:
放入購物車
加入收藏夾

內容大鋼
    集成電路設計複雜度的攀升使傳統硬體描述語言的局限凸顯,Chisel憑借高層次抽象與敏捷特性成為產業的核心支撐。本書緊跟Chisel 7.x與CIRCT編譯框架進展,優化內容體系、強化工程實踐,契合晶元自主創新需求,為讀者提供從理論到工業級設計的完整指引。全書共13章,形成了知識閉環:第1章奠定Chisel和Scala認知與環境基礎;第2?3章詳解Scala語法、Chisel 7.3配置及數據類型;第4?6章覆蓋硬體類型使用、控制結構適配及標準庫原語調用;第7?9章闡述Verilog生成、黑盒銜接、多時鐘域設計及代碼復用技巧;第10章解決命名管理、版本遷移等實踐痛點;第11?13章通過處理器設計、流控體系及工業案例,呈現複雜系統設計全流程。

作者介紹
編者:梁峰//雷冰潔//王旭輝//張國和|責編:王曉慶

目錄
第1章  新型敏捷硬體開發語言——Chisel和Scala
  1.1  最好的宿主——什麼是Scala
  1.2  敏捷開發——什麼是Chisel
  1.3  Scala入門——讓你的代碼跑起來
    1.3.1  Scala的安裝方法
    1.3.2  使用Scala解釋器
    1.3.3  運行Scala腳本
    1.3.4  編譯非腳本文件
    1.3.5  使用IDEA開發Scala項目
    1.3.6  總結
  1.4  章節安排
  1.5  晶元自主創新:歷史傳承、產業實踐與技術路徑
    1.5.1  古代工程技術中的系統思維
    1.5.2  晶元產業技術實踐的多維觀察
    1.5.3  Chisel學習與工程實踐方法
  1.6  參考文獻
  1.7  課後練習
第2章  Chisel入門與Scala變數函數基礎
  2.1  Scala變數定義與基本類型
    2.1.1  變數定義的本質與規則
    2.1.2  Scala的基本類型體系
    2.1.3  函數及其多種形態
  2.2  Chisel 7.3開發環境搭建
    2.2.1  環境要求與軟體版本
    2.2.2  安裝步驟
    2.2.3  項目結構與配置
    2.2.4  開發環境測試
  2.3  Chisel 7.3的核心特性與編譯流程
    2.3.1  Chisel 7.3的包結構
    2.3.2  編譯流程詳解
    2.3.3  為什麼使用SystemVerilog
    2.3.4  編譯API詳解
    2.3.5  多時鐘域處理
    2.3.6  常見問題與解決方案
  2.4  CIRCT後端與編譯優化
    2.4.1  CIRCT後端簡介
    2.4.2  firtool工具詳解
    2.4.3  與傳統Chisel 3.x流程的對比
  2.5  總結
  2.6  課後練習
第3章  Chisel數據類型與Scala集合應用
  3.1  Chisel數據類型概述
  3.2  Chisel數據類型層次結構
  3.3  基本數據類型
    3.3.1  Bits抽象類型
    3.3.2  UInt與SInt
    3.3.3  Bool類型
    3.3.4  Clock和Reset
  3.4  複合數據類型
    3.4.1  Bundle

    3.4.2  Vec
    3.4.3  MixedVec
  3.5  類型轉換
    3.5.1  UInt與SInt的相互轉換
    3.5.2  Bool與UInt的相互轉換
    3.5.3  類型轉換時的寬度處理
  3.6  操作符
  3.7  寬度推斷
    3.7.1  寬度推斷規則詳解
    3.7.2  強制指定寬度
    3.7.3  寬度控制的最佳實踐
    3.7.4  DontCare的使用
  3.8  Scala集合在Chisel中的應用
    3.8.1  數組與數組緩衝
    3.8.2  列表與列表緩衝
    3.8.3  元組
    3.8.4  映射與集合
    3.8.5  Scala集合與Chisel Vec的對比
  3.9  總結
  3.10  課後練習
第4章  Chisel硬體設計中的操作、控制與分層
  4.1  基礎硬體操作:構建電路的「原子部件」
    4.1.1  硬體類型體系與核心特性
    4.1.2  硬體賦值的核心規則
  4.2  Scala控制結構:組織硬體邏輯的「工具」
    4.2.1  條件控制結構:硬體的「分支邏輯」
    4.2.2  循環控制結構:硬體的「重複邏輯」
    4.2.3  異常與作用域控制:硬體的「安全性保障」
  4.3  Layers概念:複雜電路的「分層抽象」
    4.3.1  Layers的核心思想與原則
    4.3.2  Layers的分層模型與實現步驟
    4.3.3  Layers的核心優勢與最佳實踐
    4.3.4  Layers的實際應用場景
  4.4  總結
  4.5  課後練習
第5章  Chisel中的面向對象設計與類型系統解析
  5.1  Scala面向對象編程基礎
    5.1.1  類與對象的定義
    5.1.2  構造方法:主構造與輔助構造
    5.1.3  繼承與多態
    5.1.4  單例對象與伴生對象
  5.2  Scala類型系統核心:參數化與抽象成員
    5.2.1  類型參數化(泛型)
    5.2.2  型變註解:協變、逆變與不變
    5.2.3  抽象成員
  5.3  從Scala到Chisel:面向對象硬體設計實踐
    5.3.1  Chisel模塊的類封裝
    5.3.2  硬體介面的Bundle封裝
    5.3.3  泛型在Chisel中的應用:參數化硬體
    5.3.4  繼承與特質:硬體功能復用

  5.4  總結
  5.5  課後練習
第6章  Chisel硬體設計原語與高級生成器
  6.1  多路選擇器:組合邏輯的核心
    6.1.1  基本二選一:Mux
    6.1.2  多條件與查找表:MuxCase與MuxLookup
    6.1.3  獨熱碼與優先順序:Mux1H與PriorityMux
  6.2  優先編碼器:從多路信號到編碼索引
    6.2.1  PriorityEncoder:輸出二進位索引
    6.2.2  PriorityEncoderOH:輸出獨熱碼
  6.3  仲裁器:多個生產者共享一個通道
    6.3.1  Decoupled介面與ready/valid握手
    6.3.2  Arbiter:固定優先順序仲裁
    6.3.3  RRArbiter:輪詢公平仲裁
  6.4  隊列 Queue:基於ready/valid的同步FIFO
    6.4.1  Queue的構造與介面
    6.4.2  工廠方法:一行接好FIFO
  6.5  ROM與RAM:構造可綜合存儲器
    6.5.1  VecInit構造組合ROM
    6.5.2  Mem:組合讀、同步寫
    6.5.3  SyncReadMem:同步讀、同步寫
  6.6  常用位操作與寄存器小工具
    6.6.1  PopCount與Reverse:統計與翻轉
    6.6.2  UIntToOH與OHToUInt:編碼轉換
    6.6.3  RegEnable與ShiftRegister:條件更新與時序對齊
  6.7  高級生成器:Counter、LFSR與ChiselEnum
    6.7.1  Counter:參數化計數器生成器
    6.7.2  LFSR:線性反饋移位寄存器
    6.7.3  ChiselEnum:類型安全的狀態機枚舉
  6.8  總結
  6.9  課後練習
第7章  Chisel設計的生成、測試與優化
  7.1  生成Verilog HDL代碼
    7.1.1  核心生成工具:CIRCT Stage
    7.1.2  基礎生成示例:全加器
    7.1.3  靈活配置生成選項
    7.1.4  命令行動態傳參
  7.2  參數化設計與生成
    7.2.1  參數化設計:n位加法器
    7.2.2  參數化模塊的Verilog生成
  7.3  現代測試框架:ChiselSim
    7.3.1  環境配置
    7.3.2  核心API介紹
    7.3.3  基礎測試用例:n位加法器測試
    7.3.4  運行測試
    7.3.5  可重用的刺激模式
  7.4  波形生成與可視化
    7.4.1  生成VCD波形文件
    7.4.2  查看波形文件
    7.4.3  其他波形格式支持

  7.5  高級測試技術
    7.5.1  參數化測試
    7.5.2  自定義命令行選項
    7.5.3  模擬器後端選擇
  7.6  形式化驗證入門
    7.6.1  形式化驗證基礎概念
    7.6.2  Chisel中的斷言使用
    7.6.3  assume和cover的使用
    7.6.4  形式化驗證工具集成
  7.7  FileCheck:直接檢查生成的代碼
    7.7.1  FileCheck基礎
    7.7.2  FileCheck API
    7.7.3  生成代碼用於FileCheck
    7.7.4  FileCheck測試示例
  7.8  性能分析與優化
    7.8.1  RTL代碼分析
    7.8.2  性能瓶頸識別
    7.8.3  常見優化技術
    7.8.4  綜合工具集成與報告分析
  7.9  優化生成與測試流程
    7.9.1  代碼生成優化
    7.9.2  測試效率優化
    7.9.3  持續集成與自動化
  7.10  總結
  7.11  實踐建議與最佳實踐
    7.11.1  項目組織建議
    7.11.2  調試技巧
    7.11.3  常見陷阱與解決方案
    7.11.4  性能優化清單
    7.11.5  工具鏈配置建議
    7.11.6  文檔化建議
    7.11.7  學習資源推薦
  7.12  課後練習
第8章  黑盒與多時鐘域設計
  8.1  黑盒
    8.1.1  例化黑盒
    8.1.2  導入Verilog文件
    8.1.3  inout埠處理
  8.2  多時鐘域設計
    8.2.1  無隱式埠的模塊(RawModule)
    8.2.2  定義時鐘域和複位域
    8.2.3  複位類型
    8.2.4  時鐘負沿與低有效複位
  8.3  跨時鐘域信號同步
    8.3.1  亞穩態問題
    8.3.2  雙觸發器同步器
    8.3.3  多位數據信號同步
    8.3.4  握手協議同步器
    8.3.5  非同步FIFO深入分析
    8.3.6  多時鐘域設計最佳實踐

  8.4  綜合應用示例
  8.5  總結
  8.6  課後練習
第9章  Scala隱式機制與Chisel函數抽象
  9.1  Scala隱式機制基礎
    9.1.1  隱式機制的核心規則
    9.1.2  隱式轉換的三種應用場景
    9.1.3  隱式類:簡化富包裝類定義
    9.1.4  上下文界定:簡化隱式參數聲明
  9.2  Chisel中的函數抽象
    9.2.1  組合邏輯抽象為函數
    9.2.2  工廠方法簡化模塊例化
    9.2.3  Scala高階函數簡化硬體生成
  9.3  Chisel內置高級函數
    9.3.1  位操作函數
    9.3.2  計數與編碼函數
    9.3.3  對數與查找表函數
    9.3.4  列印函數:調試與驗證
  9.4  隱式機制與函數抽象的高級應用
    9.4.1  隱式類實現自定義硬體操作
    9.4.2  遞歸函數實現參數化延時模塊
  9.5  總結
  9.6  課後練習
第10章  Chisel工程化開發規範與版本遷移
  10.1  模塊與信號命名管理
    10.1.1  模塊重命名(desiredName)
    10.1.2  編譯器插件:信號命名優化
    10.1.3  信號前綴與自定義命名
  10.2  參數化Bundle設計
    10.2.1  基本參數化Bundle
    10.2.2  多配置Bundle與實例復用
  10.3  定點數支持策略與Interval/FixedPoint說明
    10.3.1  基於整數縮放的定點編碼
    10.3.2  FixedPoint/Interval:實驗性與外部庫說明
  10.4  斷言(assert)
    10.4.1  斷言的用法
    10.4.2  斷言觸發機制回顧
    10.4.3  斷言的測試示例
  10.5  從早期Chisel工程升級至Chisel 7.3完整操作指南
    10.5.1  升級前的準備工作
    10.5.2  代碼與構建配置的遷移
    10.5.3  利用Chisel 7.3的工程化特性做「順手優化」
    10.5.4  升級完成後的自檢
  10.6  總結
  10.7  課後練習
第11章  riscv-mini
  11.1  riscv-mini簡介
  11.2  數據通路
  11.3  riscv-mini的子模塊
    11.3.1  ALU模塊

    11.3.2  BrCond模塊
    11.3.3  Cache模塊
    11.3.4  Control模塊
    11.3.5  CSR模塊
    11.3.6  Imm Gen模塊
    11.3.7  Instructions模塊
    11.3.8  RegFile模塊
    11.3.9  Datapath模塊
    11.3.10  Core模塊
  11.4  riscv-mini參數化機制
    11.4.1  Field[T]類
    11.4.2  View類
    11.4.3  Parameters類及其伴生對象
    11.4.4  Config類
  11.5  參數化機制的應用
  11.6  總結
  11.7  參考文獻
  11.8  課後練習
第12章  Chisel標準庫深入與常用設計模式
  12.1  Ready-Valid協議:流控的基石與語義分層
  12.2  標準庫核心組件:從隊列到仲裁器
  12.3  工程化流水線設計:模板、反壓與性能權衡
    12.3.1  通用流水線階段模板
    12.3.2  性能權衡:吞吐率和延遲
  12.4  驗證:讓正確性可衡量
    12.4.1  功能測試與隨機反壓
    12.4.2  協議級斷言與覆蓋率
  12.5  代碼風格與工程實踐
  12.6  進階主題與延伸閱讀
  12.7  總結
  12.8  課後練習
第13章  Chisel實踐與應用案例
  13.1  基於Chisel的神經網路加速器設計
    13.1.1  設計目標與架構選型
    13.1.2  輸入/輸出緩存設計
    13.1.3  MAC陣列與激活函數實現
    13.1.4  頂層模塊集成與狀態機控制
    13.1.5  參數化配置與代碼復用
    13.1.6  性能優化策略
    13.1.7  Verilog生成與驗證
    13.1.8  進階拓展方向
  13.2  基於Verilator的混合語言模擬與驗證方法學
    13.2.1  Chisel內置模擬框架與Verilator集成
    13.2.2  Verilator直接驗證Chisel生成的Verilog
    13.2.3  混合模擬:Chisel與Verilog模塊集成
    13.2.4  高級驗證技術
  13.3  Constellation:工業級片上網路生成器
    13.3.1  NoC技術背景與設計挑戰
    13.3.2  Constellation項目定位與特點
    13.3.3  工程結構與模塊組織

    13.3.4  參數化配置體系
    13.3.5  模擬與功能驗證
    13.3.6  綜合與RISC-V生態集成
    13.3.7  Constellation項目總結
  13.4  系統級設計:香山Minjie與Chipyard Diplomacy
    13.4.1  生成式結構建模
    13.4.2  可配置架構生成
    13.4.3  香山Minjie開發平台
    13.4.4  Chipyard Diplomacy機制
    13.4.5  系統級設計方法總結
  13.5  總結與展望
    13.5.1  本章核心內容回顧
    13.5.2  全書知識體系總結
    13.5.3  Chisel學習建議與實踐路徑
    13.5.4  Chisel的美好未來
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032