內容簡介
計算機系統分為通用計算機系統和嵌入式計算機系統,計算機的大量普及,極大地推動了人類社會的進步。但是,您是否覺得計算機系統的設計神秘至極?本書將為您打開計算機系統設計的神秘之門,教您如何去設計滿足自己需求的計算機系統。
本書的重點是講解計算機系統
自主設計的方法,共分為四篇,全書以一個全部軟硬體均自主定義與設計的教學用計算機系統的實現過程為主線,詳細地介紹了自定義指令系統、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