Xilinx FPGA數(shù)字信號(hào)處理設(shè)計(jì)——基礎(chǔ)版
定 價(jià):79 元
- 作者:杜勇
- 出版時(shí)間:2021/3/1
- ISBN:9787121406072
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TN911.72
- 頁(yè)碼:316
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)以Xilinx公司的FPGA為開(kāi)發(fā)平臺(tái),以Verilog HDL及MATLAB為開(kāi)發(fā)工具,詳細(xì)闡述數(shù)字信號(hào)處理技術(shù)FPGA實(shí)現(xiàn)的原理、結(jié)構(gòu)、方法及仿真測(cè)試過(guò)程,并通過(guò)大量的實(shí)例分析FPGA實(shí)現(xiàn)過(guò)程中的具體技術(shù)細(xì)節(jié)。本書(shū)主要包括FPGA概述、設(shè)計(jì)語(yǔ)言及開(kāi)發(fā)工具、FPGA設(shè)計(jì)流程、常用接口程序的設(shè)計(jì)、FPGA中的數(shù)字運(yùn)算、典型IP核的應(yīng)用、FIR濾波器設(shè)計(jì)、IIR濾波器設(shè)計(jì)、快速傅里葉變換的設(shè)計(jì)等內(nèi)容。本書(shū)思路清晰、語(yǔ)言流暢、分析透徹,在簡(jiǎn)明闡述設(shè)計(jì)原理的基礎(chǔ)上,重點(diǎn)追求對(duì)工程實(shí)踐的指導(dǎo)性,力求使讀者在較短的時(shí)間內(nèi)掌握數(shù)字信號(hào)處理技術(shù)FPGA實(shí)現(xiàn)的知識(shí)和技能。
杜勇,四川省廣安市人,高級(jí)工程師、副教授,現(xiàn)任教于四川工商學(xué)院,居住于成都。1999年于湖南大學(xué)獲電子工程專業(yè)學(xué)士學(xué)位,2005年于國(guó)防科技大學(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ā)展趨勢(shì) 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與其他處理平臺(tái)的比較 10
1.4.1 ASIC、DSP、ARM的特點(diǎn) 10
1.4.2 FPGA的特點(diǎn)及優(yōu)勢(shì) 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ì)語(yǔ)言及開(kāi)發(fā)工具 17
2.1 Verilog HDL簡(jiǎn)介 17
2.1.1 HDL的特點(diǎn)及優(yōu)勢(shì) 17
2.1.2 選擇VHDL還是Verilog 18
2.1.3 Verilog HDL的特點(diǎn) 19
2.2 Verilog HDL的基本語(yǔ)法 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)先級(jí)及Verilog HDL的關(guān)鍵詞 25
2.2.4 賦值語(yǔ)句與塊語(yǔ)句 26
2.2.5 條件語(yǔ)句和分支語(yǔ)句 29
2.3 常用的FPGA開(kāi)發(fā)工具 30
2.3.1 ISE開(kāi)發(fā)工具 30
2.3.2 ModelSim仿真軟件 32
2.4 MATLAB軟件 34
2.4.1 MATLAB的簡(jiǎn)介 34
2.4.2 MATLAB的工作界面 35
2.4.3 MATLAB的特點(diǎn) 36
2.5 FPGA數(shù)字信號(hào)處理板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 生成測(cè)試激勵(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 常用接口程序的板載測(cè)試 90
4.4.1 秒表電路的板載測(cè)試 90
4.4.2 串口通信的板載測(cè)試 91
4.4.3 通過(guò)ChipScope對(duì)A/D接口和D/A接口進(jìn)行板載測(cè)試 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í)使用有符號(hào)數(shù)及無(wú)符號(hào)數(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 有限字長(zhǎng)效應(yīng) 117
5.4.1 有限字長(zhǎng)效應(yīng)的產(chǎn)生因素 117
5.4.2 A/D轉(zhuǎn)換器的有限字長(zhǎng)效應(yīng) 118
5.4.3 數(shù)字濾波器系數(shù)的有限字長(zhǎng)效應(yīng) 119
實(shí)例5-2:采用MATLAB仿真二階數(shù)字濾波器的頻率響應(yīng) 119
5.4.4 濾波器運(yùn)算中的有限字長(zhǎng)效應(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í)鐘樹(shù) 130
6.2 時(shí)鐘管理IP核 131
6.2.1 全局時(shí)鐘資源 131
6.2.2 利用IP核生成多路時(shí)鐘信號(hào) 132
實(shí)例6-1:時(shí)鐘管理IP核設(shè)計(jì) 132
6.3 乘法器IP核 135
6.3.1 實(shí)數(shù)乘法器IP核 135
實(shí)例6-2:通過(guò)實(shí)數(shù)乘法器IP核實(shí)現(xiàn)實(shí)數(shù)乘法運(yùn)算 136
6.3.2 復(fù)數(shù)乘法器IP核 138
實(shí)例6-3:通過(guò)復(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 測(cè)試除法器IP核 142
實(shí)例6-4:通過(guò)除法器IP核實(shí)現(xiàn)除法運(yùn)算 142
6.5 存儲(chǔ)器IP核 144
6.5.1 ROM核 144
實(shí)例6-5:通過(guò)ROM核產(chǎn)生正弦波信號(hào) 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 級(jí)聯(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:通過(guò)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濾波器的板載測(cè)試 207
7.10.1 硬件接口電路 207
實(shí)例7-10:FIR濾波器的CXD301板載測(cè)試 207
7.10.2 板載測(cè)試程序 207
7.10.3 板載測(cè)試驗(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濾波器的有限字長(zhǎng)效應(yīng) 228
實(shí)例8-3:仿真測(cè)試不同量化字長(zhǎng)對(duì)濾波器性能的影響 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中生成測(cè)試信號(hào)文件 236
8.3.7 測(cè)試激勵(lì)文件中的文件IO功能 239
8.3.8 利用MATLAB分析輸出信號(hào)的頻譜 241
8.4 級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器的FPGA實(shí)現(xiàn) 242
實(shí)例8-5:級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器的FPGA設(shè)計(jì) 242
8.4.1 濾波器系數(shù)的轉(zhuǎn)換 242
8.4.2 級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器的系數(shù)量化 244
8.4.3 級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器的FPGA實(shí)現(xiàn) 244
8.4.4 級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器的Verilog HDL設(shè)計(jì) 245
8.4.5 級(jí)聯(lián)型結(jié)構(gòu)IIR濾波器FPGA實(shí)現(xiàn)后的仿真 247
8.5 IIR濾波器的板載測(cè)試 248
8.5.1 硬件接口電路 248
實(shí)例8-6:IIR濾波器的CXD301板載測(cè)試 248
8.5.2 板載測(cè)試程序 249
8.5.3 板載測(cè)試驗(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)算過(guò)程 255
9.1.3 DFT運(yùn)算中的幾種常見(jiàn)問(wèn)題 256
9.1.4 FFT算法的基本思想 257
9.2 FFT算法的MATLAB仿真 258
9.2.1 通過(guò)FFT測(cè)量模擬信號(hào)的頻率 258
實(shí)例9-1:利用FFT測(cè)量單頻信號(hào)的頻率 258
9.2.2 通過(guò)FFT測(cè)量模擬信號(hào)的幅度 261
實(shí)例9-2:利用FFT測(cè)量2路頻率疊加信號(hào)的幅度 261
9.2.3 頻率分辨率與分辨不同頻率的關(guān)系 263
實(shí)例9-3:仿真FFT參數(shù)對(duì)分析信號(hào)頻譜的影響 263
9.3 FFT核的使用 267
9.3.1 FFT核簡(jiǎn)介 267
9.3.2 FFT核的接口信號(hào)及時(shí)序 268
9.4 信號(hào)識(shí)別電路的FPGA設(shè)計(jì) 270
9.4.1 頻率疊加信號(hào)的時(shí)域分析 270
實(shí)例9-4:信號(hào)過(guò)零檢測(cè)分析 270
9.4.2 信號(hào)識(shí)別電路的設(shè)計(jì)需求及參數(shù)分析 272
實(shí)例9-5:信號(hào)識(shí)別電路的FGPA設(shè)計(jì) 272
9.4.3 信號(hào)識(shí)別電路的Verilog HDL設(shè)計(jì) 273
9.4.4 信號(hào)識(shí)別電路的ModelSim仿真 276
9.5 信號(hào)識(shí)別電路的板載測(cè)試 279
9.5.1 硬件接口電路 279
實(shí)例9-6:信號(hào)識(shí)別電路的CXD301板載測(cè)試 279
9.5.2 板載測(cè)試的方案 280
9.5.3 頂層文件的設(shè)計(jì) 281
9.5.4 測(cè)試信號(hào)生成模塊的設(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 板載測(cè)試驗(yàn)證 290
9.6 小結(jié) 294
9.7 思考與練習(xí) 294
參考文獻(xiàn) 295