Xilinx FPGA數字信號處理系統設計指南:從HDL、Simulink到HLS的實現( 簡體 字) | |
作者:何賓,張艷輝 | 類別:1. -> 電子工程 -> FPGA |
出版社:電子工業出版社 | ![]() 詢問書籍請說出此書號! 有庫存 NT售價: 940 元 |
出版日:1/1/2019 | |
頁數:824 | |
光碟數:0 | |
站長推薦: ![]() ![]() ![]() ![]() ![]() | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121347474 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第一篇數字信號處理系統的組成和實現方法
第1章信號處理理論基礎 11信號定義和分類 12信號增益與衰減 13信號失真與測量 131放大器失真 132信號諧波失真 133諧波失真測量 14噪聲及其處理方法 141噪聲的定義和表示 142固有噪聲電平 143噪聲/失真鏈 144信噪比定義和表示 145信號的提取方法 15模擬信號及其處理方法 151模擬I/O信號的處理 152模擬通信信號的處理 16數字信號處理的關鍵問題 161數字信號處理系統結構 162信號調理的方法 163模數轉換器ADC及量化效應 164數模轉換器(DAC)及信號重建 165SFDR的定義和測量 17通信信號軟件處理方法 171軟件無線電的定義 172中頻軟件無線電實現 173信道化處理 174基站軟件無線電接收機 175SR采樣技術 176直接數字下變頻 177帶通采樣失敗的解決 第2章數字信號處理實現方法 21數字信號處理技術概念 211數字信號處理技術的發展 212數字信號處理算法的分類 213數字信號處理實現方法 22基于DSP的數字信號處理實現方法 221DSP的結構和流水線 222DSP的運行代碼和性能 23基于FPGA的數字信號處理實現方法 231FPGA原理 232FPGA的邏輯資源 233FPGA實現數字信號處理的優勢 234FPGA的最新發展 24FPGA執行數字信號處理的一些關鍵問題 241關鍵路徑 242流水線 243延遲 244加法器 245乘法器 246并行/串行 247溢出的處理 25高性能信號處理的難點和技巧 251設計目標 252實現成本 253設計優化 第3章數值的表示和運算 31整數的表示方法 311二進制原碼格式 312二進制反碼格式 313二進制補碼格式 32整數加法運算的HDL描述 321無符號整數加法運算的HDL描述 322有符號整數加法運算的HDL描述 33整數減法運算的HDL描述 331無符號整數減法運算的HDL描述 332有符號整數減法運算的HDL描述 34整數乘法運算的HDL描述 341無符號整數乘法運算的HDL描述 342有符號整數乘法運算的HDL描述 35整數除法運算的HDL描述 351無符號整數除法運算的HDL描述 352有符號整數除法運算的HDL描述 36定點數的表示方法 361定點數的格式 362定點量化 363歸一化處理 364小數部分截斷 365一種不同的表示方法——Trounding 366定點數運算的HDL描述庫 37定點數加法運算的HDL描述 371無符號定點數加法運算的HDL描述 372有符號定點數加法運算的HDL描述 38定點數減法運算的HDL描述 381無符號定點數減法運算的HDL描述 382有符號定點數減法運算的HDL描述 39定點數乘法運算的HDL描述 391無符號定點數乘法運算的HDL描述 392有符號定點數乘法運算的HDL描述 310定點數除法運算的HDL描述 3101無符號定點數除法運算的HDL描述 3102有符號定點數除法運算的HDL描述 311浮點數的表示方法 3111浮點數的格式 3112浮點數的短指數表示 312浮點數運算的HDL描述 3121單精度浮點數加法運算的HDL描述 3122單精度浮點數減法運算的HDL描述 3123單精度浮點數乘法運算的HDL描述 3124單精度浮點數除法運算的HDL描述 第4章基于FPGA的數字信號處理的基本流程 41FPGA模型的設計模塊 411Xilinx Blockset 412Xilinx Reference Blockset 42配置System Generator環境 43信號處理模型的構建與實現 431信號模型的構建 432模型參數的設置 433信號處理模型的仿真 434生成模型子系統 435模型HDL代碼的生成 436打開生成設計文件并仿真 437協同仿真的配置與實現 438生成IP核 44編譯MATLAB到FPGA 441模型的設計原理 442系統模型的建立 443系統模型的仿真 45高級綜合工具HLS概述 451HLS的特性 452調度和綁定 453提取控制邏輯和I/O端口 46使用HLS實現兩個矩陣相乘運算 461設計矩陣相乘模型 462添加C測試文件 463運行和調試C工程 464設計綜合 465查看生成的數據處理圖 466對設計執行RTL級仿真 467設計優化 468對優化后的設計執行RTL級仿真 47基于Model Composer的DSP模型構建 471Model Composer工具概述 472打開Model Composer工具 473創建一個矩陣運算實現模型 474修改設計中模塊的參數 475執行仿真并分析結果 476產生輸出 48在Model Composer導入C/C++代碼作為定制模塊 481建立C/C++代碼 482將代碼導入Model Composer 483將定制庫添加到庫瀏覽器中 第二篇數字信號處理的基本理論和FPGA實現方法 第5章CORDIC算法的原理與實現 51CORDIC算法原理 511圓坐標系旋轉 512線性坐標系旋轉 513雙曲線坐標系旋轉 514CORDIC算法通用表達式 52CORDIC循環和非循環結構硬件實現原理 521CORDIC循環結構的原理和實現方法 522CORDIC非循環結構的實現原理 523實現CORDIC非循環的流水線結構 53向量幅度的計算 54CORDIC算法的性能分析 541迭代次數對精度的影響 542總量化誤差的確定 543近似誤差的分析 544舍入誤差的分析 545有效位deff的估算 546預測與仿真 55CORDIC算法的原理和實現方法 551CORDIC算法的收斂性 552CORDIC象限映射的實現 553向量模式下CORDIC迭代的實現 554旋轉模式下CORDIC迭代的實現 56CORDIC子系統的設計 561CORDIC單元的設計 562參數化CORDIC單元 563旋轉后標定的實現 564旋轉后的象限解映射 57圓坐標系算術功能的設計 571反正切的實現 572正弦和余弦的實現 573向量幅度的計算 58流水線技術的CORDIC實現 581帶有流水線并行陣列的實現 582串行結構的實現 583比較并行和串行的實現 59向量幅值精度的研究 591CORDIC向量幅度:設計任務 592驗證計算精度 第6章離散傅里葉變換的原理與實現 61模擬周期信號的分析——傅里葉級數 62模擬非周期信號的分析——傅里葉變換 63離散序列的分析——離散傅里葉變換 631離散傅里葉變換推導 632頻率離散化推導 633DFT的窗效應 64短時傅里葉變換 65離散傅里葉變換的運算量 66離散傅里葉算法的模型實現 661分析復數乘法的實現方法 662分析復數加法的實現方法 663運行設計 第7章快速傅里葉變換的原理與實現 71快速傅里葉變換的發展 72Danielson-Lanczos引理 73按時間抽取的基2 FFT算法 74按頻率抽取的基2 FFT算法 75Cooley-Tuckey算法 76基4和基8的FFT算法 77FFT計算中的字長 78基于MATLAB的FFT分析 79基于模型的FFT設計與實現 710基于IP核的FFT實現 7101構建頻譜分析模型 7102配置模型參數 7103設置仿真參數 7104運行和分析仿真結果 711基于C和HLS的FFT建模與實現 7111創建新的設計工程 7112創建源文件 7113設計綜合 7114創建仿真測試文件 7115運行協同仿真 7116添加PIPELINE命令 7117添加ARRAY_PARTITION命令 第8章離散余弦變換的原理與實現 81DCT的定義 82DCT-2和DFT的關系 83DCT的應用 84二維DCT 841二維DCT原理 842二維DCT算法描述 85二維DCT的實現 851創建新的設計工程 852創建源文件 853設計綜合 854創建仿真測試文件 855運行協同仿真 856添加PIPELINE命令 857修改PIPELINE命令 858添加PARTITION命令 859添加DATAFLOW命令 8510添加INLINE命令 8511添加RESHAPE命令 8512修改RESHAPE命令 第9章FIR濾波器和IIR濾波器的原理與實現 91模擬濾波器到數字濾波器的轉換 911微分方程近似 912雙線性交換 92數字濾波器的分類和應用 93FIR濾波器的原理和結構 931FIR濾波器的特性 932FIR濾波器的設計規則 94IIR濾波器的原理和結構 941IIR濾波器的原理 942IIR濾波器的模型 943IIR濾波器的Z域分析 944IIR濾波器的性能和穩定性 95DA FIR濾波器的設計 951DA FIR濾波器的設計原理 952移位寄存器模塊設計 953查找表模塊的設計 954查找表加法器模塊的設計 955縮放比例加法器模塊的設計 956DA FIR濾波器完整的設計 96MAC FIR濾波器的設計 96112×8乘和累加器模塊的設計 962數據控制邏輯模塊設計 963地址生成器模塊的設計 964完整的MAC FIR濾波器的設計 97FIR Compiler濾波器的設計 971生成FIR濾波器系數 972建模FIR濾波器模型 973仿真FIR濾波器模型 974修改FIR濾波器模型 975仿真修改后FIR濾波器模型 98HLS FIR濾波器的設計 981設計原理 982設計FIR濾波器 983進行仿真和驗證 984設計綜合 985設計優化 986Vivado環境下的仿真 第10章重定時信號流圖的原理與實現 101信號流圖的基本概念 1011標準形式FIR信號流圖 1012關鍵路徑和延遲 102割集重定時及其規則 1021割集重定時概念 1022割集重定時規則1 103不同形式的FIR濾波器 1031轉置形式的FIR濾波器 1032脈動形式的FIR濾波器 1033包含流水線乘法器的脈動FIR濾波器 1034將FIR濾波器SFG乘法器流水線 104FIR濾波器構建塊 1041帶加法器樹的FIR濾波器 1042加法器樹的流水線 1043對稱FIR濾波器 105標準形式和脈動形式的FIR濾波器的實現 第11章多速率信號處理的原理與實現 111多速率信號處理的一些需求 1111信號重構 1112數字下變頻 1113子帶處理 1114提高分辨率 112多速率操作 1121采樣率轉換 1122多相技術 1123高級重采樣技術 113多速率信號處理的典型應用 1131分析和合成濾波器 1132通信系統的應用 114多相FIR濾波器的原理與實現 1141FIR濾波器的分解 1142Noble Identity 1143多相抽取和插值的實現 1144直接和多相插值的比較 1145直接抽取和多相抽取的比較 第12章串行和并行-串行FIR濾波器的原理與實現 121串行FIR濾波器的原理與實現 1211串行FIR濾波器的原理 1212串行FIR濾波器的實現 122并行-串行FIR濾波器的原理與實現 1221并行-串行FIR濾波器的原理 1222并行-串行FIR濾波器的實現 第13章多通道FIR濾波器的原理與實現 131割集重定時規則2 132割集重定時規則2的應用 1321通過SFG共享提高效率 1322輸入和輸出多路復用 13233通道濾波器的例子 133多通道FIR濾波器的實現 1331多通道并行濾波器的實現 1332多通道串行濾波器的實現 第14章其他類型數字濾波器的原理與實現 141滑動平均濾波器的原理和結構 1411滑動平均濾波器的原理 14128權值滑動平均濾波器的結構和特性 14139權重滑動平均濾波器的結構和特性 1414滑動平均濾波器的轉置結構 142數字微分器和數字積分器的原理和特性 1421數字微分器的原理和特性 1422數字積分器的原理和特性 143積分梳狀濾波器的原理和特性 144中頻調制信號的產生和解調 1441產生中頻調制信號 1442解調中頻調制信號 1443CIC提取基帶信號 1444CIC濾波器的衰減及其修正 145CIC濾波器的實現方法 146CIC濾波器位寬的確定 1461CIC抽取濾波器位寬的確定 1462CIC插值濾波器位寬的確定 147CIC濾波器的銳化 1471SCIC濾波器的特性 1472ISOP濾波器的特性 148CIC濾波器的遞歸和非遞歸結構 149CIC濾波器的實現 1491單級定點CIC濾波器的設計 1492滑動平均濾波器的設計 1493多級定點CIC濾波器的設計 1494浮點CIC濾波器的設計 1495CIC插值濾波器和CIC抽取濾波器的設計 第三篇通信信號處理的理論和FPGA實現方法 第15章數控振蕩器的原理與實現 151數控振蕩器的原理 1511NCO的應用背景 1512NCO中的關鍵技術 1513SFDR的改善 152查找表數控振蕩器的實現 1521使用累加器生成一個斜坡函數 1522累加器精度的影響分析 1523使用查找表生成正弦波 1524分析步長對頻率分辨率的影響 1525分析頻譜純度 1526分析查找表深度和無雜散動態范圍 1527分析查找表深度和實現成本 1528動態頻率的無雜散動態范圍 1529帶有抖動的無雜散動態范圍 15210調諧抖動個數 15211創建一個抖動信號 153IIR濾波器數控振蕩器的原理與實現 1531IIR濾波器數控振蕩器原理 1532使用IIR濾波器生成正弦波振蕩器 1533IIR振蕩器的頻譜純度分析 153432位定點IIR濾波器生成正弦波振蕩器 153512位定點IIR濾波器生成正弦波振蕩器 15368位定點IIR濾波器生成正弦波振蕩器 154CORDIC數控振蕩器的實現 1541象限修正正弦/余弦 CORDIC振蕩器 1542鋸齒波驅動正弦/余弦CORDIC振蕩器 第16章通信信號處理的原理與實現 161信號檢測理論 1611概率的柱狀圖表示 1612概率密度函數 162二進制基帶數據傳輸 1621脈沖整形 1622基帶傳輸信號接收錯誤 1623匹配濾波器的應用 163信號調制技術 1631信道與帶寬 1632信號調制技術 1633數字信號的傳輸 164脈沖整形濾波器的原理與實現 1641脈沖整形濾波器的原理 1642升采樣脈沖整形濾波器的實現 1643多相內插脈沖整形濾波器的實現 1644量化和頻譜屏蔽的實現 165發射機的原理與實現 1651發射機的原理 1652發射機的實現 166脈沖生成和匹配濾波器的實現 1661脈沖生成的原理與實現 1662匹配濾波器的原理與實現 167接收機的原理與實現 1671接收機的原理 1672理想信道接收機的實現 1673非理想信道接收機的實現 第17章信號同步的原理與實現 171信號的同步問題 172符號定時與定時恢復 1721符號定時的原理 1722符號定時的恢復 1723載波相位的偏移及其控制 1724幀同步的原理 1725數字下變頻的原理 1726BPSK接收信號的同步原理 173數字變頻器的原理與實現 1731數字上變頻的原理與實現 1732數字下變頻的原理與實現 174鎖相環的原理與實現 1741鎖相環的原理 1742相位檢測器的實現 1743環路濾波器的實現 1744相位檢測器和環路濾波器的實現 1745Ⅱ型PLL的實現 1746Ⅰ型和Ⅱ型PLL性能的比較 1747噪聲對Ⅱ型 PLL的影響 175載波同步的實現 1751科斯塔斯環的實現 1752平方環的實現 176定時同步的實現 1761匹配濾波器和最大有效點 1762超前滯后門同步器 ⅩⅦ第四篇自適應信號處理的理論和FPGA實現方法 第18章遞歸結構信號流圖的重定時 181IIR濾波器脈動陣列及重定時 1811IIR濾波器的結構變換 1812IIR SFG的脈動化 182自適應濾波器的SFG 183LMS算法的硬件實現結構 1831基本LMS結構 1832串行LMS結構 1833重定時SLMS結構 1834非規范LMS(NCLMS)結構 1835流水線LMS結構 第19章自適應信號處理的原理與實現 191自適應信號處理的發展 192自適應信號處理系統 1921通用信號處理系統結構 1922FIR濾波器性能參數 1923自適應濾波器結構 1924通用自適應數字信號處理結構 1925自適應信號處理系統模擬接口 1926典型自適應數字信號處理結構 193自適應信號處理的應用 1931信道識別 1932回波對消 1933聲學回音消除 1934電線交流噪聲抑制 1935背景噪聲抑制 1936信道均衡 1937自適應譜線增強 ⅩⅧ194自適應信號處理算法 1941自適應信號處理算法類型 1942自適應濾波器結構 1943維納-霍普算法 1944最小均方算法 1945遞歸最小二次方算法 195自適應濾波器的設計 1951標準并行自適應LMS濾波器的設計 1952非規范并行自適應LMS濾波器的設計 1953使用可配置的LMS模塊實現LMS音頻 196自適應信號算法的硬件實現方法 1961最小二乘解的計算 1962指數RLS算法的實現 1963QR-RLS算法的原理與實現 197QR-RLS自適應濾波算法的實現 1971QR算法的硬件結構 1972QR-RLS的三數組方法 1973QR邊界單元的實現 1974QR內部單元的實現 1975QR數組的實現 第五篇數字圖像處理的理論和FPGA實現方法 第20章數字圖像處理的原理與實現 201數字圖像處理的基本方法 2011灰度變換 2012直方圖處理 2013空間濾波 202System Generator中中值濾波器的實現 2021在Vivado HLS內構建中值濾波器 2022在System Generator中構建圖像處理系統 203HLS圖像邊緣檢測的實現 2031創建新的設計工程 2032創建源文件 2033設計綜合 2034創建仿真測試文件 2035進行協同仿真 2036添加循環控制命令 2037添加DATAFLOW命令 2038添加INLINE命令 ⅩⅨ第21章動態視頻拼接的原理與實現 211視頻拼接技術的發展 212圖像拼接理論及關鍵方法 2121圖像拼接系統概述 2122圖像拼接流程 2123圖像的采集和表示 2124圖像的配準和融合 2125圖像拼接演示 213圖像配準算法的原理與實現 2131基于MATLAB的圖像配準系統 2132關鍵點配準法 2133SIFT圖像配準算法的流程 2134構建SIFT圖像尺度空間 2135SIFT關鍵點檢測 2136SIFT關鍵點描述 2137SIFT關鍵點匹配 2138模板匹配法 2139灰度信息法 21310頻域相位相關算法 21311具有旋轉變換的圖像配準 214圖像配準方法的對比與評價 2141圖像配準方法的對比 2142圖像配準方法的評價 2143F-SIFT圖像配準方法 215視頻拼接系統的設計 2151視頻拼接技術 2152視頻拼接方法 216視頻拼接系統的實現 2161F-SIFT方法的實現 2162視頻拼接系統的實現 217FPGA視頻拼接系統的硬件實現 2171系統結構 2172系統硬件平臺總體設計 2173視頻數據采集模塊 2174視頻數據存儲模塊 2175視頻顯示接口介紹 2176視頻顯示模塊整體設計 218系統硬件平臺的測試 2181視頻數據采集模塊的測試 2182視頻顯示模塊的測試 219FPGA視頻拼接系統的軟件設計 2191系統軟件設計概述 2192系統中斷部分設計 2193視頻采集模塊軟件設計 2194視頻存儲模塊軟件設計 2195視頻顯示模塊軟件設計 2196系統整體測試 2110Vivado HLS圖像拼接系統的原理與實現 21101OpenCV和HLS視頻庫 21102AXI4流和視頻接口 21103OpenCV到RTL代碼轉換的流程 21104Vivado HLS實現OpenCV的方法 21105Vivado HLS實現圖像拼接 本書從硬件描述語言(VHDL和Verilog HDL)、Simulink環境下的模型構建以及Xilinx高級綜合工具下的C/C++程序設計3個角度,對采用Xilinx FPGA平臺構建數字信號處理系統的方法進行詳細的介紹與說明。全書內容涵蓋了數字信號處理的主要理論知識,其中包含通用數字信號處理、數字通信信號處理和數字圖像處理等方面。全書共5篇21章,內容包括:信號處理理論基礎,數字信號處理實現方法,數值的表示和運算,基于FPGA的數字信號處理的基本流程;CORDIC算法、離散傅里葉變換、快速傅里葉變換、離散余弦變換、FIR濾波器、IIR濾波器、重定時信號流圖、多速率信號處理、串行和并行-串行FIR濾波器、多通道FIR濾波器以及其他常用數字濾波器的原理與實現;數控振蕩器、通信信號處理和信號同步的原理與實現;遞歸結構信號流圖的重定時,自適應信號處理的原理與實現;數字圖像處理和動態視頻拼接的原理與實現。
近年來,人工智能、大數據和云計算等新信息技術得到越來越多的應用,它們共同的特點就是需要對海量數據進行高性能的處理。與采用CPU、DSP和GPU實現數字信號處理(數據處理)系統相比,現場可編程門陣列(Field Programmable Gate Array,FPGA)具有天然并行處理能力以及整體功耗較低的優勢,使得它成為這些新信息技術普及推廣不可或缺的硬件處理平臺,被越來越多地應用于這些新技術中。
一般而言,業界將FPGA歸結為硬件(數字邏輯電路)范疇,而算法歸結為軟件范疇。在十年前,當采用FPGA作為數字信號處理平臺時,設計者必須使用硬件描述語言來描述所構建的數字信號處理系統模型;而大多數的算法設計人員并不會使用硬件描述語言,這樣就對他們使用FPGA實現數字信號處理算法造成了困難,從而限制了FPGA在這些新技術方面的應用普及和推廣。當采用FPGA作為數字信號處理實現平臺時,軟件算法人員希望他們自己只關注算法本身,而通過一些其他工具將這些軟件算法直接轉換為FPGA硬件實現。 近年來,出現了新的建模工具,它們都是以軟件算法人員的視角為出發點來構建數字信號處理系統的,這樣顯著降低了算法設計人員使用FPGA實現算法的難度,實現了軟件和硬件的完美統一。本書將著重介紹Xilinx公司Vivado集成開發環境下提供的兩種新的數字信號處理建模工具,即System Generator工具(它使用MATLAB環境下的Simulink)和高級綜合工具(High Level Synthesis, HLS)。這兩個數字信號處理系統建模工具的出現,使得算法人員可以專注于研究算法本身;然后通過這些建模工具,將算法直接轉換成寄存器傳輸級(Register Transfer Level,RTL)描述;最后下載到FPGA內進行算法實現。這樣,當采用Xilinx FPGA作為數字信號處理硬件平臺時,顯著提高了系統的建模效率,并且可以在性能和實現成本之間進行權衡,以探索最佳的解決方案。 本書從傳統的硬件描述語言、Simulink模型設計和C/C++高級綜合3個角度,對基于Xilinx 7系列FPGA平臺下的通用數字信號處理、通信信號處理和數字圖像處理的建模與實現方法進行詳細介紹。全書共5篇21章,主要內容包括:信號處理理論基礎,數字信號處理實現方法,數值的表示和運算,基于FPGA的數字信號處理的基本流程;CORDIC算法、離散傅里葉變換、快速傅里葉變換、離散余弦變換、FIR濾波器、IIR濾波器、重定時信號流圖、多速率信號處理、串行FIR濾波器、并行-串行FIR濾波器、多通道FIR濾波器以及其他類型數字濾波器的原理與實現;數控振蕩器、通信信號處理和信號同步的原理與實現;遞歸結構信號流圖的重定時,自適應信號處理原理與實現;數字圖像處理、動態視頻拼接的原理與實現。 本書所介紹的內容反映了Xilinx FPGA在實現高性能數字信號處理(數據處理)系統時的最新研究成果;力圖幫助讀者在使用FPGA構建數字信號處理系統時,知道如何在實現性能和實現成本之間進行權衡,如何正確使用不同的數字信號處理系統建模工具和方法,更重要的是知道如何將軟件算法轉換成硬件實現。 在編寫本書的過程中,得到了Xilinx公司大學計劃的支持和幫助,提供了最新的Vivado 2017集成開發工具以及《DSP for FPGA Primer》等文檔和材料。此外,也得到了Mathworks公司圖書計劃的支持和幫助,為作者提供了正版授權的MATLAB R2016b集成開發環境,以及相關設計所要使用的工具包。在此,向他們的支持和幫助表示衷心的感謝。在編寫本書的過程中,仍然參考了已經畢業研究生張艷輝的研究成果,以及本科生湯宗美和劉儀參與本書教學資源的編寫工作,在此向他們的辛勤勞動表示感謝。最后,向電子工業出版社編輯的辛勤工作表示感謝。 編著者2018年12月于北京 |