Xilinx All Programmable Zynq-7000 SoC設計指南

Xilinx All Programmable Zynq-7000 SoC設計指南

《Xilinx All Programmable Zynq-7000 SoC設計指南》是2013年5月清華大學出版社出版的圖書,作者是何賓。

內容簡介

本書系統地論述了XilinxALLProgrammableZynq7000SoC的體系結構與設計方法,全書共23章,分為3篇。Zynq7000基礎理論篇介紹了可程式SoC設計和AMBA協定規範;Zynq7000體系結構篇介紹了Zynq7000套用處理單元、可程式邏輯資源、系統互聯結構、系統公共資源特性及功能、Zynq調試和測試子系統、Zynq平台的啟動和配置、Zynq平台主要外設模組、Zynq平台描述規範和高級綜合工具HLS;Zynq7000設計實踐篇介紹了Zynq基本處理器系統的建立和運行、添加AXIIP到設計、基於定製IP實現簡單嵌入式系統設計、基於定製IP實現複雜嵌入式系統設計、軟體和硬體協同調試系統、Zynq平台配置和啟動的實現、基於ZynqHP從連線埠的數據傳輸實現、基於ZynqACP從連線埠的數據傳輸實現、XADC在Zynq平台上的套用、Ubuntu作業系統在Zynq平台上的實現、μC/OSⅢ作業系統在Zynq平台上的實現和HLS在Zynq嵌入式系統設計中的套用。全書基於Xilinx最新的Zynq7000平台,理論和實踐相結合;並配套提供了工程檔案及課件。

圖書目錄

推薦序(一)1

推薦序(二)3

前言5

第一篇Zynq7000基礎理論

第1章可程式SoC設計

1.1可程式SoC系統

1.1.1軟核及硬核處理器

1.1.2可程式SoC技術的發展

1.1.3可程式SoC技術的特點

1.1.4可程式SoC的設計流程

1.1.5可程式SoC的開發工具

1.2Xilinx Zynq平台

1.2.1Zynq平台的功能

1.2.2處理系統PS特性

1.2.3可程式邏輯PL特性

1.2.4互聯特性

1.2.5Zynq信號、接口和引腳

1.3Zynq平台設計方法學

1.3.1使用PL實現軟體算法的優勢

1.3.2設計PL加速器

1.3.3PL加速限制

1.3.4降低功耗

1.3.5實時減負

1.3.6可重配置計算

第2章AMBA協定規範

2.1AMBA規範導論

2.2AMBA APB規範

2.2.1AMBA APB寫傳輸

2.2.2AMBA APB讀傳輸

2.2.3AMBA APB錯誤回響

2.2.4操作狀態

2.2.5AMBA3 APB信號

2.3AMBA AHB規範

2.3.1AMBA AHB結構

2.3.2AMBA AHB操作

2.3.3AMBA AHB傳輸類型

2.3.4AMBA AHB猝發操作

2.3.5AMBA AHB傳輸控制信號

2.3.6AMBA AHB地址解碼

2.3.7AMBA AHB從設備傳輸回響

2.3.8AMBA AHB數據匯流排

2.3.9AMNA AHB傳輸仲裁

2.3.10AMBA AHB分割傳輸

2.3.11AMBA AHB復位

2.3.12AHB數據匯流排的位寬

2.3.13AMBA AHB接口設備

2.4AMBA AXI 4規範

2.4.1AMBA AXI 4功能

2.4.2AMBA AXI 4互聯結構

2.4.3AXI 4Lite功能

2.4.4AXI 4Stream功能

第二篇Zynq7000體系結構

第3章Zynq7000套用處理單元

3.1套用處理單元

3.1.1基本功能

3.1.2系統級視圖

3.2CortexA9處理器

3.2.1中央處理器

3.2.2L1高速快取

3.2.3存儲器管理單元

3.2.4接口

3.2.5NEON

3.2.6性能監視單元

3.3偵聽控制單元

3.3.1地址過濾

3.3.2SCU主設備連線埠

3.4L2高速快取

3.4.1互斥L2L1高速快取配置

3.4.2高速快取替換策略

3.4.3高速快取鎖定

3.4.4使能/禁止L2高速快取控制器

