基于Zynq芯片的SOC设计_第1页
基于Zynq芯片的SOC设计_第2页
基于Zynq芯片的SOC设计_第3页
基于Zynq芯片的SOC设计_第4页
基于Zynq芯片的SOC设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于zynqSOC设计1/34内容介绍2一、基于ZynqSOC总体结构二、BOOT & configuration三、SOC开发流程2/34一、基于ZynqSOC总体结构33/34ONF SDN4PS:APU 两个Cortex A9 cpu NEON协处理器 L1=32KB,L2=512KBDevice controller DDR3、GigE DMA、USB SD、SPI、I2C、UART Platform dev 256K RAM,128K ROM 定时器、 中止控制器 4/345Zynq-7000 系统互联资源AXI_HP: 用于PL四个高性能、高带宽主接口,位宽可配为64或32,可访问

2、PSDDR3控制器和PS片上RAM资源AXI_GP: 四个通用接口(两主两从),每个位宽为32,可访问PSDDR3控制器、 PS片上RAM资源和其它从设备5/346Zynq-7000 系统互联资源AXI_ACP: PL到PS32位宽从AXI接口, PL经过该接口直接连接到SCU中(SCU任务就是确保L1、L2和 DDR存放之间一致性),采取ACP可访问PS中每一个Cortex-A9处理器高速缓存存放器,而无须担心与主存放器与主存放器中数据同时问题 ,该 功效不但可大幅降低设计负担,而且还能显著加速处理器与PL之间数据传输。6/347Zynq-7000 System address7/348Zy

3、nq-7000 interruptPPIs(Private perihperal interrupts)包含5个中止,对每个CPU都属于专用中止,如CPU定时器、CPU看门狗监视器及专属PL至CPU中止SGIs(softwaregenerated interrupts)每个处理器有16个这类中止,能够中止一个或两个Zynq Soc处理器内核SPIs(shared peripheral interrupts)共计60个,包含IO外围设备或PL侧中止,其中IO外设有44个中止PL有16个中止8/349Zynq-7000 interruptPPIs (Private perihperal inter

4、rupts)9/3410Zynq-7000 interruptSGIs (softwaregenerated interrupts)10/3411Zynq-7000 interruptSPIs(shared peripheral interrupts)11/3412二、BOOT & configuration12/3413二、BOOT & configurationZynq开启源:Quad-SPISD卡,NAND Flash,NOR FlashJTAG13/3414二、BOOT & configurationZynq开启过程三个阶段: 阶段0(Stage 0): 这个阶段也就是Boot ROM

5、阶段,控制整个芯片初始化过程。Boot ROM中代码是固化,不可修改,处理器在上电或者热开启时自动执行这部分代码。在系统上电复位时,PS采样专用bootstrapping singals引脚电平来决定从什么方式引导器件。这个引导过程是由一个Cortex A9执行片内 ROM code对NAND、NOR、QSPI、SD卡与PACP基本外设控制器进行初始化,使得ARM能够该问这些外设,并从指这接口加载FSBL到片内执行。14/3415二、BOOT & configuration 阶段1(Stage 1):这个阶段由FSBL(First Stage Boot Loader)负责开启过程。在Zynq中

6、,能够直接利用SDK生成这部分文件,不过用户能够对该部分代码进行修改,满足自己需要。所以这个阶段开启代码已经是用户能够控制了。FSBL主要完成几项工作:依据对子系统配置 ,完成PS端初始化使用bitstream对PL进行配置 加载SSBL或裸跑程序到内存空间跳转执行SSBL或者裸跑程 序15/3416二、BOOT & configuration 阶段2(Stage 2):这个阶段其实就是用户自己设计代码了,对应于FSBL,这一阶段普通称之为SSBL(Second Stage Boot Loader)。SSBL就是我们日常嵌入式系统开发中Bootloader,主要负责将操作系统加载到内存中,假如

