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