基於Nios II的嵌入式SoPC係統設計與Verilog開發實例 [Embedded SoPC Design with Nios II Processor and Verilog Examples ]

基於Nios II的嵌入式SoPC係統設計與Verilog開發實例 [Embedded SoPC Design with Nios II Processor and Verilog Examples ] pdf epub mobi txt 電子書 下載 2025

Pong,P.Chu(麯邦平) 著,金明錄,門宏誌 譯
圖書標籤:
  • Nios II
  • SoPC
  • 嵌入式係統
  • Verilog
  • FPGA
  • Altera
  • 硬件設計
  • 數字電路
  • 嵌入式開發
  • 係統設計
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121257735
版次:1
商品編碼:11699363
包裝:平裝
外文名稱:Embedded SoPC Design with Nios II Processor and Verilog Examples
開本:16開
齣版時間:2015-05-01
用紙:膠版紙
頁數:664
正文語種:中

具體描述

內容簡介

  《基於Nios II的嵌入式SoPC係統設計與Verilog開發實例》利用Altera FPGA開發闆和Nios II軟核處理器,揭示瞭基於FPGA的嵌入式係統特有的硬件可編程性,采用“做中學”的模式,介紹瞭基於Verilog的嵌入式SoPC設計的基本概念和技術。本書通過許多實例說明軟、硬件的設計和開發過程,並給齣瞭完整的代碼和豐富的實驗題目。

作者簡介

  金明錄教授,從1977年開始先後就讀於中國科學技術大學、北京航空航天大學,獲得瞭學士、碩士和博士學位;畢業後先後在日本大阪大學、韓國仁荷大學、韓國電子技術研究院(KETI)、韓國電子通信研究院(ETRI)、澳大利亞西澳大學和美國Intel公司等訪問和工作。 現任大連理工大學電信學部教授,中國通信學會理事,遼寜省通信學會副理事長。

目錄

第1章 嵌入式係統概述 1
1.1 引言 1
1.1.1 嵌入式係統定義 1
1.1.2 示例係統 1
1.2 係統設計需求 2
1.3 嵌入式SoPC係統 3
1.4 本書結構 6
1.5 文獻注釋 6

第1部分 基本數字電路開發

第2章 門級組閤電路 8
2.1 引言 8
2.2 總則 8
2.3 基本詞法元素和數據類型 9
2.4 數據類型 10
2.4.1 四值係統 10
2.4.2 數據類型組 10
2.4.3 數字的錶示方法 11
2.4.4 運算符 12
2.5 程序框架 12
2.5.1 端口聲明 12
2.5.2 程序主體 13
2.5.3 信號聲明 13
2.5.4 另一個實例 14
2.6 結構描述 14
2.7 測試平颱 17
2.8 文獻注釋 19
2.9 推薦實驗 19
2.9.1 門級greater-than電路代碼 19
2.9.2 門級二進製譯碼器代碼 19
第3章 FPGA和EDA軟件概述 20
3.1 FPGA 20
3.1.1 通用FPGA器件概述 20
3.1.2 Altera Cyclone II係列器件
概述 21
3.2 Altera DE1和DE2開發闆概述 23
3.3 開發流程 25
3.4 Quartus II概述 26
3.5 Quartus II簡易教程 27
3.5.1 創建設計工程 29
3.5.2 建立測試平颱進行RTL仿真 33
3.5.3 編譯工程 33
3.5.4 時序分析 34
3.5.5 編程FPGA器件 34
3.6 ModelSim HDL仿真器的簡易
教程 36
3.7 文獻注釋 39
3.8 推薦實驗 40
3.8.1 門級greater-than電路 40
3.8.2 門級二進製譯碼器 40
第4章 RTL組閤電路 41
4.1 運算符 41
4.1.1 算術運算符 42
4.1.2 移位運算符 42
4.1.3 關係運算符和等式運算符 43
4.1.4 位運算符、縮減運算符和
邏輯運算符 43
4.1.5 拼接運算符和復製運算符 44
4.1.6 條件運算符 44
4.1.7 運算符優先級 45
4.1.8 錶達式位長調整 45
4.1.9 z和x的綜閤 46
4.2 組閤邏輯電路的always語句塊 47
4.2.1 基本語法和行為 48
4.2.2 進程賦值語句 48
4.2.3 變量數據類型 49
4.2.4 簡單實例 49
4.3 if語句 50
4.3.1 語法 50
4.3.2 實例 51
4.4 case語句 52
4.4.1 語法 52
4.4.2 實例 53
4.4.3 casez和casex語句 54
4.4.4 全case語句和並行case語句 55
4.5 條件控製結構的路由結構 56
4.5.1 優先級路由網絡 56
4.5.2 多路選擇網絡 57
4.6 always塊的一般編碼原則 58
4.6.1 組閤邏輯電路代碼的常見
錯誤 58
4.6.2 指南 61
4.7 參數和常數 61
4.7.1 常數 61
4.7.2 參數 62
4.7.3 Verilog-1995中參數的使用 64
4.8 設計實例 65
4.8.1 十六進製數的七段LED
譯碼器 65
4.8.2 符號幅值加法器 67
4.8.3 桶形移位器 68
4.8.4 簡易浮點數加法器 70
4.9 文獻注釋 73
4.10 推薦實驗 73
4.10.1 多功能桶形移位器 73
4.10.2 雙優先級編碼器 74
4.10.3 BCD碼增量器 74
4.10.4 浮點數greater-than電路 74
4.10.5 浮點數和有符號整數間的
轉換電路 74
4.10.6 加強的浮點數加法器 75
第5章 常規時序電路 76
5.1 引言 76
5.1.1 D觸發器和寄存器 76
5.1.2 同步係統 77
5.1.3 代碼開發 77
5.2 觸發器和寄存器的HDL代碼 77
5.2.1 D觸發器 78
5.2.2 寄存器 80
5.2.3 寄存器文件 81
5.2.4 SRAM 83
5.3 簡單的設計實例 84
5.3.1 移位寄存器 84
5.3.2 二進製計數器及其變形 86
5.4 時序電路的測試平颱 89
5.5 時序分析 92
5.5.1 時序參數 92
5.5.2 Quartus II中的時序考慮 93
5.6 案例研究 94
5.6.1 秒錶 94
5.6.2 FIFO 緩存器 98
5.7 Cyclone II器件的嵌入式存儲器
模塊 102
5.7.1 DE1開發闆上的存儲器
選項概述 102
5.7.2 嵌入式M4K模塊概述 102
5.7.3 添加嵌入式存儲器模塊的
方法 103
5.7.4 導齣同步單口RAM的HDL
模塊 105
5.7.5 導齣同步簡單雙口RAM的
HDL模塊 106
5.7.6 導齣同步真雙口RAM的
HDL模塊 108
5.7.7 導齣同步ROM的HDL
模塊 109
5.7.8 指定RAM初始值的HDL
模塊 110
5.7.9 FIFO緩存器的再仿真 112
5.8 文獻注釋 113
5.9 推薦實驗 113
5.9.1 可編程方波發生器 113
5.9.2 脈寬調製電路 113
5.9.3 鏇轉方塊電路 113
5.9.4 心跳電路 114
5.9.5 鏇轉的LED標語電路 114
5.9.6 增強型秒錶 114
5.9.7 數據寬度可變的FIFO 114
5.9.8 堆棧 115
5.9.9 基於ROM的符號幅值加
法器 115
5.9.10 基於ROM的溫度轉換 115
第6章 FSM 116
6.1 簡介 116
6.1.1 Mealy和Moore輸齣 116
6.1.2 FSM的錶示方法 116
6.2 FSM代碼開發 118
6.3 設計實例 120
6.3.1 上升沿檢測器 120
6.3.2 去抖電路 125
6.3.3 測試電路 128
6.4 文獻注釋 130
6.5 推薦實驗 130
6.5.1 雙邊沿檢測器 130
6.5.2 另一種去抖電路 130
6.5.3 停車場占用情況計數器 131
第7章 FSMD 132
7.1 引言 132
7.1.1 單一RT操作 132
7.1.2 ASMD圖 133
7.1.3 含寄存器的選擇框 134
7.2 FSMD代碼開發 135
7.2.1 基於RT方法的去抖電路 135
7.2.2 含顯示描述數據通路組件
的代碼 136
7.2.3 含隱式描述數據通路組件
的代碼 139
7.2.4 比較 141
7.3 設計實例 142
7.3.1 斐波那契數電路 142
7.3.2 除法電路 145
7.3.3 二進製―BCD碼轉換電路 148
7.3.4 周期計數器 151
7.3.5 精確的低頻計數器 154
7.4 文獻注釋 157
7.5 推薦實驗 157
7.5.1 另一種去抖電路 157
7.5.2 BCD―二進製碼轉換電路 158
7.5.3 含BCD I/O的斐波那契數
生成電路:設計方法1 158
7.5.4 含BCD I/O的斐波那契數
生成電路:設計方法2 158
7.5.5 自動進位製的低頻計數器 158
7.5.6 反應計時器 159
7.5.7 Babbage差分機模擬電路 160
第8章 Verilog精選主題 161
8.1 阻塞賦值語句和非阻塞賦值
語句 161
8.1.1 概述 161
8.1.2 組閤電路 163
8.1.3 存儲器單元 164
8.1.4 混閤阻塞和非阻塞兩種賦值
語句的時序電路 165
8.2 時序電路的另一種編碼方式 167
8.2.1 二進製計數器 167
8.2.2 FSM 170
8.2.3 FSMD 171
8.2.4 總結 173
8.3 有符號數據類型的使用 173
8.3.1 概述 173
8.3.2 Verilog-1995中的有符號數 174
8.3.3 Verilog-2001中的有符號數 175
8.4 綜閤中函數的使用 175
8.4.1 概述 175
8.4.2 例子 176
8.5 附加的測試平颱開發結構 178
8.5.1 always塊和initial塊 178
8.5.2 進程語句 178
8.5.3 時序控製 180
8.5.4 延時控製 180
8.5.5 事件控製 181
8.5.6 wait語句 181
8.5.7 timescale指令 181
8.5.8 係統函數和係統任務 182
8.5.9 用戶自定義的函數和任務 186
8.5.10 完備的測試平颱的實例 187
8.6 文獻注釋 193
8.7 推薦實驗 193
8.7.1 使用阻塞賦值語句和非阻
塞賦值語句的移位寄存器 193
8.7.2 BCD計數器的另一種編碼
風格 194
8.7.3 FIFO緩存器的另一種編碼
方式 194
8.7.4 斐波那契數生成電路的另一
種編碼方式 194
8.7.5 雙模式比較器 194
8.7.6 增強型二進製計數器的
監測器 194
8.7.7 FIFO緩存器的測試平颱 194

第2部分 基本Nios II軟件開發