3.4.5RAM訪問延遲控制

3.4.6保存緩衝區操作

3.4.7在CortexA9和L2控制器之間的最佳化

3.4.8預取操作

3.4.9編程模型

3.5片上存儲器

3.5.1片上存儲器結構

3.5.2片上存儲器功能

3.6APU接口

3.6.1PL協處理接口

3.6.2中斷接口

3.7APU內的TrustZone

3.7.1CPU安全過渡

3.7.2CP15暫存器訪問控制

3.7.3MMU安全性

3.7.4L1快取安全性

3.7.5安全異常控制

3.7.6CPU調試TrustZone訪問控制

3.7.7SCU暫存器訪問控制

3.7.8L2快取中的TrustZone支持

3.8套用處理單元復位

3.8.1復位功能

3.8.2復位後的APU狀態

3.9功耗考慮

3.9.1待機模式

3.9.2在L2控制器內的動態時鐘門控

3.10系統地址分配

3.10.1地址映射

3.10.2系統匯流排主設備

3.10.3I/O外設

3.10.4SMC存儲器

3.10.5SLCR暫存器

3.10.6雜項PS暫存器

3.10.7CPU私有匯流排暫存器

3.11中斷

3.11.1中斷環境

3.11.2中斷控制器的功能

3.11.3編程模型

3.12定時器

3.12.1CPU私有定時器和看門狗定時器

3.12.2全局定時器

3.12.3系統看門狗定時器

3.12.4三重定時器/計數器

3.12.5I/O信號

3.13DMA控制器

3.13.1DMA控制器結構及特性

3.13.2DMA控制器功能

3.13.3外部信號

3.13.4暫存器描述

3.13.5用於管理器和命令的指令集參考

3.13.6編程模型參考

3.13.7編程限制

3.13.8DMAC IP配置選項

第4章Zynq7000可程式邏輯資源

4.1Zynq7000可程式邏輯資源特性

4.2可程式邏輯資源功能

4.2.1CLB、Slice和LUT

4.2.2時鐘管理

4.2.3塊RAM

4.2.4數位訊號處理

4.2.5輸入/輸出

4.2.6低功耗串列收發器

4.2.7PCIE模組

4.2.8模擬/數字轉換

4.2.9配置

第5章系統互聯結構

5.1系統互聯功能及特性

5.1.1數據路徑

5.1.2時鐘域

5.1.3連線性

5.1.4AXI ID

5.1.5暫存器

5.2服務質量

5.2.1基本仲裁

5.2.2高級QoS

5.2.3DDR連線埠仲裁

5.3AXI_HP接口

5.3.1AXI_HP接口結構及特點

5.3.2接口數據寬度

5.3.3交易類型

5.3.4命令交替和重新排序

5.3.5性能最佳化總結

5.4AXI_ACP接口

5.5AXI_GP接口

5.6AXI信號總結

5.7PL接口選擇

5.7.1使用通用主設備連線埠的CortexA9

5.7.2通過通用主設備的PS DMA控制器(DMAC)

5.7.3通過高性能接口的PL DMA

5.7.4通過AXI ACP的PL DMA

5.7.5通過通用AXI從(GP)的PL DMA

第6章系統公共資源特性及功能

6.1時鐘子系統

6.1.1時鐘系統結構及功能

6.1.2CPU時鐘域

6.1.3時鐘編程實例

6.1.4時鐘系統內生成電路結構

6.2復位子系統

6.2.1復位系統結構和層次

6.2.2啟動流程

6.2.3復位的結果

第7章Zynq調試和測試子系統

7.1JTAG和DAP子系統

7.1.1JTAG和DAP系統功能

7.1.2JTAG和DAP系統I/O信號

7.1.3編程模型

7.1.4ARM DAP控制器

7.1.5跟蹤連線埠接口單元TPIU

7.1.6Xilinx TAP控制器

7.2CoreSight系統結構及功能

7.2.1CoreSight結構

7.2.2CoreSight功能

第8章Zynq平台的啟動和配置

8.1Zynq平台啟動和配置功能

8.2外部啟動要求

8.3BootROM

8.3.1BootROM功能

8.3.2BootROM頭部

8.3.3啟動設備

8.3.4BootROM多啟動和啟動分區查找

8.3.5調試狀態

8.3.6BootROM後狀態

8.4器件配置接口

8.4.1器件配置接口功能

8.4.2器件配置流程

8.4.3PL配置

8.4.4暫存器集合

第9章Zynq平台主要外設模組

9.1DDR存儲器控制器

9.1.1DDR存儲器控制器接口及功能

9.1.2AXI存儲器連線埠接口

9.1.3DDR核交易調度器

9.1.4DDRC仲裁

9.1.5DDR控制器PHY

9.1.6DDR初始化和標定

9.1.7糾錯碼

9.2靜態存儲器控制器

9.2.1靜態存儲器控制器接口及功能

9.2.2靜態存儲器控制器和存儲器的信號連線

9.3四SPI Flash控制器

9.3.1四SPI Flash控制器功能

9.3.2四SPI控制器反饋時鐘

9.3.3四SPI Flash控制器接口

9.4SD/SDIO外設控制器

9.4.1SD/SDIO控制器功能

9.4.2SD/SDIO控制器傳輸協定

9.4.3SD/SDIO控制器接口信號連線

9.5通用輸入/輸出控制器

9.5.1通用輸入/輸出GPIO接口及功能

9.5.2通用輸入/輸出GPIO中斷功能

9.6USB主機、設備和OTG控制器

9.6.1USB控制器接口及功能

9.6.2USB主機操作模式

9.6.3USB設備操作模式

9.6.4USB OTG操作模式

9.7吉比特乙太網控制器

9.7.1吉比特乙太網控制器接口及功能

9.7.2吉比特乙太網控制器接口編程嚮導

9.7.3吉比特乙太網控制器接口信號連線

9.8SPI控制器

9.8.1SPI控制器的接口及功能

9.8.2SPI控制器時鐘設定規則

9.9CAN控制器

9.9.1CAN控制器接口及功能

9.9.2CAN控制器操作模式

9.9.3CAN控制器訊息保存

9.9.4CAN控制器接收過濾器

9.9.5CAN控制器編程模型

9.10UART控制器

9.11I2C控制器

9.11.1I2C速度控制邏輯

9.11.2I2C控制器的功能和工作模式

9.12ADC轉換器接口

9.12.1ADC轉換器功能

9.12.2ADC命令格式

9.12.3供電感測器報警

9.13PCIE接口

第10章Zynq平台描述規範

10.1Zynq平台檔案描述規範功能集

10.2微處理器硬體規範

10.2.1通用微處理器硬體規範

10.2.2AXI系統微處理器硬體規範

10.2.3Zynq7000系統微處理器規範實例

10.3微處理器外設規範

10.3.1微處理器規範框架

10.3.2匯流排接口規範

10.3.3I/O接口規範

10.3.4選項規範

10.3.5參數規範

10.3.6連線埠規範

10.3.7設計考慮

10.4外設分析命令

10.5黑盒定義

10.6微處理器軟體規範

10.6.1微處理器軟體規範格式

10.6.2全局參數

10.6.3實例指定參數

10.6.4MDD/MLD指定參數

10.6.5OS指定參數

10.6.6處理器指定參數

10.7微處理器庫定義

10.7.1庫定義檔案

10.7.2MLD格式規範

10.7.3MLD參數描述

10.7.4設計規則檢查

10.7.5庫產生

10.8微處理器驅動定義

10.8.1驅動定義檔案

10.8.2MDD格式規範

10.9Xilinx板描述格式

10.9.1XBD格式

10.9.2屬性命令

10.9.3本地參數命令及子屬性

10.9.4本地連線埠命令及子屬性

10.9.5使用IO_INTERFACE關聯IP

10.9.6AXI系統XBD格式

第11章高級綜合工具HLS

11.1高級綜合工具結構

11.1.1不同的命令對HLS綜合結果的影響

11.1.2從C中提取硬體結構

11.2高級綜合工具調度和綁定

11.2.1高級綜合工具調度

11.2.2高級綜合工具綁定

11.3Vivado HLS工具的優勢

11.4C代碼的關鍵屬性

11.4.1函式

11.4.2類型

11.4.3循環

11.4.4數組

11.4.5連線埠

11.4.6操作符

11.5HLS內提供的用於時鐘測量的術語

第三篇Zynq7000設計實踐

第12章Zynq基本處理系統的建立和運行

12.1使用BSB嚮導生成Zynq基本系統

12.1.1Zynq硬體系統的生成

12.1.2生成Hello World套用工程

12.1.3運行Hello World套用工程

12.2生成和運行存儲器測試工程

12.2.1導入前面的XPS設計到SDK

12.2.2生成存儲器測試工程

12.2.3運行存儲器測試工程

12.2.4調試存儲器測試工程

12.3生成和運行外設測試工程

12.3.1導入前面的XPS設計到SDK

12.3.2生成外設測試工程

12.3.3運行外設測試工程

第13章添加AXI IP到設計

13.1設計原理

13.2添加IP到系統設計

13.2.1創建設計工程

13.2.2添加GPIO IP到設計

13.2.3添加AXI Timer IP到設計

13.2.4連線中斷源到PS

13.2.5通過EMIO將PS的GPIO連線到PL

13.2.6添加約束到約束檔案

13.3使用SDK設計和實現套用工程

13.3.1導入前面的XPS設計到SDK

13.3.2生成套用工程

13.3.3運行套用工程

第14章基於定製IP實現簡單嵌入式系統設計

14.1創建設計工程

14.2定製GPIO IP核

14.2.1產生GPIO IP模板

14.2.2基於模板構建完整GPIO IP

14.3添加和連線AXI外設

14.4添加約束到用戶約束檔案

14.5使用SDK設計和實現套用工程

14.5.1修改模板驅動函式

14.5.2導入硬體設計到SDK工具

14.5.3生成新套用工程

14.5.4添加定製IP核軟體驅動到設計

14.5.5導入應用程式

14.5.6下載硬體比特流檔案到FPGA

14.5.7運行套用工程

14.5.8使用XMD分析目標檔案

第15章基於定製IP實現複雜嵌入式系統設計

15.1設計原理

15.1.1VGA IP核的設計原理

15.1.2移位暫存器IP核的設計原理

15.2創建設計工程

15.3定製VGA IP核

15.3.1產生VGA IP模板

15.3.2基於模板構建完整VGA IP

15.4定製移位暫存器IP核

15.4.1產生shifter IP模板

15.4.2基於模板構建完整shifter IP

15.5添加和連線VGA IP核

15.6添加和連線shifter IP核

15.7添加約束到用戶約束檔案

15.8使用SDK設計和實現套用工程

15.8.1修改模板驅動函式

15.8.2導入硬體設計到SDK工具

15.8.3生成新的套用工程

15.8.4添加定製IP核軟體驅動到設計

15.8.5編寫應用程式

15.8.6下載硬體比特流檔案到FPGA

15.8.7運行套用工程

第16章軟體和硬體協同調試系統

16.1複製並打開設計工程

16.2例化AXI Chipscope核

16.3導入硬體設計到SDK工具

16.4啟動ChipScope Pro硬體調試器

16.5執行H/S驗證

第17章Zynq平台配置和啟動的實現

17.1生成SD卡鏡像檔案並啟動

17.1.1SD卡接口

17.1.2複製並打開前面的設計工程

17.1.3創建第一級啟動引導

17.1.4創建SD卡啟動鏡像

17.1.5從SD卡啟動引導系統

17.2生成QSPI Flash鏡像並啟動

17.2.1QSPI Flash接口

17.2.2創建QSPI Flash鏡像

17.2.3從QSPI Flash啟動引導系統

第18章基於Zynq HP從連線埠的數據傳輸實現

18.1設計原理

18.2創建設計工程

18.3添加並配置AXI CDMA到設計

18.3.1添加AXI CDMA IP和互聯到設計

18.3.2連線AXI CDMA到設計

18.3.3添加連線埠連線

18.3.4分配地址空間

18.4使用SDK設計和實現套用工程

18.4.1軟體套用的實現原理

18.4.2導入硬體設計到SDK

18.4.3創建新的軟體套用工程

18.4.4導入應用程式

18.4.5下載硬體比特流檔案到FPGA

18.4.6運行套用工程

第19章基於Zynq ACP從連線埠的數據傳輸實現

19.1設計原理

19.2創建設計工程

19.3配置PS連線埠

19.3.1配置PS 32位GP AXI主連線埠

19.3.2配置PS的ACP從連線埠

19.4添加並連線IP到設計

19.4.1添加IP到設計

19.4.2匯流排連線

19.4.3連線埠連線

19.4.4分配地址空間

19.5使用SDK設計和實現套用工程

19.5.1導入硬體設計到SDK

19.5.2創建新的軟體套用工程

19.5.3導入應用程式

19.5.4下載硬體比特流檔案到FPGA

19.5.5運行套用工程

第20章XADC在Zynq平台上的套用

20.1設計原理

20.2創建設計工程

20.3添加XADC IP到設計

20.4添加約束到用戶約束檔案

20.4.1Zedboard板上XADC接口

20.4.2添加約束條件

20.5使用SDK設計和實現套用工程

20.5.1導入硬體設計到SDK工具

20.5.2生成新的套用工程

20.5.3下載硬體比特流檔案到FPGA

20.5.4運行套用工程

第21章Ubuntu作業系統在Zynq平台上實現

21.1Ubuntu作業系統環境搭建

21.1.1安裝虛擬機

21.1.2在虛擬機上安裝Ubuntu 12.10

21.1.3Linux和Windows檔案傳輸工具CuteFTP安裝使用

21.1.4Ubuntu相關環境和命令設定

21.2uboot原理及實現

21.2.1uboot結構

21.2.2下載uboot源碼

21.2.3uboot配置與編譯

21.3核心概述及編譯

21.3.1核心結構

21.3.2核心編譯

21.4設備樹原理及實現

21.4.1設備樹功能

21.4.2設備樹數據格式

21.4.3設備樹的編譯

21.5檔案系統原理及實現

21.6打開設計工程

21.7使用SDK設計生成軟體工程

21.7.1創建第一級引導啟動代碼

21.7.2SD啟動鏡像的生成

21.8驗證Ubuntu作業系統的運行

第22章μC/OSⅢ作業系統在Zynq平台上的實現

22.1μC/OSⅢ作業系統簡介

22.2μC/OSⅢ作業系統環境構建

22.3創建設計工程

22.4建立基於μC/OSⅢ作業系統的軟體套用工程

22.4.1導入設計到SDK中

22.4.2創建新的μC/OSⅢ設計工程

22.4.3修改編譯環境參數

22.4.4重新編譯設計工程

22.5運行外設測試工程

22.5.1配置硬體平台

22.5.2配置運行環境

22.6相關檔案目錄功能

22.6.1App、BSP和Documentation資料夾

22.6.2μC/CPU資料夾

22.6.3μC/CSP資料夾

22.6.4μC/LIB資料夾

22.6.5μC/OSⅢ資料夾

22.6.6用於μC/OSⅢ資料夾的Xilinx BSP

22.7基於μC/OSIII作業系統的關鍵工程檔案分析

22.7.1Main()

22.7.2AppTaskStart()

22.7.3AppTaskCreate()

22.7.4AppMutexCreate()

22.7.5AppTask1()

22.7.6AppPrint()

22.7.7app_cfg.h

第23章HLS在Zynq嵌入式系統設計中的套用

23.1設計原理

23.2基於HLS生成FIR濾波器

23.2.1設計FIR濾波器

23.2.2運行仿真和驗證功能

23.2.3設計綜合

23.2.4設計最佳化

23.2.5運行CoSimulation

23.2.6實現ISim軟體下的仿真

23.2.7使用指令創建Pcore

23.2.8生成Pcore核

23.3創建處理器系統

23.3.1建立新的設計工程

23.3.2修改處理器系統外設參數設定

23.3.3複製Pcore到當前工程

23.3.4例化並連線生成的Pcore

23.3.5添加用戶約束到用戶約束檔案

23.4使用SDK設計和實現套用工程

23.4.1導入設計到SDK

23.4.2生成套用工程

23.4.3導入應用程式

23.4.4驗證硬體設計

23.4.5運行套用工程

熱門詞條

聯絡我們