XilinxZynq-7000总结1Zynq7000平台简介Zc702基本系统的建立和运行Zc702定制IP的设计流程基于Zc702的linux3.3系统移植基于Zc702的Android2.3系统移植Zynq7000平台简介2AllProgrammable(全可编程)平台特点C语言可以用HLS工具转化成HDL,设计从以硬件描述语言HDL为中心的硬件设计,转换到了以C语言进行功能描述为中心的软硬件协同设计。AXIPS.C.SPLHDL.CHPcontrollerPS:ProcessingSystemHLS:HighLevelSynthesisPL:ProgrammableLogicAXI:AdvancedeXtensibleInterfaceGPMst/SlvZynq7000平台简介Xilinx的SOC产品分类3处理器处理器类型器件类型速度(MHz)DMIPsARMcortex-A9硬核Zynq-70008002000PowerPC405硬核Virtex-4450680MicroBlaze软核Virtex-IIpro150123MicroBlaze软核Spartan-38565Zynq7000平台简介PS:CortexA9ApplicationProcessingUnitPlatformDeviceDeviceControllerPL:XilinxArtix77z0107z020XilinxKintex77z0307z0457z100Zynq-7000平台的系统架构4Zynq7000平台简介Zynq-7000系统的处理系统:PS5Zynq7000平台简介PS:APU两个CortexA9cpuNEON协处理器L1=32KB,L2=512KBPlatformDev.256KB-RAM,128KB-ROM定时器中断控制器…DevicecontrollerDDR3、GigEDMA、USBSD、SPI、I2C、UART…Zynq-7000系统的逻辑资源:PL6Zynq7000平台简介PL资源Artix7:7z010、7z020Kintex7:7z030、7z045、7z100功耗PL和PS分开供电,可关断PL降低功耗;再次启动PL须重配,需根据码流大小计算配置时间PL的配置方式对PL的配置可作为系统启动的一部分,或者在启动后的任何时候对其进行重配。PL可以全部地重新配置或者部分动态地重新配置(PR)。PR:PartialReconfigurationPR只配置PL的一部分。参考设计建议时分复用PL资源,如更新设计系数或算法模块等,类似于动态地加载和卸载软件模块。Zynq-7000系统的互联资源7Zynq7000平台简介AXI_HP:用于PL的四个高性能、高带宽主接口,位宽可配64或32,可访问PS的DDR3控制器和PS的片上RAM资源AXI_GP四个通用接口(两主两从),每个位宽为32,可访问PS的DDR3控制器、PS的片上RAM资源和其他从设备AXI_ACP用于PL的一个加速一致性主端口。提供快速访问CPU,可选的与L1或L2缓存一致性Zynq-7000系统的互联资源8Zynq7000平台简介Zynq-7000系统的功能块构成9Zynq7000平台简介ISEAXIPLPSXPS:XilinxPlatformStudioSDK:XilinxSoftwareDevelopentKitMasterregSlavereg.v.hdl.cARM软件开发.c.cppZynq-7000系统的功能块构成10Zynq7000平台简介QtAndroidWinCELinux基于Zynq7000嵌入式开发PS主要内容11Zynq7000平台简介Zc702基本系统的建立和运行Zc702定制IP的设计流程基于Zc702的linux3.3系统移植基于Zc702的Android2.3系统移植Zc702基本系统的建立和运行Zc702基本系统的建立12Zc702基本系统的建立和运行Ref:UG873(v14.5)Zynq-7000AllProgrammableSoC:Concepts,Tools,andTechniques(CTT)XilinISE软件集成有BaseSyetemBuild(BSB)处理系统创建向导,来创建一个基于Zc702的嵌入式系统打开Xilinxplatformstudio,选择BSB创建新工程,硬件工程的名字必须是system.xpmZc702基本系统的建立13选择board为ZC702,next去掉默认添加的IP,BTNs_5Bits、LEDs_8Bits和SWs_8Bits,next向导流程完成后,可以选择GenerateBitstream,来获得下载到PL的位流码文件Zc702基本系统的建立和运行Zc702基本系统的建立14配置PS外设,点zynq标签,弹出zynq7000的内部结构图,点击绿色部分,即可配置相应选项Zc702基本系统的建立和运行Zc702基本系统的建立15配置PS外设,点zynq标签,弹出zynq7000的内部结构图,点击绿色部分,即可配置相应选项Zc702基本系统的建立和运行Zc702基本系统的建立16添加IP双击IPCatalog里的IP,自动弹出配置对话框,配置完成,自动添加IP,点击BusInterface,将列出工程中用到的所有IPZc702基本系统的建立和运行Zc702基本系统的建立17添加IP互联打开Ports对话框,将列出所有IP端口及互联标签,根据实际情况进行配置Zc702基本系统的建立和运行Zc702基本系统的建立18查看各IP地址分配打开Addresses对话框,列出所有IP的地址分配Zc702基本系统的建立和运行Zc702应用系统的建立19在XPS主界面主菜单下选择ProjectExportHardwareDesigntoSDK..,将硬件设计导入SDK中点击下图所示的ExporttoSDK/LaunchSDK(输出到SDK/启动SDK)Zc702基本系统的建立和运行Zc702应用系统的建立20出现下图所示的软件开发工(SoftwareDevelopmentKit,SDK)主界面Zc702基本系统的建立和运行Zc702应用系统的建立21打开NewProject界面,按如下设置参数,建立新的应用工程Zc702基本系统的建立和运行Zc702应用系统的建立22添加应用工程模板,或者实用空模板,点击“Finish”按钮Zc702基本系统的建立和运行Zc702基本系统的运行23开发板JTAG、USB-UART线连接PC在SDK主界面左侧的ProjectExplorer窗口下,右键选中peripheral_tests_0条目,点击鼠标右键出现浮动菜单,在浮动菜单内选择RunAs-RunConfigurations…出现运行配置界面。在该配置界面下,选择XilinxC/C++ELF选项,点击鼠标右键,出现浮动菜单,选择New。生成新的运行配置界面。用鼠标点击配置界面上方的Main、DeviceInitialization、STDIOConnection、ProfileOptions、DebuggerOptions和Common标签,查看这些标签界面下的,配置内容。点击运行配置界面下方的“RUN”按钮,运行程序。Zc702基本系统的建立和运行主要内容24Zynq7000平台简介Zc702基本系统的建立和运行Zc702定制IP的设计流程基于Zc702的linux3.3系统移植基于Zc702的Android2.3系统移植Zc702定制IP的设计流程Zc702定制IP设计25目标介绍定制IP核的设计流程基于定制IP核应用程序的设计方法步骤通过使用CreateandImportPeripheralWizard设计工具,定制一个基于AXI-Lite规范的IP核模板基于IP核模板,添加自定义AXI_LED_IP核,并编译添加定制的AXILEDIP到处理器系统中,用该IP核控制Zc702板子上的8个LED实现不同的闪烁效果为该定制的IP核添加BSP,并编写应用程序Zc702定制IP的设计流程创建LED_IP26定制LED_IP包括产生LED_IP设计模板修改LED_IP设计模板创建LED_IP模板XPS主界面主菜单下,选择Hardware-CreateorImportPeripheral启动向导选CreateandImportPeripheralWizard对话框界面,-Createtemplatesforanewperipheral,-ToanXPSproject,nextZc702定制IP的设计流程27在CreatePeripheral-NameandVersion,在name后面输入led_ip(该名字为IP核的名字,即led_ip_v1.00a),其它使用默认配置,点“Next”CreatePeripheral-BusInterface界面,在该界面下选择AXI-Lite:Simpler,non-burstcontrolregisterstyleinterface创建LED_IPZc702定制IP的设计流程创建LED_IP28端口说明AXI-Lite:为简单的,非猝发控制器类型的接口。AXI4:有猝发能力,高吞吐量、存储器映射类型的接口。AXI-Stream:有猝发能力,高吞吐量的流接口。ProcessorLocalBus(PLBv4.6):处理器本地接口。FastSimplexLink(FSL):快速简单连接接口。在下界面中不选择IncludedataphasetimerZc702定制IP的设计流程创建LED_IP29在下图的CreatePeripheral-UserS/WRegister界面,按下面设置AXI寄存器个数:软件可访问寄存器个数为2出现下图所示的CreatePeripheral-IPInterconnect界面,显示了默认的接口信号,使用这些默认信号即可,NextZc702定制IP的设计流程创建LED_IP30CreatePeripheral-(Optional)PeripheralSimulationSupport界面,用默认配置,Next出现如下图所示的界面,使用Verilog编辑代码,要选中VeriloginsteadVHDL出现如下图所示的CreatePeripheral-Congratulations界面,点“Finish”完成Zc702定制IP的设计流程创建LED_IP31LED_IP模板设计完成,在XPS主界面内,点击IPCatalog标签,在该标签界面下,可以找到LED_IP如下图所示:在./pcores/ed_ip_v1_00_a目录下保存LED_IP信息,文件结构如图verilogvhdlZc702定制IP的设计流程32基于产生的IP模板,需要修改处理器外设定义MPD文件、IPRTL文件led_ip.hdl和user_logic.vMPD在pcores\lcd_ip_v1_00_a\data子目录led_ip.hdl在pcores\lcd_ip_v1_00_a\hdl\vhdl子目录User_logic.v在pcores\lcd_ip_v1_00_a\hdl\verilog子目录完善LED_IPZc702定制IP的设计流程33完善LED_IPuser_logic.vZc702定制IP的设计流程LED_IP的修改后,需Rescan在XPS主界面,选择Project-RescanUserRepositories。将LED_IP作为外设添加到AXI总线,需要以下几步:添加和连接LED_IP外设到AXI总线。使led_ip的用户定义的逻辑端口和外部端口连接。并给led_ip定制外设分配地址。在system.ucf中添加PL引脚约束34添加AXI外设LED_IPZc70