本書系統(tǒng)地論述了Xilinx FPGA開發(fā)方法、開發(fā)工具、實際案例及開發(fā)技巧,內容涵蓋Xilinx器件概述、Verilog HDL開發(fā)基礎與進階、Xilinx FPGA電路原理與系統(tǒng)設計、基于ISE Foundation的邏輯設計、時序分析、邏輯開發(fā)專題、基于EDK的嵌入式系統(tǒng)設計、基于System Generator的DSP系統(tǒng)設計、數(shù)字信號處理專題以及SERDES技術專題共10章。各章均以實戰(zhàn)開發(fā)為目的,結合最新版本的軟硬件特征,覆蓋了FPGA的各主要應用領域。配套光盤中包含了書中所有的實例代碼,便于讀者快速動手實踐。書中融匯了作者多年的工程開發(fā)經(jīng)驗,希望能夠極力幫助讀者提高工程開發(fā)能力。
本書適合作為電子信息工程、通信工程、自動化、計算機科學與技術等相關專業(yè)的高年級本科生及研究生的教學用書,也可以作為從事FPGA設計工作的工程師的參考圖書。

前言:
賽靈思(Xilinx)公司作為可編程器件(PLD)的領導廠商,占有超過50%的市場份額,為客戶提供可編程邏輯芯片(CPLD、FPGA和PROM)、軟件設計工具、不同等級的知識產權核(IP Core)以及系統(tǒng)級的完整解決方案。
隨著工藝和設計水平的不斷提高,F(xiàn)PGA在數(shù)字系統(tǒng)中所扮演的角色也從邏輯膠合者提升到處理核心。從2006年起,賽靈思公司的FPGA就涵蓋了邏輯應用、數(shù)字信號處理以及嵌入式三大應用領域。到目前為止,賽靈思已成為完整的解決方案提供者。例如,量產的Spartan 6系列FPGA采用45nm工藝,廣泛應用在中低規(guī)模系統(tǒng)中,如機器視覺、機頂盒以及廣泛的多媒體處理等; 量產的Virtex?5/6系列FPGA分別采用65nm、40nm工藝,主要面向高端應用,如高速互聯(lián)網(wǎng)絡、無線通信、寬帶接入以及汽車工業(yè)等。28nm的7系列FPGA(Artix、Kintex和Virtex三個低、中、高系列)也已逐漸量產,進一步提升FPGA系統(tǒng)設計能力。此外,Zynq?7000可擴展處理平臺(EPP)將ARM Cortex?A9 雙核處理器系統(tǒng)與可編程邏輯緊密集成在一起,為業(yè)界帶來革命性的創(chuàng)新解決方案。
基于賽靈思公司的領先技術,更多的工程師和研究人員已加入到賽靈思FPGA的開發(fā)隊伍中。在過去四年中,賽靈思公司通過大學和開源社區(qū)OpenHard,開展了三屆開源硬件創(chuàng)新大賽以及多個網(wǎng)絡研討會,但切入點都比較零散,不能形成系統(tǒng)化知識體系?!禭ilinx FPGA開發(fā)實用教程》第一版于2008年出版,彌補了上述不足,幫助廣大技術人員、在校的研究生和高年級本科生盡快掌握Xilinx FPGA的開發(fā)流程,連續(xù)印刷4次,深受讀者歡迎。由于FPGA技術發(fā)展迅速,因此作者更新了原書內容,并以最新的ISE13.x版本和量產的6系列器件為例進行介紹,更加符合FPGA發(fā)展趨勢。
整體而言,本書具有以下三項特色: 首先,從邏輯設計、數(shù)字信號處理、嵌入式系統(tǒng)設計和高速連接四個方面系統(tǒng)地介紹了Xilinx FPGA的開發(fā)與應用,條理清晰、思路明確,符合FPGA目前和未來的發(fā)展趨勢; 其次,較為詳細地介紹了Xilinx FPGA的開發(fā)技巧,融入了作者的工程開發(fā)經(jīng)驗,對于初學者和工程開發(fā)人員來講都具有較強的可讀性; 最后,極為全面地介紹了賽靈思公司的ISE、System Generator以及EDK開發(fā)軟件,非常系統(tǒng)和完整。
因此,對于在校研究生、高年級本科生及從事FPGA開發(fā)的工程師來說,本書是一本較為理想的EDA教材和工程工具書,我鄭重地將其推薦給大家!希望通過本書的出版,使更多的讀者掌握賽靈思FPGA的開發(fā)技能,更好地促進FPGA開發(fā)技術的普及和推廣。
賽靈思(Xilinx)公司中國區(qū)大學計劃經(jīng)理謝凱年博士2012年6月
2008年10月,作者有幸聆聽了Xilinx公司全球CTO Ivo Bolsens先生在清華大學所作的題為“FPGA:The future platform for transforming, transporting and computing”的演講,感觸頗深。Ivo Bolsens先生指出了FPGA的三大應用領域:數(shù)字處理中的信號變換、高速交換中的數(shù)據(jù)收發(fā)以及求解中的復雜計算。作者帶著感慨基于當時的ISE 9.1軟件版本,編寫了《Xilinx FPGA開發(fā)實用教程》一書,受到讀者青睞,多次重印。經(jīng)過3年多的發(fā)展,Xilinx公司的軟、硬件均有大幅升級,ISE軟件已升級到13.x版本,F(xiàn)PGA已經(jīng)發(fā)展到28nm的“7”系列芯片。因此作者在第1版的基礎上,結合ISE軟件和FPGA特征,重新整理了原稿,刪除了部分冗余、陳舊的內容,形成了此次的修訂版版本。
同第1版一樣,修訂版版本中的全部內容都是作者實際項目開發(fā)經(jīng)驗和Xilinx公司各類文檔、書籍的結合體,全部信息幾乎都可以從Xilinx網(wǎng)站以及Google上找到淵源,不過我們仍然向您推薦本書,因為網(wǎng)絡的信息是分散的、雜亂的,且正確性不是100%的,本書各章內容的安排是從大量的實踐中總結出來的,循序漸進,條理清楚,且都經(jīng)過作者驗證,我們的目的就是從Ivo Bolsens先生的觀點出發(fā),結合項目開發(fā),將網(wǎng)絡上盡可能多的相關信息以相對較高的質量組合起來。
本書適合電子、通信以及計算機等相關專業(yè)的研究生和高年級本科生使用,同時也適合于從事Xilinx系列FPGA設計和開發(fā)的工程師。毫無疑問,市場上已經(jīng)有很多關于FPGA設計的書籍,我們也不認為本書是其中最重要的一本,但我們意識到FPGA開發(fā)一定要結合芯片特點以及提供商的諸多建議和協(xié)議,只有這樣才能真正掌握其開發(fā)之道。
在第1版中,由于未配備光盤,缺少實際的工程和電子版本代碼,不利于快速學習,廣大讀者多次給作者指出這一不足。因此,在修訂版本中,我們將全書所有內容都移植在小巧的S6 CARD板卡(基于Spartan 6 LX9的開發(fā)板,和身份證大小一樣,通過USB供電和調試,無須下載線纜)上,并將所有的工程文件附在光盤上,為讀者提供通用的驗證平臺。S6 CARD板卡的詳細信息可參考與非網(wǎng)相關介紹(http://www.openhw.org/shop/index.php?action=product&id=248)。
全書各章由徐文波、田耘共同完成編寫。此外,在成文過程中參考了較多的書籍、論文和網(wǎng)絡文獻,在此向廣大作者表示深深謝意。
FPGA技術博大精深且發(fā)展迅猛,不可能通過一本書進行全方位的詳細介紹,更多還需要讀者自己動手實踐。由于作者水平有限,F(xiàn)PGA技術發(fā)展迅速,書中難免存在不妥之處,敬請廣大讀者指正。
Xilinx FPGA開發(fā)實用教程(第2版)目錄
第1章Xilinx器件概述
1.1可編程邏輯器件基礎
1.1.1可編程邏輯器件的基本情況
1.1.2可編程邏輯器件的發(fā)展歷史
1.1.3PLD開發(fā)工具
1.1.4典型FPGA開發(fā)流程
1.2Xilinx FPGA芯片
1.2.1FPGA的工作原理
1.2.2Xilinx FPGA芯片結構
1.2.3軟核、硬核及固核
1.2.4Xilinx主流FPGA
1.3Xilinx軟件工具
1.3.1ISE Foundation軟件
1.3.2EDK開發(fā)工具
1.3.3System Generator DSP工具
1.3.4ChipScope Pro
1.3.5PlanAhead
1.4本書案例驗證平臺——S6 CARD開發(fā)板
1.4.1S6 CARD開發(fā)板的組成與功能
1.4.2S6 CARD板卡引腳約束說明
本章小結
第2章Verilog HDL開發(fā)基礎與進階
2.1Verilog HDL語言
2.1.1Verilog HDL語言的歷史
2.1.2Verilog HDL的主要功能
2.1.3Verilog HDL和VHDL的區(qū)別
2.1.4Verilog HDL設計方法
2.2Verilog HDL基本程序結構
2.3Verilog HDL語言的數(shù)據(jù)類型和運算符
2.3.1標志符
2.3.2數(shù)據(jù)類型
2.3.3模塊端口
2.3.4常量集合
2.3.5運算符和表達式
2.4Verilog HDL語言的描述語句
2.4.1結構描述形式
2.4.2數(shù)據(jù)流描述形式
2.4.3行為描述形式
2.4.4混合設計模式
2.5Verilog HDL建模與調試技巧
2.5.1雙向端口的使用和仿真
2.5.2阻塞賦值與非阻塞賦值
2.5.3輸入值不確定的組合邏輯電路
2.5.4數(shù)學運算中的擴位與截位操作
2.5.5利用塊RAM來實現(xiàn)數(shù)據(jù)延遲
2.5.6測試向量的生成
2.6Verilog HDL常用程序示例
2.6.1數(shù)字電路中基本單元的FPGA實現(xiàn)
2.6.2基本時序處理模塊
2.7Xilinx器件原語的使用
本章小結
第3章Xilinx FPGA電路原理與系統(tǒng)設計
3.1FPGA配置電路
3.1.1Xilinx FPGA配置電路
3.1.2Xilinx FPGA常用的配置引腳
3.1.3Xilinx FPGA配置電路分類
3.2JTAG電路的原理與設計
3.2.1JTAG電路的工作原理
3.2.2Xilinx JTAG下載線
3.3FPGA的常用配置電路
3.3.1主串模式——最常用的FPGA配置模式
3.3.2SPI串行Flash配置模式
3.3.3從串配置模式
3.3.4主字節(jié)寬度并行配置模式
3.3.5JTAG配置模式
3.3.6System ACE配置方案
3.4iMPACT軟件使用
3.4.1iMPACT軟件
3.4.2iMPACT中的JTAG配置操作
3.4.3iMPACT中的Xilinx PROM配置操作
3.4.4iMPACT中的SPI Flash配置操作
3.4.5FPGA配置失敗的常見問題
3.5從配置PROM中讀取用戶數(shù)據(jù)
3.5.1從PROM中引導數(shù)據(jù)
3.5.2硬件電路設計方法
3.5.3軟件操作流程
本章小結
第4章基于ISE Foundation的邏輯設計
4.1ISE套件
4.1.1ISE的特點
4.1.2ISE的功能
4.1.3ISE的安裝
4.1.4ISE的用戶界面
4.2基于ISE的設計輸入
4.2.1新建工程
4.2.2代碼輸入
4.2.3代碼模板的使用
4.2.4Xilinx IP Core的原理與應用
4.3ISE基本操作
4.3.1基于Xilinx XST的綜合
4.3.2基于ISim的仿真
4.3.3基于ISE的實現(xiàn)
4.3.4基于目標和策略的設計方法
4.3.5基于SmartGuide的設計方法
4.3.6比特文件的生成
4.3.7基于IMPACT的芯片配置
4.3.8功耗分析以及XPower的使用
4.4約束
4.4.1約束文件
4.4.2UCF文件的語法說明
4.4.3引腳和區(qū)域約束語法
4.4.4時序約束語法
4.5調試利器——ChipScope Pro
4.5.1ChipScope Pro工作原理
4.5.2ChipScope Pro操作流程
4.5.3ChipScope Pro開發(fā)實例
4.6ISE與第三方EDA軟件
4.6.1ModelSim軟件的使用
4.6.2ModelSim和ISE的聯(lián)合開發(fā)流程
4.6.3MATLAB軟件的使用
4.6.4ISE與MATLAB的聯(lián)合使用
4.6.5MATLAB、ModelSim和ISE聯(lián)合開發(fā)實例
本章小結
第5章時序分析
5.1時序分析的作用和原理
5.1.1時序分析的作用
5.1.2靜態(tài)時序分析原理
5.1.3時序分析的基礎知識
5.2Xilinx FPGA中的時鐘資源
5.2.1全局時鐘資源
5.2.2第二全局時鐘資源
5.3ISE時序分析器
5.3.1時序分析器的特點
5.3.2時序分析器的文件類型
5.3.3時序分析器的調用與用戶界面
5.3.4提高時序性能的手段
本章小結
第6章邏輯開發(fā)專題
6.1Verilog HDL設計進階
6.1.1面向硬件的程序設計思維
6.1.2“面積”和“速度”的轉換原則
6.1.3同步電路的設計原則
6.2Xilinx FPGA芯片底層單元的使用
6.2.1Xilinx全局時鐘網(wǎng)絡的使用
6.2.2CMT時鐘管理模塊的使用
6.2.3Xilinx內嵌塊存儲器的使用
6.2.4硬核乘加器的使用
6.3代碼風格
6.3.1代碼風格的含義
6.3.2代碼書寫風格
6.3.3通用設計代碼風格
6.3.4Xilinx專用設計代碼風格
6.4.1串口接口與RS?232協(xié)議
6.4.2串口通信控制器的Verilog HDL實現(xiàn)
6.4.3RS?232設計板級調試
本章小結
第7章基于EDK的嵌入式系統(tǒng)設計
7.1可配置嵌入式系統(tǒng)(EDK)
7.1.1基于FPGA的可編程嵌入式開發(fā)系統(tǒng)
7.1.2Xilinx公司的解決方案
7.2Xilinx嵌入式開發(fā)系統(tǒng)組成
7.2.1片內微處理器軟核MicroBlaze
7.2.2PLB總線系統(tǒng)結構
7.2.3IP核以及設備驅動
7.3EDK軟件
7.3.1EDK設計的實現(xiàn)流程
7.3.2EDK的文件管理架構
7.4XPS軟件典型操作
7.4.1XPS的啟動
7.4.2利用BSB創(chuàng)建新工程
7.4.3XPS的用戶界面
7.4.4XPS的目錄結構與硬件平臺
7.4.5在XPS加入IP Core
7.4.6XPS工程的綜合與實現(xiàn)
7.5SDK軟件典型操作
7.5.1SDK的用戶界面
7.5.2SDK的典型操作
7.5.3IP外設的API函數(shù)查閱和使用方法
7.5.4GPIO外設開發(fā)實例
7.5.5其他外設開發(fā)實例
本章小結
第8章基于System Generator的DSP系統(tǒng)設計
8.1System Generator的特點與安裝
8.1.1System Generator的主要特點
8.1.2System Generator的安裝和配置
8.2System Generator的使用基礎
8.2.1System Generator開發(fā)流程
8.2.2Simulink的應用
8.3基于System Generator的DSP系統(tǒng)設計
8.3.1System Generator的應用
8.3.2System Generator中的信號類型
8.3.3自動代碼生成
8.3.4編譯MATLAB設計生成FPGA代碼
8.3.5子系統(tǒng)的建立與ISE調用
8.4基于System Generator的硬件協(xié)仿真
8.4.1硬件協(xié)仿真平臺的特點與平臺安裝
8.4.2硬件協(xié)仿真的基本操作
8.4.3共享存儲器的操作
8.5System Generator的高級應用
8.5.1導入外部的HDL程序模塊
8.5.2設計在線調試
8.5.3系統(tǒng)中的多時鐘設計
8.5.4FPGA設計的高級技巧
本章小結
第9章數(shù)字信號處理專題
9.1數(shù)字信號
9.1.1數(shù)字信號的產生
9.1.2采樣定理
9.1.3數(shù)字系統(tǒng)的主要性能指標
9.1.4A/D轉換的字長效應
9.2常用DSP IP Core及其應用
9.2.1DDS模塊IP Core的應用
9.2.2FFT算法IP Core的應用
9.2.3Cordic算法IP Core的應用
9.2.4FIR濾波器IP Core的應用
9.3多速率濾波器的FPGA實現(xiàn)
9.3.1多速率信號處理的意義
9.3.2多速率信號濾波器的基本操作
9.3.3CIC濾波器的FPGA實現(xiàn)
9.3.4HB濾波器的FPGA實現(xiàn)
本章小結
第10章SERDES技術專題
10.1高速數(shù)據(jù)連接功能
10.1.1高速數(shù)據(jù)傳輸
10.1.2Xilinx公司高速連接功能的解決方案
10.2實現(xiàn)吉比特高速串行I/O的相關技術
10.2.1吉比特高速串行I/O的特點和應用
10.2.2吉比特串行I/O系統(tǒng)的組成
10.2.3吉比特串行I/O的設計要點
10.3Rocket I/O收發(fā)器原理與開發(fā)
10.3.1Rocket I/O硬核組成與工作原理
10.3.2GTP硬核組成與工作原理
10.3.3GTP Wizard開發(fā)實例
10.4PCI?Express G1端點接口設計
10.4.1PCI Express G1技術
10.4.2Xilinx PCI Express G1端點模塊
10.4.3PCI Express G1端點接口實例解讀
本章小結
參考文獻
電子發(fā)燒友App















評論