-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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書號
詳細書籍分類

FPGA設計實戰演練(高級技巧篇)

( 簡體 字)
作者:王敏志類別:1. -> 電子工程 -> FPGA
譯者:
出版社:清華大學出版社FPGA設計實戰演練(高級技巧篇) 3dWoo書號: 42694
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:10/1/2015
頁數:309
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787302404439
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

設計者學習FPGA開發,有時難免會面臨一些選擇。對于初學者來說,從來就面臨著學習哪種硬件語言,采用哪家平臺的問題。而實際應用中,不管使用哪種語言,設計采用哪家的器件,其相互之間都可以轉換,彼此存在共通的東西。本書就是希望通過介紹一些通用電路的設計技巧,使讀者能夠掌握FPGA邏輯設計的基本指導原則以及代碼優化方法。書中盡量通過實例介紹如何描述硬件電路,某些實例代碼還提供了兩種HDL語言的對比。
一、 本書的由來
一直在想,是否可以寫這樣一本參考書,不管大家學習哪種語言,使用哪家器件,都可以作為很好的參考。
在答復一些正在學習FPGA的同學或工程師的問題時,也常被人問及兩個問題,一個是怎么學習FPGA的設計開發?另一個是如何學好FPGA的設計開發?前一個問題是FPGA開發如何入門的問題; 而后一個則是FPGA開發如何進階的問題。本書主要討論第二個問題。

在收到了清華大學出版社編輯劉星的約稿郵件并與之討論了本人的上述想法后,編寫一本面對高級FPGA開發工程師的參考書的想法便順理成章地開始實施了。
二、 本書特點
現在有很多有關FPGA開發方面的書籍,其中大部分都不錯,但比較遺憾的是,很多書都過多地介紹了開發工具或軟件。本書希望多從純粹邏輯設計的角度入手,盡量減少開發工具的介紹,大量介紹通用電路的設計開發技巧。
根據筆者多年的工作體會,感覺FPGA工程師還是應該掌握一些電路設計方面的知識,故本書開篇即從FPGA硬件電路設計開始。FPGA工程師在對設計進行系統聯調時,如果對電路設計不了解,很可能會妨礙邏輯設計中故障的排除。
邏輯設計是FPGA設計的核心,所以本書的重點就是介紹邏輯設計的方法和技巧。本書不但會介紹應用軟件工具對設計優化,更會介紹代碼級的優化方法,而且會重點為讀者推介后者。現代邏輯設計的復雜程度已經超乎我們的想象,但是一些基本的設計原則并未改變,所以掌握一些通用電路的設計方法和技巧就顯得極為重要。時鐘及多時鐘域處理在現在的FPGA設計中極為常見,書中詳細介紹了如何管理這些時鐘,且重點討論了跨越時鐘域的數據處理。
我們知道,現在的設計工具隨著FPGA規模的變大,已變得越來越復雜,功能也越來越強。軟件可以幫助設計者獲得更佳的設計性能。在本書中筆者提出,設計者不要過于依賴軟件的幫助,應該更加直接地將電路描述出來,執行更直接的優化,而不是讓軟件來決定到底執行何種優化。所以,我們需要根據一些特有的邏輯設計原則將電路設計得更簡單、更直接、更易優化以及可重用。這些設計原則中有很多已在筆者個人的設計經歷中屢試不爽,還有一些是本人通過查閱各種參考手冊提煉而來,我想也一定能夠對讀者有所幫助。
FPGA設計實戰演練(高級技巧篇)


三、 本書主要內容
本書主要內容是根據筆者的經歷并從眾多開發文檔中提煉出的許多FPGA開發的高級技巧和優化方法。全書共分為11章,先從具體邏輯電路出發,再過渡到通用的設計技巧。
第1章從基于FPGA的PCB設計開始介紹FPGA的設計開發,其中專門介紹了有關FPGA的高速電路設計。
第2章專門介紹了FPGA內部的時鐘域管理,特別是多時鐘域設計。
第3章介紹了FPGA內部衍生時鐘處理,并通過實例介紹了如何對這類時鐘進行正確的分析和處理。
第4章介紹了復位電路的設計,尤其是異步復位同步釋放電路及復位級聯的處理,同時介紹了如何對復位電路進行時序分析。
第5章介紹了如何寫好狀態機。
第6章介紹了如何對設計進行代碼級的速度優化。
第7章介紹了如何對設計進行代碼級的面積優化。
第8章通過幾個實例介紹了如何對設計進行優化。
第9章介紹了編寫可綜合代碼的方法及指導原則。
第10章在對設計進行代碼級優化的基礎上,介紹了如何使用軟件中的設置及工具對設計進行綜合及布局布線優化。
第11章介紹了預先布圖規劃及對設計進行布圖規劃的指導原則。
四、 本書讀者對象
本書可供通信工程、電子工程、計算機、微電子等專業并有一定FPGA開發基礎的在校大學生、研究生參考,也可作為硬件工程師、FPGA工程師的工具書。
五、 共享資料



