《可編程技術與計算機系統實驗與實踐教程》系統地介紹可編程技術的原理、編程語言以及基于FPGA的設計方法與實現,在此基礎上討論基本數字電路的設計方法與實現,并通過對計算機硬件系統的組織與結構進行分析,詳細介紹計算機系統的一般設計方法與實現,使學生在基本的功能部件設計基礎上,設計計算機模型系統,建立計算機的整機概念,了解數據在計算機中的表示、傳送、處理以及控制信息是如何完成對計算機系統的控制。
本書取材新穎實用,采用實驗項目教學的組織形式,內容由淺入深,循序漸進。每個實驗項目具有較強的獨立性,實驗項目內容、要求和方法設計詳細,精心安排,可直接用于實驗教學。書中還給出了大量設計實例及擴展方案,不僅可以作為教學內容進行學習,部分內容還具有工程實踐價值。
本書可作為高等院校計算機類、電子類和自動化類等有關專業的實踐教材和參考書,還可供相關工程技術人員參考。
“數字邏輯課程”和“計算機組成原理課程”是計算機專業核心的專業基礎課,具有較強的工程性、技術性和實踐性,這兩門課程對應的實踐環節也占有重要的位置,一些高校的計算機專業單獨開設了“數字邏輯實驗”和“計算機組成實驗”等相關實驗課程。一些軟件工程和信息安全等專業方向的院校也將這兩門實驗課程合二為一,開設了“計算機硬件實驗課程”。為了落實《國家中長期教育改革和發展規劃綱要(2010—2020年)》,注重學生的智力開發和能力培養,我們構建了一個相對完善的計算機硬件系列實驗教學體系,經過多年的教學經驗積累,開發了基于可編程技術的數字邏輯電路、計算機部件、計算機系統等相關實驗項目,編寫了本書。
本書的使用對象是高等院校計算機科學與技術專業的本科生和研究生,軟件工程和信息安全等相關專業本科生和研究生,也可作為電子類和自動化類等有關專業的實踐教材和參考書。
本書在內容安排上共分9章。
第1章是緒論,主要介紹可編程技術相關概念,并闡述了基于可編程技術的計算機系統實驗方法。
第2章介紹可編程技術基礎知識和實驗環境,包括VHDL硬件描述語言、Quartus Ⅱ軟件開發環境和GW48CP++實驗臺的使用方法。
第3章設計一系列可編程技術基礎實驗項目,主要目的是通過實驗項目使學生進一步掌握FPGA開發技術、VHDL設計方法以及Quartus Ⅱ軟件和GW48CP++實驗臺的使用方法。
第4章設計一系列組合邏輯電路實驗項目,包括基本門電路、編譯碼及代碼轉換電路實驗,主要目的是通過實驗掌握組合邏輯電路設計方法。
第5章設計一系列時序邏輯電路實驗項目,包括觸發器、寄存器、計數器和信號發生器等電路實驗,主要目的是通過實驗掌握時序邏輯電路設計方法。
第6章設計一系列計算機部件實驗,包括運算器、存儲器、控制器和總線控制等計算機部件相關實驗,使學生掌握計算機部件的設計方法和工作原理。
第7章設計計算機組成實驗,包括基本模型機、帶移位功能模型機和復雜模型機3個實驗項目,目的是鞏固學生的計算機組成原理知識和提高基于FPGA技術的硬件設計能力。
第8章介紹基于Nios Ⅱ的SOPC基礎知識和實驗項目。使學生掌握嵌入式處理器概念和設計方法,掌握利用嵌入式處理器設計復雜計算機系統的方法,進一步提高FPGA開發能力。
第9章設計一系列基于FPGA的綜合性實驗項目,涵蓋多個數字邏輯和計算機組成原理相關知識點,進一步提高學生的設計能力和綜合實踐能力。
任課教師可單獨開設實驗課或者在理論課中安排課內實驗,可以根據教學大綱和本書的特點來安排實驗內容。
本書的特點及教學建議如下。
(1) 全書采用實驗項目教學的組織形式,內容由淺入深,循序漸進。每個實驗項目具有較強的獨立性,實驗項目內容、要求和方法設計詳細,精心安排,可直接用于實驗教學。書中還給出了大量設計實例及擴展方案,不僅可以作為教學內容進行學習,部分內容還具有了實踐價值。
(2) 全書設置豐富的實驗項目,實驗內容靈活設置,每個實驗項目詳細介紹基本原理和實驗步驟,可以直接作為演示性或驗證性實驗。在每個實驗項目中,在編譯、仿真等階段由簡至深的實驗要求,可以根據實際情況靈活設置實驗難度和要求,將實驗作為設計性實驗。此外,大多數實驗項目還增設了擴展實驗內容,較大地提升了實驗的設計空間,增強了實驗的設計性、綜合性和創新性。
本書在編寫過程中,得到了哈爾濱工程大學計算機科學與技術學院和校實資處的有關領導和教師的大力關懷和支持,在此謹向他們表示誠摯的謝意。
編者雖然從事計算機實踐教學工作多年,但由于水平有限,書中難免存在錯誤和不完善之處,歡迎廣大讀者批評指正,以促進我們的實驗教學水平不斷提高。
編者
2014年10月于哈爾濱
第]章 緒論
1.1 可編程邏輯器件介紹
1.2 FPGA/CPLD設計入門
1.2.1 FPGA/CPLD設計的基本方法
1.2.2 FPGA/CPLD設計的基本流程
1.3 基于可編程技術的計算機系統實驗方法
第2章 可編程技術初步與實驗環境
2.1 VHDL基礎
2.1.1 VHDL簡介
2.1.2 VHDL語言基礎
2.1.3 VHDL基本結構
2.1.4 VHDL主要功能語句
2.1.5 基本VHDL程序分析
2.2 Quartus lI軟件入門
2.2.1 設計流程
2.2.2 Quartus lI設計輸入
2.2.3 綜合
2.2.4 布局布線
2.2.5 基于模塊的設計
2.2.6 仿真
2.2.7 時序分析器
2.2.8 時序逼近
2.2.9 功耗分析
2.2.10 編程和配置
2.2.11 調試
2.2.12 工程改革管理
2.2.13 形式驗證
2.2.14 系統級設計
2.3 FPGA實驗開發平臺簡介
2.3.1 康芯GW48一CP十十實驗開發系統
2.3.2 實驗系統的主板結構和使用方法
2.3.3 實驗系統電路結構圖
2.3.4 實驗系統引腳分配表
2.3.5 實驗臺電路結構選擇與引腳鎖定方法
第3章 可編程技術實驗設計
3.1 可編程技術基礎實驗
3.1.1 熟悉FPGA軟硬件開發環境
3.1.2 利用VHDL設計十進制加法計數器
3.1.3 利用原理圖設計2—4譯碼器
3.1.4 Altera元器件庫宏功能模塊
3.1.5 元器件自定義與使用
3.1.6 利用原理圖層次化方法設計l位全加器
3.1.7 QuartusⅡ的混合輸入及層次化設計
3.2 可編程技術實驗常見問題與解決方法
3.2.1 QuartusⅡ軟件使用常見問題與解決方法
3.2.2 “編譯”過程常見問題與解決方法
3.2.3 “仿真”過程常見問題與解決方法
3.2.4 “編程下載”過程常見問題與解決方法
3.2.5 “實驗臺操作”過程常見問題與解決方法
第4章 組合邏輯電路實驗設計
4.1 組合邏輯電路設計方法
4.1.1 組合邏輯電路的特點
4.1.2 組合邏輯電路的設計方法
4.2 基本門電路實驗
4.3 典型組合電路實驗
4.3.1 半加器
4.3.2 全加器
4.3.3 全加/全減器
4.3.4 多數表決電路
4.3.5 比較電路
4.4 可靠性編碼電路實驗
4.4.1 偶校驗發生器、檢測器電路
4.4.2 步進碼發生器電路
4.5 編、譯碼及代碼轉換電路實驗
4.5.1 3-8線譯碼器電路