出版信息
作者:趙剛(作者)出版社: 電子工業出版社; 第1版 (2011年10月1日)
其他: 456頁
ISBN: 9787121145537
條形碼: 9787121145537
內容簡介
計算機系統分為通用計算機系統和嵌入式計算機系統,計算機的大量普及,極大地推動了人類社會的進步。但是,您是否覺得計算機系統的設計神秘至極?本書將為您打開計算機系統設計的神秘之門,教您如何去設計滿足自己需求的計算機系統。
本書的重點是講解計算機系統自主設計的方法,共分為四篇,全書以一個全部軟硬體均自主定義與設計的教學用計算機系統的實現過程為主線,詳細地介紹了自定義指令系統、CPU晶片、彙編語言、高級語言、編輯器、彙編器、編譯器、連結器、編程器,以及計算機系統的完整開發流程,試圖讓讀者將往日所學到的零碎、割裂的知識通過書中的實例予以串聯整合,使讀者對計算機系統的本質得以深入理解。
目錄
第一篇 計算機系統構成及自定義CPU晶片設計
第1章 計算機系統構成及工作原理 3
1.1 從一個產品加工廠談起 3
1.2 計算機誕生及系統構成 4
1.2.1 計算機誕生 4
1.2.2 計算機系統結構 4
1.3 計算機開發及運行流程 5
1.3.1 計算機軟硬體開發流程 5
1.3.2 計算機運行流程 6
第2章 自定義指令系統設計 7
2.1 指令系統概述 7
2.1.1 指令系統基本概念 7
2.1.2 指令系統設計方法 7
2.1.3 指令系統設計流程 10
2.2 自定義指令系統 10
2.2.1 指令分類與指令功能選擇 10
2.2.2 指令格式與定址方式 11
2.2.3 指令集 13
2.2.4 CPU晶片自動化設計流程 19
第3章 HDL硬體描述語言 20
3.1 VHDL硬體描述語言 20
3.1.1 VHDL程式的基本結構 20
3.1.2 VHDL語言的基本要素 23
3.1.3 VHDL程式的常用描述語句 25
3.1.4 VHDL程式的常用描述方式 26
3.1.5 組合邏輯電路設計 27
3.1.6 時序邏輯電路設計 30
3.1.7 存儲器設計 32
3.1.8 狀態機設計 34
3.2 Verilog HDL硬體描述語言 36
3.2.1 Verilog HDL語言的基本結構 36
3.2.2 Verilog HDL語言的基本要素 38
3.2.3 Verilog HDL程式的常用
描述語句 41
3.2.4 Verilog HDL程式的常用
描述方式 43
3.2.5 組合邏輯電路設計 44
3.2.6 時序邏輯電路設計 46
3.2.7 存儲器設計 47
3.2.8 狀態機設計 49
3.3 VHDL和Verilog HDL語言的
對應關係 52
第4章 QUARTUSⅡ開發工具 54
4.1 QUARTUSⅡ開發系統軟體
使用入門 54
4.1.1 QUARTUSⅡ軟體安裝 54
4.1.2 QUARTUSⅡ平台下的晶片
開發流程 55
4.1.3 電子琴晶片設計實例 56
4.2 QUARTUSⅡ設計技巧 71
4.2.1 增量編譯 71
4.2.2 時序約束 73
4.2.3 邏輯鎖定 75
4.2.4 嵌入式邏輯分析儀 77
4.2.5 定製LPM_ROM 81
4.3 DSP Builder代碼自動生成 87
4.3.1 DSP Builder代碼自動生成流程 87
4.3.2 直接數字頻率合成器原理 87
4.3.3 DDS在MATLAB/Simulink中的
建模與仿真 89
4.3.4 DDS在QUARTUSⅡ中的
FPGA實現 92
第5章 自定義CPU——scu晶片設計 98
5.1 SCU結構設計 98
5.1.1 匯流排寬度設計 98
5.1.2 SCU結構設計 99
5.2 SCU核心設計 103
5.2.1 控制單元設計 103
5.2.2 運算單元設計 127
5.2.3 暫存器堆設計 132
5.2.4 SCU核心模組連線 141
5.3 SCU片內外設設計 143
5.3.1 中斷控制器INTERUPT設計 143
5.3.2 存儲器接口電路設計 146
5.3.3 I/O接口電路設計 146
5.4 SCU整體電路 152
5.5 SCU晶片實現 153
第6章 計算機硬體系統開發與機器
語言編程 158
6.1 計算機硬體系統設計 158
6.1.1 計算機硬體系統結構設計 158
6.1.2 計算機硬體系統原理圖設計 159
6.2 機器語言編程 162
6.2.1 機器程式開發流程 162
6.2.2 12位二進制輸入電路測試程式 163
6.2.3 3位十進制輸出電路測試程式 164
6.2.4 12位二進制輸入電路測試程式 165
6.2.5 3位十進制輸入電路測試程式 166
6.2.6 不同時鐘頻率對計算機運行
速度的影響 167
第二篇 軟體開發流程及自定義程式語言
第7章 計算機軟體的硬體基礎 171
7.1 軟體概述 171
7.2 數據——加工對象 172
7.2.1 數據的硬體基礎 172
7.2.2 數據表達 173
7.2.3 數據存儲方式 176
7.3 程式——加工流程 177
7.3.1 程式的硬體基礎 177
7.3.2 程式加工流程 178
7.3.3 程式的基本結構及其開發流程 180
7.3.4 提高編程效率的有效
途徑——子程式與庫 181
第8章 自定義彙編語言——SCL語言 185
8.1 彙編語言概述 185
8.1.1 從機器語言到彙編語言 185
8.1.2 彙編語言組成 186
8.2 指令語句與偽指令設計 186
8.2.1 指令語句 186
8.2.2 偽指令 192
8.3 彙編語言結構設計 193
8.3.1 數據段與代碼段 193
8.3.2 子程式 194
8.3.3 中斷服務程式 194
第9章 自定義高級語言——SCH語言 196
9.1 高級語言概述 196
9.1.1 高級語言與低級語言 196
9.1.2 高級語言組成 197
9.2 SCH語言基本成分設計 197
9.2.1 常量及變數 197
9.2.2 運算與賦值 198
9.2.3 輸入/輸出 199
9.2.4 控制操作 199
9.3 SCH語言結構設計 201
9.3.1 程式結構 201
9.3.2 子程式 203
9.4 SCH語言單詞與語法歸納 204
第三篇 工具軟體的自主開發
第10章 C++開發語言與VC開發工具 207
10.1 熟悉VC++6.0軟體開發工具 207
10.1.1 VC++工具及幫助文檔MSDN 207
10.1.2 Windows應用程式及VC
編程流程 208
10.1.3 編寫第一個控制台應用程式 210
10.1.4 編寫第一個視窗應用程式 215
10.1.5 程式調試及調試視窗觀察 224
10.2 C++語言基礎 229
10.2.1 C++語言組成與程式結構 229
10.2.2 常量與變數運用 231
10.2.3 運算與賦值 240
10.2.4 控制語句 244
10.2.5 函式的運用 247
10.2.6 預編譯指令 253
10.2.7 類與對象的運用 255
10.2.8 類的繼承與派生 258
10.3 視窗應用程式編程——
使用API 262
10.3.1 API庫 262
10.3.2 資源及資源編輯 264
10.3.3 選單資源運用 266
10.3.4 對話框資源運用 267
10.3.5 控制項 269
10.3.6 訊息 270
10.3.7 計算器製作實例 273
10.4 視窗應用程式編程——
使用MFC 278
10.4.1 MFC類庫 279
10.4.2 MFC應用程式運行原理 279
10.4.3 MFC編程方法 287
10.4.4 計算器製作實例 290
第11章 編輯器的自主設計 294
11.1 編輯器概述 294
11.1.1 代碼編輯器功能 294
11.1.2 代碼編輯器製作流程 294
11.2 編輯器基本框架生成 295
11.3 關鍵字高亮與檔案操作 296
11.3.1 關鍵字高亮 296
11.3.2 檔案打開與保存 297
11.4 狀態欄、快捷選單與SHELL
操作 303
11.4.1 在狀態欄上顯示游標位置 303
11.4.2 快捷選單設計 308
11.4.3 編輯器打開不產生新文檔 309
11.4.4 檔案拖放 310
第12章 彙編器的自主設計 313
12.1 彙編器概述 313
12.1.1 彙編器功能 313
12.1.2 彙編器組成 313
12.2 彙編器工作原理 314
12.2.1 符號表 314
12.2.2 單詞識別 317
12.2.3 數據定義處理 319
12.2.4 指令語句處理 320
12.2.5 目標代碼檔案生成 322
12.3 彙編器編程實現 323
12.3.1 彙編器模板及模組間
調用關係 323
12.3.2 相關符號表和地址
計數器的表示 325
12.3.3 彙編器細化模板及程式說明 327
第13章 編譯器的自主設計 333
13.1 編譯器概述 333
13.1.1 編譯器功能 333
13.1.2 編譯器組成 333
13.1.3 編譯器與彙編器 334
13.2 編譯器的工作原理 334
13.2.1 符號表——編譯過程中
有關符號的存儲 334
13.2.2 單詞識別——字元的組合 335
13.2.3 語法分析——語法關係的
比較 335
13.3 指令代碼生成 337
13.3.1 臨時存儲區及其運用 338
13.3.2 表達式的代碼生成 339
13.3.3 賦值語句、輸入/輸出
語句的代碼生成 341
13.3.4 控制語句的代碼生成 343
13.4 編譯器的編程實現 346
13.4.1 編譯器程式模板及模組
調用關係 346
13.4.2 相關符號表的表示 349
13.4.3 編譯程式細化模板及
程式說明 351
第14章 連結器的自主設計 360
14.1 連結器概述 360
14.1.1 連結器功能 360
14.1.2 連結器組成 361
14.2 連結器工作原理 361
14.2.1 存儲器模型 361
14.2.2 連結命令檔案 361
14.2.3 重定位 362
14.2.4 執行檔生成 364
14.3 連結器編程實現 365
14.3.1 主要功能模組及模組
調用關係 365
14.3.2 相關符號表的表示 366
14.3.3 連結器程式分析 367
第15章 編程器的自主設計 372
15.1 編程器概述 372
15.1.1 編程器軟體組成 372
15.1.2 編程器硬體組成 373
15.2 編程器硬體電路設計 373
15.2.1 編程器硬體總電路 373
15.2.2 EEPROM晶片工作
模式及時序 373
15.2.3 燒寫控制電路 375
15.2.4 串口通信電路 376
15.3 RS-232通信原理及自定義
通信協定 378
15.3.1 RS-232串口通信原理 378
15.3.2 自定義通信協定 378
15.4 單片機數據接收與燒寫
程式設計 379
15.4.1 MPLAB IDE軟體使用 379
15.4.2 單片機系統初始化 382
15.4.3 單片機數據收發 383
15.4.4 EEPROM晶片燒寫與讀取 389
15.4.5 程式主體 392
15.5 編程器軟體界面與數據傳送
功能設計 396
15.5.1 工程創建及二進制檔案
讀取與顯示 397
15.5.2 串口通信控制項 400
15.5.3 利用串口通信控制項進行
數據接收與傳送 403
15.6 編程器性能測試 410
15.6.1 測試原理 410
15.6.2 測試程式 410
第四篇 自定義計算機系統編程實例
第16章 自定義SCL彙編語言編程實例 417
16.1 SCL彙編語言列表 417
16.2 彙編程式開發流程 418
16.3 彙編程式開發實例 421
16.3.1 順序程式開發實例 421
16.3.2 分支程式開發實例 422
16.3.3 循環程式開發實例 424
16.3.4 子程式開發實例 425
16.3.5 中斷服務程式開發實例 427
16.3.6 查詢與中斷方式傳送數據 428
第17章 自定義SCH高級語言編程實例 430
17.1 SCH高級語言單詞列表及
語法歸納 430
17.2 SCH高級程式開發流程 431
17.3 高級程式開發實例 433
17.3.1 順序程式開發實例 433
17.3.2 分支程式開發實例 434
17.3.3 循環程式開發實例 436
17.3.4 子程式開發實例 437
17.3.5 中斷服務程式開發實例 439
附錄A 自定義計算機系統的SOPC實現 441
附錄B 隨贈光碟檔案列表 446
參考文獻 447