平台介紹
Zynq7000是賽靈思公司(Xilinx)推出的行業第一個可擴展處理平台Zynq系列。旨在為視頻監視、汽車駕駛員輔助以及工廠自動化等高端嵌入式應用提供所需的處理與計算性能水平。
在2010年4月硅谷舉行的嵌入式系統大會上,賽靈思發布了可擴展處理平台的架構詳情,這款基於無處不在的ARM處理器的SoC可滿足復雜嵌入式系統的高性能、低功耗和多核處理能力要求。賽靈思可擴展處理平台芯片硬件的核心本質就是將通用基礎雙ARMCortex-A9MPCore處理器系統作為“主系統”,結合低功耗28nm工藝技術,以實現高度的靈活性、強大的配置功能和高性能。由於該新型器件的可編程邏輯部分基於賽靈思28nm7系列FPGA,因此該系列產品的名稱中添加了“7000”,以保持與7系列FPGA的一致性,同時也方便日后本系列新產品的命名。
Zynq-7000系列的可編程邏輯完全基於賽靈思7系列FPGA架構來設計,可確保28nm系列器件的IP核、工具和性能100%兼容。最小型的Zynq-7000、Zynq-7010和Zynq-7020均基於專門針對低成本和低功耗優化的Artix-7系列;較大型的Zynq-7030和Zynq-7040器件基於包括4至12個10.3Gbps收發器通道,可支持高速片外連接的中端Kintex-7系列。所有四款產品均采用基於2個12位1MspsADC(模數轉換器)模塊的新型模擬混合信號模塊。
Zynq®-7000 SoC 系列集成 ARM® 處理器的軟件可編程性與 FPGA 的硬件可編程性,不僅可實現重要分析與硬件加速,同時還在單個器件上高度集成 CPU、DSP、ASSP 以及混合信號功能。Zynq-7000 系列包括單核 Zynq-7000S 器件和雙核 Zynq-7000 器件,是單位功耗性價比最高的全面可擴展的 SoC 平台,可充分滿足您的獨特應用需求。
芯片架構
ZYNQ 7000SOC構成: Cortex-A9 + FPGA。
Cortex-A9 處理器:提供了具有高擴展性和高功耗效率的解決方案。利用動態長度、八級超標量結構、多事件管道及推斷性亂序執行( Speculative out-of-order execution),它能在頻率超過1GHz的設備中,在每個循環中執行多達四條指令,同時還能減少主流八級處理器的成本並提高效率。
主要外圍器件
在ZYNQ 7000的SOC中,主要分為2個部分:PS(Processing System)、PL(Progarmmable Logic)。
PS:
-
APU:應用處理單元(Application processor unit)
-
內存接口(Memory interfaces)
-
IOP:I/O 外設(I/O peripherals)
-
內部通信總線(Interconnect)
上電啟動過程
Zynq啟動流程和ARM處理器類似,PS部分是啟動和配置過程的主設備,芯片引導必須由處理器驅動。在沒有外部JTAG的情況下,處理系統(PS)與可編程邏輯(PL)都必須依靠PS來完成芯片的初始化配置。
ZYNQ有兩大類啟動模式:從BootROM主動啟動,從JTAG被動啟動。
BootROM支持:SD卡啟動、QSPI-Flash啟動
在BootROM模式中,上電復位后會讀取設備模式引腳來決定從什么設備啟動芯片。
0、zynq 芯片里有個 rom 里面固化了一段不可修改的程序, 只有 zynq 一上電, 這段程序就會執行, 它將初始化CPU和 NAND、 NOR、 SD卡等基本外設。初始化好,BootROM讀取存儲器中的程序代碼,並將FSBL拷貝到OCM(On-chip memory)里。
1、第一階段引導程序(First Stage Boot Loader,FSBL)啟動,BOOT.bin開始執行:首先繼續配置PS,PS初始化好后,再配置PL,最后還可以加載階段2的代碼。
2、開始執行PS端代碼,也可以是第二階段引導程序(Second Stage Boot Loader,SSBL)。完全在用戶的控制之下,是可選的。
SDK構建
完整的SDK包括:2個IDE + 1個構建ARM-LINUX工具(可選)
2個IDE:Xilinx Vivado + Xilinx SDK(Windows,Linux可運行)
1個構建工具:PetaLinux(僅Linux)
Vivado + SDK的開發流程:
-
(FPGA工程師)根據硬件情況,使用Vivado配置有關的硬件,開發好邏輯以后,導出硬件信息以及bitstream。
-
嵌入式軟件工程師根據提供的硬件信息,建立有關的工程。
PetaLinux的開發流程:
1.(基於Vivado導出的結果)構建工程。
-
導入硬件信息。
-
配置Linux、根文件系統后自動構建。
-
構建全部,包括Linux、根文件系統。
-
燒寫到板子中。
注:打包、固化可由SDK或完成。