Xilinx FPGA數(shù)字信號處理設計——基礎版
定 價:79 元
- 作者:杜勇
- 出版時間:2021/3/1
- ISBN:9787121406072
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TN911.72
- 頁碼:316
- 紙張:
- 版次:01
- 開本:16開
本書以Xilinx公司的FPGA為開發(fā)平臺,以Verilog HDL及MATLAB為開發(fā)工具,詳細闡述數(shù)字信號處理技術FPGA實現(xiàn)的原理、結構、方法及仿真測試過程,并通過大量的實例分析FPGA實現(xiàn)過程中的具體技術細節(jié)。本書主要包括FPGA概述、設計語言及開發(fā)工具、FPGA設計流程、常用接口程序的設計、FPGA中的數(shù)字運算、典型IP核的應用、FIR濾波器設計、IIR濾波器設計、快速傅里葉變換的設計等內容。本書思路清晰、語言流暢、分析透徹,在簡明闡述設計原理的基礎上,重點追求對工程實踐的指導性,力求使讀者在較短的時間內掌握數(shù)字信號處理技術FPGA實現(xiàn)的知識和技能。
杜勇,四川省廣安市人,高級工程師、副教授,現(xiàn)任教于四川工商學院,居住于成都。1999年于湖南大學獲電子工程專業(yè)學士學位,2005年于國防科技大學獲信息與通信工程專業(yè)碩士學位。發(fā)表學術論文十余篇,出版《數(shù)字濾波器的MATLAB與FPGA實現(xiàn)》《數(shù)字通信同步技術的MATLAB與FPGA實現(xiàn)》《數(shù)字調制解調技術的MATLAB與FPGA實現(xiàn)》《鎖相環(huán)技術原理及FPGA實現(xiàn)》等多部著作。
上篇 基 礎 篇
第1章 FPGA概述 3
1.1 FPGA的發(fā)展趨勢 3
1.2 FPGA的結構 5
1.2.1 可編程輸入/輸出單元(IOB) 5
1.2.2 可配置邏輯塊(CLB) 6
1.2.3 數(shù)字時鐘管理模塊(DCM) 7
1.2.4 塊RAM(BRAM) 8
1.2.5 布線資源 8
1.2.6 專用硬IP核 8
1.3 FPGA的工作原理 9
1.4 FPGA與其他處理平臺的比較 10
1.4.1 ASIC、DSP、ARM的特點 10
1.4.2 FPGA的特點及優(yōu)勢 11
1.5 FPGA的主要廠商 12
1.5.1 Xilinx公司 12
1.5.2 Intel公司 13
1.5.3 Lattice公司 13
1.5.4 Actel公司 14
1.5.5 Atmel公司 15
1.6 如何選擇FPGA 15
1.7 小結 16
1.8 思考與練習 16
第2章 設計語言及開發(fā)工具 17
2.1 Verilog HDL簡介 17
2.1.1 HDL的特點及優(yōu)勢 17
2.1.2 選擇VHDL還是Verilog 18
2.1.3 Verilog HDL的特點 19
2.2 Verilog HDL的基本語法 20
2.2.1 Verilog HDL的程序結構 20
2.2.2 數(shù)據(jù)類型及基本運算符 23
2.2.3 Verilog HDL的運算符優(yōu)先級及Verilog HDL的關鍵詞 25
2.2.4 賦值語句與塊語句 26
2.2.5 條件語句和分支語句 29
2.3 常用的FPGA開發(fā)工具 30
2.3.1 ISE開發(fā)工具 30
2.3.2 ModelSim仿真軟件 32
2.4 MATLAB軟件 34
2.4.1 MATLAB的簡介 34
2.4.2 MATLAB的工作界面 35
2.4.3 MATLAB的特點 36
2.5 FPGA數(shù)字信號處理板CXD301 37
2.6 小結 39
2.7 思考與練習 39
第3章 FPGA設計流程 41
3.1 FPGA設計流程概述 41
3.2 流水燈實例設計 44
3.2.1 明確項目需求 44
3.2.2 讀懂電路原理圖 44
3.2.3 形成設計方案 46
3.3 流水燈實例的Verilog HDL程序設計與綜合 47
3.3.1 建立FPGA工程 47
3.3.2 Verilog HDL程序輸入 48
3.3.3 程序綜合及查看RTL原理圖 52
3.4 流水燈實例的功能仿真 54
3.4.1 生成測試激勵文件 54
3.4.2 采用ModelSim進行仿真 55
3.4.3 ModelSim的仿真應用技巧 57
3.5 流水燈實例的設計實現(xiàn)與時序仿真 59
3.5.1 添加約束文件 59
3.5.2 設計實現(xiàn)并查看分析報告 60
3.5.3 時序仿真 61
3.6 程序文件下載 62
3.6.1 bit文件下載 62
3.6.2 mcs文件下載 64
3.7 小結 66
3.8 思考與練習 67
第4章 常用接口程序的設計 69
4.1 秒表電路設計 69
4.1.1 數(shù)碼管的基本工作原理 69
4.1.2 秒表電路實例需求及電路原理分析 70
實例4-1:秒表電路設計 70
4.1.3 形成設計方案 71
4.1.4 頂層文件的Verilog HDL程序設計 71
4.1.5 數(shù)碼管顯示模塊的Verilog HDL程序設計 72
4.1.6 秒表計數(shù)模塊的Verilog HDL程序設計 75
4.1.7 按鍵消抖模塊的Verilog HDL程序設計 77
4.2 串口通信設計 79
4.2.1 RS-232串口通信的概念 79
4.2.2 串口通信實例需求及電路原理分析 81
實例4-2:串口通信電路設計 81
4.2.3 頂層文件的Verilog HDL程序設計 81
4.2.4 時鐘模塊的Verilog HDL程序設計 82
4.2.5 接收模塊的Verilog HDL程序設計 84
4.2.6 發(fā)送模塊的Verilog HDL程序設計 86
4.3 A/D接口和D/A接口的程序設計 87
4.3.1 A/D轉換的工作原理 87
4.3.2 D/A轉換的工作原理 87
4.3.3 A/D接口和D/A接口的實例需求及電路原理分析 88
實例4-3:A/D接口和D/A接口電路設計 88
4.3.4 A/D接口和D/A接口的Verilog HDL程序設計 89
4.4 常用接口程序的板載測試 90
4.4.1 秒表電路的板載測試 90
4.4.2 串口通信的板載測試 91
4.4.3 通過ChipScope對A/D接口和D/A接口進行板載測試 92
4.5 小結 99
4.6 思考與練習 100
下篇 設 計 篇
第5章 FPGA中的數(shù)字運算 103
5.1 數(shù)的表示 103
5.1.1 定點數(shù)的定義和表示 104
5.1.2 定點數(shù)的三種形式 105
5.1.3 浮點數(shù)的表示 106
5.1.4 自定義的浮點數(shù)格式 108
5.2 FPGA中的四則運算 110
5.2.1 兩個操作數(shù)的加法運算 110
實例5-1:在Verilog HDL中同時使用有符號數(shù)及無符號數(shù)進行運算 111
5.2.2 多個操作數(shù)的加法運算 113
5.2.3 采用移位相加法實現(xiàn)乘法運算 113
5.2.4 采用移位相加法實現(xiàn)除法運算 114
5.3 有效數(shù)據(jù)位的計算 114
5.3.1 有效數(shù)據(jù)位的概念 114
5.3.2 加法運算中的有效數(shù)據(jù)位 115
5.3.3 乘法運算中的有效數(shù)據(jù)位 116
5.3.4 乘加運算中的有效數(shù)據(jù)位 117
5.4 有限字長效應 117
5.4.1 有限字長效應的產(chǎn)生因素 117
5.4.2 A/D轉換器的有限字長效應 118
5.4.3 數(shù)字濾波器系數(shù)的有限字長效應 119
實例5-2:采用MATLAB仿真二階數(shù)字濾波器的頻率響應 119
5.4.4 濾波器運算中的有限字長效應 121
實例5-3:采用MATLAB仿真一階數(shù)字濾波器的輸出響應 122
5.5 小結 124
5.6 思考與練習 124
第6章 典型IP核的應用 127
6.1 IP核在FPGA中的應用 127
6.1.1 IP核的一般概念 127
6.1.2 FPGA設計中的IP核類型 128
6.1.3 CMT與FPGA時鐘樹 130
6.2 時鐘管理IP核 131
6.2.1 全局時鐘資源 131
6.2.2 利用IP核生成多路時鐘信號 132
實例6-1:時鐘管理IP核設計 132
6.3 乘法器IP核 135
6.3.1 實數(shù)乘法器IP核 135
實例6-2:通過實數(shù)乘法器IP核實現(xiàn)實數(shù)乘法運算 136
6.3.2 復數(shù)乘法器IP核 138
實例6-3:通過復數(shù)乘法器IP核實現(xiàn)復數(shù)乘法運算 139
6.4 除法器IP核 141
6.4.1 FPGA中的除法運算 141
6.4.2 測試除法器IP核 142
實例6-4:通過除法器IP核實現(xiàn)除法運算 142
6.5 存儲器IP核 144
6.5.1 ROM核 144
實例6-5:通過ROM核產(chǎn)生正弦波信號 144
6.5.2 RAM核 147
實例6-6:采用RAM核完成數(shù)據(jù)速率的轉換 147
6.6 數(shù)控振蕩器IP核 152
6.6.1 數(shù)控振蕩器工作原理 152
6.6.2 采用DDS核設計掃頻儀 154
實例6-7:采用DDS核設計掃頻儀 154
6.7 小結 157
6.8 思考與練習 157
第7章 FIR濾波器設計 159
7.1 數(shù)字濾波器的理論基礎 159
7.1.1 數(shù)字濾波器的概念 159
7.1.2 數(shù)字濾波器的分類 160
7.1.3 濾波器的特征參數(shù) 161
7.2 FIR濾波器的原理 162
7.2.1 FIR濾波器的概念 162
7.2.2 線性相位系統(tǒng)的物理意義 163
7.2.3 FIR濾波器的相位特性 164
7.2.4 FIR濾波器的幅度特性 166
7.3 FIR濾波器的FPGA實現(xiàn)結構 167
7.3.1 濾波器結構的表示方法 167
7.3.2 直接型結構的FIR濾波器 168
7.3.3 級聯(lián)型結構的FIR濾波器 169
7.4 基于累加器的FIR濾波器設計 170
7.4.1 基于累加器的FIR濾波器性能分析 170
實例7-1:基于累加器的FIR濾波器的FPGA設計 170
7.4.2 基于累加器的FIR濾波器設計 173
7.4.3 基于累加器的FIR濾波器FPGA實現(xiàn)后的仿真 174
7.5 FIR濾波器的MATLAB設計 177
7.5.1 基于fir1()函數(shù)的FIR濾波器設計 177
實例7-2:基于fir1()函數(shù)的FIR濾波器設計 178
7.5.2 各種窗函數(shù)性能的比較 180
7.5.3 各種窗函數(shù)性能的仿真 181
實例7-3:通過MATLAB仿真由不同窗函數(shù)設計的FIR濾波器性能 181
7.5.4 基于firpm()函數(shù)的FIR濾波器設計 183
實例7-4:采用firpm()函數(shù)設計FIR濾波器 184
7.5.5 基于FDATOOL的FIR濾波器設計 185
實例7-5:使用FDATOOL設計帶通FIR濾波器 186
7.6 FIR濾波器系數(shù)的量化方法 187
實例7-6:利用MATLAB設計低通FIR濾波器并進行系數(shù)量化 187
7.7 并行結構FIR濾波器的FPGA實現(xiàn) 189
7.7.1 并行結構FIR濾波器的Verilog HDL設計 189
實例7-7:采用并行結構設計15階FIR濾波器 189
7.7.2 并行結構FIR濾波器的功能仿真 192
7.8 串行結構FIR濾波器的FPGA實現(xiàn) 193
7.8.1 兩種串行結構原理 193
7.8.2 全串行結構FIR濾波器的Verilog HDL設計 194
實例7-8:采用全串行結構設計15階FIR濾波器 194
7.8.3 串行結構FIR濾波器的功能仿真 198
7.9 基于FIR核的FIR濾波器設計 200
7.9.1 FIR濾波器系數(shù)文件(COE文件)的生成 200
實例7-9:采用FIR Compiler v5.0核設計61階低通FIR濾波器 201
7.9.2 基于FIR核的FIR濾波器設計步驟 203
7.9.3 基于FIR核的FIR濾波器功能仿真 206
7.10 FIR濾波器的板載測試 207
7.10.1 硬件接口電路 207
實例7-10:FIR濾波器的CXD301板載測試 207
7.10.2 板載測試程序 207
7.10.3 板載測試驗證 211
7.11 小結 212
7.12 思考與練習 213
第8章 IIR濾波器設計 215
8.1 IIR濾波器的理論基礎 215
8.1.1 IIR濾波器的原理及特性 215
8.1.2 IIR濾波器常用的結構 216
8.1.3 IIR濾波器與FIR濾波器的比較 219
8.2 IIR濾波器的MATLAB設計 220
8.2.1 采用butter()函數(shù)設計IIR濾波器 220
8.2.2 采用cheby1()函數(shù)設計IIR濾波器 221
8.2.3 采用cheby2()函數(shù)設計IIR濾波器 221
8.2.4 采用ellip()函數(shù)設計IIR濾波器 222
8.2.5 采用yulewalk()函數(shù)設計IIR濾波器 222
8.2.6 幾種IIR濾波器設計函數(shù)的比較 223
實例8-1:采用不同IIR濾波器設計函數(shù)設計IIR濾波器并進行性能比較 223
8.2.7 采用FDATOOL設計IIR濾波器 225
實例8-2:采用FDATOOL設計帶通IIR濾波器 225
8.3 直接型結構IIR濾波器的FPGA實現(xiàn) 226
8.3.1 直接型結構IIR濾波器系數(shù)的量化方法 226
8.3.2 直接型結構IIR濾波器的有限字長效應 228
實例8-3:仿真測試不同量化字長對濾波器性能的影響 228
8.3.3 直接型結構IIR濾波器的FPGA實現(xiàn)方法 230
實例8-4:直接型結構IIR濾波器的FPGA設計 230
8.3.4 直接型結構IIR濾波器的Verilog HDL設計 231
8.3.5 MATLAB與ISE14.7的數(shù)據(jù)交互 235
8.3.6 在MATLAB中生成測試信號文件 236
8.3.7 測試激勵文件中的文件IO功能 239
8.3.8 利用MATLAB分析輸出信號的頻譜 241
8.4 級聯(lián)型結構IIR濾波器的FPGA實現(xiàn) 242
實例8-5:級聯(lián)型結構IIR濾波器的FPGA設計 242
8.4.1 濾波器系數(shù)的轉換 242
8.4.2 級聯(lián)型結構IIR濾波器的系數(shù)量化 244
8.4.3 級聯(lián)型結構IIR濾波器的FPGA實現(xiàn) 244
8.4.4 級聯(lián)型結構IIR濾波器的Verilog HDL設計 245
8.4.5 級聯(lián)型結構IIR濾波器FPGA實現(xiàn)后的仿真 247
8.5 IIR濾波器的板載測試 248
8.5.1 硬件接口電路 248
實例8-6:IIR濾波器的CXD301板載測試 248
8.5.2 板載測試程序 249
8.5.3 板載測試驗證 249
8.6 小結 251
8.7 思考與練習 251
第9章 快速傅里葉變換的設計 253
9.1 FFT的原理 253
9.1.1 DFT的原理 253
9.1.2 DFT的運算過程 255
9.1.3 DFT運算中的幾種常見問題 256
9.1.4 FFT算法的基本思想 257
9.2 FFT算法的MATLAB仿真 258
9.2.1 通過FFT測量模擬信號的頻率 258
實例9-1:利用FFT測量單頻信號的頻率 258
9.2.2 通過FFT測量模擬信號的幅度 261
實例9-2:利用FFT測量2路頻率疊加信號的幅度 261
9.2.3 頻率分辨率與分辨不同頻率的關系 263
實例9-3:仿真FFT參數(shù)對分析信號頻譜的影響 263
9.3 FFT核的使用 267
9.3.1 FFT核簡介 267
9.3.2 FFT核的接口信號及時序 268
9.4 信號識別電路的FPGA設計 270
9.4.1 頻率疊加信號的時域分析 270
實例9-4:信號過零檢測分析 270
9.4.2 信號識別電路的設計需求及參數(shù)分析 272
實例9-5:信號識別電路的FGPA設計 272
9.4.3 信號識別電路的Verilog HDL設計 273
9.4.4 信號識別電路的ModelSim仿真 276
9.5 信號識別電路的板載測試 279
9.5.1 硬件接口電路 279
實例9-6:信號識別電路的CXD301板載測試 279
9.5.2 板載測試的方案 280
9.5.3 頂層文件的設計 281
9.5.4 測試信號生成模塊的設計 283
9.5.5 接收模塊的設計 285
9.5.6 數(shù)據(jù)整理模塊的設計 286
9.5.7 串口通信模塊的設計 287
9.5.8 板載測試驗證 290
9.6 小結 294
9.7 思考與練習 294
參考文獻 295