肖昊 張華娟
【摘要】 Zedboard是基于Xilinx ZYNQ系列全可編程SoC系統的FPGA開發板。它以ARM Cortex-A9處理器為核心,集成了一塊可編程FPGA、存儲器控制器和外設。配合Xilinx的開發軟件,ZYNQ FPGA提供了一個方便、便捷的SoC開發平臺,使用者可以快速的建立一個初始的SoC系統,并在此基礎上進一步擴張相應的功能。這為高校SoC實驗課程提供了很好的平臺。本文將基于Zedboard開發板,以培養學生對基本SoC的組成結構、設計流程、設計方法的深入理解為目標,探索一種內容合適,易于理解的SoC設計實驗教學方法。
【關鍵詞】 Zedboard Xilinx ZYNQ SoC FPGA
一、SoC的研究背景
集成電路是當今信息技術產業高速發展的基礎和源動力,已經高度滲透與融合到國民經濟和社會發展的每個領域,其技術水平和發展規模已成為衡量一個國家產業競爭力和綜合國力的重要標志之一。經過多年的快速發展,我國信息技術產業規模多年位居世界第一。國家出臺了一系列政策鼓勵和發展集成電路產業,其中加強集成電路專業人才的培養,是重要的舉措之一。高校是我國集成電路人才培養的重要基地。目前,國內不少高校都開設了集成電路相關的課程。其中,片上系統(System-on-Chip, SoC)是集成電路的主流發展方向,相關的課程是集成電路設計類的主要課程之一,主要傳授數字片上系統(SoC)及混合信號SoC的基本設計方法和技術,為從事集成電路設計和研發提供必要的基礎知識。目前,國內高校的SoC設計課程主要以概念性理論教學為主,這與集成電路設計實踐性強的特點極不相符合。導致眾多學生難以真正理解SoC的理論和設計方法,更不具備參與SoC設計的能力,使教學與就業、科研需求嚴重脫節。但由于SoC設計的特點 :一是硬件規模龐大,通常基于IP設計模式;二是軟件比重大,需要進行軟硬件協同設計。因此,開設SoC的實驗類課程對高校的硬件條件和任課教師的科研基礎都提出了很大的挑戰。得益于FPGA技術的發展,目前已有的集成電路設計環節主要集中于在計算機上進行集成電路的版圖設計。因此,這為高校進行集成電路設計的培訓提供了便利,同樣給SoC教學課程提供了機遇。本文基于Xilinx Zynq-7000全可編程SoC系列器件,以提高學生實踐能力為目標,探索一種內容合適,難度適中的SoC設計實驗教學方法。
二、SoC的結構與設計方法
2.1 Zynq-7000 SoC芯片簡介
Zynq-7000 SoC芯片的硬件部分實現了一個高性能、雙核 ARM Cortex-A9 處理器子系統(PS)和一個豐富的內存、配置和互聯接口。在 FPGA 邏輯部分保留了靈活性以及其他傳統 FPGA 具備的所有優勢,FPGA 則通過多口高性能接口連接到 PS 端,實現 PS 與 FPGA 間的高帶寬通信。ZedBoard 通過提供一個專門為這類獨一無二并且功能強大的器件推廣到廣大應用和用戶的定制平臺將定制SOC 的 概念帶到了下一步。作為全球最大的可編程邏輯平臺供應商,Xilinx 已經將可編程邏輯技術帶領到了全可編程的時代,Xilinx 推出的 Zynq-7000 All Programmable SOC 集成了 ARM Cortex-A9 雙核(PS)以及最多可達相當于 500 多萬個邏輯門的可編程邏輯單元(PL),不僅解決了芯片工藝實現上的難點,更解決了片內高性能處理器與高性能可編程邏輯數據交互協議的難點。
2.2 SoC的結構
圖1 典型的SoC硬件架構
圖1所示為一個典型的SoC硬件結構。片上模塊包括以下幾種。(1) CPU:如ARM、MIPS等。(2)存儲器:如SRAM、Flash、ROM、DRAM等。(3)存儲器控制器:控制外部存儲器。(4)片上互連:總線,提供各IP間的數據通路。(5)專用加速器:如MPEG、AES等ASIC技術設計的可重用專用模塊。(6)I/O控制器:如PCI、PCI-X、以太網、USB、AD/DA等。(7)外圍設備:如通用I/O接口、通用異步收發器、定時器、中斷控制器等。
2.3 SoC的設計
SoC設計是自頂向下和自底向上相結合的過程,主要流程如圖2所示。(1)系統級設計主要有系統說明、行為建模和軟/硬件劃分。(2)硬件設計包括RTL設計、綜合,布局布線、功能驗證和流片制造。(3)軟件設計主要是對軟件的開發。從上文可知,SoC設計主要有以下特點:(1)采用深亞微米、超深亞微米CMOS工藝技術。(2)SoC是針對不同應用市場開發的產品。(3)軟/硬件協同設計。(4)低功耗技術要求。因此,目前高校教學中只進行書面介紹或圖片展示很難讓學生充分理解SoC設計的內涵。所以,基于Xilinx Zynq-7000全可編程SoC系列器件設計一個難度適當的SoC設計實驗勢在必行。
圖2 SoC設計流程
三、SoC設計課程實驗介紹
本文將先介紹HDMI的傳輸原理,然后介紹基于Zedboard的HDMI現實系統架構,最后介紹SoC的實驗步驟。
3.1 HDMI傳輸原理介紹
信源(Source)和信宿(Sink)組成HDMI系統的架構。HDMI接口包括3個TMDS數據信道、1個TMDS時鐘信道和一個DDC通道。信源讀取信宿的E-EDID,是為了解信宿的當前配置和能力。HDMI傳輸的數據包括視頻數據、控制數據和數據包(數據包中包含音頻數據和附加信息數據,例如糾錯碼等)。TMDS每個信道的傳輸數據包括2位的控制數據、8位的視頻數據或4位的數據包。這些數據先傳給HDMI發送器,然后經10位編碼器編碼,最后串行輸出。串行輸出的10位編碼經HDMI接收器串行接收,再進行解碼得到原數據。在時鐘信道的一個時鐘周期內完成所有操作。每個時鐘信道的一個時鐘周期對應一個像素點數據的傳輸,這個時鐘頻率一般在25MHz~165MHz之間。
3.2 HDMI顯示系統架構
圖3所示為基于Zedboard的HDMI顯示系統SoC系統。VDMA 和 ADV7511 視頻接口組成系統的視頻輸出接口。VDMA 的功能是將圖像幀數據傳輸到視頻接口模塊。DMA 和 spdif 音頻接口組成系統的音頻輸出接口。Zynq 作為整個系統的控制核心,提供 HDMI 的顯示數據,來及時讀寫顯存的控制,以及 DDC 的數據產生。PL 部分主要是 ADV7511 的控制,還有將 24bit 的RGB 數據轉換為16bit 的 YCBCR422 的數據發送給 ADV7511。ZedBoard 的 HDMI 接口使用了 ADV7511 芯片,這是 ADI 公司生產的一款 225MHz 的 HDMI 發送器,它全面支持 HDMI1.4 協議、同時包括 HDMI 以太網絡通道 HEAC 和 3D Video,它支持全部的高清制式。
圖3 Zynq 系統框圖
3.3 HDMI顯示系統實驗步驟
實驗基于Xilinx Vivado集成開發環境,軟硬件協同,分為硬件設置和軟件設置,步驟分別如下:(1)創建工程,添加工程文件、目錄和庫目錄,設置軟件環境和FPGA器件;(2)添加設計中使用的IP。(3)初步綜合,以明確網標中時鐘信號的名字,檢查是否存在語法錯誤。(4)添加約束,時鐘約束,管腳約束等。(5)綜合實現(Synthesis and Implementation),生成二進制比特流。以上硬件步驟可以Tcl腳本的形式實現,實驗中學生只需要載入腳本。Xilinx的軟件開發是基于Vivado的SDK開發環境,步驟分別如下:(1)新建軟件工程;(2)添加C代碼源文件至工程目錄;(3)設置軟件環境變量,添加庫目錄等;(4)編譯軟件,生成可執行文件。
完成以上軟硬件設計后,將Zedboard開發板與電腦主機相連,并將HDMI接口與顯示器相連,打開FPGA開關,下載FPGA比特流和可執行文件即可在顯示器上顯示出圖像。
四、 總結
本文基于Xilinx Zedboard開發板的HDMI功能,設計了一個SoC設計的課程實驗。經教學實踐證明,Xilinx Zedboard開發板提供了一個完整的SoC開發設計平臺,其開發軟件Vivado提供了簡單易用的圖形開發界面,整套流程簡單易學,便于學生掌握和理解,為高校的SoC實驗教學提供了很好的軟硬件環境。
聯系方式:肖昊 南京市御道街29號A12號樓 210016 xiaohao@nuaa.edu.cn
參 考 文 獻
[1] James Lucero and Bob Slous. Designing High-Performance Video Systems with the Zynq-7000 All Programmable SoC Using IP Integrator[technical report]. www.xilinx.com. March 28, 2014.
[2] Zynq-7000 All Programmable SoC Overview[technical report]. www.xilinx.com. October 8, 2014.
[3] ADV7511 PROGRAMMING GUIDE[technical report]. www.xilinx.com.March 2012.
[4] LogiCORE IP AXI Video Direct Memory Access v6.2[technical report]. www.xilinx.com. PG020 April 2, 2014.