7、ARM上仅仅只是运行一个裸跑程序,该部分就能够省略; 16/3417二、BOOT & configuration系统开启文件及版本信息目标文件u-boot-xlnx-xilinx-v.4.zip u-boot.elfarm_ramdisk.image.gzuImage.image.gzlinux-xlnx-xilinx-v.4.tar.gz uImagedevice-tree-xilinx-v.1devicetree.db17/3418在编译内核前需要做工作:1、设置交叉编译环镜bash$ export CROSS_COMPILE=arm-xilinx-linux-gnueabi- bash$

8、 source /usr/Xilinx/SDK/.1/settings64.sh 二、BOOT & configuration编译u-boot.elfu-boot主要作进行硬件资源检测,将内核镜像、文件系统以及设备树加载到对应内存区域,在编译u-boot 前确保使用zynq 外设与zynq_zed.h (文件路径:include/configs/zynq_zed.h)文件中定义 一致,本设计中选择UART0作为串口,所以需要修改zynq_zed.h文件中:CONFIG_ZYNQ_SERIAL_UART1为CONFIG_ZYNQ_SERIAL_UART0。在bash下执行脚本 make zynq

9、_zed_config make编译完成后即可看到根目录下生成u-boot文件即为所需要u-boot.elf。18/3419二、BOOT & configuration编译内核uImage:确保使用zynq 外设与xilinx_zynq_defconfig(该文件存放路径:arch/arm/configs/xilinx_zynq_defconfig)文件中定义 一致,本设计中选择UART0作为串口,所以需要修改xilinx_zynq_defconfig文件中:CONFIG_DEBUG_ZYNQ_UART1=y为CONFIG_DEBUG_ZYNQ_UART0=y。同时需要增加:CONFIG_SP

10、I_SPIDEV=y1、在bash下执行脚本:make ARCH=arm xilinx_zynq_defconfig - 配置内核make ARCH=arm - 编译整个编译过程需要几分钟,完成编译后arch/arm/boot/zimage下即为生成内核。2、生成uImage执行以下脚本生成uImage:./mkimage -A arm -O linux -T kernel -C none -a 3000000 -e 3000040 -n linux-2.6.13 -d zImage uImage 注意:执行该脚本前提需要编译完成u-boot生成mkimage(/u-boot-xlnx-mas

11、ter/tools/mkimage)工具。19/3420二、BOOT & configuration首先查看mkimage命令参数rootlocalhost tools# ./mkimage Usage: ./mkimage -l image -l = list image header information ./mkimage -x -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file :data_file. image -A = set architecture to arch /用于指定CPU类型,比如ARM

12、-O = set operating system to os /用于指定操作系统,比如Linux -T = set image type to type /用于指定image类型,比如Kernel -C = set compression type comp /指定压缩类型 -a = set load address to addr (hex) /指定image载入地址 -e = set entry point to ep (hex) /内核入口地址,普通是:image载入地址+0 x40(信息头大小) -n = set image name to name /image在头结构中命名 -d

13、 = use image data from datafile /无头信息image文件名 -x = set XIP (execute in place) /设置执行位置20/3421二、BOOT & configurationFLASH开启:SDK Menu: Xilinx Tools Create Zynq Boot Image在弹出对界面中create new BIF file创建一个bif文件,并导入前面准备各种文件,以下:the_ROM_image:bootloader zynq_fsbl.elfu-boot.elfoffset = 0 x100000, load = 0 x3000

14、000 uImageoffset = 0 x600000, load = 0 x2A00000 devicetree.dtboffset = 0 x60, load = 0 x000 uramdisk.image.gz导入文件完成后生成mcs下载文件,并执行SDK Menu: Xilinx ToolsProgram flash下载注意:其中offset及load地址需要与zynq-common.h文件中一致21/3422二、BOOT & configurationSD Card开启:所需文件:zImage、BOOT.BIN、 devicetree.dtb、 uramdisk.image.gzS

