本次接著看下《UltraFast 嵌入式設計方法指南》中關于硬件設計方面的內容,主要分3部分:硬件設計需要考慮的事項、設計流程及個人總結。
1. 硬件設計考慮事項
硬件設計需要考慮的部分主要有:首先當然是PL部分的配置啟動,接著是存儲接口及外設,IP模塊,PL時鐘及數據流接口,各種高速接口管理及AXI4總線接口等,如下圖所示,下面只摘取PL部分的配置啟動、存儲接口、外設、IP模塊和PL時鐘簡略介紹,其它詳細內容請查看對應文檔。
配置及啟動:
我們知道,SRAM架構的FPGA啟動時都是通過外部加載配置數據來完成,Flash架構的Actel FPGA除外,同樣PL的啟動也是通過加載外部數據來完成,而Zynq不僅包括PL,還包含PS,所以啟動時先啟動PS,再通過PS來配置PL啟動整個流程,也就是說Zynq的啟動既包含常用的FPGA啟動,還包含ARM的啟動流程。典型的啟動流程如下:
首先啟動當然是BootROM,BootROM包含一個上電復位后執行的代碼,并且代碼通過外部靜態存儲讀取 FSBL。FSBL負責:利用XPS提供的PS配置數據進行初始化。將比特流(bitstream)下載到PL。將第二階段引導程序(SSBL)或者是“裸奔”應用代碼加載到內存。開始執行SSBL或是“裸奔”應用程序,也就是后面的OS及APPLICATION階段。
另外需要關注的就是啟動器件選擇,啟動器件和ARM的啟動差不多,主要包括:可就地執行的四通道 SPI 模式、NAND 閃存、可就地執行的 NOR 閃存模式、SD 存儲卡、JTAG等,至于具體配置可查閱對應UG585中的“啟動和配置”章節內容。
存儲接口:
其中,DDR 儲存器控制器包含三個主要模塊:一個 AXI 儲存器接口 (DDRI),一個核心控制器與事務調度器 (DDRC),以及數字 PHY (DDRP) 控制器。有關每個模塊和其他控制器的詳情,請參閱:《Zynq-7000 All Programmable SoC 技術參考手冊》 (UG585)。對于某些 Zynq-7000 AP SoC 器件的最高速度等級,支持的最大總線時鐘為 DDR3 模式 666 2/3MHz。對于其它所有速度等級,支持的最大總線時鐘為 DDR3模式 533 MHz。理論上的最大總線比特率是:Data transfer rate = 666 2/3 MHz * 2 bits (for double data rate) = 1333 Mb/s per data IO,使用 32 位的最大總線寬度時,所述最大總線帶寬為 42.6 Gb/s,或 5.3 GB /s。
PS QSPI 閃存控制器使用 QSPI 接口與外部串行閃存進行通信。儲存器閃存單元平行排列,有時被稱為 NOR 閃存。而這種配置的密度較小,并且具有比 NAND 閃存更小儲存器容量,允許在單字節陣列中的任何地方進行讀取。對于讀取操作,它與標準地址映射儲存器行為類似,非常適合代碼存儲。此外,它支持就地執行 (XIP) 功能,CPU 可以直接執行QSPI 代碼,而無需先讀取代碼到 DDR 或 OCM。QSPI 可以通過 U-Boot、Linux、iMPACT 以及 SDK 進行編程。
靜態儲存器控制器有兩個接口模式:NAND 閃速接口模式和并行端口儲存器接口模式。NAND 閃存接口模式支持 NAND 閃存,而并口接口模式支持 NOR 閃存和同步 SRAM。因為 QSPI 和 NOR 閃存都使用基于 NOR 的存儲單元,又因為在線性模式下 QSPI 被限制于 16Mb,容量成為了選擇 NOR 閃存而非 QSPI 的差異化因素。然而,因為靜態儲存器控制器限制的地址行的數量為 26 位,它支持的最大 NOR 閃存僅為 64MB。16MB QSPI 限制(BootROM 讀取數據不得超過 16MB)僅適用啟動。在 BootROM 加載 FSBL 到 OCM 或 DDR 儲存器之后,在閃存器件頁面寄存器的支持下,QSPI 控制器切換到 I/O 模式并可訪問高達 128MB 的儲存器。因此,與 NOR 閃存控制器支持 64MB 器件(40 引腳情況下)的能力的相比,QSPI 支持 128MB 器件(僅使用 8 引腳)使得 QSPI 超過 NOR 閃存,成為優先解決方案。
這里介紹了ZYNQ中常用存儲器接口,不僅對使用ZYNQ非常有用,還對以后其它項目中選擇存儲接口有很大的參考價值。
外設:
ZYNQ的外設主要有2部分:PS外設和PL外設。PS外設主要是一些低速通用固定的外設:USB、I2C、UART、SPI、SD等,通用型強;而PL外設則是一些已有IP或者自定義IP外設:DMA、自定義串口等,靈活性強。
一個PS+PL外設的例子:
上圖中的例子:您必須使能 GEM0 的 MIO 連接和 GEM1 的 EMIO 連接。使能 GEM1 的 EMIO 將發送和接收的 GMII 信號送達 PS 的 IP 頂層實例。用戶必須在 IP 集成器中例化賽靈思 1000BASE-X IP 核,并將其連接到 GEM1 EMIO 端口。您可以使用 Vivado Design Suite 設計實現流程來生成碼流。如需了解更多信息,請參閱:《Zynq-7000 AP SoC 中通過 PL 以太網實現 PS 與 PL 以太網性能和巨型幀支持》 (XAPP1082) 。
IP模塊:
IP 模塊主要分兩大類:
? 軟 IP 模塊:您可以在 FPGA 結構中實現這些模塊,使用 RT L或更高級別的說明。它們更適用于數字核,因為硬件描述語言 (HDL) 與進程無關,可以綜合到門級。 HDL 具有靈活性、可移植性和可復用性優勢,但是具有不能保證時序或功耗特性的缺點。
? PS IP 模塊:這些模塊具有固定的布局并且針對特定應用和進程進行了優化。它們的主要優點是具有可預測的性能,但是需要著額外的工作和成本投入,而且缺乏便攜性,這可能大大地限制了其應用范圍。 PS IP 模塊通常通過了預審,這意味著供應商已經對芯片進行了測試。這大大增加了其正確性的保障。
當你用ZYNQ開發時,你會發現硬件設計時的IP開發貫穿始終(包括調用IP核自定義IP),一個IP模塊的舉例如下:
PL時鐘:
PL時鐘有四種可用時鐘源:
? 來自 PS 的時鐘 (FCLK):PS輸入到PL的時鐘FCLK;
? 從 GT 恢復時鐘:GT 收發器的接收器時鐘數據恢復 (CDR) 電路從輸入數據流中提取時鐘和數據;
? 外部時鐘源:外部IO輸入單端或差分時鐘;
? 由 MMCM 生成的時鐘:時鐘管理模塊分倍頻得到的時鐘。
2. 硬件設計流程
硬件設計流程的部分主要是IP的創建、維護集成模塊化等,簡單說就是如何將硬件設計模塊化來提高系統的設計效率和性能,這些IP模塊既包括用開發工具生成的IP,也包括自定義封裝的IP,最終都是通過總線互聯。這些具體設計流程的東西就不一一講解,詳細內容請查看對應文檔。
3. 總結
《UltraFast 嵌入式設計方法指南》中硬件設計部分內容涉及PS+PL系統的考慮各個部分和細節,同時我們不難發現:ZYNQ設計中特別注重模塊化復用的IP設計思想,整個硬件設計流程都是圍繞這個展開,我們常聽說軟件設計中的模塊化編程,其實硬件設計中也可以模塊化互聯,硬軟件思維不同但思想可以借用,至少ZYNQ中的IP模塊就是基于AXI4總線的模塊化互聯,這大大方便了硬件設計開發和維護。
-
嵌入式設計
+關注
關注
0文章
392瀏覽量
21344 -
Ultrafast
+關注
關注
0文章
13瀏覽量
15609
發布評論請先 登錄
相關推薦
評論