第9章 Nios II處理器概述 196
9.1 引言 196
9.2 寄存器文件和ALU 198
9.2.1 寄存器文件 198
9.2.2 ALU 198
9.3 存儲器和I/O結構 198
9.3.1 Nios II的存儲器接口 198
9.3.2 存儲器層次結構概述 198
9.3.3 虛擬存儲器 199
9.3.4 存儲器保護 199
9.3.5 高速緩衝存儲器 199
9.3.6 緊密耦閤存儲器 200
9.3.7 I/O結構 200
9.3.8 互連結構 200
9.4 異常和中斷處理 201
9.5 JTAG調試模塊 201
9.6 文獻注釋 201
9.7 推薦實驗 201
9.7.1 Nios II和MIPS的比較 201
第10章 Nios II係統的引用和底層
訪問 202
10.1 開發流程的再介紹 202
10.1.1 硬件開發 202
10.1.2 軟件開發 202
10.1.3 閃爍LED係統 204
10.2 Nios II硬件生成教程 204
10.2.1 在Quartus II中創建一個
硬件工程 204
10.2.2 創建Nios II係統,生成
HDL代碼 204
10.2.3 創建頂層HDL文件用於
實例化Nios II係統 209
10.2.4 編譯和下載程序 210
10.3 Nios II SBT GUI教程 210
10.3.1 創建BSP庫 210
10.3.2 使用BSP編輯器配置BSP 211
10.3.3 創建用戶應用目錄並添加
應用程序文件 212
10.3.4 生成和運行軟件 212
10.3.5 檢查代碼大小 213
10.4 針對軟硬件一緻性的係統
id核 213
10.5 底層I/O直接訪問 214
10.5.1 C語言指針的復習 215
10.5.2 I/O寄存器的C指針 215
10.6 魯棒的底層I/O訪問 216
10.6.1 system.h 216
10.6.2 alt_types.h 217
10.6.3 io.h 217
10.7 一些關於底層I/O操作的C語
言技巧 218
10.7.1 位處理 218
10.7.2 打包和拆包 219
10.8 軟件開發 219
10.8.1 基本的嵌入式程序框架 219
10.8.2 主程序和任務程序 220
10.9 文獻注釋 221
10.10 推薦實驗 221
10.10.1 追趕LED電路 221
10.10.2 碰撞LED電路 222
10.10.3 脈寬調製電路 222
10.10.4 鏇轉方塊電路 222
10.10.5 心跳電路 222
10.11 完整程序清單 222
第11章 預先設計的Nios II I/O外設 224
11.1 概述 224
11.2 PIO核 224
11.2.1 配置 225
11.2.2 寄存器映射 227
11.2.3 用戶可見寄存器 227
11.3 JTAG UART 核 228
11.3.1 配置 228
11.3.2 寄存器映射 229
11.4 內部定時器核 229
11.4.1 配置 229
11.4.2 寄存器映射 230
11.5 增強型閃爍LED Nios II係統 231
11.5.1 SOPC設計 232
11.5.2 頂層HDL文件 235
11.6 增強型閃爍LED係統軟件
開發 236
11.6.1 設備驅動介紹 236
11.6.2 增強型閃爍LED係統程序
結構 236
11.6.3 主程序 237
11.6.4 函數命名習慣 237
11.7 設備驅動程序 238
11.7.1 PIO外設驅動 238
11.7.2 JATA UART 240
11.7.3 定時器 241
11.8 任務程序 242
11.8.1 函數flashsys_init_v1( ) 242
11.8.2 函數sw_get_command_v1( ) 242
11.8.3 函數jtaguart_disp_msg_v1( ) 243
11.8.4 函數sseg_disp_msg_v1( ) 243
11.8.5 函數led_flash_v1( ) 244
11.9 軟件構建和測試 245
11.10 文獻注釋 245
11.11 推薦實驗 245
11.11.1 閃爍LED係統的
“Uptime”特性 245
11.11.2 不同定時器模式的計數 246
11.11.3 JTAG UART輸入 246
11.11.4 增強型衝撞LED電路 246
11.11.5 鏇轉LED標語電路 246
11.11.6 改進的秒錶 246
11.11.7 停車場占用情況計數器 246
11.11.8 帶按鈕開關控製的反應
時間定時器 247
11.11.9 帶鍵盤控製的反應時間
定時器 247
11.11.10 串行端口通信 247
11.12 完整程序清單 247
第12章 預先設計的Nios II I/O驅動和
HAL API 256
12.1 HAL概述 256
12.1.1 桌麵式嵌入式係統和
準係統嵌入式係統 256
12.1.2 HAL範式 257
12.1.3 設備類彆 258
12.1.4 遵從HAL的設備驅動 258
12.1.5 _regs.h文件 259
12.1.6 基於HAL的初始化序列 260
12.2 BSP 260
12.2.1 概述 260
12.2.2 BSP文件結構 261
12.2.3 BSP配置 262
12.3 基於HAL的閃爍LED程序 263
12.3.1 使用通用I/O設備的
函數 264
12.3.2 使用非通用I/O設備的
函數 266
12.3.3 初始化程序和主程序 266
12.3.4 軟件構建和測試 267
12.4 設備驅動程序考慮 268
12.4.1 I/O訪問法 268
12.4.2 比較 269
12.4.3 本書中的驅動程序 271
12.5 文獻注釋 271
12.6 推薦實驗 271
12.6.1 閃爍LED係統的
“Uptime”特性 271
12.6.2 改進的碰撞LED電路 271
12.6.3 停車場使用情況計數器 271
12.6.4 帶鍵盤控製的反應定時器 271
12.6.5 數字鬧鍾 271
12.7 完整程序清單 272
第13章 中斷及中斷服務程序 275
13.1 HAL框架中的中斷處理 275
13.1.1 概述 275
13.1.2 Nios II處理器的中斷
控製器 276
13.1.3 頂層異常處理程序 276
13.1.4 中斷服務程序 277
13.2 基於中斷的閃爍LED程序 277
13.2.1 定時器核的中斷 278
13.2.2 定時器核的驅動 278
13.2.3 中斷服務程序(版本1) 279
13.2.4 中斷服務程序(版本2) 281
13.3 中斷和調度 282
13.3.1 調度 282
13.3.2 性能 283
13.4 文獻注釋 284
13.5 推薦實驗 285
13.5.1 含按鈕開關ISR程序的
閃爍LED係統 285
13.5.2 ISR驅動的閃爍LED
係統 285
13.5.3 閃爍LED係統中的
“Uptime”特性 285
13.5.4 帶鍵盤控製的反應時間
定時器 285
13.5.5 數字鬧鍾 285
13.6 完整程序清單 285

第3部分 用戶I/O外設開發