15、DK Menu: Xilinx Tools Create Zynq Boot Image。在弹出对界面中create new BIF file创建一个bif文件,并导入前面准备各种文件,以下:the_ROM_image:bootloader zynq_fsbl.elfu-boot.elf导入文件完成后生成BOOT.BIN文件。SOC上电初始化,进入u-boot,由u-boot加载devicetree.dtb、zImagz、 uramdisk.image.gz22/3423二、BOOT & configurationbitstream加载:在系统开启每一阶段均可对于PL文件进行加载在FSBL阶段

16、加载:修改bif文件,在zynq_fsbl之后加入bitstream.bit,重新生成mcs或BIN文件,在SOC上电后执行FSBL时也会在该步骤中加载逻辑文件。例:the_ROM_image:bootloader zynq_fsbl.elfbitstream.bitu-boot.elf23/3424二、BOOT & configurationBOOT引导加载stream:该方式下主要是在SOC进入到boot中引导逻辑文件加载到PL1、经过boot.bif文件生成ps_system_top.bit.binthe_ROM_image:bootloaderE:SoC_StudyGroupbranc

17、hRA2401_PTPbootbackupSD_bootzynq_fsbl.elfE:SoC_StudyGroupbranchRA2401_PTPbootbackupSD_bootps_system_top.bitE:SoC_StudyGroupbranchRA2401_PTPbootbackupSD_bootu-boot.elfSDKXMD中执行以下命令生成ps_system_top.bit.bin文件并copy到SD卡:cmd /C bootgen image E:SoC_StudyGroupbranchRA2401_PTPbootbackupSD_bootboot.bif -split

18、bin2、在系统开启中进入boot,并执行以下命令加载逻辑文件fatload mmc 0 0 x100000 ps_system_top.bit.bin ;fpga load 0 0 x100000 0 x3DBAFC注意:在boot中加载时boot必须支持该器件,假如不支持则需要修改boot原代码。在zynq socboot中支持不一样逻辑文件格式加载,比如:fpga loadb可直接加载.bitfatload mmc 0 0 x100000 ps_system_top.bit ;fpga loadb 0 0 x100000 0 x3DBAFC24/3425二、BOOT & configur

19、ation系统开启后引导加载bitstream:该方式下为整个系统开启后经过SD卡中存放.bin文件进行加载,这种方式加载需要修改文件系统arm_ramdisk.image.gz中/etc/init.d/rcS文件加入以下脚本:echo 0 sys/devices/amba.0/f8007000.ps7-dev-cfg/is_partial_bitstreammount /dev/mmcblk0p1 /mntcat /mnt/fpga.bin /dev/xdevcfg25/3426三、SOC开发流程26/342727/3428在进行SOC开发前需要得到板上配置信息,包含外设与接口配置、时钟配置

20、、DRR配置等。以Zynq -7000开发板为例,使用vivado工具对其进行配置:1、File-Create New Project,并为该工程指定一个路径,进入下步选择开发板型号后进入vivado设计界面2、Flow-Create block Design,定义本设计名并进入设计页面 3、在设计页面中添加IP:ZYNQ7 Processing System,双击该IP进入PS block配置。4、完成Processing System配置后,返回设计页面。点击该视 图页面中图标 可检验该设计配置与互联接口是否正确。备注:假如该设计中存在AXI总线接口,则与该总线对应时钟管脚不能悬空。5、为

21、该设计创建一个HDL Wrapper,并对该设计进行synthesis and implementation备注:只有对该设计创建了HDL Wrapper,才能进行synthesis and implementation。Create New Project28/3429Config HW platform29/3430Address editor30/343131/34Software Application Development Flows bare-metal applications development Linux applications development Importi

22、ng hardware platform informationCreating Bare-Metal BSPCreating Bare-Metal ApplicationBuliding the Application ProjectProgramming the Device(optional)Debugging the ApplicationDeploying the Application (generate a boot image)Booting LinuxCreating an Application ProjectBuilding the Application ProjectRunning the Application ProjectDebugging the Application ProjectProfiling the ApplicationAdding Application to Linux File SystemRunning the Application32/341、Select file-New-Other,在弹出窗口中选择hardward Platform Specification。2、在New Hardware Project窗口中,输入project name,导入target hardw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论