SoC設計指南(基於Arm Cortex-M)/集成電路技術叢書
內容大鋼
本書是基於Arm Cortex-M內核架構開展SoC設計的優秀參考書,講解了基於Arm Cortex-M處理器的SoC設計方法,重點對SoC的構成、設計、集成及應用進行了詳細闡述,並討論了基於SoC的編程。書中涉及的知識面很全,其中外設設計實例、SoC設計實例等均有很高的實踐參考價值。本書適合具有數字電路、模擬電路和嵌入式系統設計基礎的讀者參考,也可作為電子信息專業高年級本科生或研究生相關課程的教材。
作者介紹
(英)姚文祥|責編:趙亮宇//張秀華|譯者:吳勇
姚文祥,英國ARM公司資深專家,12年半導體行業從業經歷(在ARM公司工作15年以上)。曾參與多個處理器設計項目,包括ARM Cortex-M3和Cortex-M0,並參與了多種ARM IP(知識產權)產品的開發。Joseph Yiu為微控制器系統級設計專家,並涉獵了諸多相關領域,包括ARM Cortex-M系列微控制器軟體開發、微控制器市場以及片上系統設計技術。其他代表性著作有《The Definitive Guide to the ARM Cortex-M3, 2nd Edition》、《The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd Edition》(中文翻譯版均由清華大學出版社出版發行)。
目錄
推薦序
譯者序
序
前言
作者簡介
第1章 Arm Cortex-M系列處理器簡介
1.1 Cortex-M系統設計
1.1.1 輕鬆開始Cortex-M系統設計
1.1.2 基於FPGA的Cortex處理器系統
1.1.3 Arm處理器架構更易構建安全系統
1.2 Arm處理器的分類
1.3 Cortex-M獲取的開發資源
1.3.1 通過Arm公司FlexibleAccess業務和DesignStart項目獲取IP授權
1.3.2 評估版DesignStart Verilog代碼不可讀版本
1.3.3 專業版DesignStart Verilog RTL代碼可配置版本
1.3.4 FPGA版DesignStartFPGA開發包版本
1.3.5 文檔
第2章 基於Cortex-M處理器的系統設計
2.1 概述
2.2 存儲器
2.2.1 存儲器概述
2.2.2 基於FPGA開發工具設計Cortex-M處理器的存儲器
2.2.3 ASIC設計中的存儲器
2.2.4 存儲器位元組順序
2.3 外圍設備的定義
2.4 存儲器映射的定義
2.5 匯流排和存儲器系統設計
2.6 TCM集成
2.7 高速緩存集成
2.8 處理器的配置選項
2.9 中斷信號及相關事項
2.10 事件介面
2.11 時鐘生成
2.12 複位生成
2.13 SysTick定時器
2.14 調試集成
2.15 電源管理功能
2.16 頂層引腳分配和引腳多路復用
2.17 其他信號
2.18 簽署要求
第3章 AMBA、AHB、APB
3.1 AMBA
3.1.1 AMBA簡介
3.1.2 AMBA歷史
3.1.3 各種版本的AMBA規範
3.2 AHB概述
3.2.1 AHB版本
3.2.2 AHB信號
3.2.3 AHB基本操作
3.2.4 最小AHB系統
3.2.5 多匯流排主機的處理
3.3 AHB詳述
3.3.1 地址區間信號
3.3.2 數據區間信號
3.3.3 遺留仲裁器握手信號
3.4 獨佔訪問操作
3.4.1 獨佔訪問簡介
3.4.2 AHB5獨佔訪問支持
3.4.3 Cortex-M3/M4/M7處理器獨佔訪問信號到AHB的映射
3.5 AHB5 TrustZone支持
3.6 APB概述
3.6.1 APB系統
3.6.2 APB信號和連接
3.6.3 APBv2中的附加信號
3.6.4 APB上的數據
3.6.5 不同版本APB組件的組合使用
第4章 搭建Cortex-M處理器的簡單匯流排系統
4.1 匯流排設計基礎
4.2 搭建簡單的Cortex-M0系統
4.3 搭建簡單的Cortex-M0+系統
4.4 搭建簡單的Cortex-M1系統
4.5 搭建簡單的Cortex-M3/Cortex M4系統
4.6 處理多個匯流排主機
4.7 獨佔訪問支持
4.8 地址重映射
4.9 基於AHB的存儲器連接與TCM
4.10 嵌入式快閃記憶體的處理
4.10.1 IP要求
4.10.2 快閃記憶體編程
4.10.3 處理器的無程序啟動
第5章 Cortex-M處理器系統的調試集成
5.1 調試與跟蹤功能概述
5.2 CoreSight調試架構
5.2.1 Arm CoreSight簡介
5.2.2 調試連接協議
5.2.3 調試連接概念—調試訪問埠
5.2.4 調試介面結構
5.2.5 跟蹤連接
5.2.6 時間戳
5.2.7 調試組件發現機制
5.2.8 調試認證
5.2.9 調試電源請求
5.2.10 調試複位請求
5.2.11 交叉觸發介面
5.3 調試集成
5.3.1 JTAG/SWD連接
5.3.2 跟蹤埠連接
5.3.3 調試和跟蹤系統的時鐘
5.3.4 多點SWD
5.3.5 調試認證
5.4 其他調試相關主題
5.4.1 其他信號連接
5.4.2 菊花鏈式JTAG連接
第6章 低功耗支持
6.1 Cortex-M處理器低功耗特性
6.2 低功耗設計基礎
6.3 Cortex-M處理器低功耗介面
6.3.1 睡眠狀態和GATEHCLK輸出
6.3.2 Cortex-M23/M33/M35P處理器的Q通道低功耗介面
6.3.3 睡眠保持介面
6.3.4 喚醒中斷控制器
6.3.5 SRPG對軟體的影響
6.3.6 軟體低功耗方法
6.4 體現低功耗設計的Cortex處理器特性
6.4.1 高代碼密度
6.4.2 短流水線模式
6.4.3 取指優化模式
6.5 系統級設計注意事項
6.5.1 低功耗設計
6.5.2 時鐘源
6.5.3 低功耗存儲器
6.5.4 緩存存儲器
6.5.5 低功耗模擬單元
6.5.6 時鐘門控設計
6.5.7 處理器完全掉電情況下的睡眠模式
第7章 匯流排基礎組件設計
7.1 簡單AMBA匯流排系統設計概述
7.2 典型AHB從機設計規則
7.3 典型AHB基礎組件
7.3.1 AHB解碼器
7.3.2 默認從機
7.3.3 AHB從機多路復用器
7.3.4 帶AHB介面的ROM和RAM
7.3.5 AHB to APB匯流排橋
7.4 從Cortex-M3/Cortex-M4 AHB Lite橋接到AHB
第8章 簡單外設設計
8.1 外設系統設計
8.2 設計簡單的APB外設
8.2.1 通用輸入輸出介面
8.2.2 APB定時器
8.2.3 UART
8.3 ID寄存器
8.4 外設設計的其他注意事項
8.4.1 系統控制功能的安全性
8.4.2 處理器暫停
8.4.3 64位數據處理
第9章 內核系統集成
9.1 搭建簡單的微控制器系統
9.2 設計劃分
9.3 模擬環境的內容
9.4 模擬用基礎軟體支持庫及代碼
9.4.1 基於CMSIS-CORE的示例代碼概述
9.4.2 MCU的設備頭文件
9.4.3 MCU的設備啟動文件
9.4.4 UART應用程序
9.4.5 系統初始化函數
9.4.6 重定位目標
9.4.7 其他的軟體支持包
9.5 系統級模擬
9.5.1 編譯Hello world程序
9.5.2 使用Modelsim/QuestaSim對設計進行編譯和模擬
9.6 高級處理器系統和Corstone基礎IP
9.7 驗證
9.8 ASIC實現流程
9.9 可測試性設計
第10章 處理器系統的其他
相關設計
10.1 時鐘系統設計
10.1.1 時鐘系統設計概述
10.1.2 時鐘切換
10.1.3 低功耗考慮
10.1.4 DFT考慮
10.2 多電源域和電源門控
10.3 混合信號Arm處理器
10.3.1 微控制器和混合信號設計的融合
10.3.2 模數轉換
10.3.3 數模轉換
10.3.4 其他模擬介面
10.3.5 將ADC和DAC IP產品連接到Cortex系統
10.4 SoC案例—Beetle測試晶元案例研究
10.4.1 Beetle測試晶元概述
10.4.2 Beetle測試晶元的挑戰性
10.4.3 Beetle測試晶元的系統設計
10.4.4 Beetle測試晶元的實現
10.4.5 其他相關任務
第11章 軟體開發
11.1 Cortex微控制器軟體介面標準
11.2 搭建多工具鏈支持的開發平台
11.2.1 準備工作
11.2.2 使用Arm Compiler進行編譯
11.2.3 使用gcc進行編譯
11.3 Arm Keil微控制器開發套件
11.3.1 Keil MDK概述
11.3.2 Keil MDK的安裝
11.3.3 創建應用程序
11.3.4 創建工程
11.3.5 創建和添加源文件
11.3.6 編輯源文件
11.3.7 配置工程參數選項
11.3.8 編譯工程
11.3.9 應用程序的燒錄與調試
11.3.10 使用ITM輸出文本消息
11.3.11 協同環境下的軟體開發
11.4 使用RTOS
11.4.1 RTOS軟體概念
11.4.2 使用Keil RTX
11.4.3 優化內存利用率
11.5 其他工具鏈
技術術語表
參考資料