內容簡介
本書主要講述硬體描述語言VHDL及其在數字電路設計中的建模和仿真,內容包括VHDL語言學習基礎、語法規則和模型結構、數字電路的VHDL建模、VHDL硬體描述等。本書在內容結構的組織上有獨特之處,如將並行描述語句、順序描述語句、數據類型與運算操作符和屬性等獨立成章,使讀者更容易清晰準確地掌握這些重要內容。本書注重設計實踐,給出了大量完整設計實例的電路圖、相關基本概念、電路工作原理以及仿真結果,從而將VHDL語法學習和如何採用它進行電路設計有機地結合在一起,並通過深入淺出的操作點撥,提升學生對VHDL的理性認識,提高學生的研究能力。
編輯推薦
本書可作為高等院校電子工程、通信工程、自動化、電氣工程等專業的教材及實驗指導,也可作為相關專業技術人員的自學參考書。
目錄
第1章 緒論 1
1.1 VHDL的發展 1
1.2 VHDL的特點 1
1.3 VHDL設計流程 2
1.3.1 接受設計任務 3
1.3.2 確定功能要求 3
1.3.3 進行設計 3
1.3.4 原始碼模擬 3
1.3.5 綜合、最佳化和布局布線 3
1.3.6 布局布線後的設計模擬 3
1.3.7 器件編程 3
1.4 VHDL綜合工具 4
1.4.1 QuartusⅡ綜合工具 4
1.4.2 ISE綜合工具 6
1.4.3 ModelSim仿真工具 6
1.5 CPLD和FPGA概述 6
1.5.1 GAL元件 6
1.5.2 CPLD 6
1.5.3 FPGA 7
第2章 VHDL語法基礎 8
2.1 VHDL描述結構 8
2.1.1 庫描述 8
2.1.2 實體 8
2.1.3 結構體 8
2.2 結構體的描述 9
2.3 進程 10
2.3.1 進程語句的格式 10
2.3.2 進程的敏感表 10
2.4 VHDL數據對象 11
2.4.1 信號 11
2.4.2 變數 11
2.4.3 常量 11
2.4.4 TO和DOWNTO關鍵字 12
第3章 數據類型 13
3.1 基本數據類型 13
3.1.1 整型數據(INTEGER) 13
3.1.2 實型數據(REAL & FLOATING) 13
3.1.3 位和位矢量(BIT & BIT_VECTOR) 14
3.1.4 布爾類型數據(BOOLEAN) 14
3.1.5 字元與字元串(CHARACTER & STRING) 14
3.1.6 物理類型(PHYSICAL) 14
3.1.7 自然數和正整數(NATURAL & POSITIVE) 15
3.2 自定義數據類型 15
3.2.1 枚舉類型 16
3.2.2 整數類型 16
3.2.3 實數類型和浮點類型 16
3.2.4 數組類型 16
3.2.5 存取類型 17
3.2.6 檔案類型 17
3.2.7 記錄類型(RECORD) 18
3.2.8 時間類型(TIME) 18
3.3 數據類型轉換 19
3.3.1使用轉換函式 19
3.3.2 使用類型標記法轉換數據類型 20
第4章 VHDL操作符及屬性 21
4.1 VHDL操作符 21
4.1.1 賦值操作符 21
4.1.2 邏輯操作符 21
4.1.3 算術操作符 22
4.1.4 關係操作符 23
4.1.5 移位操作符 24
4.1.6 連線操作符 24
4.1.7 操作符重載 25
4.2 VHDL的屬性 26
4.2.1 預定義屬性 26
4.2.2 值類型屬性 26
4.2.3 函式類型屬性 27
4.2.4 信號類型屬性 30
4.2.5 TYPE類型屬性 31
4.2.6 RANGE類型屬性 31
4.2.7 用戶自定義屬性 32
4.3 GENERIC參數傳遞 32
4.4 VHDL設計實例 33
4.4.1 十六進制7段解碼器 33
4.4.2 16位乘16位的乘法器 34
4.4.3 波形發生器 35
第5章 VHDL中的順序語句 38
5.1 信號賦值語句和變數賦值語句 38
5.2 WAIT語句 39
5.2.1 WAIT ON 39
5.2.2 WAIT UNTIL 40
5.2.3 WAIT FOR 40
5.2.4 多條件等待語句 41
5.2.5 逾時等待的處理 41
5.3 IF語句 41
5.4 CASE語句 44
5.5 LOOP語句 46
5.5.1 FOR LOOP循環 47
5.5.2 WHILE LOOP循環 47
5.6 NEXT語句 48
5.7 EXIT語句 49
5.8 RETURN語句 49
5.9 NULL語句 50
5.10 過程調用語句 51
5.11 斷言語句 52
5.12 REPORT語句 53
第6章 VHDL中的並行語句 56
6.1 進程語句 56
6.2 塊語句 58
6.3 並行信號代入語句 60
6.3.1 並發信號代入語句 61
6.3.2 條件信號代入語句 62
6.3.3 選擇信號代入語句 63
6.4 並行斷言語句 64
6.5 並行過程調用語句 65
6.6 參數傳遞語句 66
6.7 元件例化語句 67
6.8 生成語句 69
6.8.1 FOR-GENERATE模式的生成語句 69
6.8.2 IF-GENERATE模式 71
第7章 VHDL子程式和元件例化 74
7.1 程式包 74
7.1.1 程式包的說明 75
7.1.2 程式包體的描述 75
7.1.3 程式包的使用 76
7.2 層次化建模和元件例化 76
7.2.1 層次化建模 77
7.2.2 元件聲明 77
7.2.3 連線埠映射 78
7.2.4 GENERIC映射 79
7.3 函式和過程 80
7.3.1 函式 80
7.3.2 全局函式和局部函式 81
7.3.3 過程 81
7.3.4 全局過程和局部過程 82
7.3.5 子程式的重載 82
7.3.6 函式和過程的比較 83
7.4 元件配置和子程式套用實例 83
7.4.1 元件例化實例 83
7.4.2 函式套用實例 86
第8章 組合邏輯電路設計 88
8.1 門電路 88
8.1.1 二輸入與門電路 88
8.1.2 二輸入或門電路 89
8.1.3 二輸入與非門電路 90
8.1.4 二輸入或非門電路 92
8.1.5 反相門電路 94
8.1.6 二輸入異或門電路 95
8.1.7 三輸入與非門電路 96
8.2 編碼器和解碼器 97
8.2.1 編碼器 97
8.2.2 解碼器 101
8.3 多路選擇器 102
8.4 運算器 105
8.4.1 比較器 105
8.4.2 加法器 106
8.4.3 求補器 107
8.5 三態門 107
第9章 時序邏輯電路的設計 109
9.1 觸發器 109
9.1.1 D觸發器 109
9.1.2 JK觸發器 110
9.1.3 T觸發器 112
9.1.4 鎖存器 113
9.2 暫存器和移位暫存器 114
9.2.1 暫存器 114
9.2.2 移位暫存器 115
9.3 計數器 118
9.3.1 同步計數器 119
9.3.2 異步計數器 120
9.4 分頻器 122
第10章 有限狀態機 129
10.1 有限狀態機概述 129
10.2 有限狀態機的建模 129
10.2.1 狀態的處理 130
10.2.2 模型的構建 130
10.3 狀態編碼 131
10.3.1 順序碼 131
10.3.2 枚舉類型的編碼 131
10.3.3 一位有效編碼 131
10.3.4 綜合工具的設定 131
10.3.5 定義編碼方式的語法格式 132
10.3.6 初始化有限狀態機 132
10.4 有限狀態機的設計實例 133
10.4.1 Moore有限狀態機 133
10.4.2 Mealy有限狀態機 135
10.4.3 交通信號燈 137
10.4.4 硬幣兌換機 140
第11章 擴頻通信技術 144
11.1 分頻器 144
11.1.1 偶數分頻器的設計 144
11.1.2 奇數分頻器的設計 145
11.1.3 半整數分頻器的設計 148
11.1.4 大數目分頻器的設計 149
11.2 循環冗餘校驗(CRC) 151
11.2.1 CRC的基本原理 151
11.2.2 CRC的實現方法 152
11.2.3 CRC程式的實現 152
11.3 快速加法器 153
11.3.1 並行加法器 154
11.3.2 流水線加法器 156
第12章 SAP-1 CPU電路設計 159
12.1 SAP-1 CPU及計算機的組成結構簡介 159
12.2 SAP-1 CPU指令、定址法、程式設計 161
12.3 16×8的ROM設計與仿真 162
12.4 SAP-1 CPU設計與仿真 164
12.4.1 SAP-1指令周期 164
12.4.2 SAP-1 CPU設計 165
12.4.3 CPU設計的完整代碼 172
參考文獻 175