內容簡介
本書系統地介紹了可程式邏輯器件PLD的基本知識,儘可能讓讀者對PLD系統設計技術有較為全面的了解。PLD的實用性決定了實踐環節是不可或缺的,理論與實踐的緊密結合是本書的特色。本書兼顧了Xilinx、Altera兩家公司的PLD及軟體開發平台,由淺入深、循序漸進地引導讀者學習和實踐,使讀者逐步掌握PLD系統設計技術。本書內容包括基礎篇和實踐篇兩部分共11章。基礎篇主要介紹EDA技術概述、可程式邏輯器件PLD、
VHDL語言、Verilog HDL語言、ISE軟體、Quartus II軟體、SOPC設計入門等;實踐篇介紹了PLD開發實驗系統、組合邏輯電路實驗、時序邏輯電路實驗、PLD設計實例等內容。本書可以作為電子設計人員的自學和參考用書,也可以作為高等院校電子、電氣、自動化、計算機等相關專業的教材。
圖書目錄
第1章 EDA技術概述
1.1 EDA技術的涵義 1
1.2 EDA技術的發展歷程 2
1.3 EDA技術的主要內容 2
1.3.1 可程式邏輯器件 2
1.3.2 硬體描述語言 3
1.3.3 EDA軟體開發工具 3
1.3.4 實驗開發系統 3
1.4 數字系統的設計 3
1.4.1 數字系統的設計模型 3
1.4.2 數字系統的設計準則 4
1.4.3 數字系統的設計步驟 5
1.4.4 數字系統的設計方法 6
1.4.5 兩種設計方法的比較 7
1.4.6 EDA技術設計流程 8
1.5 EDA技術的套用形式 9
1.6 EDA技術的發展趨勢 10
1.6.1 可程式邏輯器件發展趨勢 10
1.6.2 開發工具的發展趨勢 11
第2章 可程式邏輯器件PLD
2.1 PLD的發展歷程 12
2.2 PLD的分類 14
2.2.1 按PLD集成密度分類 14
2.2.2 按PLD編程方式分類 14
2.2.3 按PLD結構特點分類 15
2.3 陣列型PLD的結構 15
2.3.1 簡單PLD的基本結構 15
2.4.1 FPGA的分類 19
2.4.2 FPGA的基本結構 20
2.5 邊界掃描測試技術 23
2.6 在系統編程ISP 24
第3章 VHDL語言
3.1 VHDL語言概述 26
3.2 VHDL程式結構 26
3.2.1 實體 28
3.2.2 結構體 32
3.2.3 塊語句 34
3.2.4 進程 35
3.2.5 子程式 36
3.2.6 庫、程式包和配置 40
3.3 VHDL的語言要素 41
3.3.1 VHDL語言的基本語法 41
3.3.2 數據對象 44
3.3.3 數據類型 46
3.3.4 運算操作符 50
3.3.5 屬性 52
3.3.6 保留關鍵字 54
3.4 VHDL的基本語句 54
3.4.1 順序語句 54
3.4.2 並發語句 62
3.5 VHDL的描述舉例 65
3.5.1 VHDL描述風格 65
第4章 Verilog HDL語言
4.1 Verilog HDL語言概述 79
4.1.1 Verilog HDL的發展歷史 79
4.1.2 Verilog HDL和 VHDL的比較 79
4.2 Verilog HDL程式基本結構 80
4.2.1 Verilog HDL程式基本結構 80
4.2.2 模組的結構 82
4.3 Verilog HDL語言要素 84
4.3.1 標識符 84
4.3.2 常量、變數和數據類型 85
4.3.3 運算符及表達式 89
4.4 Verilog HDL基本語句 95
4.4.1 賦值語句 96
4.4.2 塊語句 98
4.4.3 條件語句 101
4.4.4 循環語句 105
4.4.5 結構說明語句 106
4.4.6 編譯預處理 111
4.5 Verilog HDL描述舉例 115
4.5.1 Verilog HDL描述風格 116
第5章 ISE軟體
5.1 ISE軟體主界面 124
5.2 ISE軟體設計流程 125
5.2.1 設計輸入 126
5.2.2 綜合最佳化 126
5.2.3 實現 126
5.2.4 仿真驗證 127
5.2.5 編程配置 127
5.3 用ISE軟體新建工程 127
5.4 原理圖編輯設計方法 130
5.4.1 新建工程檔案 131
5.4.2 新建原理圖檔案 131
5.4.3 基於XST的綜合 137
5.4.4 基於ISE的仿真 140
5.4.5 基於ISE的實現 143
5.4.6 使用Floorplan分配引腳 143
5.4.7 使用UCF檔案分配引腳 144
5.4.8 下載驗證 145
5.5 文本編輯設計方法 147
5.5.1 新建工程檔案 148
5.5.2 新建文本檔案 148
5.5.3 代碼模板的使用 149
5.6 混合編輯設計方法 151
5.6.1 新建頂層工程檔案 151
5.6.2 編輯模組的VHDL程式並生成元件符號 151
5.6.3 設計頂層電路原理圖 152
5.6.4 設計的實現 155
第6章 Quartus II軟體
6.1 QuartusⅡ軟體主視窗 156
6.2 Quartus II軟體設計流程 157
6.2.1 設計輸入 157
6.2.2 綜合最佳化 158
6.2.3 布局布線 158
6.2.4 仿真驗證 158
6.2.5 編程配置 158
6.3 用Quartus II軟體新建工程 159
6.4 原理圖編輯設計方法 162
6.4.1 新建工程檔案 162
6.4.2 新建原理圖檔案 162
6.4.3 編譯工程 166
6.4.4 新建仿真矢量波形檔案 169
6.4.5 波形仿真 172
6.4.6 I/O引腳分配 173
6.4.7 下載驗證 175
6.5 文本編輯設計方法 177
6.5.1 新建工程檔案 177
6.5.2 新建文本檔案 177
6.5.3 編譯工程 180
6.5.4 新建仿真矢量波形檔案 180
6.5.5 波形仿真 182
6.5.6 I/O引腳分配 183
6.5.7 下載驗證 183
6.6 混合編輯設計方法 184
6.6.1 新建工程檔案 184
6.6.2 新建文本檔案 184
6.6.3 新建原理圖檔案 186
6.6.4 編譯工程 187
6.6.5 I/O引腳分配 187
6.6.6 下載驗證 188
第7章 SOPC設計入門
7.1 SOPC概述 190
7.1.1 片上系統 190
7.2 NiosII嵌入式處理器簡介 191
7.2.1 NiosⅡ嵌入式處理器主要特性 192
7.2.2 NiosⅡ嵌入式處理器結構 193
7.2.3 NiosⅡ嵌入式處理器運行模式 194
7.2.5 算術邏輯單元ALU 195
7.2.6 異常和中斷控制 196
7.2.7 存儲器與I/O組織 196
7.3 Avalon系統互連結構匯流排 198
7.3.2 Avalon匯流排特點 201
7.3.3 Avalon匯流排為外設提供的服務 201
7.3.4 Avalon匯流排傳輸模式 202
7.4 HAL系統庫簡介 202
7.4.1 HAL SOPC系統的層次結構 202
7.4.2 HAL系統庫的特點 203
7.4.3 基於HAL系統庫設計應用程式 204
7.5 SOPC設計流程 204
7.5.1 SOPC硬體設計流程 205
7.5.2 SOPC軟體設計流程 206
7.6 SOPC設計舉例 206
7.6.1 用Quartus II軟體新建檔案 206
7.6.2 用SOPC Builder軟體生成硬體系統 206
7.6.3 用Quartus II軟體處理硬體系統 211
7.6.4 用Nios II IDE軟體設計應用程式 213
第8章 PLD開發實驗系統
8.1 PLD開發實驗系統的結構 221
8.2 EPM1270核心板 221
8.3 XC95288XL核心板 222
8.4 EP2C5Q208核心板 222
8.5 MAGIC3200擴展板 223
第9章 組合邏輯電路實驗
9.1 實驗1 門電路實驗 224
9.1.1 實驗目的 224
9.1.2 實驗設備 224
9.1.3 實驗原理 224
9.1.4 實驗步驟 225
9.1.5 實驗結果 225
9.1.6 參考程式及引腳分配 225
9.2 實驗2 全加器實驗 226
9.2.1 實驗目的 226
9.2.2 實驗設備 226
9.2.3 實驗原理 226
9.2.4 實驗步驟 227
9.2.5 實驗結果 227
9.2.6 參考程式及引腳分配 228
9.3 實驗3 2-4解碼器實驗 228
9.3.1 實驗目的 228
9.3.2 實驗設備 228
9.3.3 實驗原理 229
9.3.4 實驗步驟 229
9.3.5 實驗結果 229
9.3.6 參考程式及引腳分配 230
9.4 實驗4 4-2編碼器實驗 230
9.4.1 實驗目的 230
9.4.2 實驗設備 231
9.4.3 實驗原理 231
9.4.4 實驗步驟 231
9.4.5 實驗結果 232
9.4.6 參考程式及引腳分配 232
9.5 實驗5 數據選擇器實驗 233
9.5.1 實驗目的 233
9.5.2 實驗設備 233
9.5.3 實驗原理 233
9.5.4 實驗步驟 233
9.5.5 實驗結果 234
9.5.6 參考程式及引腳分配 234
9.6 實驗6 數據比較器實驗 235
9.6.1 實驗目的 235
9.6.2 實驗設備 235
9.6.3 實驗原理 235
9.6.4 實驗步驟 236
9.6.5 實驗結果 236
9.6.6 參考程式及引腳分配 236
9.7 實驗7 顯示解碼器實驗 237
9.7.1 實驗目的 237
9.7.2 實驗設備 237
9.7.3 實驗原理 238
9.7.4 實驗步驟 238
9.7.5 實驗結果 239
9.7.6 參考程式及引腳分配 239
第10章 時序邏輯電路實驗
10.1 實驗8 觸發器實驗 241
10.1.1 實驗目的 241
10.1.2 實驗設備 241
10.1.3 實驗原理 241
10.1.4 實驗步驟 242
10.1.5 實驗結果 242
10.1.6 參考程式及引腳分配 243
10.2 實驗9 分頻器實驗 243
10.2.1 實驗目的 243
10.2.2 實驗設備 244
10.2.3 實驗原理 244
10.2.4 實驗步驟 244
10.2.5 實驗結果 244
10.2.6 參考程式及引腳分配 245
10.3 實驗10 移位暫存器實驗 245
10.3.1 實驗目的 245
10.3.2 實驗設備 245
10.3.3 實驗原理 246
10.3.4 實驗步驟 246
10.3.5 實驗結果 247
10.3.6 參考程式及引腳分配 247
10.4 實驗11 計數器實驗 248
10.4.1 實驗目的 248
10.4.2 實驗設備 248
10.4.3 實驗原理 248
10.4.4 實驗步驟 249
10.4.5 實驗結果 249
10.4.6 參考程式及引腳分配 250
10.5 實驗12 數字電子鐘實驗 251
10.5.1 實驗目的 251
10.5.2 實驗設備 251
10.5.3 實驗原理 252
10.5.4 實驗步驟 252
10.5.5 實驗結果 253
10.5.6 數字電子鐘VHDL參考程式 253
10.5.7 數字電子鐘引腳分配 256
第11章 PLD設計實例
11.1 實例1 8×8LED點陣掃描 257
11.1.1 實例現象 257
11.1.2 重點與難點 257
11.1.3 實例說明 257
11.1.4 實例VHDL參考程式 259
11.2 實例2 RS232串口通信 261
11.2.1 實例現象 261
11.2.2 重點與難點 261
11.2.3 實例說明 261
11.2.4 實例VHDL參考程式 262
11.3.1 實例現象 268
11.3.2 重點與難點 268
11.3.3 實例說明 268
11.3.4 實例VHDL參考程式 269
11.4.1 實例現象 274
11.4.2 重點與難點 274
11.4.3 實例說明 274
11.4.4 實例VHDL參考程式 275
11.5 實例5 LCD1602字元液晶顯示 276
11.5.1 實例現象 276
11.5.2 重點與難點 276
11.5.3 實例說明 276
11.5.4 實例VHDL參考程式 277
11.6 實例6 頻率計 284
11.6.1 實例現象 284
11.6.2 重點與難點 284
11.6.3 實例說明 284
11.6.4 實例VHDL參考程式 285
附錄1 288
附錄2 293
附錄3 297
參考文獻 301