六、 致謝

感謝清華大學出版社工作人員對本書的關心和支持,尤其是編輯的大力支持。
感謝羅江燕參與了有關PCB硬件設計方面的編寫,并對文稿最終修訂校對提供的幫助。


王敏志
2015年5月
內容簡介:

現代FPGA的結構越來越復雜,多時鐘域的設計現在已是常態。對于功能電路來說,復位結構都必不可少。在同步邏輯設計中如何很好地處理異步復位,甚至在多時鐘域之間傳遞(異步)復位信號也是邏輯工程師經常面臨的挑戰。本書除專門介紹了上述電路的設計方法外,還介紹了狀態機的設計。在介紹這些通用電路結構的基礎上,還介紹了代碼優化以及如何對設計進行綜合與布局布線優化方面的相關內容。
本書可供通信工程、電子工程、計算機、微電子等專業并有一定FPGA開發基礎的在校大學生、研究生參考,也可作為硬件工程師、FPGA工程師的工具書。
目錄:

第1章從PCB開始研究FPGA設計問題

1.1基于FPGA的高速電路板設計

1.1.1PCB材料選擇

1.1.2PCB上的傳輸線走線

1.1.3阻抗計算

1.1.4降低串擾和維持信號完整性的布線方法

1.2FPGA的電源供電

1.2.1供電要求

1.2.2PCB設計的電源和地疊層分布

1.3退耦電容

1.3.1為何需要退耦電容

1.3.2計算電容值

1.3.3電容的擺放

1.4小結

第2章如何處理邏輯設計中的時鐘域

2.1PLL對時鐘域的管理

2.2單比特信號跨時鐘域的同步處理

2.2.1亞穩態及其危害

2.2.2處理亞穩態的經典辦法——雙觸發

2.2.3使用三級觸發器對亞穩態進行同步處理

2.2.4如何同步快速信號到慢速時鐘域

2.3多比特信號跨時鐘域同步處理

2.3.1多比特信號融合

2.3.2多周期路徑規劃

2.4使用FIFO結構處理多比特跨時鐘域信號

2.5多時鐘域設計分區劃分

FPGA設計實戰演練(高級技巧篇)

2.5.1在時鐘邊界劃分分區

2.5.2多時鐘域分區劃分后的靜態時序分析

2.5.3對多周期規劃邏輯設計進行分區劃分

2.6設計中的門控時鐘行波時鐘的處理

2.6.1衍生時鐘處理指導原則一

2.6.2衍生時鐘處理指導原則二

2.6.3衍生時鐘處理指導原則三

2.6.4衍生時鐘處理的其他方法

2.7小結

第3章正確分析衍生時鐘

3.1實例演示門控時鐘分析處理

3.1.1時鐘反相生成的時鐘

3.1.2時鐘經過緩沖后生成的時鐘

3.1.3經過使能處理后的時鐘

3.1.4時鐘多路選擇器輸出的時鐘

3.1.5經外部反饋回來的時鐘

3.2實例演示衍生時鐘的分析和處理

3.2.1觸發器切換生成的時鐘

3.2.2由行波計數器生成的時鐘

3.2.3由同步計數器生成的時鐘

3.2.4由PLL生成的時鐘

3.3小結

第4章復位電路的實現及其時序分析處理

4.1同步復位設計處理

4.2異步復位設計處理

4.3異步復位同步化(異步復位同步釋放設計處理)

4.4Recovery和Removal分析

4.4.1什么是Recovery和Removal分析

4.4.2什么是Recovery和Removal故障

4.4.3為何總是建議使用異步復位

4.4.4分析并解決Recovery故障