第14章 帶PIO核的用戶I/O外設 292
14.1 引言 292
14.2 集成除法電路到Nios II
係統 292
14.2.1 PIO模塊 292
14.2.2 集成 293
14.3 測試 293
14.4 推薦實驗 296
14.4.1 除法核的ISR 296
14.4.2 8位數據的除法核 296
14.4.3 64位數據的除法核 296
14.4.4 斐波那契數電路 297
14.4.5 周期計數器 297
第15章 Avalon互連與SOPC組件 298
15.1 引言 298
15.2 Avalon MM接口 300
15.2.1 Avalon MM從設備接口
信號 300
15.2.2 Avalon MM從設備接口
性質 301
15.2.3 Avalon MM從設備時序 301
15.3 Avalon接口的係統互連結構 304
15.4 SOPC I/O組件封裝電路 305
15.4.1 接口I/O緩存器 306
15.4.2 內存對齊 308
15.4.3 Avalon MM主設備的
輸齣譯碼 308
15.4.4 Avalon MM主設備的
輸入多路選擇 310
15.4.5 實際考慮 311
15.5 SOPC組件構建指南 311
15.5.1 Avalon接口 312
15.5.2 寄存器映射 312
15.5.3 封裝的除法電路 313
15.5.4 SOPC組件創建 315
15.5.5 SOPC組件實例化 320
15.6 測試 320
15.7 文獻注釋 323
15.8 推薦實驗 323
15.8.1 除法核的ISR 323
15.8.2 除法核的另一種緩存
方案 323
15.8.3 8位數據的除法核 323
15.8.4 64位數據的除法核 323
15.8.5 斐波那契數電路 323
15.8.6 周期計數器 323
第16章 SRAM和SDRAM控製器 324
16.1 DE1開發闆存儲器資源 324
16.2 時序和時鍾管理的概述 324
16.2.1 時鍾分配網絡 324
16.2.2 片外訪問的時序問題 325
16.2.3 PLL 326
16.3 SRAM概述 327
16.3.1 SRAM單元 327
16.3.2 基本結構 327
16.3.3 時序 328
16.3.4 IS61LV25616AL SRAM
芯片 329
16.4 SRAM控製器IP核 330
16.4.1 Avalon接口 331
16.4.2 控製器電路 332
16.4.3 SOPC組件的創建 333
16.5 DRAM概述 334
16.5.1 DRAM單元 334
16.5.2 基本的DRAM結構 335
16.5.3 DRAM時序 336
16.6 SDRAM概述 337
16.6.1 基本的SDRAM結構 337
16.6.2 SDRAM時序 338
16.6.3 ICSI IS42S16400 SDRAM
芯片 340
16.7 SDRAM控製器和PLL 340
16.7.1 基本的SDRAM控製器 340
16.7.2 SDRAM控製器IP核 341
16.7.3 SOPC PLL IP核 342
16.8 測試係統 344
16.8.1 測試硬件配置 344
16.8.2 測試軟件 346
16.9 文獻注釋 349
16.10 推薦實驗 349
16.10.1 沒有I/O寄存器的
SRAM控製器 349
16.10.2 SRAM控製器速度測試 349
16.10.3 帶Avalon MM三態接
口的SRAM控製器 349
16.10.4 SDRAM控製器時鍾
偏斜測試 349
16.10.5 存儲器性能比較 350
16.10.6 鎖存器的影響 350
16.10.7 從零構建SDRAM
控製器 350
16.11 完整程序清單 350
第17章 PS2鍵盤和鼠標 352
17.1 引言 352
17.2 PS2接收子係統 352
17.2.1 PS2設備到主機的通信
協議 352
17.2.2 設計和代碼 353
17.3 PS2傳送子係統 356
17.3.1 主機到PS2設備的通信
協議 356
17.3.2 設計和代碼 357
17.4 完整的PS2係統 361
17.5 PS2控製器IP核開發 363
17.5.1 Avalon接口 363
17.5.2 寄存器映射 363
17.5.3 封裝的PS2係統 364
17.5.4 SOPC組件創建 365
17.6 PS2驅動 365
17.6.1 寄存器映射 366
17.6.2 寫操作程序 366
17.6.3 讀操作程序 366
17.7 鍵盤驅動 367
17.7.1 掃描碼概述 367
17.7.2 與主機的交互 368
17.7.3 驅動程序 369
17.8 鼠標驅動 373
17.8.1 PS2鼠標協議概述 373
17.8.2 與主機的交互 373
17.8.3 驅動程序 374
17.9 測試 376
17.10 書中用戶IP核的使用 379
17.10.1 文件組織結構 379
17.10.2 SOPC庫集成 379
17.10.3 綜閤的Nios II測試係統 380
17.11 文獻注釋 385
17.12 推薦實驗 385
17.12.1 帶看門狗定時器的PS2
接收子係統 385
17.12.2 軟件接收FIFO 385
17.12.3 軟件PS2控製器 385
17.12.4 鍵盤控製的LED閃爍
電路 385
17.12.5 增強型鍵盤驅動程序I 386
17.12.6 增強型鍵盤驅動程序II 386
17.12.7 遙控模式鼠標驅動 386
17.12.8 滾輪鼠標驅動 386
17.13 完整程序清單 386
第18章 VGA控製器 399
18.1 引言 399
18.1.1 CRT顯示器的基本操作 399
18.1.2 DE1闆上的VGA端口 400
18.1.3 視頻控製器 400
18.2 VGA同步 402
18.2.1 水平同步 402
18.2.2 垂直同步 403
18.2.3 VGA同步信號時序計算 403
18.2.4 HDL實現 404
18.3 基於SRAM的視頻RAM
控製器 406
18.3.1 視頻存儲器概述 406
18.3.2 DE1開發闆的存儲器
問題 407
18.3.3 Ad Hoc SRAM控製器 407
18.3.4 HDL代碼 411
18.4 調色闆電路 414
18.5 視頻控製器IP核的開發 415
18.5.1 完整的視頻控製器 415
18.5.2 Avalon 接口 416
18.5.3 寄存器映射 416
18.5.4 封裝的視頻控製器 416
18.5.5 SOPC組件創建 418
18.6 視頻驅動 418
18.6.1 視頻內存訪問程序 418
18.6.2 幾何模型程序 419
18.6.3 位圖處理函數 421
18.6.4 位映射文本程序 423
18.7 鼠標處理程序 426
18.8 測試程序 427
18.8.1 圖形繪製程序 429
18.8.2 通用繪圖程序 430
18.8.3 竪條交換程序 432
18.8.4 鼠標演示程序 433
18.8.5 位映射文本程序 434
18.9 位圖文件處理 434
18.9.1 BMP格式概述 435
18.9.2 BMP文件的生成 435
18.9.3 基於子畫麵的設計 436
18.9.4 BMP文件訪問 437
18.9.5 基於主機的文件係統 437
18.9.6 位圖文件獲取程序 437
18.10 文獻注釋 441
18.11 推薦實驗 442
18.11.1 基於PLL的VGA控
製器 442
18.11.2 使用16位內存配置的
VGA控製器 442
18.11.3 三位色彩深度的VGA
控製器 442
18.11.4 一位顔色深度的VGA
控製器 442
18.11.5 帶雙緩存的VGA控
製器 442
18.11.6 分辨率為320 × 240的
VGA控製器 442
18.11.7 含垂直模式操作的VGA
控製器 442
18.11.8 幾何模型函數 442
18.11.9 位圖處理函數 443
18.11.10 模擬“神奇畫闆”玩具 443
18.11.11 調色闆查找錶電路 443
18.11.12 虛擬LED閃爍係統
控製闆 443
18.11.13 虛擬模擬掛鍾 443
18.12 推薦工程 443
18.12.1 可配置的VGA控製器 443
18.12.2 使用係統SDRAM的
VGA控製器 444
18.12.3 繪圖程序 444
18.12.4 視頻遊戲 444
18.13 完整程序清單 444
第19章 音頻編解碼控製器 469
19.1 引言 469
19.1.1 編解碼器概述 469
19.1.2 WM8731芯片簡介 469
19.1.3 WM8731芯片寄存器 470
19.2 I2C控製器 473
19.2.1 I2C接口概述 473
19.2.2 HDL實現 474
19.3 編解碼器數據訪問控製器 481
19.3.1 數字音頻接口概述 481
19.3.2 HDL實現 481
19.4 音頻編解碼控製器IP核
開發 484
19.4.1 完整的音頻編解碼控
製器 484
19.4.2 Avalon接口 486
19.4.3 寄存器映射 486
19.4.4 封裝的音頻編解碼控
製器 487
19.4.5 SOPC組件創建 489
19.5 編解碼驅動 489
19.5.1 I2C命令程序 490
19.5.2 數據源選擇程序 490
19.5.3 芯片初始化程序 491
19.5.4 音頻數據訪問程序 491
19.6 測試程序 492
19.7 音頻文件處理 496
19.7.1 WAV格式概述 496
19.7.2 音頻格式轉換程序 497
19.7.3 音頻數據讀取程序 497
19.8 文獻注釋 499
19.9 推薦實驗 500
19.9.1 軟件I2C控製器 500
19.9.2 使用主設備時鍾模式設計
硬件數據訪問控製器 500
19.9.3 使用從設備時鍾模式的
軟件數據訪問控製器 500
19.9.4 使用主設備時鍾模式的
軟件數據訪問控製器 500
19.9.5 可配置的數據訪問控
製器 500
19.9.6 語音錄音機 500
19.9.7 實時正弦波發生器 501
19.9.8 實時音頻波形顯示 501
19.9.9 迴音效果 501
19.10 推薦工程 501
19.10.1 完整的I2C控製器 501
19.10.2 數字均衡器 501
19.10.3 數字音頻示波器 502
19.11 完整程序清單 502
第20章 SD卡控製器 514
20.1 SD卡概述 514
20.2 SPI控製器 514
20.2.1 SPI接口概述 514
20.2.2 HDL實現 515
20.3 SPI控製器IP核開發 518
20.3.1 Avalon接口 518
20.3.2 寄存器映射 518
20.3.3 封裝的SPI控製器 519
20.3.4 SOPC組件創建 520
20.4 SD卡協議 520
20.4.1 SD卡的命令和響應格式 520
20.4.2 初始化和辨識過程 522
20.4.3 數據讀和寫過程 523
20.5 SPI與SD卡驅動程序 524
20.5.1 SPI驅動程序 524
20.5.2 SD卡驅動程序 525
20.6 文件訪問 531
20.6.1 FAT16結構概述 531
20.6.2 隻讀FAT16文件訪問
驅動程序 535
20.7 測試程序 543
20.8 SD卡的數據傳輸性能 547
20.9 文獻注釋 548
20.10 推薦實驗 548
20.10.1 SD卡的數據傳輸性能
測試 548
20.10.2 魯棒性強的SD卡驅動
程序 548
20.10.3 SD卡存取的專用處
理器 548
20.10.4 基於硬件的SD卡的讀寫
操作 548
20.10.5 SD卡信息讀取 549
20.10.6 MMC卡支持 549
20.10.7 多扇區讀寫操作 549
20.10.8 帶CRC校驗的SD卡
驅動程序 549
20.10.9 數字音樂播放器 549
20.10.10 數字相框 549
20.10.11 附加的FAT功能 549
20.11 推薦工程 550
20.11.1 HAL API文件訪問集成 549
20.12 完整程序清單 550

第4部分 硬件加速器實例研究

第21章 GCD加速器 572
21.1 引言 572
21.2 軟件實現 573
21.3 硬件實現 573
21.3.1 ASMD圖 573
21.3.2 HDL實現 574
21.4 時間測量 576
21.4.1 HAL時間戳驅動 576
21.4.2 定製的硬件計數器 577
21.5 GCD加速器IP核開發 577
21.5.1 Avalon接口 577
21.5.2 寄存器映射 577
21.5.3 封裝的GCD加速器 578
21.6 測試程序 580
21.6.1 GCD程序 580
21.6.2 主程序 581
21.7 性能比較 582
21.8 文獻注釋 583
21.9 推薦實驗 583
21.9.1 使用其他處理器配置
的性能 583
21.9.2 最小規模的GCD加速器 583
21.9.3 帶後補零電路的GCD
加速器 583
21.9.4 64位數據的GCD加
速器 583
21.9.5 128位數據的GCD加
速器 583
21.9.6 歐拉算法的GCD 583
21.10 完整程序清單 583
第22章 Mandelbrot集閤分形加速器 587
22.1 引言 587
22.1.1 Mandelbrot集閤的概述 587
22.1.2 Mandelbrot集閤點的
確定 588
22.1.3 配色方案 589
22.1.4 分形圖像的生成 589
22.2 定點運算 590
22.3 函數calc_frac_point( )的軟件
實現 591
22.4 函數calc_frac_point( )的硬件
實現 592
22.4.1 ASMD圖 592
22.4.2 HDL實現 592
22.5 Mandelbrot集閤分形加速器
IP核開發 594
22.5.1 Avalon接口 594
22.5.2 寄存器映射 595
22.5.3 封裝的Mandelbrot集閤
分形加速器 595
22.6 測試程序 596
22.6.1 分形圖形用戶接口 596
22.6.2 分形硬件加速器引擎控製
程序 598
22.6.3 分形繪圖程序 598
22.6.4 文本區顯示程序 599
22.6.5 鼠標處理程序 601
22.6.6 主程序 603
22.7 討論 603
22.8 文獻注釋 604
22.9 推薦實驗 604
22.9.1 含一個乘法器的硬件
加速器 604
22.9.2 逃逸條件修改的硬件
加速器 604
22.9.3 使用Q4.12格式的硬件
加速器 604
22.9.4 多個分形引擎的硬件
加速器 604
22.9.5 “Burning-ship”分形 605
22.9.6 改進的測試程序 605
22.10 推薦工程 605
22.10.1 浮點硬件加速器 605
22.10.2 通用畫分形圖平颱 605
22.11 完整程序清單 605
第23章 直接數字頻率閤成 616
23.1 引言 616
23.2 設計和實現 616
23.2.1 數字波形的直接閤成 616
23.2.2 未調製的模擬波形的直接
閤成 617
23.2.3 調製的模擬波形的直接
閤成 618
23.2.4 HDL實現 618
23.3 DDFS IP核開發 621
23.3.1 Avalon接口 621
23.3.2 寄存器映射 621
23.3.3 封裝的DDFS電路 622
23.3.4 編解碼器的DAC集成 623
23.4 DDFS驅動 623
23.4.1 配置程序 624
23.4.2 初始化程序 625
23.5 測試 625
23.5.1 音符的概括和閤成 625
23.5.2 測試程序 626
23.6 文獻注釋 630
23.7 推薦實驗 630
23.7.1 正交相位載波生成 630
23.7.2 縮減的相位―幅度查找錶 631
23.7.3 閤成音樂播放器 631
23.7.4 鍵盤鋼琴 631
23.7.5 鍵盤記錄儀 631
23.7.6 硬件包絡發生器 631
23.7.7 諧波疊加閤成器 631
23.7.8 采樣閤成器 631
23.8 推薦工程 632
23.8.1 聲音發生器 632
23.8.2 函數發生器 632
23.8.3 完整的電子閤成器 632
23.9 完整程序清單 632
參考文獻 640

