圖書簡介
本書系統地闡述了VHDL硬體描述語言的基礎知識、語法定義、編程技巧和使用方法。全書共9章,第1章為緒論,包括VHDL概述、語言設計環境、設計實現和教學建議;第2章為VHDL語言的詞法基礎;第3章為VHDL語言的程式結構;第4章為VHDL的語法基礎;第5章為VHDL程式設計基礎,第4、5章的VHDL程式片段完全以理解語法規範為目的;第6章為VHDL程式設計實踐,本章的VHDL程式片段完全以理解邏輯電路結構為目的;第7章為VHDL仿真與測試,給出了VHDL測試程式、仿真程式的編寫方法和片上內建自測試的概念;第8章為VHDL標準程式接口,列出了接口函式清單,給出了C++聯合VHDL設計、仿真、測試的實例;第9章為IP復用與SoC設計,詳細介紹了SoC晶片研發流程和軟體驅動開發環境。
目錄
第1章緒論 1
1.1VHDL概述 1
1.1.1硬體描述語言的誕生 1
1.1.2HDL語言的種類 2
1.1.3VHDL語言的特點 3
1.1.4VHDL語言的優勢 4
1.2VHDL語言設計環境 4
1.2.1設計工具 4
1.2.2仿真工具 6
1.3VHDL語言設計實現 7
1.4VHDL語言課程教學建議 9
1.4.1課時安排 9
1.4.2實驗 9
1.5小結 11
1.6習題 11
第2章VHDL語言的詞法基礎 12
2.1對象 12
2.1.1對象的聲明與初始化 12
2.1.2常量 12
2.1.3變數 13
2.1.4信號 14
2.1.5檔案 14
2.1.6對象的隱式創建 15
2.2詞法元素 15
2.2.1數字 15
2.2.2字元、字元串及位串 16
2.2.3分隔設定 17
2.2.4標識符和保留字 17
2.2.5注釋 19
2.3數據類型 19
2.3.1類型與子類型 20
2.3.2標量類型 20
2.3.3複合類型 23
2.3.4存取類型 25
2.3.5檔案類型 25
2.3.6隱含類型 25
2.3.7IEEE標準類型 26
2.3.8類型轉換 27
2.4運算操作符 28
2.4.1邏輯運算符 28
2.4.2關係運算符 29
2.4.3移位運算符 30
2.4.4並置運算符 31
2.4.5算術運算符 31
2.4.6狀態運算符 31
2.4.7運算符的優先權 32
2.5小結 32
2.6習題 33
第3章VHDL語言的程式結構 34
3.1實體 35
3.1.1類型說明部分 36
3.1.2連線埠說明部分 36
3.1.3實體說明部分 38
3.1.4實體語句部分 38
3.2結構體 38
3.2.1結構體名 39
3.2.2結構體說明部分 39
3.2.3結構體語句 40
3.2.4進程語句 40
3.2.5模組語句 45
3.3子程式 49
3.3.1過程語句 49
3.3.2函式語句 51
3.3.3RETURN語句 53
3.4VHDL程式設計風格 54
3.4.1結構體的行為描述法 54
3.4.2結構體的數據流描述法 55
3.4.3結構體的結構化描述法 56
3.5小結 57
3.6習題 57
第4章VHDL的語法基礎 58
4.1並行語句與順序語句 58
4.2變數賦值語句與信號代入語句 59
4.2.1變數賦值語句 60
4.2.2信號代入語句 61
4.3條件分支語句與循環語句 64
4.3.1IF語句 64
4.3.2CASE語句 67
4.3.3LOOP語句 68
4.3.4NULL語句 71
4.4元件與模組的復用 71
4.4.1元件聲明與調用 71
4.4.2參數傳遞子句與參數映射 71
4.4.3I/O連線埠子句與連線埠映射 73
4.4.4生成語句 74
4.5調試 77
4.5.1REPORT語句 77
4.5.2斷言語句 77
4.6小結 78
4.7習題 78
第5章VHDL程式設計基礎 79
5.1層次化設計方法 79
5.2元件庫 79
5.2.1庫的概念及語法 79
5.2.2庫的分類 80
5.2.3構造元件 81
5.2.4程式打包 87
5.2.5構建元件庫 88
5.2.6元件的調用 88
5.3配置 89
5.3.1默認連線和默認配置 90
5.3.2塊配置 92
5.3.3元件的配置 94
5.3.4配置中的連線埠映射與參數傳遞 96
5.3.5多層配置 100
5.4可見性 100
5.4.1聲明的可見性 100
5.4.2USE語句 101
5.4.3 變數共享 101
5.5重載 102
5.5.1函式重載 102
5.5.2運算符重載 105
5.6別名 106
5.7程式包 107
5.7.1程式包聲明 108
5.7.2程式包體 109
5.7.3常用程式包 110
5.8文本I/O操作 116
5.8.1文本類型定義 116
5.8.2檔案訪問過程定義 117
5.8.3TEXTIO程式包的語法 117
5.8.4TEXTIO程式包的內容 118
5.8.5TEXTIO程式包的調用 119
5.9小結 121
5.10習題 122
第6章VHDL程式設計實踐 123
6.1組合邏輯設計 123
6.1.1門電路 123
6.1.2編碼器的設計 124
6.1.3解碼器的設計 126
6.1.4加法器的設計 128
6.2時序邏輯電路設計 129
6.2.1時鐘信號的VHDL描述方法 130
6.2.2時序電路中復位信號Reset的VHDL描述方法 132
6.3觸發器的設計 133
6.3.1D觸發器 133
6.3.2帶異步復位的D觸發器 134
6.4暫存器的設計 136
6.4.18位通用暫存器 136
6.4.2串入/串出移位暫存器 136
6.5計數器的設計 138
6.5.1同步計數器 138
6.5.2可逆計數器 139
6.5.3具有數據載入和進位控制接口的同步計數器 140
6.6狀態機的設計 142
6.6.1Moore型狀態機的設計 143
6.6.2狀態機的建立過程 144
6.6.3狀態機的復位 145
6.6.4狀態機信號輸出方法 150
6.6.5Mealy型狀態機的設計 155
6.6.6容錯狀態機的設計 155
6.7微處理器設計 157
6.7.1微處理器設計的任務 157
6.7.2精簡指令集計算機 157
6.7.3URISC處理器設計 160
6.7.44位微處理器設計 164
6.7.5構造微處理器基本元件 166
6.7.64位微處理器的頂層設計 174
6.8小結 175
6.9習題 176
第7章VHDL仿真與測試 177
7.1概述 177
7.1.1ModelSim的主要特點 177
7.1.2ModelSim的操作步驟 179
7.1.3ModelSim的操作實例 180
7.2用VHDL編寫testbench 182
7.2.1簡單的testbench 182
7.2.2八進制計數器測試平台設計 184
7.3激勵信號 187
7.3.1具有獨立激勵源的testbench 188
7.3.2用TextIO輸入激勵信號 190
7.4用EDA工具生成testbench 194
7.5小結 196
7.6習題 196
第8章VHDL標準程式接口 197
8.1VHPI概述 197
8.1.1VHPI的套用 197
8.1.2VHPI的功能 198
8.1.3VHPI命名規則 199
8.1.4VHPI句柄 199
8.2類繼承層次和VHPI信息模型 200
8.2.1類繼承層次 201
8.2.2VHPI信息模型 201
8.3VHPI訪問函式 202
8.3.1信息訪問函式 202
8.3.2屬性訪問函式 203
8.4VHPI工具運行 204
8.4.1註冊階段 205
8.4.2分析階段 208
8.4.3解釋階段 208
8.4.4初始化階段 209
8.4.5仿真階段 209
8.4.6保存階段 209
8.4.7重啟階段 210
8.4.8重置階段 210
8.4.9終止階段 211
8.5VHPI回調 211
8.5.1回調函式 212
8.5.2回調方法與回調屬性 213
8.5.3回調原因 214
8.6VHPI數值訪問和更新 221
8.6.1數值結構和類型 221
8.6.2讀取對象數值 224
8.6.3格式化 224
8.6.4更新對象值 225
8.6.5驅動事務調度 229
8.7VHPI套用舉例 230
8.7.1概述 230
8.7.2構建VHPI套用 230
8.7.3使用VHPI 231
8.7.4VHPI實例 233
8.8小結 235
8.9習題 236
第9章IP復用與SoC設計 237
9.1概述 237
9.2IP模組的設計 238
9.2.1硬IP模組設計 239
9.2.2軟IP模組設計 240
9.2.3IP模組的封裝 240
9.2.4IP模組的復用 241
9.3SoC晶片設計 242
9.3.1SoC的設計基礎 242
9.3.2SoC的套用設計 244
9.3.3SoC的晶片實現 244
9.3.4SoC的晶片測試 245
9.4基於IP的SoC設計(1)--嵌入式微處理器系統 246
9.5基於IP的SoC設計(2)--網路多核處理器實現 255
9.6基於IP的SoC設計(3)--萬兆網路收發器仿真 265
9.7小結 288
9.8習題 288
參考文獻 289
附錄AVHPI類的繼承層次 290
附錄BVHPI函式參考 294