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