Xilinx FPGA數(shù)字信號處理設(shè)計——基礎(chǔ)版
定 價:79 元
- 作者:杜勇
- 出版時間:2021/3/1
- ISBN:9787121406072
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TN911.72
- 頁碼:316
- 紙張:
- 版次:01
- 開本:16開
本書以Xilinx公司的FPGA為開發(fā)平臺,以Verilog HDL及MATLAB為開發(fā)工具,詳細闡述數(shù)字信號處理技術(shù)FPGA實現(xiàn)的原理、結(jié)構(gòu)、方法及仿真測試過程,并通過大量的實例分析FPGA實現(xiàn)過程中的具體技術(shù)細節(jié)。本書主要包括FPGA概述、設(shè)計語言及開發(fā)工具、FPGA設(shè)計流程、常用接口程序的設(shè)計、FPGA中的數(shù)字運算、典型IP核的應用、FIR濾波器設(shè)計、IIR濾波器設(shè)計、快速傅里葉變換的設(shè)計等內(nèi)容。本書思路清晰、語言流暢、分析透徹,在簡明闡述設(shè)計原理的基礎(chǔ)上,重點追求對工程實踐的指導性,力求使讀者在較短的時間內(nèi)掌握數(shù)字信號處理技術(shù)FPGA實現(xiàn)的知識和技能。
杜勇,四川省廣安市人,高級工程師、副教授,現(xiàn)任教于四川工商學院,居住于成都。1999年于湖南大學獲電子工程專業(yè)學士學位,2005年于國防科技大學獲信息與通信工程專業(yè)碩士學位。發(fā)表學術(shù)論文十余篇,出版《數(shù)字濾波器的MATLAB與FPGA實現(xiàn)》《數(shù)字通信同步技術(shù)的MATLAB與FPGA實現(xiàn)》《數(shù)字調(diào)制解調(diào)技術(shù)的MATLAB與FPGA實現(xiàn)》《鎖相環(huán)技術(shù)原理及FPGA實現(xiàn)》等多部著作。
上篇 基 礎(chǔ) 篇
第1章 FPGA概述 3
1.1 FPGA的發(fā)展趨勢 3
1.2 FPGA的結(jié)構(gòu) 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 小結(jié) 16
1.8 思考與練習 16
第2章 設(shè)計語言及開發(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的程序結(jié)構(gòu) 20
2.2.2 數(shù)據(jù)類型及基本運算符 23
2.2.3 Verilog HDL的運算符優(yōu)先級及Verilog HDL的關(guān)鍵詞 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 小結(jié) 39
2.7 思考與練習 39
第3章 FPGA設(shè)計流程 41
3.1 FPGA設(shè)計流程概述 41
3.2 流水燈實例設(shè)計 44
3.2.1 明確項目需求 44
3.2.2 讀懂電路原理圖 44
3.2.3 形成設(shè)計方案 46
3.3 流水燈實例的Verilog HDL程序設(shè)計與綜合 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 流水燈實例的設(shè)計實現(xiàn)與時序仿真 59
3.5.1 添加約束文件 59
3.5.2 設(shè)計實現(xiàn)并查看分析報告 60
3.5.3 時序仿真 61
3.6 程序文件下載 62
3.6.1 bit文件下載 62
3.6.2 mcs文件下載 64
3.7 小結(jié) 66
3.8 思考與練習 67
第4章 常用接口程序的設(shè)計 69
4.1 秒表電路設(shè)計 69
4.1.1 數(shù)碼管的基本工作原理 69
4.1.2 秒表電路實例需求及電路原理分析 70
實例4-1:秒表電路設(shè)計 70
4.1.3 形成設(shè)計方案 71
4.1.4 頂層文件的Verilog HDL程序設(shè)計 71
4.1.5 數(shù)碼管顯示模塊的Verilog HDL程序設(shè)計 72
4.1.6 秒表計數(shù)模塊的Verilog HDL程序設(shè)計 75
4.1.7 按鍵消抖模塊的Verilog HDL程序設(shè)計 77
4.2 串口通信設(shè)計 79
4.2.1 RS-232串口通信的概念 79
4.2.2 串口通信實例需求及電路原理分析 81
實例4-2:串口通信電路設(shè)計 81
4.2.3 頂層文件的Verilog HDL程序設(shè)計 81
4.2.4 時鐘模塊的Verilog HDL程序設(shè)計 82
4.2.5 接收模塊的Verilog HDL程序設(shè)計 84
4.2.6 發(fā)送模塊的Verilog HDL程序設(shè)計 86
4.3 A/D接口和D/A接口的程序設(shè)計 87
4.3.1 A/D轉(zhuǎn)換的工作原理 87
4.3.2 D/A轉(zhuǎn)換的工作原理 87
4.3.3 A/D接口和D/A接口的實例需求及電路原理分析 88
實例4-3:A/D接口和D/A接口電路設(shè)計 88
4.3.4 A/D接口和D/A接口的Verilog HDL程序設(shè)計 89
4.4 常用接口程序的板載測試 90
4.4.1 秒表電路的板載測試 90
4.4.2 串口通信的板載測試 91
4.4.3 通過ChipScope對A/D接口和D/A接口進行板載測試 92
4.5 小結(jié) 99
4.6 思考與練習 100
下篇 設(shè) 計 篇
第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轉(zhuǎn)換器的有限字長效應 118
5.4.3 數(shù)字濾波器系數(shù)的有限字長效應 119
實例5-2:采用MATLAB仿真二階數(shù)字濾波器的頻率響應 119
5.4.4 濾波器運算中的有限字長效應 121
實例5-3:采用MATLAB仿真一階數(shù)字濾波器的輸出響應 122
5.5 小結(jié) 124
5.6 思考與練習 124
第6章 典型IP核的應用 127
6.1 IP核在FPGA中的應用 127
6.1.1 IP核的一般概念 127
6.1.2 FPGA設(shè)計中的IP核類型 128
6.1.3 CMT與FPGA時鐘樹 130
6.2 時鐘管理IP核 131
6.2.1 全局時鐘資源 131
6.2.2 利用IP核生成多路時鐘信號 132
實例6-1:時鐘管理IP核設(shè)計 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ù)速率的轉(zhuǎn)換 147
6.6 數(shù)控振蕩器IP核 152
6.6.1 數(shù)控振蕩器工作原理 152
6.6.2 采用DDS核設(shè)計掃頻儀 154
實例6-7:采用DDS核設(shè)計掃頻儀 154
6.7 小結(jié) 157
6.8 思考與練習 157
第7章 FIR濾波器設(shè)計 159
7.1 數(shù)字濾波器的理論基礎(chǔ) 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)結(jié)構(gòu) 167
7.3.1 濾波器結(jié)構(gòu)的表示方法 167
7.3.2 直接型結(jié)構(gòu)的FIR濾波器 168
7.3.3 級聯(lián)型結(jié)構(gòu)的FIR濾波器 169
7.4 基于累加器的FIR濾波器設(shè)計 170
7.4.1 基于累加器的FIR濾波器性能分析 170
實例7-1:基于累加器的FIR濾波器的FPGA設(shè)計 170
7.4.2 基于累加器的FIR濾波器設(shè)計 173
7.4.3 基于累加器的FIR濾波器FPGA實現(xiàn)后的仿真 174
7.5 FIR濾波器的MATLAB設(shè)計 177
7.5.1 基于fir1()函數(shù)的FIR濾波器設(shè)計 177
實例7-2:基于fir1()函數(shù)的FIR濾波器設(shè)計 178
7.5.2 各種窗函數(shù)性能的比較 180
7.5.3 各種窗函數(shù)性能的仿真 181
實例7-3:通過MATLAB仿真由不同窗函數(shù)設(shè)計的FIR濾波器性能 181
7.5.4 基于firpm()函數(shù)的FIR濾波器設(shè)計 183
實例7-4:采用firpm()函數(shù)設(shè)計FIR濾波器 184
7.5.5 基于FDATOOL的FIR濾波器設(shè)計 185
實例7-5:使用FDATOOL設(shè)計帶通FIR濾波器 186
7.6 FIR濾波器系數(shù)的量化方法 187
實例7-6:利用MATLAB設(shè)計低通FIR濾波器并進行系數(shù)量化 187
7.7 并行結(jié)構(gòu)FIR濾波器的FPGA實現(xiàn) 189
7.7.1 并行結(jié)構(gòu)FIR濾波器的Verilog HDL設(shè)計 189
實例7-7:采用并行結(jié)構(gòu)設(shè)計15階FIR濾波器 189
7.7.2 并行結(jié)構(gòu)FIR濾波器的功能仿真 192
7.8 串行結(jié)構(gòu)FIR濾波器的FPGA實現(xiàn) 193
7.8.1 兩種串行結(jié)構(gòu)原理 193
7.8.2 全串行結(jié)構(gòu)FIR濾波器的Verilog HDL設(shè)計 194
實例7-8:采用全串行結(jié)構(gòu)設(shè)計15階FIR濾波器 194
7.8.3 串行結(jié)構(gòu)FIR濾波器的功能仿真 198
7.9 基于FIR核的FIR濾波器設(shè)計 200
7.9.1 FIR濾波器系數(shù)文件(COE文件)的生成 200
實例7-9:采用FIR Compiler v5.0核設(shè)計61階低通FIR濾波器 201
7.9.2 基于FIR核的FIR濾波器設(shè)計步驟 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 小結(jié) 212
7.12 思考與練習 213
第8章 IIR濾波器設(shè)計 215
8.1 IIR濾波器的理論基礎(chǔ) 215
8.1.1 IIR濾波器的原理及特性 215
8.1.2 IIR濾波器常用的結(jié)構(gòu) 216
8.1.3 IIR濾波器與FIR濾波器的比較 219
8.2 IIR濾波器的MATLAB設(shè)計 220
8.2.1 采用butter()函數(shù)設(shè)計IIR濾波器 220
8.2.2 采用cheby1()函數(shù)設(shè)計IIR濾波器 221
8.2.3 采用cheby2()函數(shù)設(shè)計IIR濾波器 221
8.2.4 采用ellip()函數(shù)設(shè)計IIR濾波器 222
8.2.5 采用yulewalk()函數(shù)設(shè)計IIR濾波器 222
8.2.6 幾種IIR濾波器設(shè)計函數(shù)的比較 223
實例8-1:采用不同IIR濾波器設(shè)計函數(shù)設(shè)計IIR濾波器并進行性能比較 223
8.2.7 采用FDATOOL設(shè)計IIR濾波器 225
實例8-2:采用FDATOOL設(shè)計帶通IIR濾波器 225
8.3 直接型結(jié)構(gòu)IIR濾波器的FPGA實現(xiàn) 226
8.3.1 直接型結(jié)構(gòu)IIR濾波器系數(shù)的量化方法 226
8.3.2 直接型結(jié)構(gòu)IIR濾波器的有限字長效應 228
實例8-3:仿真測試不同量化字長對濾波器性能的影響 228
8.3.3 直接型結(jié)構(gòu)IIR濾波器的FPGA實現(xiàn)方法 230
實例8-4:直接型結(jié)構(gòu)IIR濾波器的FPGA設(shè)計 230
8.3.4 直接型結(jié)構(gòu)IIR濾波器的Verilog HDL設(shè)計 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)型結(jié)構(gòu)IIR濾波器的FPGA實現(xiàn) 242
實例8-5:級聯(lián)型結(jié)構(gòu)IIR濾波器的FPGA設(shè)計 242
8.4.1 濾波器系數(shù)的轉(zhuǎn)換 242
8.4.2 級聯(lián)型結(jié)構(gòu)IIR濾波器的系數(shù)量化 244
8.4.3 級聯(lián)型結(jié)構(gòu)IIR濾波器的FPGA實現(xiàn) 244
8.4.4 級聯(lián)型結(jié)構(gòu)IIR濾波器的Verilog HDL設(shè)計 245
8.4.5 級聯(lián)型結(jié)構(gòu)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 小結(jié) 251
8.7 思考與練習 251
第9章 快速傅里葉變換的設(shè)計 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 頻率分辨率與分辨不同頻率的關(guān)系 263
實例9-3:仿真FFT參數(shù)對分析信號頻譜的影響 263
9.3 FFT核的使用 267
9.3.1 FFT核簡介 267
9.3.2 FFT核的接口信號及時序 268
9.4 信號識別電路的FPGA設(shè)計 270
9.4.1 頻率疊加信號的時域分析 270
實例9-4:信號過零檢測分析 270
9.4.2 信號識別電路的設(shè)計需求及參數(shù)分析 272
實例9-5:信號識別電路的FGPA設(shè)計 272
9.4.3 信號識別電路的Verilog HDL設(shè)計 273
9.4.4 信號識別電路的ModelSim仿真 276
9.5 信號識別電路的板載測試 279
9.5.1 硬件接口電路 279
實例9-6:信號識別電路的CXD301板載測試 279
9.5.2 板載測試的方案 280
9.5.3 頂層文件的設(shè)計 281
9.5.4 測試信號生成模塊的設(shè)計 283
9.5.5 接收模塊的設(shè)計 285
9.5.6 數(shù)據(jù)整理模塊的設(shè)計 286
9.5.7 串口通信模塊的設(shè)計 287
9.5.8 板載測試驗證 290
9.6 小結(jié) 294
9.7 思考與練習 294
參考文獻 295