內容簡介
本書既可作為高等院校電氣、自動化、計算機、通信、電子類專業的研究生、本科生的教材或參考書,也可供廣大ASIC設計人員和電子電路設計人員閱讀參考。
本書側重實戰,內容豐富,經典新穎實例兼而有之。全書共8章。第1章是EDA技術的概述和FPGA/CPLD相關產品的概述;第2章分別介紹ISE、Quartus II和Actel Libero IDE三種開發環境下FPGA工程的創建和調試方法;第3章主要介紹VHDL的基礎知識,目的是使初學者對VHDL產生系統的認識,有一定開發經驗的讀者可以跳過這部分;第4章主要介紹常用的VHDL程式結構,目的是使讀者掌握紮實的基本功;第5章主要介紹VHDL語言規範化標準和常見的Warning分析;第6章介紹Nios II軟核SOPC 系統,以具體實例講解Quartus II開發環境下軟核的創建和配置方法;第7章介紹Quartus II開發環境下各種IP核的配置方法,合理使用IP核可以簡化用戶的工程設計;第8章主要介紹Quartus II9.0軟體功能及常用輔助設計工具,這些工具可以使用戶更高效、更快速地完成其工程設計。書中列舉的大量實例都經過精心設計,包含了自頂向下的設計思想,模組化和層次化的設計方式,全部實例都經過軟體仿真驗證或硬體實際測試。
隨著半導體技術和計算機技術的飛速發展,積體電路的設計方法發生了深刻的變化。硬體描述語言應運而生,它的出現標誌電路設計領域的一次重大的變革。
目錄
第1章 緒論 1
1.1 EDA技術概論 1
1.1.1 EDA技術及發展 2
1.1.2 EDA技術套用 4
1.2 PLD及FPGA/CPLD產品概述 5
1.2.1 PLD技術及發展 6
1.2.2 PLD技術分類 6
1.2.3 PLD產品可程式原理 7
1.2.4 CPLD結構與可程式原理 21
1.2.5 FPGA結構與可程式原理 29
1.2.6 FPGA/CPLD器件配置器件 32
1.3 EDA設計基礎(數字系統) 33
小結 36
習題 36
第2章 FPGA/CPLD系統設計 37
2.1 FPGA/CPLD設計流程及常用開發工具 37
2.1.1 FPGA/CPLD設計流程 37
2.1.2 FPGA/CPLD常用開發工具 38
2.2 Quartus Ⅱ9.0軟體概述 38
2.2.1 Quartus Ⅱ 9.0軟體特點及支持的器件 39
2.2.2 Quartus Ⅱ 9.0軟體用戶界面及功能簡介 40
2.2.3 Quartus Ⅱ 9.0軟體設計流程 46
2.2.4 Quartus Ⅱ 9.0軟體設計實例 47
2.3 ISE10.1軟體概述 54
2.3.1 ISE10.1軟體特點及支持的器件 55
2.3.2 ISE10.1軟體用戶界面及功能簡介 55
2.3.3 ISE10.1軟體設計實例 60
2.4 Actel Libero IDE v9.1軟體概述 63
2.4.1 軟體特點及支持的器件 63
2.4.2 軟體用戶界面及功能簡介 65
2.4.3 Actel Libero IDE v9.1軟體設計實例 68
小結 72
習題 73
第3章 VHDL基礎 74
3.1 VHDL的基本元素 74
3.1.1 標識符 74
3.1.2 數據對象 76
3.1.3 數據類型 80
3.1.4 運算操作符 85
3.2 VHDL的語句基礎 90
3.2.1 進程語句 90
3.2.2 信號賦值語句 94
3.2.3 順序描述語句 98
3.2.4 並行描述語句 115
3.3 VHDL的屬性描述 124
3.3.1 值類屬性 125
3.3.2 函式類屬性 128
3.3.3 信號類屬性 131
3.3.4 數據類型類屬性 133
3.3.5 數據範圍類屬性 134
小結 135
習題 135
第4章 VHDL程式結構 136
4.1 VHDL基本建模結構 136
4.1.1 行為描述 136
4.1.2 數據流描述 137
4.1.3 結構描述 137
4.2 VHDL實體 139
4.2.1 實體語句 139
4.2.2 參數傳遞說明語句 139
4.2.3 參數傳遞映射語句 141
4.2.4 連線埠說明語句 141
4.2.5 實體說明部分 142
4.3 VHDL結構體 142
4.3.1 結構體名 143
4.3.2 結構體說明部分 143
4.3.3 並行處理語句 143
4.4 子程式 144
4.4.1 過程 144
4.4.2 函式 149
4.5 VHDL庫和程式包 154
4.5.1 庫 154
4.5.2 程式包 155
4.6 元件和配置 156
4.6.1 默認連線和默認配置 156
4.6.2 元件配置 159
4.6.3 塊的配置 161
4.6.4 結構體配置 164
小結 164
習題 165
第5章 VHDL語言規範化標準及常見Warning分析 166
5.1 編碼設計 166
5.1.1 結構化設計 166
5.1.2 代碼描述 167
5.1.3 內部命名規則 167
5.1.4 其他 168
5.2 可綜合代碼描述規則 168
5.2.1 概述 168
5.2.2 復位 169
5.2.3 時鐘 172
5.2.4 接口異步信號處理 174
5.2.5 暫存器和鎖存器 175
5.2.6 有限狀態機 177
5.2.7 使用Case語句的多路復用 181
5.2.8 編碼器 181
5.2.9 解碼器 185
5.2.10 計數器 188
5.2.11 運算 188
5.2.12 I/O 190
5.2.13 異步設計 191
5.3 最佳化設計 192
5.3.1 標準單元實現 193
5.3.2 複雜邏輯運算單元共享 193
5.3.3 中間信號 193
5.3.4 針對目標FPGA的最佳化 194
5.3.5 綜合工具設定最佳化 194
5.4 常見Warning分析 195
小結 196
習題 196
第6章 NIOS軟核SOPC系統設計 197
6.1 Nios Ⅱ軟核SOPC系統 197
6.1.1 SOPC技術簡介 197
6.1.2 Nios Ⅱ軟核SOPC系統結構及開發環境 198
6.2 Nios Ⅱ指令系統 199
6.2.1 暫存器結構 199
6.2.2 定址方式 201
6.2.3 Nios Ⅱ指令集 201
6.2.4 Nios Ⅱ定製指令 206
6.3 SOPC硬體系統開發 211
6.3.1 硬體開發流程及環境介紹 212
6.3.2 創建Quartus Ⅱ工程 212
6.3.3 生成Nios Ⅱ系統 214
6.3.4 集成Nios Ⅱ系統到Quartus Ⅱ工程 218
6.3.5 Quartus Ⅱ工程編譯及下載 219
6.4 SOPC軟體系統開發 219
6.4.1 軟體開發流程及環境介紹 219
6.4.2 HAL系統庫 220
6.4.3 Nios Ⅱ IDE用戶應用程式建立 220
6.5 Nios Ⅱ外圍設備 223
6.5.1 SDRAM控制器 223
6.5.2 CFI控制器 225
6.5.3 EPCS設備控制器 226
6.5.4 PIO控制器 227
6.5.5 定時器控制器 227
6.5.6 DMA控制器 229
6.5.7 SPI核 230
6.5.8 UART核 230
6.5.9 JTAGUART核 231
6.5.10 系統ID核 232
6.5.11 PLL核 232
6.5.12 mutex核 233
6.6 SOPC系統深入設計——用戶定製外設 234
6.6.1 元件開發流程 234
6.6.2 硬體設計 235
6.6.3 軟體設計 236
6.6.4 驗證設計 236
6.6.5 共享元件 237
小結 237
習題 237
第7章 Altera的IP核工具 238
7.1 基本概念 238
7.1.1 IP核的概念 238
7.1.2 Altera可提供的IP核 239
7.2 Altera基本宏功能設計實現 241
7.2.1 基本宏功能定製 241
7.2.2 基本宏功能實現 244
7.2.3 設計實例 247
7.3 Altera IP核設計實現 250
7.3.1 IP核定製 251
7.3.2 IP核實現 253
7.3.3 設計實例 254
小結 255
習題 255
第8章 Quartus Ⅱ 9.0軟體功能及常用輔助設計工具 256
8.1 I/O分配驗證 256
8.1.1 I/O分配驗證簡介 257
8.1.2 I/O分配驗證運行 260
8.2 功率分析 262
8.2.1 Excel-based功率計算器 263
8.2.2 Simulation-based功率估算 266
8.3 原理圖觀察工具 266
8.3.1 RTL閱讀器 267
8.3.2 技術映射查看器 273
8.4 SignalProbe及SignalTap Ⅱ邏輯分析器 274
8.4.1 SignalProbe 274
8.4.2 SignalTap Ⅱ邏輯分析器 277
8.5 時序收斂平面布局規劃器和器件規劃圖 283
8.5.1 概述 284
8.5.2 設計流程 285
8.6 Quartus Ⅱ 9.0支持的第三方工具 293
8.6.1 NativeLink與WYSIWYG 293
8.6.2 Modelsim仿真工具 295
8.6.3 Synplify/Sinplify Pro綜合工具 310
小結 315
習題 315