圖書簡介
EDA(Electronic Design Automation)工程是現代電子信息工程領域中發展迅速的一門新技術。它是以計算機為工作平台,以EDA軟體工具為開發環境,以硬體描述語言為主要表達方式,以大規模可程式器件為設計載體,以ASIC、SoC、FPGA晶片為目標器件,以電子系統設計為套用方向的電子產品自動化設計過程。
本書介紹了EDA技術和硬體描述語言VHDL的基礎知識,通過對工程實例的系統分析、程式設計和仿真,深入細緻地討論了其在數字系統設計中的廣泛套用,內容包括EDA和VHDL語言基礎、集成開發環境QuartusII、VHDL程式結構、VHDL語言要素、VHDL順序語句和並行語句、基本電路的VHDL實現方法,還介紹了VHDL語言的綜合、最佳化和層次設計並且給出了多個綜合套用實例。
本書由淺入深地介紹了使用VHDL語言進行EDA設計的整個流程,並且給出了大量的套用實例,適合具有一定數字電路基礎、希望學習積體電路設計的讀者,可作為高等院校電子類相關專業的教材,也可作為VHDL語言設計的參考手冊。
圖書目錄
第1章 EDA開發技術基礎 1
1.1 EDA技術基礎 1
1.1.1 EDA技術簡介 1
1.1.2 EDA技術的發展 2
1.2 EDA技術涉及的內容 3
1.2.1 可程式邏輯器件 3
1.2.2 硬體描述語言 4
1.2.3 集成開發環境 5
1.2.4 實驗開發系統 5
1.3 常用的硬體描述語言 6
1.3.1 AHDL語言 6
1.3.2 VerilogHDL語言 6
1.3.3 VHDL語言 6
1.4 EDA的集成開發環境 8
1.4.1 Quartus II集成開發環境 8
1.4.2 ISE和ModelSim集成開發環境 9
1.4.3 ispLEVER集成開發環境 10
1.5 使用EDA技術進行數字系統開發 11
1.5.1 數字系統的設計模型 11
1.5.2 數字系統的設計方法 11
1.5.3 使用VHDL語言進行數字系統的開發流程 12
1.6 課後習題 15
1.6.1 填空題 15
1.6.2 簡答題 15
第2章QuartusII集成開發環境 16
2.1QuartusII套用基礎 16
2.1.1使用圖形用戶界面 17
2.1.2使用EDA工具設計界面 18
2.1.3使用命令行可執行界面 20
2.1.4QuartusII集成開發環境的套用流程 21
2.1.5QuartusII的常用視窗 22
2.2在QuartusⅡ集成開發環境中進行VHDL語言開發 23
2.2.1編輯設計檔案 24
2.2.2創建工程 25
2.2.3設定工程屬性 27
2.2.4編譯項目 28
2.2.5仿真 29
2.2.6觀察RTL電路 33
2.2.7其他 34
2.3課後習題 34
2.3.1填空題 34
2.3.2簡答題 35
2.3.3實驗題 35
第3章VHDL語言基礎 37
3.1VHDL語言程式的結構 37
3.2VHDL語言的實體 39
3.2.1實體說明 39
3.2.2實體的類屬說明 39
3.2.3實體的連線埠說明 40
3.3VHDL語言的結構體 41
3.3.1結構體的說明語句 42
3.3.2結構體的信號定義 42
3.3.3結構體的功能描述語句 42
3.4VHDL語言的描述風格 43
3.4.1行為描述 44
3.4.2數據流描述 45
3.4.3結構描述 45
3.4.4混合描述 47
3.5課後習題 48
3.5.1填空題 48
3.5.2簡答題 48
3.5.3實驗題 49
第4章VHDL語言的基本要素 50
4.1VHDL語言文字的命名規範 50
4.1.1數值型文字 50
4.1.2字元串型文字 51
4.2VHDL語言的標識符 51
4.2.1短標識符 51
4.2.2擴展標識符 52
4.3VHDL語言的下標和下標段名 52
4.3.1下標 52
4.3.2下標段名 53
4.4VHDL語言的注釋 53
4.5VHDL語言的數據對象 54
4.5.1常量 54
4.5.2變數 55
4.5.3信號 56
4.5.4檔案 57
4.6VHDL語言的數據類型 58
4.6.1VHDL語言的數據類型按性質分類 58
4.6.2VHDL語言的數據類型按數據來源分類 58
4.6.3VHDL語言的數據類型簡介 59
4.6.4VHDL語言的數據類型轉換 67
4.7VHDL語言的操作符 70
4.7.1VHDL語言的操作符種類和優先權 70
4.7.2VHDL語言的算術操作符 72
4.7.3VHDL語言的關係操作符 74
4.7.4VHDL語言的邏輯操作符 75
4.7.5VHDL語言的重載操作符 76
4.8課後習題 76
4.8.1填空題 76
4.8.2簡答題 77
4.8.3實驗題 77
第5章VHDL語言的順序描述語句 79
5.1賦值語句 79
5.2代入語句 80
5.3賦值語句和代入語句進階 81
5.3.1賦值語句和代入語句的區別 81
5.3.2賦值語句和代入語句的賦值對象 82
5.4流程控制語句 84
5.4.1IF語句 84
5.4.2CASE語句 86
5.4.3LOOP語句 88
5.4.4NEXT語句 89
5.4.5EXIT語句 90
5.5WAIT語句 91
5.5.1WAIT語句的無限等待 91
5.5.2WAITON語句 92
5.5.3WAITUNTIL語句 92
5.5.4WAITFOR語句 93
5.5.5多條件WAIT語句 94
5.6空操作語句 94
5.7報告語句 94
5.8斷言語句 95
5.9課後習題 96
5.9.1填空題 96
5.9.2簡答題 96
5.9.3實驗題 97
第6章VHDL語言的並行描述語句 98
6.1並發信號代入語句 98
6.1.1並發信號代入語句基礎 98
6.1.2條件信號代入語句 99
6.1.3選擇信號代入語句 100
6.2進程語句 101
6.3元件調用語句 103
6.4連線埠映射語句 105
6.4.1連線埠位置映射 105
6.4.2連線埠名稱映射 106
6.5類屬參數傳遞語句 106
6.6塊語句 107
6.6.1普通塊語句 107
6.6.2衛式塊語句 109
6.7過程語句 110
6.7.1子程式和包集合 110
6.7.2過程語句的定義與使用 111
6.7.3並發過程調用語句 113
6.8函式語句 114
6.9返回語句 115
6.10生成語句 116
6.10.1FOR-GENERATE結構的生成語句 116
6.10.2IF-GENERATE結構的生成語句 117
6.11延時語句 119
6.11.1慣性延時語句 119
6.11.2傳輸延時語句 120
6.12課後習題 120
6.12.1填空題 120
6.12.2簡答題 121
6.12.3實驗題 121
第7章使用VHDL語言設計組合邏輯電路 123
7.1組合邏輯電路設計基礎 123
7.1.1邏輯代數基礎 123
7.1.2邏輯函式的表示方法 126
7.1.3邏輯代數的定理和規則 127
7.1.4組合邏輯電路設計過程 129
7.1.5組合邏輯電路中的競爭與冒險 130
7.1.6組合邏輯電路的設計模式和方法 132
7.2組合邏輯的基本電路設計 132
7.2.1與門設計 133
7.2.2非門設計 137
7.2.3或門設計 139
7.2.4與非門設計 143
7.2.5異或門設計 146
7.2.6三態門設計 149
7.3解碼器設計 153
7.3.1變數解碼器設計 153
7.3.2碼制變化解碼器設計 156
7.3.3顯示解碼器設計 161
7.4編碼器設計 165
7.4.1編碼器基礎 165
7.4.274系列優先編碼器 165
7.4.3VHDL描述的優先編碼器 165
7.5數據選擇器設計 167
7.5.1數據選擇器基礎 167
7.5.274系列數據選擇器 168
7.5.3數據選擇器的VHDL語言實現 169
7.6比較器設計 171
7.6.1比較器基礎 171
7.6.274系列比較器 172
7.6.3VHDL描述的比較器 173
7.7加法器設計 175
7.7.1加法器基礎 175
7.7.274系列加法器 176
7.7.3加法器的VHDL語言實現 177
7.8減法器設計 180
7.8.1減法器基礎 180
7.8.2減法器的VHDL語言實現 181
7.9乘法器設計 182
7.9.1乘法器的工作原理 182
7.9.2乘法器的VHDL語言實現 183
7.10奇偶檢測電路設計 184
7.10.1奇偶檢測電路基礎 184
7.10.274系列奇偶檢測電路 185
7.10.3VHDL描述的奇偶檢測電路 185
7.11其他邏輯電路設計 187
7.11.1雙向匯流排設計 187
7.11.2補碼器 189
7.12課後習題 190
7.12.1填空題 190
7.12.2簡答題 190
7.12.3實驗題 190
第8章使用VHDL語言設計時序電路 192
8.1時序電路基礎 192
8.2時序電路的時鐘信號 193
8.2.1VHDL語言的時鐘邊沿描述 193
8.2.2使用時鐘作為敏感信號 194
8.3時序電路的復位信號 196
8.3.1時序電路的同步復位方法 196
8.3.2時序電路的異步復位方法 197
8.4基礎時序電路(觸發器)設計 198
8.4.1RS觸發器設計 199
8.4.2JK觸發器設計 205
8.4.3D觸發器設計 209
8.4.4T觸發器設計 212
8.5暫存器設計 214
8.5.1暫存器基礎 214
8.5.274系列暫存器 214
8.5.3VHDL語言描述的暫存器 214
8.6移位暫存器設計 214
8.6.1移位暫存器基礎 214
8.6.274系列移位暫存器 215
8.6.3VHDL語言描述的移位暫存器 216
8.7計數器設計 221
8.7.1計數器基礎 221
8.7.274系列計數器 221
8.7.3VHDL語言描述的計數器 222
8.8課後習題 225
8.8.1填空題 225
8.8.2簡答題 226
8.8.3實驗題 226
第9章使用VHDL語言設計存儲器 228
9.1隻讀存儲器設計 228
9.1.1隻讀存儲器基礎 228
9.1.2隻讀存儲器的VHDL語言實現 228
9.2隨機存儲器設計 232
9.2.1隨機存儲器基礎 232
9.2.2隨機存儲器的VHDL語言實現 233
9.3先進先出存儲器設計 236
9.3.1先進先出存儲器基礎 236
9.3.2先進先出存儲器的VHDL語言實現 236
9.4課後習題 238
9.4.1填空題 238
9.4.2簡答題 238
9.4.3實驗題 238
第10章使用VHDL語言設計狀態機 239
10.1狀態機基礎 239
10.1.1狀態機的分類 239
10.1.2狀態機的VHDL語言描述方法 240
10.1.3狀態機的狀態編碼 241
10.1.4狀態機的非法狀態 242
10.2狀態機的VHDL語言實現 243
10.2.1帶變數輸出的狀態機 243
10.2.2帶同步復位的狀態機 245
10.2.3米勒型狀態機 247
10.2.4莫爾型狀態機 249
10.2.5帶莫爾/米勒型輸出的狀態機 251
10.3狀態機的實際套用 253
10.3.1狀態機套用實例——序列信號發生器 253
10.3.2狀態機套用實例——循環彩燈控制器 255
10.4課後習題 258
10.4.1填空題 258
10.4.2簡答題 258
10.4.3實驗題 258
第11章VHDL語言的層次化設計 260
11.1層次化結構設計基礎 260
11.2自頂向下的設計方法 262
11.3VHDL語言的庫 263
11.3.1庫的聲明 263
11.3.2VHDL語言的常用庫 264
11.4VHDL語言的程式包 265
11.4.1程式包的定義和使用 266
11.4.2VHDL語言的常用程式包 267
11.5VHDL語言的配置 275
11.5.1配置的標準調用格式和結構 276
11.5.2結構體中的元件配置 279
11.5.3連線埠映射和實體映射的配置 280
11.5.4塊的配置 280
11.5.5使用配置來傳遞類屬性 280
11.6課後習題 282
11.6.1填空題 282
11.6.2簡答題 282
11.6.3實驗題 282
第12章VHDL語言的仿真、綜合和最佳化 283
12.1VHDL語言的仿真 283
12.1.1使用VHDL語言生成仿真輸入信號 284
12.1.2VHDL語言仿真程式的規範 289
12.1.3VHDL語言仿真的δ延時 292
12.2VHDL語言的綜合 293
12.2.1VHDL語言綜合的分類 293
12.2.2VHDL語言的綜契約束條件 294
12.2.3VHDL語言的綜合工藝庫 295
12.2.4門級映射 296
12.3VHDL語言的設計最佳化 296
12.3.1VHDL語言的設計最佳化基礎 296
12.3.2VHDL語言的模組復用 297
12.3.3VHDL語言的流水線設計 300
12.4課後習題 301
12.4.1填空題 301
12.4.2簡答題 302
12.4.3實驗題 302
第13章VHDL語言的屬性描述語句 304
13.1屬性預定義 304
13.2數值類屬性描述語句 304
13.2.1一般數據的數值屬性描述語句 305
13.2.2數組的數值屬性描述語句 306
13.2.3塊的數值屬性描述語句 307
13.3函式類屬性描述語句 309
13.3.1數據類型的屬性函式 309
13.3.2數組的屬性函式 312
13.3.3信號的屬性函式 313
13.4信號類屬性描述語句 317
13.4.1屬性'DELAYED語句 317
13.4.2屬性'STABLE語句 319
13.4.3屬性'QUIET語句 320
13.4.4屬性'TRANSACTION語句 322
13.5數據類型類屬性描述語句 323
13.6數據區間類屬性描述語句 324
13.7用戶自定義屬性語句 325
13.8課後習題 327
13.8.1填空題 327
13.8.2簡答題 327
13.8.3實驗題 327
第14章VHDL語言的數字系統設計套用實例 328
14.1交通燈控制器 328
14.1.1交通燈控制器的需求分析 328
14.1.2交通燈控制器的系統設計 328
14.1.3交通燈控制器的VHDL語言實現 329
14.1.4交通燈控制器的仿真 332
14.2計程車計費器 333
14.2.1計程車計費器的需求分析 333
14.2.2計程車計費器的系統設計 334
14.2.3計程車計費器的VHDL語言實現 336
14.2.4計程車計費器的仿真 344
14.3自動售貨機 346
14.3.1自動售貨機的需求分析 346
14.3.2自動售貨機的系統設計 346
14.3.3自動售貨機的VHDL語言實現 347
14.3.4自動售貨機的仿真 350
14.4通用異步傳送器 352
14.4.1通用異步傳送器的需求分析 353
14.4.2通用異步傳送器的系統設計 353
14.4.3通用異步傳送器的VHDL語言實現 355
14.4.4通用異步傳送器的仿真 362