4.5小結

第5章如何寫好狀態機

5.1狀態機的特定及常見問題

5.2如何選擇狀態機的編碼方式

5.3合理選擇及使用單進程或多進程來設計狀態機

5.3.1多進程狀態機

5.3.2單進程狀態機

5.3.3狀態機的比較

5.4設計綜合工具能夠識別的狀態機

5.4.1采用Verilog編寫

5.4.2采用VHDL編寫

5.5小結

第6章如何在書寫代碼時進行速度優化

6.1邏輯設計中速度的概念

6.2時序收斂的早期考慮

6.3代碼編寫過程中時刻考慮時序優化

6.3.1編寫時序收斂代碼的總體規則

6.3.2通過減少關鍵路徑上的組合邏輯單元數來優化時序

6.3.3適當進行邏輯復制以優化設計速度

6.3.4在組合邏輯中插入寄存器優化時序

6.3.5通過寄存器平衡優化時序

6.3.6使用并行結構優化時序

6.3.7通過消除代碼中的優先級優化速度

6.4小結

第7章如何在書寫代碼時進行面積優化

7.1優化設計面積——操作符平衡

7.2優化設計面積——打破設計流水

7.3優化設計面積——資源共享

7.3.1在互斥操作中共享操作符

7.3.2共享表達式

7.3.3共享邏輯功能模塊

7.4復位對設計面積的影響

7.5從器件角度理解如何節省資源

7.5.1利用廠家原語進行面積優化

7.5.2巧用觸發器的控制端口

7.5.3多路選擇器優化

7.6小結

第8章代碼優化設計實例分析

8.1對設計時序進行優化的實例分析

8.1.1時序優化實例一:同步電路時序分析

8.1.2時序優化實例二:異步電路及時序例外分析

8.1.3時序優化實例三:利用PLL對設計進行時序優化

8.2修改代碼優化面積具體實例分析

8.3小結

第9章如何編寫可綜合代碼

9.1普通if和case語句可綜合代碼書寫規則

9.1.1基本的if語句

9.1.2簡單的case語句

9.2如何調整if和case語句中關鍵信號的路徑

9.2.1簡單、多個并行if語句的情況

9.2.2單個if語句的情況

9.2.3if語句嵌套case語句的情況

9.2.4case語句嵌套if語句的情況

9.3提高設計性能的代碼技巧

9.3.1通過復制數據路徑提高設計性能

9.3.2如何更好地處理if條件語句中的算術操作

9.4代碼可綜合常用指導原則

9.4.1避免創建不必要的鎖存器

9.4.2進程中的敏感列表一定要完備

9.4.3for循環的使用以及避免組合邏輯回環

9.4.4阻塞和非阻塞賦值

9.4.5可綜合代碼設計對時鐘和復位的要求

9.5小結

第10章綜合以及布局布線優化

10.1綜合級速度與面積優化設置

10.2使用設計助手和優化顧問

10.3對設計執行早期時序估算

10.4綜合網表優化

10.5物理綜合

10.5.1物理綜合概述

10.5.2針對性能的物理綜合優化選項

10.5.3針對布局布線的物理綜合優化選項

10.6了解并理解布局布線工具及其對設計的優化

10.6.1可以幫助布局布線的一些綜合建議

10.6.2時序約束及其優化

10.6.3優化I/O時序

10.6.4優化設計面積

10.7了解邏輯單元所見即所得結構

10.7.1邏輯單元結構

10.7.2布線延時與布線距離以及布線規則的關系

10.7.3綜合網表建議

10.7.4綜合及優化

10.8小結

第11章預先布圖規劃

11.1增量編譯

11.1.1增量編譯簡介

11.1.2使用增量編譯的設計流程

11.2為何要對設計進行分區和布圖規劃

11.3對設計進行分區劃分

11.3.1設計分區劃分宏觀考慮因素

11.3.2設計分區劃分指導原則

11.3.3如何對第三方設計進行分區劃分

11.3.4檢查設計分區的質量

11.3.5從底層導入設計時如何導入SDC約束

11.4對設計進行預先布圖規劃的危害

11.5布圖規劃

11.5.1布圖規劃簡介

11.5.2布圖規劃布局指導原則

11.5.3實際應用實例推薦的設計流程

11.6小結

參考文獻

序: