圖靈程式設計叢書:CPU自製入門

基本介紹

內容簡介

只需編程基礎
從零開始設計和實現CPU
CPU、匯流排、記憶體、I/O
自己組合成一個簡單的計算機系統
超強實踐性
從硬體到軟體,統統自己動手

作者簡介

作者簡介:
水頭 一壽(KAZUTOSHI SUITOU)
慶應義塾大學碩士畢業。現在在慶應義塾大學攻讀博士學位。目前從事實時嵌入式系統的系統LSI相關研究和開發。興趣為音樂、攝影、腳踏車等。在RESPON小組擔任邏輯設計工作。
米澤 遼(RYO YONEZAWA)
慶應義塾大學碩士畢業後,進入東芝株式會社半導體與存儲子公司工作。目前從事高速串列接口IP的開發。興趣為電子製作、家庭伺服器管理等。在RESPON小組擔任電路板設計與封面設計工作。
藤田 裕士(YUJI FUJITA)
慶應義塾大學碩士畢業後,進入日本電氣株式會社工作。目前從事固件開發工作。興趣為音樂欣賞、吉他演奏等。在RESPON小組擔任軟體設計工作。
譯者簡介:
趙謙
2007年於青島科技大學取得學士學位。2008年至今在日本熊本大學攻讀博士學位。目前從事容錯性FPGA架構及其CAD相關研究與開發。在FPGA領域著名國際會議FPGA、FPL以及ICFPT等發表過多篇學術論文。

圖書目錄

第1章 CPU的設計與實現 1
1.1 序 2
1.2 計算機系統 4
1.2.1 什麼是計算機 4
1.2.2 什麼是CPU 5
專欄 CPU的位寬 8
1.2.3 什麼是記憶體 8
1.2.4 什麼是I/O 9
專欄 位元組序 10
1.2.5 什麼是匯流排 12
專欄 匯流排的優缺點 14
1.2.6 小結 14
專欄 計算機相關書籍 14
1.3 數字電路基礎 15
1.3.1 什麼是數字電路 15
1.3.2 數值表達 15
1.3.3 有符號二進制數 16
專欄 比特和位元組 17
專欄 1K位元組有多大 17
1.3.4 MOSFET的結構 17
1.3.5 邏輯運算 19
1.3.6 CMOS基本邏輯門電路 20
1.3.7 存儲元件 21
專欄 建立時間與保持時間 24
1.3.8 組合電路和時序電路 25
1.3.9 時鐘同步設計 25
1.3.10 小結 25
專欄 數字電路相關書籍 25
1.4 VerilogHDL語言 26
1.4.1 什麼是VerilogHDL 26
1.4.2 電路描述 27
專欄 默認網路類型 32
專欄 組合電路描述中鎖存器的推定與Don’tcare 37
專欄 正邏輯與負邏輯 42
1.4.3 電路仿真 43
專欄 同步電路中信號變化的時序 45
1.4.4 VerilogHDL的仿真環境 50
1.4.5 小結 56
專欄 VerilogHDL相關書籍 56
1.5 系統藍圖 57
1.5.1 目標系統整體介紹 57
1.5.2 關於本章中的代碼 58
專欄 字編址與位元組位移 62
1.6 匯流排的設計與實現 63
1.6.1 匯流排的設計 63
1.6.2 匯流排的實現 66
1.6.3 小結 78
1.7 存儲器的設計與實現 79
1.7.1 FPGA的RAM區域 79
1.7.2 ROM的設計與實現 81
1.7.3 小結 83
專欄 存儲器相關書籍 83
1.8 AZProcessor的設計與實現 84
1.8.1 關於CPU 84
專欄 CPI和MIPS值 93
1.8.2 AZProcessor的設計 93
專欄 指令集架構與微架構 105
1.8.3 AZProcessor的實現 106
1.8.4 小結 159
專欄 計算機架構相關書籍 159
1.9 I/O的設計與實現 162
1.9.1 定時器 162
1.9.2 UART 167
專欄 UART實例 168
1.9.3 GPIO 181
1.9.4 小結 188
專欄 I/O相關書籍 188
1.10 AZPR SoC整體連線 189
1.10.1 各模組的連線 189
1.10.2 時鐘模組的實現 191
1.10.3 頂層模組的實現 193
1.10.4 小結 193
1.11 AZPRSoC的仿真 194
1.11.1 仿真模型的編寫 194
1.11.2 Testbench的編寫 197
1.11.3 執行仿真 200
1.11.4 小結 201
1.12 本章總結 202
第2章 電路板的設計與製作 203
2.1 序 204
2.2 電路板規格206
2.2.1 電路板名稱 206
2.2.2 電路板的構成 206
2.2.3 電路板尺寸 206
2.2.4 電路板層數 207
2.2.5 FPGA選型 207
2.2.6 外圍電路的選定 208
專欄 關於FPGA 209
專欄 關於JTAG 211
2.3 元件選型 212
2.3.1 元件選型標準 212
2.3.2 元件選型 212
2.3.3 元件的選購 218
2.4 電路設計 221
2.4.1 下載規格書 222
2.4.2 配置電路 223
2.4.3 外圍電路 228
2.4.4 電源電路 232
2.4.5 電路板設計環境 234
2.4.6 使用Eagle設計電路圖 236
專欄 關於ULP 241
專欄 Eagle使用方法相關的書籍/說明書 241
2.4.7 完成的電路圖 241
2.5 布局設計 247
2.5.1 電路板設計約束條件及布線策略 247
2.5.2 FPGA板的布局設計 248
2.5.3 電源板的布局設計 252
2.5.4 使用Eagle布局 254
2.5.5 完成的布局 259
2.6 製作元件庫261
2.6.1 製作Symbol 261
2.6.2 製作Package 263
2.6.3 製作Device 264
2.7 電路板3D模型 269
2.7.1 軟體使用說明 269
2.7.2 準備3D模型庫 271
專欄 關於3D模型庫的管理 278
2.7.3 製作電路板模型 279
2.8 製作感光板電路板 280
2.8.1 整體流程 280
2.8.2 製作光罩 282
2.8.3 粘合光罩 284
2.8.4 曝光 285
2.8.5 顯像 288
2.8.6 蝕刻 289
2.8.7 阻焊劑 291
2.8.8 開孔 296
2.8.9 在背面安裝VPort接頭時的處理 298
2.8.10 製作通孔 299
2.8.11 飛線 300
2.9 使用電路板製造服務 302
2.9.1 電路板製造服務 302
2.9.2 DRC 302
2.9.3 輸出Gerber數據 305
2.9.4 檢查Gerber數據 306
專欄 執行DFM檢查的方法 309
專欄 阻焊層遮罩的印刷設定 312
2.9.5 向P板.com公司下單制板 312
專欄 拼板數據的準備 314
2.9.6 向OLIMEX公司下單制板 318
2.10 組裝電路板 321
2.10.1 電源板 321
2.10.2 組裝FPGA板 321
2.11 功能測試 323
2.11.1 識別FPGA 323
2.11.2 診斷程式 323
2.12 本章總結 326
第3章 編程 327
3.1 序 328
3.2 開發環境 329
3.2.1 準備工作 329
3.2.2 FPGA開發環境 330
3.2.3 ISEWebPACK 331
3.2.4 UrJTAG 359
專欄 cblsrv—0.1_ft2232 370
3.2.5 交叉彙編程式 370
3.2.6 第一個程式 376
3.3 串口通信 381
3.3.1 安裝Tera Term 381
3.3.2 編寫程式 382
專欄 子程式 388
專欄 ASCII碼 389
3.3.3 執行程式 390
3.4 程式載入器 391
3.4.1 XMODEM協定 391
3.4.2 編寫程式 393
3.4.3 編寫載入測試程式 402
3.4.4 執行程式 403
3.5 中斷與異常 406
3.5.1 什麼是中斷 406
3.5.2 編寫程式 410
3.5.3 執行程式 414
3.5.4 什麼是異常 415
3.5.5 編寫程式 415
3.5.6 執行程式 419
3.6 七段數碼管 420
3.6.1 什麼是七段數碼管 420
3.6.2 七段數碼管的控制 420
3.6.3 七段數碼管計數器概要 422
3.6.4 編寫程式 423
3.6.5 執行程式 428
3.7 製作一個實用程式 429
3.7.1 功能概要 429
3.7.2 製作程式 433
3.7.3 執行程式 446
3.8 結語 447
謝辭 448
後記 449
著作權聲明 450

