《FPGA與SOPC設計教程——DE2實踐》是2016年西安電子科技大學出版社出版的圖書,作者是張志剛。
基本介紹
- 書名:FPGA與SOPC設計教程——DE2實踐
- 作者:張志剛
- ISBN:978-7-5606-1804-3/TP.0940
- 定價:32.3元
- 出版社:西安電子科技大學出版社
- 出版時間:2016-02
內容簡介,目錄,
內容簡介
本書對國內高校中廣泛使用的Altera DE2 SOPC開發平台的硬體設計進行了較為詳細的分析,介紹了FPGA與SOPC的設計流程,並通過大量的練習詳細地介紹了如何在DE2平台上進行從簡單到複雜的數字系統設計。
全書分為7章,包括FPGA基本概念與DE2開發平台、FPGA設計流程、SOPC技術、DE2平台套用、基於Altera FPGA的DSP技術、數字系統設計練習及“計算機組成原理”課程練習。本書配有光碟一張,包含了DE2系統的內容及DE2的高級套用範例。
本書可作為電子類、計算機類、自動化類、機電類等專業本科生和研究生的教材或教學參考書,也可作為數字電子電路設計人員和大規模積體電路設計工程師的參考書。
目錄
第1章 FPGA基本概念與DE2開發平台 1
1.1 可程式邏輯器件 1
1.1.1 可程式邏輯器件概述 1
1.1.2 CPLD的結構與原理 3
1.1.3 FPGA的結構與原理 5
1.1.4 結構化ASIC 7
1.2 CycloneⅡ系列FPGA 9
1.2.1 CycloneⅡ系列FPGA概述 9
1.2.2 邏輯單元 11
1.2.3 邏輯陣列塊(LAB) 13
1.2.4 MultiTrack 互連 15
1.2.5 全局時鐘網路及鎖相環 19
1.2.6 嵌入式存儲器 23
1.2.7 嵌入式乘法器 25
1.2.8 IOE的結構及特性 28
1.3 DE2開發平台 30
1.3.1 DE2板上資源及硬體布局 30
1.3.2 DE2原理 32
1.4 DE2平台的開發環境 43
1.4.1 安裝QuartusⅡ及相關軟體包 43
1.4.2 安裝DSP Builder 44
第2章 FPGA設計流程 46
2.1 QuartusⅡ設計流程概述 46
2.2 設計輸入 51
2.3 設計約束和分配 54
2.4 設計綜合 56
2.5 布局布線 58
2.6 基於模組的設計 60
2.7 仿真 62
2.8 時序分析 65
2.9 時序逼近 67
2.10 用QuartusⅡ完成FPGA設計的實例 69
2.10.1 建立一個新工程 69
2.10.2 設計輸入 71
2.10.3 分配引腳 76
2.10.4 電路仿真 77
2.10.5 編程與配置FPGA 80
第3章 SOPC技術 83
3.1 SOPC Builder 83
3.1.1 Altera的SOPC技術 83
3.1.2 SOPC系統設計流程 86
3.2 Avalon交換架構 87
3.2.1 Avalon匯流排基本概念 87
3.2.2 Avalon匯流排信號 91
3.2.3 Avalon匯流排傳輸類型及時序 95
3.3 NiosⅡ軟核處理器 100
3.3.1 NiosⅡ軟核處理器概述 100
3.3.2 NiosⅡ軟核處理器的硬體結構 102
3.4 NiosⅡ軟核處理器軟體開發 103
3.4.1 HAL系統庫 104
3.4.2 NiosⅡIDE 105
3.5 SOPC系統設計實例 107
3.5.1 SOPC系統設計流程 107
3.5.2 SOPC系統設計實例 108
3.6 DE2開發板描述及組件庫 123
3.6.1 在SOPC Builder中加入DE2 開發板描述及組件庫 123
3.6.2 DE2_NIOS系統 124
3.6.3 在NiosⅡ IDE中使用Flash Programmer 130
第4章 DE2平台套用 133
4.1 DE2平台內嵌的USB Blaster及FPGA 配置 133
4.2 音頻編/解碼 135
4.2.1 音頻編/解碼硬體晶片WM8731 135
4.2.2 WM8731控制電路的實現 138
4.2.3 用WM8731 D/A轉換器產生正弦波 144
4.3 使用SDRAM及SRAM 153
4.3.1 在NiosⅡ中使用SDRAM 153
4.3.2 在NiosⅡ中使用SRAM 156
4.4 視頻D/A轉換器 158
4.4.1 視頻D/A轉換器 158
4.4.2 VGA顯示器套用示例 161
4.5 彩色LCM顯示器 167
4.6 用DE2平台實現視頻解碼 174
4.6.1 電視解碼原理 174
4.6.2 用DE2平台實現電視接收機 177
4.7 USB OTG 184
4.8 網路接口 187
4.8.1 DM9000A硬體接口 187
4.8.2 DM9000A與Avalon匯流排的接口及硬體抽象層 189
4.8.3 LWIP及其在DE2平台上的套用 190
4.9 RS232接口 196
4.10 DE2控制臺 199
4.10.1 安裝DE2控制臺 199
4.10.2 控制LED、七段數碼管和LCD顯示 201
4.10.3 FLASH下載器 201
4.10.4 SDRAM/SRAM控制器和下載器 202
4.10.5 PS/2和七段數碼管的顯示控制 203
4.10.6 DE2控制臺的總體結構 204
4.10.7 多連線埠 SRAM/SDRAM/FLASH控制器 206
4.10.8 VGA顯示控制 207
4.11 DE2高級套用範例 209
4.11.1 DE2平台出廠設定 209
4.11.2 DE2電視機 209
4.11.3 USB畫筆 211
4.11.4 卡拉OK機 212
4.11.5 USB設備 213
4.11.6 乙太網信息包的傳送和接收 214
4.11.7 SD卡音樂播放器 214
4.12 LCM及CIS在DE2平台上的套用範例 215
4.12.1 TRDB-LCM在DE2平台上的套用範例 215
4.12.2 TRDB-DC2在DE2平台上的套用範例 216
第5章 基於Altera FPGA的DSP技術 220
5.1 DSP Builder 220
5.2 用DSP Builder實現FIR濾波器 222
5.2.1 建立FIR濾波器設計 223
5.2.2 在Simulink中仿真並生成VHDL代碼 226
5.3 在DSP Builder中定製開發板庫 229
5.3.1 硬體平台與DSP Builder 229
5.3.2 定製開發板庫 232
第6章 數字系統設計練習 244
6.1 開關、LED燈及多路復用器 244
6.1.1 將輸入/輸出器件連線到FPGA上 244
6.1.2 2選1多路復用器 245
6.1.3 3位寬5選1多路復用器 246
6.1.4 用七段數碼管顯示簡單字元 247
6.1.5 循環顯示5個字元 248
6.1.6 循環顯示8個字元 249
6.2 二進制與BCD碼的轉換及顯示 250
6.2.1 二進制數字的顯示 250
6.2.2 二進制值到十進制值的轉換 250
6.2.3 並行加法器 252
6.2.4 1位BCD加法器 253
6.2.5 2位BCD加法器 253
6.2.6 2位BCD加法器的另一種實現 253
6.2.7 6位二進制數轉換為2位十進制數的電路 254
6.3 無符號數乘法器 254
6.3.1 4位二進制數乘法 255
6.3.2 8位二進制數乘法 256
6.3.3 用LPM實現8位二進制數乘法 256
6.4 鎖存器和觸發器 256
6.4.1 RS鎖存器 256
6.4.2 D鎖存器 257
6.4.3 D觸發器 258
6.4.4 三種存儲單元 258
6.4.5 D觸發器的套用 259
6.5 計數器 260
6.5.1 用T觸發器實現16位計數器 260
6.5.2 用賦值語句實現16位計數器 260
6.5.3 用LPM實現16位計數器 260
6.5.4 閃爍的數碼管 261
6.5.5 循環顯示的“HELLO” 261
6.6 時鐘與定時器 261
6.6.1 3位BCD計數器 261
6.6.2 實時時鐘 261
6.6.3 反應時間測試電路 262
6.7 有限狀態機 262
6.7.1 One-hot編碼的FSM 262
6.7.2 二進制編碼的FSM 264
6.7.3 序列檢測FSM 266
6.7.4 模10加計數器 266
6.7.5 用移位暫存器與FSM實現“HELLO”的循環顯示 266
6.7.6 用FSM實現“HELLO”的自動循環顯示 267
6.7.7 移動速度可控的“HELLO”的自動循環顯示 267
6.8 存儲器塊 267
6.8.1 用LPM實現RAM 268
6.8.2 在DE2上驗證RAM 270
6.8.3 用Verilog實現RAM 270
6.8.4 FPGA片外RAM的使用 270
6.8.5 用LPM實現簡單雙口RAM 272
6.8.6 偽雙口RAM 273
6.8.7 用DE2控制臺查看並修改片外RAM的內容 275
6.9 簡單的處理器 275
6.9.1 實現一個簡單的處理器 277
6.9.2 為處理器增加程式存儲器 280
6.10 增強型處理器 281
6.10.1 擴展處理器的指令集並增加地址解碼功能 281
6.10.2 在數碼管上滾動顯示單詞 284
6.10.3 增加單詞顯示速度控制功能 284
第7章 “計算機組成原理”課程練習 285
7.1 一個簡單的計算機系統 285
7.1.1 建立一個簡單的計算機系統 285
7.1.2 對序列中出現的連續的1計數 286
7.1.3 指令的組成 287
7.1.4 子程式 288
7.1.5 對交替出現的1和0計數 288
7.1.6 C語言與彙編語言的比較 288
7.2 程式控制輸入/輸出 288
7.2.1 建立包含三個PIO接口部件的系統 289
7.2.2 用NiosⅡ彙編語言實現數據輸入、累加及輸出 290
7.2.3 用按鍵控制數據讀取 291
7.2.4 用七段數碼管顯示十六進制累加結果 291
7.2.5 將累加結果轉換成十進制顯示 291
7.3 子程式與堆疊 292
7.3.1 建立一個NiosⅡ系統 292
7.3.2 對32位正整數排序 292
7.3.3 用子程式實現排序任務 293
7.3.4 用堆疊向子程式傳遞參數 293
7.3.5 用遞歸算法計算階乘 293
7.4 輪詢與中斷 294
7.4.1 建立一個包含計時器及JTAG UART的NiosⅡ系統 295
7.4.2 通過JTAG UART向主機傳送字元 296
7.4.3 用JTAG UART實現打字機功能 297
7.4.4 使用中斷方式實現打字機功能 297
7.4.5 計時器中斷的使用 298
7.5 匯流排通信 299
7.5.1 實現外部匯流排橋及七段數碼管控制器 301
7.5.2 將SRAM控制器連線到外部匯流排上 303
7.5.3 通過外部匯流排將SRAM中的數據顯示到數碼管上 304
附錄A DE2原理圖 305
附錄B DE2平台上EP2C35F672引腳分配 329
參考文獻 334