Xilinx Vivado數字設計權威指南:從數字邏輯、Verilog HDL、嵌入式系統到圖像處理( 簡體 字) | |
作者:何賓 | 類別:1. -> 電子工程 -> FPGA |
出版社:電子工業出版社 | 3dWoo書號: 51223 詢問書籍請說出此書號! 有庫存 NT售價: 745 元 |
出版日:5/1/2019 | |
頁數:616 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121364952 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 數字邏輯基礎
1.1 數字邏輯的發展史 1.2 SPICE仿真工具基礎 1.2.1 SPICE的分析功能 1.2.2 SPICE的分析流程 1.3開關系統 1.3.1 0和1的概念 1.3.2 開關系統的優勢 1.3.3 晶體管作為開關 1.3.4 半導體物理器件 1.3.5 半導體邏輯電路 1.3.6 邏輯電路符號 1.4 半導體數字集成電路 1.4.1 集成電路發展 1.4.2 集成電路構成 1.4.3 集成電路版圖 1.5 基本邏輯門及特性 1.5.1 基本邏輯門 1.5.2 基本邏輯門集成電路 1.5.3 邏輯門電路的傳輸特性 1.5.4 不同邏輯門的連接 1.6 邏輯代數理論 1.6.1 邏輯代數中運算關系 1.6.2 邏輯函數表達式 1.7 邏輯表達式的化簡 1.7.1 使用運算律化簡邏輯表達式 1.7.2 使用卡諾圖化簡邏輯表達式 1.7.3 不完全指定邏輯功能的化簡 1.7.4 輸入變量的卡諾圖表示 1.8 毛刺產生及消除 1.9 數字碼制表示和轉換 1.9.1 數字碼制表示 1.9.2 數字碼制轉換 第2章 數字邏輯電路 2.1 組合邏輯電路 2.1.1 編碼器 2.1.2 譯碼器 2.1.3 碼轉換器 2.1.4 多路選擇器 2.1.5 數字比較器 2.1.6 加法器 2.1.7 減法器 2.1.8 加法器/減法器 2.1.9 乘法器 2.2 時序邏輯電路 2.2.1 時序邏輯電路類型 2.2.2 時序邏輯電路特點 2.2.3 基本SR鎖存器 2.2.4 同步SR鎖存器 2.2.5 D鎖存器 2.2.6 D觸發器 2.2.7 其他觸發器 2.2.8 普通寄存器 2.2.9 移位寄存器 2.3 存儲器 2.3.1存儲器的分類 2.3.2存儲器工作原理 2.3.3易失性存儲器 2.3.4非易失性存儲器 2.4有限狀態機 2.4.1有限狀態機的原理 2.4.2狀態圖表示及實現 2.4.3三位計數器的設計與實現 第3章可編程邏輯器件原理 3.1可編程邏輯器件發展歷史 3.2可編程邏輯器件工藝 3.3可編程邏輯器件結構 3.3.1PROM結構 3.3.2PAL結構 3.3.3PLA結構 3.4復雜可編程邏輯器件結構 3.4.1功能塊 3.4.2宏單元 3.4.3快速連接開關陣列 3.4.4輸入/輸出塊 3.5現場可編程門陣列結構 3.5.1查找表結構原理 3.5.2可配置的邏輯塊 3.5.3時鐘管理資源 3.5.4塊存儲器資源 3.5.5互聯資源 3.5.6DSP切片 3.5.7輸入/輸出塊 3.5.8XADC模塊 3.6Xilinx 7系列FPGA產品 第4章Vivado集成開發環境設計流程 4.1Vivado集成開發環境 4.2創建新的設計工程 4.3創建并添加一個新的設計文件 4.4詳細描述 4.4.1詳細描述的原理 4.4.2詳細描述的實現過程 4.5設計行為級仿真 4.6設計綜合和分析 4.6.1綜合過程的關鍵問題 4.6.2執行設計綜合 4.6.3查看綜合報告 4.7約束文件對話框 4.7.1約束文件 4.7.2I/O規劃器的功能 4.7.3實現約束 4.8設計實現和分析 4.8.1設計實現原理 4.8.2設計實現及分析 4.9設計時序仿真 4.10生成并下載比特流文件 4.10.1FPGA配置原理 4.10.2生成比特流文件 4.10.3下載比特流文件 4.11生成并燒寫PROM文件 第5章Verilog HDL規范 5.1Verilog HDL發展 5.2Verilog HDL程序結構 5.2.1模塊聲明 5.2.2模塊端口定義 5.2.3邏輯功能定義 5.3Verilog HDL描述方式 5.3.1行為級描述 5.3.2數據流描述 5.3.3結構級描述 5.3.4開關級描述 5.4Verilog HDL要素 5.4.1注釋 5.4.2間隔符 5.4.3標識符 5.4.4關鍵字 5.4.5系統任務和函數 5.4.6編譯器指令 5.4.7運算符 5.4.8數字 5.4.9字符串 5.4.10屬性 5.5Verilog HDL數據類型 5.5.1值的集合 5.5.2網絡和變量 5.5.3向量 5.5.4強度 5.5.5隱含聲明 5.5.6網絡類型 5.5.7寄存器類型 5.5.8整型、實數型、時間型和實時時間 5.5.9數組 5.5.10參數 5.5.11Verilog HDL名字空間 5.6Verilog HDL表達式 5.6.1操作符 5.6.2操作數 5.6.3延遲表達式 5.6.4表達式的位寬 5.6.5有符號表達式 5.6.6分配和截斷 5.7Verilog HDL分配 5.7.1連續分配 5.7.2過程分配 5.8Verilog HDL門級和開關級描述 5.8.1門和開關聲明 5.8.2邏輯門 5.8.3輸出門 5.8.4三態門 5.8.5MOS開關 5.8.6雙向傳輸開關 5.8.7CMOS開關 5.8.8pull門 5.9Verilog HDL用戶自定義原語 5.9.1UDP定義 5.9.2組合電路UDP 5.9.3電平觸發的時序UDP 5.9.4邊沿觸發的時序UDP 5.9.5邊沿和電平觸發的混合行為 5.10Verilog HDL行為描述語句 5.10.1過程語句 5.10.2過程連續分配 5.10.3條件語句 5.10.4case語句 5.10.5循環語句 5.10.6過程時序控制 5.10.7語句塊 5.10.8結構化的過程 5.11Verilog HDL任務和函數 5.11.1任務和函數的區別 5.11.2定義和使能任務 5.11.3禁止命名的塊和任務 5.11.4聲明和調用函數 5.12Verilog HDL層次化結構 5.12.1模塊和模塊例化 5.12.2覆蓋模塊參數值 5.12.3端口 5.12.4生成結構 5.12.5層次化的名字 5.12.6向上名字引用 5.12.7范圍規則 5.13Verilog HDL設計配置 5.13.1配置格式 5.13.2庫 5.13.3配置例子 5.14Verilog HDL指定塊 5.14.1模塊路徑聲明 5.14.2為路徑分配延遲 5.14.3混合模塊路徑延遲和分布式延遲 5.14.4驅動布線邏輯 5.14.5脈沖過濾行為的控制 5.15Verilog HDL時序檢查 5.15.1使用一個穩定窗口檢查時序 5.15.2時鐘和控制信號的時序檢查 5.15.3邊沿控制標識符 5.15.4提示符:用戶定義對時序沖突的響應 5.15.5使能帶有條件的時序檢查 5.15.6時序檢查中的矢量信號 5.15.7負時序檢查 5.16Verilog HDL SDF逆向注解 5.16.1SDF注解器 5.16.2映射SDF結構到Verilog 5.16.3多個注解 5.16.4多個SDF文件 5.16.5脈沖限制注解 5.16.6SDF到Verilog延遲值映射 5.17Verilog HDL系統任務和函數 5.17.1顯示任務 5.17.2文件I/O任務和函數 5.17.3時間標度任務 5.17.4仿真控制任務 5.17.5隨機分析任務 5.17.6仿真時間函數 5.17.7轉換函數 5.17.8概率分布函數 5.17.9命令行輸入 5.17.10數學函數 5.18Verilog HDL的VCD文件 5.18.1Vivado創建四態VCD文件 5.18.2Verilog源創建四態VCD文件 5.18.3四態VCD文件格式 5.19Verilog HDL編譯器指令 5.19.1`celldefine和`endcelldefine 5.19.2`default_nettype 5.19.3`define和`undef 5.19.4`ifdef、 `else、 `elsif、 `endif、 `ifndef 5.19.5`include 5.19.6`resetall 5.19.7`line 5.19.8`timescale 5.19.9`unconnected_drive和`nounconnected_drive 5.19.10`pragma 5.19.11`begin_keywords和`end_keyword 5.20Verilog HDL(IEEE 1364—2005)關鍵字列表 第6章基本數字邏輯單元Verilog HDL描述 6.1組合邏輯電路Verilog HDL描述 6.1.1邏輯門Verilog HDL描述 6.1.2編碼器Verilog HDL描述 6.1.3譯碼器Verilog HDL描述 6.1.4多路選擇器Verilog HDL描述 6.1.5數字比較器Verilog HDL描述 6.1.6總線緩沖器Verilog HDL描述 6.2數據運算操作Verilog HDL描述 6.2.1加法操作Verilog HDL描述 6.2.2減法操作Verilog HDL描述 6.2.3乘法操作Verilog HDL描述 6.2.4除法操作Verilog HDL描述 6.2.5算術邏輯單元Verilog HDL描述 6.3時序邏輯電路Verilog HDL描述 6.3.1觸發器和鎖存器Verilog HDL描述 6.3.2計數器Verilog HDL描述 6.3.3移位寄存器Verilog HDL描述 6.3.4脈沖寬度調制Verilog HDL描述 6.4存儲器Verilog HDL描述 6.4.1ROM的Verilog HDL描述 6.4.2RAM的Verilog HDL描述 6.5有限自動狀態機Verilog HDL描述 6.5.1FSM設計原理 6.5.2FSM的應用——序列檢測器的實現 6.5.3FSM的應用——交通燈的實現 6.6算法狀態機Verilog HDL描述 6.6.1算法狀態機原理 6.6.2ASM到Verilog HDL的轉換 第7章復雜數字系統設計和實現 7.1設計所用外設的原理 7.1.1LED驅動原理 7.1.2開關驅動原理 7.1.37段數碼管驅動原理 7.1.4VGA顯示器原理 7.1.5通用異步接收發送器原理 7.2系統中各個模塊的功能 7.3創建新的設計工程 7.4Verilog HDL數字系統設計流程 7.4.1創建divclk1.v文件 7.4.2創建divclk2.v文件 7.4.3創建divclk3.v文件 7.4.4創建divclk4.v文件 7.4.5創建pwm_led.v文件 7.4.6創建counter4b.v文件 7.4.7創建seg7display.v文件 7.4.8創建uart.v文件 7.4.9創建顯示處理文件 7.4.10創建top.v文件 7.5添加XDC約束 7.6設計下載和驗證 第8章數模混合系統設計 8.1信號采集和處理的實現 8.1.1XADC模塊原理 8.1.2XADC原語 8.1.31602字符LCD模塊原理 8.1.4信號采集、處理和顯示的實現 8.2信號發生器的實現 8.2.1DAC工作原理 8.2.2函數信號產生原理 8.2.3設計實現 第9章片上嵌入式系統的構建和實現 9.1ARM AMBA規范 9.2Cortex-M1內部結構和功能 9.2.1處理器內核及寄存器組 9.2.2Cortex-M1存儲空間及映射 9.2.3系統控制寄存器 9.2.4內核存儲器接口 9.2.5嵌套向量中斷控制器 9.2.6總線主設備 9.2.7AHB-PPB 9.2.8調試 9.3Cortex-M1系統時鐘和復位 9.4Cortex-M1嵌入式系統硬件設計 9.4.1建立新的嵌入式設計工程 9.4.2定制7段數碼管IP核 9.4.3定制按鍵消抖IP核 9.4.4設置IP核路徑 9.4.5連接IP構建嵌入式系統硬件 9.4.6對塊設計進行預處理 9.5Cortex-M1指令系統 9.5.1Thumb指令集 9.5.2匯編語言格式 9.5.3寄存器訪問指令——MOVE 9.5.4寄存器訪問指令——LOAD 9.5.5存儲器訪問指令——STORE 9.5.6多個數據訪問指令 9.5.7堆棧訪問指令 9.5.8算術運算指令 9.5.9邏輯操作指令 9.5.10移位操作指令 9.5.11逆序操作指令 9.5.12擴展操作指令 9.5.13程序流控制指令 9.5.14存儲器屏障指令 9.5.15異常相關指令 9.5.16休眠相關的指令 9.5.17其他指令 9.6Cortex-M1嵌入式系統軟件設計 9.6.1建立嵌入式軟件工程 9.6.2設置選項 9.6.3添加匯編文件 9.6.4添加頭文件 9.6.5添加主文件 9.6.6生成HEX文件 9.7處理并驗證設計 第10章圖像采集、處理系統的構建和實現 10.1圖像傳感器的原理和驅動 10.1.1傳感器結構和功能 10.1.2傳感器引腳功能定義 10.1.3SCCB接口驅動時序 10.1.4SCCB接口驅動的實現 10.2Sobel算子基本原理和實現方法 10.3RGB444數據捕獲原理及實現 10.4系統整體結構和子模塊設計 10.4.1Vivado中的系統整體結構 10.4.2時鐘發生器的配置 10.4.3片內RAM模塊的配置 10.4.4VGA驅動模塊 10.4.5行緩存模塊 本書以Xilinx公司的Vivado 2018集成開發環境作為復雜數字系統設計的平臺,以基礎的數字邏輯和數字電路知識為起點,以Xilinx 7系列可編程邏輯器件和Verilog HDL為載體,詳細介紹了數字系統中基本邏輯單元RTL描述方法。在此基礎上,實現了復雜數字系統設計、數模混合系統設計和基于Cortex-M1處理器軟核的片上嵌入式系統設計。全書共10章,內容主要包括數字邏輯基礎、數字邏輯電路、可編程邏輯器件原理、Vivado集成開發環境設計流程、Verilog HDL語言規范、基本數字邏輯單元Verilog HDL描述、復雜數字系統設計和實現、數模混合系統設計、片上嵌入式系統的構建和實現,以及圖像采集、處理系統的構建和實現。本書適合于需要系統掌握Verilog HDL和Vivado集成開發環境基本設計流程的初學者,同時也適用于需要掌握ARM嵌入式系統軟件和硬件設計方法的嵌入式開發工程師。
現場可編程門陣列(Field Programmable Gate Array,FPGA)越來越多地被應用在新技術中,如物聯網、云計算和人工智能等。在這些應用中,FPGA主要用來對數據進行加速處理。為了應對這些應用,降低軟件工程師應用FPGA的難度,Xilinx公司不斷推出新的設計工具,如高級綜合工具(High Level Synthesis,HLS),以降低使用FPGA實現復雜應用的難度。然而,很多軟件工程師仍然覺得FPGA入門較難,這是因為他們普遍認為Verilog HDL比較抽象難懂,且FPGA的內部結構過于復雜。其實,最根本的原因是軟件設計工程師常常以傳統軟件的思維來看待FPGA,他們普遍認為FPGA是硬件,與軟件沒有太多的交集,在FPGA中實現傳統上由軟件實現的算法模型難度較大。根據作者長期教學和科研的經驗,數字邏輯和數字電路基礎知識是他們入門FPGA的“絆腳石”和“攔路虎”。為了幫助廣大讀者能真正進入FPGA設計領域,尤其是FPGA的初學者和那些從事傳統軟件開發工作的工程師,作者編寫了此書。該書是作者多年從事FPGA教學和科研工作的體會與總結,期望對廣大初學者系統掌握FPGA的設計方法提供很好的幫助。
數字邏輯和數字電路的基本理論知識是學習FPGA的基礎,不管FPGA技術今后如何發展,始終離不開數字邏輯的基本理論知識。系統深入地掌握以上知識是讀者進入FPGA設計世界的基石,特別重要。所以,在編寫本書時特意增加了數字邏輯基礎和數字電路兩章內容。作者在編寫這兩章內容時參考了國外大量的設計資料,以期待通過這兩章內容的講解來幫助廣大讀者準確地把握數字世界的本質,并且通過Multisim內集成的SPICE仿真工具對這些知識點進行了直觀演示和驗證。根據作者多年的教學經驗,認為這些知識難點是入門FPGA的最大障礙,因此通過SPICE仿真工具給出的分析結果幫助讀者掃清這些學習障礙。 Verilog HDL是本書最重要的內容之一,用于對復雜數字系統(尤其是FPGA)進行行為級和寄存器傳輸級建模。本書嚴格按照IEEE Std 1364-2005規范介紹Verilog HDL的詞法和句法。在介紹這部分內容時,將Verilog HDL與復雜數字系統(尤其是FPGA)模型之間的對應關系進行系統講解,使讀者理解Verilog HDL的詞法和句法在復雜數字系統行為級和寄存器傳輸級描述中的使用方法。 本書的一大特色是將Verilog HDL和Vivado集成開發環境進行系統化深度融合,從不同角度深度解讀Verilog HDL語言的實現本質。針對Verilog HDL中的一些語法難點,書中通過Vivado集成開發環境提供的功能進行演示和說明。在此要特別指出,Vivado集成開發工具是學習Verilog HDL最好的助手,這是因為在初學者遇到Verilog HDL中不理解的地方時,可以很容易地通過Vivado集成開發工具給出的電路結構和仿真結果進行直觀的說明。為了幫助讀者提高靈活運用Verilog HDL構建復雜數字系統模型的能力,書中給出了大量的基本邏輯單元的寄存器傳輸級描述,以及一個復雜數字系統設計實例和數模混合系統設計實例。 本書的另一大特色是引入ARM為Xilinx現場可編程門陣列最新定制的Cortex-M1處理器軟核。通過使用Verilog HDL構建嵌入式硬件平臺和使用C語言編寫硬件驅動以及實現軟件應用,在現場可編程門陣列內實現了真正意義上的片上可編程嵌入式系統,這里的可編程是指使用Verilog HDL定制嵌入式系統的硬件,然后使用C語言為這個定制的嵌入式硬件平臺編寫軟件驅動和應用,這個設計過程充分體現了在FPGA上構建嵌入式系統的靈活性和高效性,同時對廣大讀者系統學習ARM嵌入式的硬件和軟件知識提供了很好的幫助。通過對片上嵌入式系統設計流程的詳細解讀,讀者將進一步掌握C語言串行執行和Verilog HDL并行處理的本質特點。通過在嵌入式系統設計中合理劃分軟件和硬件的邊界,最終實現低成本高性能的片上嵌入式系統設計。當然,對片上嵌入式系統設計過程的系統講解也是為了幫助讀者理解軟件處理的靈活性和硬件處理的高效性,進而使讀者進一步理解在新技術中越來越多地使用硬件(FPGA)來實現更復雜的算法的原因。 全書共9章,內容主要包括數字邏輯基礎、數字邏輯電路、可編程邏輯器件原理、Vivado集成開發環境設計流程、Verilog HDL語言規范、基本數字邏輯單元Verilog HDL描述、復雜數字系統設計和實現、數模混合系統設計,以及片上嵌入式系統的構建和實現。為了便于讀者自學,本書提供了所有設計實例的完整設計文件和公開教學視頻,這些資源可以通過書中學習說明給出的鏈接地址獲取。 在本書編寫過程中引用和參考了許多著名學者和專家的研究成果,同時也參考了Xilinx公司的技術文檔和手冊。在編寫本書的過程中,Xilinx多位技術專家解答了作者在設計中所遇到的各種問題,在此向他們表示衷心的感謝。在本書編寫的過程中,作者的學生孟繁陽負責設計了第1章、第2章和第7章的實例并進行了驗證,在此表示感謝。在本書出版的過程中,也得到了電子工業出版社編輯的幫助和指導,在此也表示深深的謝意。 由于編者水平有限,編寫時間倉促,書中難免有疏漏之處,敬請讀者批評指正。 作者 2019年5月于北京 |