前言/序言


深入理解嵌入式係統設計:從硬件到軟件的全麵實踐 本書旨在為讀者提供一個全麵而深入的嵌入式係統設計實踐指南。它不僅僅局限於某個特定的處理器架構或開發工具,而是著眼於構建一個完整的、可工作的嵌入式係統,並在此過程中掌握核心的設計理念、開發流程與關鍵技術。讀者將通過本書的學習,能夠獨立完成從係統需求分析到最終産品實現的整個流程,具備解決復雜嵌入式問題的高級能力。 一、 嵌入式係統基礎概念與架構剖析 在正式進入具體的係統設計之前,本書將首先構建讀者堅實的理論基礎。我們將從嵌入式係統的定義、特性、應用領域以及其在現代科技發展中的重要地位入手,深入淺齣地解析嵌入式係統的基本構成要素,包括處理器、存儲器、輸入/輸齣接口、外圍設備以及必要的通信協議等。 特彆地,本書將詳細闡述嵌入式係統的核心——微處理器或微控製器,分析不同架構(如RISC、CISC)的優劣勢,並重點講解現代嵌入式處理器在性能、功耗、成本等方麵的權衡。讀者將理解CPU如何執行指令,內存層次結構如何影響係統效率,以及各種I/O接口(如UART, SPI, I2C, USB, Ethernet)的設計原理和應用場景。 本書還將探討嵌入式係統的典型架構模式,例如單芯片係統(SoC)的概念,以及如何將多個功能模塊集成到單個芯片中以降低成本和功耗。我們將分析這些架構的優勢,例如其高度的集成度和優化的性能。同時,也會介紹分布式嵌入式係統,探討其在網絡化和高可靠性應用中的重要性。 二、 硬件設計與實現:Verilog HDL在嵌入式硬件開發中的應用 本書將重點講解如何使用Verilog硬件描述語言(HDL)進行嵌入式係統的硬件設計和實現。Verilog作為一種強大的硬件描述語言,能夠精確地描述數字電路的行為和結構,是現代數字集成電路設計不可或缺的工具。 我們將從Verilog的基礎語法、數據類型、運算符、行為級建模、數據流建模以及結構化建模等基礎知識講起。讀者將學習如何使用Verilog來描述組閤邏輯和時序邏輯電路,例如寄存器、多路選擇器、加法器、計數器等。 在此基礎上,本書將逐步深入到更復雜的硬件模塊設計。我們將詳細講解如何設計和驗證: CPU核與總綫接口: 如何利用Verilog設計一個簡單的CPU核,或者如何設計與現有CPU核(如開源的RISC-V指令集處理器)進行交互的總綫接口。這包括理解和實現AXI、AHB等主流總綫協議。 存儲控製器: 設計SDRAM、SRAM、Flash等存儲器的控製器,理解存儲器的時序和讀寫操作。 外圍設備接口: 通過Verilog實現各種常用外圍設備的控製器,例如UART(通用異步收發器)、SPI(串行外設接口)、I2C(集成電路總綫)、GPIO(通用輸入輸齣)等。這些接口是嵌入式係統與外部世界進行信息交互的關鍵。 中斷控製器: 設計高效的中斷處理機製,使得嵌入式係統能夠及時響應外部事件。 定時器與計數器: 實現各種功能的定時器和計數器,用於時間測量、周期生成、事件觸發等。 ADC/DAC接口: 設計模擬數字轉換器(ADC)和數字模擬轉換器(DAC)的接口,實現模擬信號的采集與生成。 簡單的DSP模塊: 介紹如何利用Verilog實現一些基本的數字信號處理功能,例如濾波器、FFT(快速傅裏葉變換)等,為信號處理應用打下基礎。 在每個設計案例中,本書都將強調模塊化設計、層次化設計的理念,引導讀者寫齣清晰、可讀性強、易於復用和維護的代碼。同時,我們將深入講解仿真驗證的重要性,介紹如何使用Verilog仿真工具(如ModelSim, VCS, QuestaSim)來驗證設計的正確性,包括編寫測試平颱(Testbench)、設計激勵信號、分析仿真波形等。 三、 軟件開發與係統集成:從底層驅動到應用程序 在硬件平颱搭建完成後,本書將帶領讀者進入軟件開發的世界。我們將講解嵌入式軟件開發的整個生命周期,包括: 嵌入式C語言編程: 強調嵌入式C語言的特性,例如對指針的深入運用、位操作、內存管理以及與硬件的交互。我們將通過大量的實例講解如何編寫高效、可靠的嵌入式C程序。 編譯器與工具鏈: 介紹嵌入式開發常用的交叉編譯環境,例如GCC for ARM, Xtensa GCC等,講解編譯、鏈接、匯編等過程,以及如何生成可執行文件。 底層驅動程序開發: 這是嵌入式軟件開發的關鍵環節。本書將詳細講解如何根據硬件設計,編寫各種外設的驅動程序。例如,針對UART編寫發送/接收函數,針對SPI編寫數據讀寫函數,針對GPIO編寫配置/讀寫函數。讀者將學習如何通過寄存器操作來控製硬件,以及如何優化驅動程序的性能和效率。 操作係統(RTOS)的選擇與應用: 介紹實時操作係統(RTOS)在嵌入式係統中的作用,例如任務調度、任務間通信、同步機製(信號量、互斥鎖)、內存管理等。我們將以一個或多個流行的RTOS(如FreeRTOS, Zephyr)為例,講解其 API 的使用,並展示如何構建多任務的嵌入式應用程序。 應用程序開發: 在驅動程序和RTOS的基礎上,讀者將學習如何開發具體的嵌入式應用程序。這可能包括數據采集與處理、用戶界麵(基於LCD、觸摸屏等)、網絡通信(TCP/IP, MQTT等)、控製算法的實現等。 係統集成與調試: 講解如何將硬件和軟件協同工作,進行係統集成。重點介紹嵌入式係統的調試技術,包括使用仿真器(JTAG, SWD)、邏輯分析儀、示波器以及printf調試等方法,快速定位和解決問題。 四、 係統級設計方法與高級主題 除瞭硬件和軟件的獨立開發,本書還將重點關注係統級的設計方法。我們將引導讀者思考: 係統需求分析與規格定義: 如何將模糊的客戶需求轉化為明確的硬件和軟件設計規格。 軟硬件協同設計: 如何在項目初期就進行軟硬件接口的定義與協調,避免後期集成睏難。 性能優化策略: 如何從硬件和軟件層麵同時進行優化,以滿足嵌入式係統對實時性、功耗、成本的要求。 功耗管理技術: 介紹各種低功耗設計技術,包括時鍾門控、電源管理、休眠模式等,延長電池供電設備的續航時間。 可靠性與容錯設計: 探討如何提高嵌入式係統的可靠性,例如通過冗餘設計、錯誤檢測與糾正機製等。 安全性考慮: 簡要介紹嵌入式係統安全性的基本概念,例如固件安全、通信安全等。 五、 真實世界案例分析與項目實踐 本書將貫穿大量的真實世界案例分析,通過這些案例,讀者可以直觀地理解前麵所學知識的應用。例如,我們將分析一個智能傢居控製器的設計,一個工業自動化采集模塊的設計,或者一個簡單的嵌入式Web服務器的設計。 每個案例都將涵蓋: 係統需求分析與功能分解 硬件模塊選擇與Verilog實現 軟件架構設計與驅動開發 RTOS配置與應用開發 係統集成與性能測試 通過這些詳細的案例,讀者可以模仿、學習並最終應用到自己的項目中。 六、 學習路徑與展望 本書並非局限於某個特定平颱,而是以通用的嵌入式係統設計原理和方法為核心,引導讀者掌握適用於多種嵌入式處理器和開發環境的能力。學習本書後,讀者將能夠: 獨立完成一個中等復雜度的嵌入式係統硬件設計。 熟練運用Verilog HDL進行數字邏輯電路的建模與驗證。 編寫高效、可靠的嵌入式C語言程序和底層驅動。 理解並應用實時操作係統進行嵌入式軟件開發。 具備嵌入式係統整體設計、集成與調試的能力。 本書適閤於電子工程、計算機科學、自動化等專業的學生,以及希望深入瞭解嵌入式係統設計並提升實踐能力的工程師。通過係統學習本書內容,讀者將為未來在物聯網、人工智能、工業控製、汽車電子等快速發展的領域中從事嵌入式係統設計與開發奠定堅實的基礎。

用戶評價

評分

看到“基於Nios II的嵌入式SoPC係統設計與Verilog開發實例”這個書名,我的腦海中立刻浮現齣許多關於嵌入式係統設計的可能性。Nios II處理器因其在FPGA上的靈活性和可配置性而備受青睞,而SoPC(System on Programmable Chip)的理念更是將硬件設計的可能性推嚮瞭新的高度。我對這本書的期望是,它能夠帶領我深入理解SoPC的設計流程,從選擇閤適的Nios II配置,到利用Altera提供的IP庫進行係統集成,再到編寫C語言或匯編語言的應用程序。我希望書中能詳細介紹Nios II的開發環境,如Quartus Prime和SOPC Builder(或Platform Designer),並演示如何有效地使用這些工具來構建一個功能齊全的嵌入式係統。此外,“Verilog開發實例”部分是我非常看重的一點。我期待書中能提供一些實際的Verilog代碼,演示如何為Nios II開發自定義的硬件模塊,例如,實現一個特殊的通信接口、一個高效的信號處理單元,或者一個定製化的存儲控製器。我希望這些實例能夠清晰地展示硬件與軟件的交互方式,以及如何進行有效的調試和測試。

評分

這本書的名字讓我眼前一亮,尤其是“基於Nios II的嵌入式SoPC係統設計”這個部分。我一直對嵌入式係統開發充滿興趣,而Nios II作為Altera(現在是Intel FPGA)提供的軟核處理器,在FPGA領域有著廣泛的應用。我對這本書的期待是,它能夠深入淺齣地講解如何從零開始構建一個基於Nios II的SoPC(System on Programmable Chip)。我希望書中不僅能介紹Nios II處理器的架構和指令集,還能詳細闡述如何在其上構建一個完整的嵌入式係統,包括各種外設的集成、內存管理、中斷處理等等。同時,“Verilog開發實例”也讓我充滿期待,這意味著我不僅能學到理論知識,還能通過實際的代碼例子來加深理解,並能親手實踐,將理論轉化為實際可運行的係統。我希望書中提供的Verilog代碼清晰、注釋詳細,並且能夠覆蓋到一些常見的嵌入式應用場景,這樣我就可以直接藉鑒和修改,快速上手。總的來說,我期望這本書能夠成為我學習Nios II和SoPC設計的得力助手,幫助我打下堅實的基礎,並能夠獨立完成復雜的嵌入式係統項目。

評分

“基於Nios II的嵌入式SoPC係統設計與Verilog開發實例”這個書名,對於我這樣一個希望深入理解FPGA底層設計和嵌入式係統結閤的人來說,無疑具有極大的吸引力。我一直認為,要想真正掌握嵌入式係統開發,理解處理器是如何與硬件協同工作的至關重要,而Nios II作為一種在FPGA上運行的軟核處理器,正是實現這一理解的絕佳平颱。我期望這本書能夠提供一個係統化的學習路徑,從Nios II處理器的基本原理講起,逐步深入到SoPC的整體架構設計,包括各種總綫協議(如Avalon)、內存接口、以及外設的連接和配置。我特彆看重“Verilog開發實例”的部分,因為它意味著我能夠通過具體的代碼來學習和實踐。我希望書中能夠提供一些具有代錶性的Verilog示例,例如,如何設計一個與Nios II接口的自定義DMA控製器,或者如何實現一個高性能的圖像處理模塊,並將其集成到SoPC係統中。我希望能在這本書中找到關於如何進行係統性能分析和優化,以及如何進行低功耗設計的相關內容,這些都是在實際嵌入式項目開發中非常關鍵的技能。

評分

讀到“基於Nios II的嵌入式SoPC係統設計與Verilog開發實例”這個書名,我立刻聯想到瞭一些我曾經在學習中遇到的挑戰。在實際的嵌入式項目開發中,很多時候我們需要在有限的資源下實現復雜的係統功能,而SoPC的設計恰恰能夠提供這樣的靈活性。Nios II作為一種軟核處理器,它的優勢在於能夠根據項目需求進行定製化配置,這對於一些對功耗、性能或接口有特殊要求的應用來說,是非常有吸引力的。我希望這本書能夠深入探討Nios II的架構細節,比如它的流水綫設計、緩存機製、指令集擴展等,讓我能夠從原理層麵理解其工作方式。同時,我對書中提到的“Verilog開發實例”部分抱有很高的期望。我希望這些實例不僅僅是簡單的IP核示例,而是能夠展示如何將Nios II處理器與自定義的Verilog模塊進行高效集成,例如,如何設計一個高性能的數據采集模塊,並通過Nios II進行控製和數據處理。我更期待看到書中能夠介紹一些高級的SoPC設計技巧,比如如何進行性能優化、如何處理高速數據流、以及如何與外部接口(如DDR內存)進行交互等。

評分

作為一名剛剛接觸FPGA不久的學生,我對“基於Nios II的嵌入式SoPC係統設計與Verilog開發實例”這個書名感到非常好奇。我之前主要接觸的是一些基礎的FPGA邏輯設計,對於如何在一個FPGA內部實現一個完整的處理器係統,並為其開發應用程序,還是一片空白。Nios II這個名字在課程和論壇中經常被提及,我一直想找一本能夠係統性地講解它的書籍。這本書似乎正是我所需要的。我尤其關注“SoPC係統設計”這個概念,它意味著不僅僅是硬件的搭建,還涉及到軟件與硬件的協同工作。我希望能在這本書中學到如何使用Quartus Prime等開發工具來創建和配置Nios II處理器,以及如何連接和驅動各種IP核,比如GPIO、UART、SPI、I2C等等。此外,“Verilog開發實例”對我來說至關重要,因為我希望能夠看到具體的Verilog代碼實現,瞭解如何編寫驅動程序、如何進行接口設計,甚至是如何實現一些簡單的嵌入式算法。如果書中能提供一些從簡單到復雜的實例,並且能夠一步步引導讀者完成,那將是非常寶貴的學習資源。

評分

封麵有點舊,灰多瞭點。

評分

不錯昨天下單就到瞭

評分

很好 就是書有點舊

評分

很好 就是書有點舊

評分

印刷質量還行

評分

不錯。。。。。。。。。。。。。。。。。

評分

便宜實惠推薦購買 便宜實惠推薦 便宜實惠推薦購買

評分

省得到書店去找,在京東購買很方便。

評分

專業 正版 查閱方便 很實用

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有