-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

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

( 簡體 字)
作者:杜勇類別:1. -> 電子工程 -> FPGA
譯者:
出版社:電子工業出版社Xilinx FPGA數字信號處理設計——基礎版 3dWoo書號: 54210
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:3/1/2021
頁數:316
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121406072
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書
記得上中學時,每周五下午是作文課,老師通常會要求大家在兩節課內完成一篇命題作文。寫作文最難的是不知如何開頭,無論寫什么題目,感覺不以“彈指一揮間,匆匆近十年”開頭就引不出后面的內容。
彈指一揮間,匆匆近十年。從2011年開始編寫《數字濾波器的MATLAB與FPGA實現》(“數字通信技術的FPGA實現系列”圖書的第一本),至今已近十年!
在這十年間,先后完成《數字濾波器的MATLAB與FPGA實現》《數字通信同步技術的MATLAB與FPGA實現》《數字調制解調技術的MATLAB與FPGA實現》這三本圖書的編寫,這三本圖書是基于Xilinx公司的FPGA和VHDL編寫的(簡稱Xilinx/VHDL版),后來又基于Intel公司(原Altera公司)的FPGA和Verilog HDL改寫了上面三本圖書(簡稱Altera/Verilog版)。
“數字通信技術的FPGA實現系列”圖書出版后,得到了廣大讀者的支持與厚愛,為了與讀者進行更加有效的交流,作者先后在CSDN開設了個人博客、在微信上開設了個人微信公眾號“杜勇FPGA”,用于發布與圖書相關的信息,同時與讀者就圖書中的一些技術問題進行探討。在編寫“數字通信技術的FPGA實現系列”圖書時,作者是從工程應用的角度來闡述數字信號處理、數字通信技術的MATLAB與FPGA實現的,主要面向高年級本科生、研究生,以及工程技術人員。對初學者,尤其是自學者來說,圖書內容有一定的難度。不少讀者感覺這一系列的圖書起點較高,內容比較專業和復雜,需要有較好的理論基礎和FPGA設計基礎,因此希望作者能夠編寫基于FPGA的數字信號處理設計的入門圖書,以便初學者和自學者學習,在掌握數字信號處理FPGA實現的基礎知識之后,再深入學習多速率濾波、自適應濾波、通信同步、數字調制解調等知識,就會變得容易得多。
為此,經過一年多的準備,總算完成了《Xilinx FPGA數字信號處理設計——基礎版》的編寫,并計劃后續陸續推出《Xilinx FPGA數字信號處理設計——綜合版》《Intel FPGA數字信號處理設計——基礎版》《Intel FPGA數字信號處理設計——綜合版》等圖書,以滿足初學者的需求。同時,為了便于讀者對書中的實例進行板載測試,本書與Xilinx/VHDL版圖書中的實例都采用CXD301進行板載測試。

