第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
參考文獻 316