序言

【譯者序】
接觸IT 行業十多年來,我的書架上始終缺少一本書。我有各種語言的經典書籍和實用手冊,它們幫助我使用最合適的工具解決問題。我還有一些作業系統、編譯器和軟體架構方面的書籍,它們指導我寫出更高效的代碼。然而對於作業系統之下的CPU 內部世界,我的認識依然停留在大學時80×86 處理器的課堂上。那門課讓我學會了如何使用CPU,而如何設計和實現CPU 卻始終是我知識體系中缺失的最底層的一環。
《CPU 自製入門》正是我一直尋找的那本書。本書介紹了計算機系統最物理、最底層的3 個部分:CPU 設計製作、電路板設計製造以及彙編編程。作者們利用FPGA 晶片,開啟了一個嶄新的自製CPU 的世界。將如此廣泛的技術內容以實踐的方式結成一冊,該書可謂首屈一指。
更讓我印象深刻的是本書的閱讀門檻非常低。幾乎所有必要的基礎知識書中都有介紹,如數字電路設計、Verilog 語言,甚至還包括電路板CAD 軟體的使用,等等。其中任何一個內容展開討論都需要幾本書的篇幅,然而本書作者們卻可以依靠豐富的經驗,以最精簡的文字,將最核心的知識匯集到一本書中,使各種知識背景的讀者都可以方便地閱讀。
近年來,隨著摩爾定律接近極限,計算機系統很難再像從前那樣單純依靠晶片製程的進步獲取速度提升。而為了設計更加高速的計算機系統,人們越來越多地將目光集中到了定製硬體技術上。同時,FPGA 的發展和普及大大降低了定製硬體的開發難度和成本。通過在FPGA 上實現定製硬體加速器,將套用性能提升幾十到幾百倍的案例在學術界已經屢見不鮮。而蘋果、微軟、谷歌等大型IT 企業,目前也已紛紛開始或計畫將硬體加速技術套用到電子產品和伺服器當中。在可預見的未來,具備軟硬結合設計能力的工程師將會更加具有競爭力。
《CPU 自製入門》是為讀者打開硬體設計大門的理想教材。通過閱讀本書,軟體工程師能夠更加了解硬體與底層,開發出高效代碼。硬體工程師則可以在本書基礎上設計定製硬體,進而開發高性能計算機系統。相信所有讀者都可以在本書的閱讀過程中受益匪淺,零距離地體驗自製計算機系統的樂趣。
趙謙 (@JonsonXP)
2013 年11 月

熱門詞條

聯絡我們