Xilinx FPGA 數字信號處理設計 — 基礎版

杜勇

  • 出版商: 電子工業
  • 出版日期: 2021-03-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 316
  • ISBN: 7121406071
  • ISBN-13: 9787121406072
  • 相關分類: FPGA
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書以Xilinx公司的FPGA為開發平臺,以Verilog HDL及MATLAB為開發工具,詳細闡述數字信號處理技術FPGA實現的原理、結構、方法及模擬測試過程,並通過大量的實例分析FPGA實現過程中的具體技術細節。本書主要包括FPGA概述、設計語言及開發工具、FPGA設計流程、常用接口程序的設計、FPGA中的數字運算、典型IP核的應用、FIR濾波器設計、IIR濾波器設計、快速傅里葉變換的設計等內容。本書思路清晰、語言流暢、分析透徹,在簡明闡述設計原理的基礎上,重點追求對工程實踐的指導性,力求使讀者在較短的時間內掌握數字信號處理技術FPGA實現的知識和技能。

目錄大綱

上篇 基 礎 篇
第1章 FPGA概述 3
1.1 FPGA的發展趨勢 3
1.2 FPGA的結構 5
1.2.1 可編程輸入/輸出單元(IOB) 5
1.2.2 可配置邏輯塊(CLB) 6
1.2.3 數字時鐘管理模塊(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的特點及優勢 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章 設計語言及開發工具 17
2.1 Verilog HDL簡介 17
2.1.1 HDL的特點及優勢 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 數據類型及基本運算符 23
2.2.3 Verilog HDL的運算符優先級及Verilog HDL的關鍵詞 25
2.2.4 賦值語句與塊語句 26
2.2.5 條件語句和分支語句 29
2.3 常用的FPGA開發工具 30
2.3.1 ISE開發工具 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數字信號處理板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 流水燈實例的設計實現與時序模擬 59
3.5.1 添加約束文件 59
3.5.2 設計實現並查看分析報告 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 數碼管的基本工作原理 69
4.1.2 秒錶電路實例需求及電路原理分析 70
實例4-1:秒錶電路設計 70
4.1.3 形成設計方案 71
4.1.4 頂層文件的Verilog HDL程序設計 71
4.1.5 數碼管顯示模塊的Verilog HDL程序設計 72
4.1.6 秒錶計數模塊的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 發送模塊的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中的數字運算 103
5.1 數的表示 103
5.1.1 定點數的定義和表示 104
5.1.2 定點數的三種形式 105
5.1.3 浮點數的表示 106
5.1.4 自定義的浮點數格式 108
5.2 FPGA中的四則運算 110
5.2.1 兩個操作數的加法運算 110
實例5-1:在Verilog HDL中同時使用有符號數及無符號數進行運算 111
5.2.2 多個操作數的加法運算 113
5.2.3 採用移位相加法實現乘法運算 113
5.2.4 採用移位相加法實現除法運算 114
5.3 有效數據位的計算 114
5.3.1 有效數據位的概念 114
5.3.2 加法運算中的有效數據位 115
5.3.3 乘法運算中的有效數據位 116
5.3.4 乘加運算中的有效數據位 117
5.4 有限字長效應 117
5.4.1 有限字長效應的產生因素 117
5.4.2 A/D轉換器的有限字長效應 118
5.4.3 數字濾波器系數的有限字長效應 119
實例5-2:採用MATLAB模擬二階數字濾波器的頻率響應 119
5.4.4 濾波器運算中的有限字長效應 121
實例5-3:採用MATLAB模擬一階數字濾波器的輸出響應 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 實數乘法器IP核 135
實例6-2:通過實數乘法器IP核實現實數乘法運算 136
6.3.2 復數乘法器IP核 138
實例6-3:通過復數乘法器IP核實現復數乘法運算 139
6.4 除法器IP核 141
6.4.1 FPGA中的除法運算 141
6.4.2 測試除法器IP核 142
實例6-4:通過除法器IP核實現除法運算 142
6.5 存儲器IP核 144
6.5.1 ROM核 144
實例6-5:通過ROM核產生正弦波信號 144
6.5.2 RAM核 147
實例6-6:採用RAM核完成數據速率的轉換 147
6.6 數控振盪器IP核 152
6.6.1 數控振盪器工作原理 152
6.6.2 採用DDS核設計掃頻儀 154
實例6-7:採用DDS核設計掃頻儀 154
6.7 小結 157
6.8 思考與練習 157
第7章 FIR濾波器設計 159
7.1 數字濾波器的理論基礎 159
7.1.1 數字濾波器的概念 159
7.1.2 數字濾波器的分類 160
7.1.3 濾波器的特徵參數 161
7.2 FIR濾波器的原理 162
7.2.1 FIR濾波器的概念 162
7.2.2 線性相位系統的物理意義 163
7.2.3 FIR濾波器的相位特性 164
7.2.4 FIR濾波器的幅度特性 166
7.3 FIR濾波器的FPGA實現結構 167
7.3.1 濾波器結構的表示方法 167
7.3.2 直接型結構的FIR濾波器 168
7.3.3 級聯型結構的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實現後的模擬 174
7.5 FIR濾波器的MATLAB設計 177
7.5.1 基於fir1()函數的FIR濾波器設計 177
實例7-2:基於fir1()函數的FIR濾波器設計 178
7.5.2 各種窗函數性能的比較 180
7.5.3 各種窗函數性能的模擬 181
實例7-3:通過MATLAB模擬由不同窗函數設計的FIR濾波器性能 181
7.5.4 基於firpm()函數的FIR濾波器設計 183
實例7-4:採用firpm()函數設計FIR濾波器 184
7.5.5 基於FDATOOL的FIR濾波器設計 185
實例7-5:使用FDATOOL設計帶通FIR濾波器 186
7.6 FIR濾波器系數的量化方法 187
實例7-6:利用MATLAB設計低通FIR濾波器並進行系數量化 187
7.7 並行結構FIR濾波器的FPGA實現 189
7.7.1 並行結構FIR濾波器的Verilog HDL設計 189
實例7-7:採用並行結構設計15階FIR濾波器 189
7.7.2 並行結構FIR濾波器的功能模擬 192
7.8 串行結構FIR濾波器的FPGA實現 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濾波器系數文件(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()函數設計IIR濾波器 220
8.2.2 採用cheby1()函數設計IIR濾波器 221
8.2.3 採用cheby2()函數設計IIR濾波器 221
8.2.4 採用ellip()函數設計IIR濾波器 222
8.2.5 採用yulewalk()函數設計IIR濾波器 222
8.2.6 幾種IIR濾波器設計函數的比較 223
實例8-1:採用不同IIR濾波器設計函數設計IIR濾波器並進行性能比較 223
8.2.7 採用FDATOOL設計IIR濾波器 225
實例8-2:採用FDATOOL設計帶通IIR濾波器 225
8.3 直接型結構IIR濾波器的FPGA實現 226
8.3.1 直接型結構IIR濾波器系數的量化方法 226
8.3.2 直接型結構IIR濾波器的有限字長效應 228
實例8-3:模擬測試不同量化字長對濾波器性能的影響 228
8.3.3 直接型結構IIR濾波器的FPGA實現方法 230
實例8-4:直接型結構IIR濾波器的FPGA設計 230
8.3.4 直接型結構IIR濾波器的Verilog HDL設計 231
8.3.5 MATLAB與ISE14.7的數據交互 235
8.3.6 在MATLAB中生成測試信號文件 236
8.3.7 測試激勵文件中的文件IO功能 239
8.3.8 利用MATLAB分析輸出信號的頻譜 241
8.4 級聯型結構IIR濾波器的FPGA實現 242
實例8-5:級聯型結構IIR濾波器的FPGA設計 242
8.4.1 濾波器系數的轉換 242
8.4.2 級聯型結構IIR濾波器的系數量化 244
8.4.3 級聯型結構IIR濾波器的FPGA實現 244
8.4.4 級聯型結構IIR濾波器的Verilog HDL設計 245
8.4.5 級聯型結構IIR濾波器FPGA實現後的模擬 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參數對分析信號頻譜的影響 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 信號識別電路的設計需求及參數分析 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 數據整理模塊的設計 286
9.5.7 串口通信模塊的設計 287
9.5.8 板載測試驗證 290
9.6 小結 294
9.7 思考與練習 294
參考文獻 295