本書的內容安排
本書分為上、下兩篇,共9章。上篇共4章,主要包括FPGA概述、設計語言及開發工具、FPGA設計流程、常用接口程序的設計等內容。通過上篇的學習,讀者可以初步建立FPGA設計的概念和基本方法,了解數字信號處理FPGA設計的常用知識。下篇共5章,主要包括FPGA中的數字運算、典型IP核的應用、FIR濾波器設計、IIR濾波器設計、快速傅里葉變換的設計等內容。數字信號處理設計的基石是濾波器設計和頻譜分析,掌握數字信號處理的原理是完成FPGA設計的基礎。本書在編寫過程中對數字信號處理的原理進行了大幅簡化,著重從概念和基本運算規則入手,以簡單的實例逐步講解數字信號處理FPGA設計的原理、方法、步驟及仿真測試過程。通過下篇的學習,讀者可以掌握數字信號處理FPGA設計的核心基礎知識,從而為學習數字信號處理的綜合設計打下堅實的基礎。
第1章主要介紹FPGA技術的基本概念及特點。常用的數字信號處理平臺有FPGA、ARM、DSP、ASIC等,每個平臺都有各自的特點,在詳細了解FPGA的結構特點之后,才能明白FPGA在數字信號處理中的獨特優勢。只有通過對比,才能對平臺有更精準的把握和理解。
第2章主要介紹Verilog HDL及ISE14.7。工欲善其事,必先利其器。全面了解FPGA設計環境,熟悉要利用的工具,加上獨特的思想,才能實現完美的FPGA設計。
第3章通過一個完整的流水燈FPGA設計實例,詳細地講解設計準備、設計輸入、設計綜合、功能仿真、設計實現、布局布線后仿真和程序下載,這一既復雜又充滿挑戰和樂趣的FPGA設計流程。
第4章詳細討論常用接口程序的設計。FPGA產品不是一個“孤島”,而是要與外界實現無縫對接。接口是與外界對接的窗口,掌握了串口、A/D接口、D/A接口等,才有機會向外界展示設計的美妙之處。
第5章討論FPGA中的數字運算。數字運算主要包括加、減、乘、除等運算。FPGA只能對二進制數進行運算,雖然在日常生活中我們習慣用十進制數進行運算,但運算的本質和規律是相同的。只有掌握FPGA中的有符號數、小數、數據位擴展等設計方法,才能實現更為復雜的數字信號處理算法。
第6章主要介紹典型IP(Intellectual Property)核的應用。IP核,就是知識產權核,是指功能完備、性能優良、使用簡單的功能模塊。我們所要做的主要工作是理解IP核的用法,在設計中直接使用IP核。
第7章詳細討論FIR(Finite Impulse Response,有限脈沖響應)濾波器設計。濾波器設計和頻譜分析是數字信號處理中最為基礎的專業設計。所謂專業,因它們涉及信號處理的專業知識;所謂基礎,是指它們的應用非常廣泛。由于FIR濾波器具有結構簡單、嚴格的線性相位特性等優勢,已成為信號處理中的必備電路之一。
第8章詳細討論IIR(Infinite Impulse Response,無限脈沖響應)濾波器設計。濾波器中的“無限”兩個字,聽起來有點高深,其實IIR濾波器與FIR濾波器的結構沒有太大的差別。雖然IIR濾波器的應用沒有FIR濾波器廣泛,但有其自身的特點,具有FIR濾波器無法比擬的優勢。IIR濾波器具有反饋結構,使得其中的數字運算更具有挑戰性,也更有趣味性。掌握了FIR濾波器和IIR濾波器的設計,才能對經典濾波器的設計有比較全面的了解。
第9章討論了FFT設計。頻譜分析和濾波器設計是數字信號處理的兩大基石。離散傅里葉變換(Discrete Fourier Transform,DFT)的理論很早就非常成熟了,后期出現的快速傅里葉變換(Fast Fourier Transform,FFT)算法使得DFT理論在工程中得以應用。雖然FFT算法及其FPGA實現結構相當復雜,但幸運的是可以使用現成的IP核,設計者在理解信號頻譜分析原理的基礎上,調用FFT核即可完成FFT的FPGA實現。
關于FPGA開發工具的說明
眾所周知,目前Xilinx公司和Intel公司的FPGA產品占據全球90%以上的FPGA市場。可以說,在一定程度上正是由于兩家公司的相互競爭,才有力地推動了FPGA技術的不斷發展。雖然硬件描述語言(HDL)的編譯及綜合環境可以采用第三方公司所開發的產品,如ModelSim、Synplify等,但FPGA的物理實現必須采用各自公司開發的軟件平臺,無法通用。例如,Xilinx公司的FPGA使用Vivado和ISE系列開發工具,Intel公司的FPGA使用Quartus系列開發工具。與FPGA的開發工具類似,HDL也存在兩種難以取舍的選擇:VHDL和Verilog HDL。
學習FPGA開發技術的難點之一在于開發工具的使用,無論Xilinx公司還是Intel公司,為了適應不斷更新的開發需求,主要是適應不斷推出的新型FPGA,開發工具的版本更新速度很快。
自Xilinx公司推出ISE3.x版以來,歷經十余年,已形成龐大的用戶群。雖然Xilinx公司自2013年10月2日發布ISE14.7后,宣布不再對ISE進行更新,但由于ISE14.7仍然支持Xilinx公司的Spartan-6、Virtex-6、Artix-7、Kintex-7、Virtex-7等系列中高端FPGA,因此仍然是廣大FPGA工程師首選的開發工具。Vivado是Xilinx公司于2012年開始推出的開發工具,與ISE相比,Vivado在架構及界面方面都有很大的變化,版本的更新主要是為了解決開發工具本身的功能性問題。Xilinx公司幾乎每年都會推出3∼4個版本的Vivado,截至目前已陸續推出了20多個版本的Vivado,但過多的版本不可避免地會增加開發FPGA的難度。
應當如何選擇HDL呢?其實,對于有志于從事FPGA開發的技術人員,選擇哪種HDL并不重要,因為兩種HDL具有很多相似之處,精通一種HDL后,再學習另一種HDL也不是一件困難的事。通常來講,可以根據周圍同事、朋友、同學或公司的使用情況來選擇HDL,這樣在學習過程中,可以很方便地找到能夠給你指點迷津的專業人士,從而加快學習進度。
本書采用Xilinx公司的FPGA作為開發平臺,采用ISE14.7作為開發工具,采用Verilog HDL作為實現語言,使用ModelSim進行仿真測試。由于Verilog HDL并不依賴于具體的的FPGA,因此本書中的Verilog HDL程序可以很方便地移植到Intel公司的FPGA上。如果Verilog HDL程序中使用了IP核,由于兩家公司的IP核不能通用,因此就需要根據IP核的參數,在另外一個平臺上重新生成IP核,或重新編寫Verilog HDL程序。
有人曾經說過,技術只是一個工具,關鍵在于思想。將這句話套用過來,對于本書來講,具體的開發平臺和HDL只是實現技術的工具,關鍵在于設計的思路和方法。讀者完全沒有必要過于在意開發平臺的差別,只要掌握了設計思路和方法,加上讀者已經具備的FPGA開發經驗,采用任何一種FPGA都可以很快地設計出滿足用戶需求的產品。
本書的目標
數字信號處理FPGA設計知識的學習難度較大,讀者不僅需要具備較扎實的理論知識,還要具備一定的FPGA設計經驗。本書的目的正是架起理論知識與工程實踐之間的橋梁,通過具體的實例,詳細講解工程實現的方法、步驟和過程,以便讀者盡快掌握采用FPGA平臺實現數字信號處理技術的基本方法,提高學習效率,為后續學習數字信號處理、數字通信技術的FPGA設計等綜合設計打下堅實的基礎。
通常,對于電子通信行業的技術人員來說,在從業之初都會遇到類似的困惑:如何將從教材中所學的理論知識與實際中的工程實踐結合起來呢?如何能夠將教材中的理論轉換成實際的工程項目呢?絕大多數電子信息類教材對原理的講解都十分透徹,但理論知識與工程實踐之間顯然需要一座可以順利通過的橋梁。一個常用的方法是通過MATLAB等工具進行軟件仿真來加深讀者對理論知識的理解,但更好的方法是直接參與工程的設計與實現。
然而,工科院校的學生極少有機會參與實際的工程設計與實現,在工作后往往會感到所學的理論知識很難與實際的工程實踐聯系起來。教材講解的大多是原理性內容,即使讀者可以很好地解答教材后面的思考題與練習題,或者能夠熟練地推導教材中的公式,但在進行工程設計與實現時,如何將這些理論知識和公式用具體的電路或硬件平臺實現出來,仍然是擺在廣大讀者面前的一個巨大難關。尤其是數字信號處理專業,由于涉及的理論知識比較復雜,在真正進行工程設計與實現時會發現無從下手。采用MATLAB、ModelSim等軟件對理論進行仿真,雖然可以直觀地驗證算法的正確性,并查看仿真結果,但這類軟件仿真畢竟只停留在算法或模型的仿真上,與真正的工程設計與實現完全是兩個不同的概念。FPGA很好地解決了這一問題。FPGA本來就是基于工程應用的平臺,其仿真技術可以很好地仿真實際的工作情況,尤其是時序仿真技術,在計算機上通過了時序仿真的程序設計,幾乎不需要修改就可以直接應用到工程實踐中。這種設計、驗證、仿真的一體化方式可以極好地將理論知識與工程實踐結合起來,從而提高讀者學習的興趣。
目前,市場上已有很多介紹ISE、Vivado、Quartus等FPGA開發工具,以及VHDL、Verilog HDL等的圖書。如果僅僅使用FPGA來實現一些數字邏輯電路,或者理論性不強的控制電路,掌握FPGA開發工具及Verilog HDL的語法就可以開始工作了。數字信號處理的理論性要強得多,采用FPGA實現數字信號技術的前提條件是要對理論知識有深刻的理解。在理解理論知識的基礎上,關鍵的問題是根據這些理論知識,結合FPGA的特點,找到合適的算法實現結構,厘清工程實現的思路,并采用Verilg HDL進行正確的實現。
本書在編寫過程中,兼顧了數字信號處理的理論知識,以及工程設計的完整性,重點突出了FPGA設計的方法、結構、實現細節,以及仿真測試方法。在講解理論知識時,重點突出工程實踐,主要介紹工程實踐中必須掌握和理解的理論知識,并且結合FPGA的特點進行討論,以便讀者能盡快找到理論知識與工程實踐之間的結合點。在講解實例的FPGA實現時,絕大多數的實例均給出了完整的Verilog HDL程序代碼,并且從思路和結構上對代碼進行了詳細的分析和說明。根據作者的工作經驗,本書針對一些似是而非的概念,結合實例的仿真測試加以闡述,希望能為讀者提供更多有用的參考。相信讀者按照書中講解的步驟完成一個個實例時,會逐步感覺到理論知識與工程實踐的完美結合。隨著讀者掌握的工程實踐技能的提高,對數字信號處理理論知識的理解也必將越來越深刻。重新閱讀數字信號處理的理論知識,就會構建起理論知識與工程實踐之間的橋梁。
如何使用本書
在學習數字信號處理FPGA設計之前,需要讀者具備一定的FPGA設計知識和數字信號處理的理論知識。為了便于讀者快速掌握FPGA設計知識,本書前4章對Verilog HDL、ISE14.7等內容進行了精心編排,并通過一個完整的流水燈設計實例來詳細介紹FPGA的設計流程,為讀者學習后續章節打下基礎。
與普通的邏輯電路不同,數字信號處理的專業性強,掌握理論知識是完成FPGA設計的前提。MATLAB是完成數字信號處理FPGA設計的不可或缺的工具,由于MATLAB的易用性和強大的功能,使其在工程設計中得到了廣泛的應用。為了準確理解數字信號處理的相關理論知識,本書中的部分實例采用MATLAB完成理論仿真,并對代碼進行了注釋和說明,即使讀者完全沒有MATLAB的編程基礎,也可以很容易理解MATLAB程序的設計思路。
完整的數字信號處理FPGA設計過程是:先采用MATLAB對需要設計的工程進行仿真,一方面可以仿真算法過程及結果,另一方面還可以生成FPGA測試仿真所需的測試數據;然后在ISE14.7中編寫Verilog HDL程序,對實例進行設計實現;接著編寫測試激勵文件,采用ModelSim軟件對Verilog HDL程序進行仿真,查看ModelSim仿真波形,驗證程序功能的正確性;最后完成FPGA程序綜合及布線,將程序下載到開發板中來驗證FPGA設計的正確性。
驗證工程實例程序是否正確的最直觀的方法是:采用示波器測試開發板(如CXD301)的A/D接口和D/A接口中的信號,觀察信號處理前后波形的變化是否滿足要求。例如,在驗證低通FIR濾波器時,用示波器通道1測試低通FIR濾波器前端信號的波形,用示波器通道2測試低通FIR濾波器處理后信號的波形,對比分析濾波前后信號的波形就可以驗證低通FIR濾波器功能是否正確。
如果讀者沒有示波器,即使ModelSim仿真正確,但畢竟不是真實的電路工作波形,在這種情況下應如何驗證FPGA設計的正確性呢?ISE14.7提供了功能強大的在線邏輯分儀軟件工具ChipScope。將FPGA程序下載到開發板中之后,使用ChipScope可以實時讀取FPGA內部的信號,以及指定引腳的信號波形。也就是說,采用ChipScope觀察到的波形是實際的工作波形,而不是仿真波形。因此,讀者可以采用ChipScope來驗證FPGA設計的實際工作情況。本書在第4章介紹A/D接口和D/A接口的設計時,詳細討論了ChipScope的使用方法和步驟,讀者在掌握ChipScope的使用方法之后,就可以在板載測試程序中添加ChipScope核,從而實現FPGA設計實際工作波形的在線測試。
致謝
有人說,每個人都有他存在的使命,如果迷失了使命,就失去了存在的價值。不只是每個人,每件物品也都有其存在的使命。對于一本圖書來講,其存在的使命就是被閱讀,并給讀者帶來收獲。如果本書能對讀者的工作和學習有所幫助,是作者莫大的欣慰。
在本書的編寫過程中,作者查閱了大量的資料,在此對資料的作者及提供者表示衷心的感謝。
時間過得很快,在本書寫作時,大女兒正在全力準備中考。本書與讀者見面時,她已經踏入了高中階段的學習和生活。小女兒正在牙牙學語,每天都在以她獨特的語言和行為與這個世界進行友好的交流。祝愿她們快樂成長!
FPGA技術博大精深,數字信號處理技術理論難度大。雖然本書盡可能詳細地討論數字信號處理FPGA設計的相關內容,但仍感覺難以詳盡敘述工程實現中的所有細節。相信讀者在實際的工程中經過不斷的實踐、思考及總結,一定可以快速掌握數字信號處理FPGA設計的方法,提高使用FPGA進行工程設計的能力。
由于作者水平有限,書中難免會存在不足和疏漏之處,敬請廣大讀者批評指正。歡迎讀者就相關技術問題與作者進行交流,或對本書提出改進意見及建議。建議讀者關注作者的微信公眾號以獲得與本書相關的資料和信息。

杜 勇
2020年11月
內容簡介:

本書以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
序: