ZYNQ SOC 入门基础(一)Hello World 实验

ZYNQ是一款SOC芯片,其最突出的功能就是其内部包含了一个双核的Cortex_A9内核。从本节开始,进行ZYNQ的SOC学习。

1.1 最小系统分析

下面这张图展示了我们需要构建的最小系统。并且本节的嵌入式实验会基于这个最小系统进行添加外设。

 

ZYNQ SOC 入门基础(一)Hello World 实验_第1张图片

本实验中将只会使用到PS部分资源,包括ARM Cortex—A9、DDR3内存、一个UART串口。这就是我们的最小系统。首先我们程序会加载到DDR内存中,然后CPU一条一条执行,程序的执行情况可以通过串口打印进行观察。

1.2 硬件电路分析

本实验采用MIZ7035开发板做实验。MIZ7035开发板PS端的DDR容量位1GB,PL端DDR为1GB,本实验只采用PS端的DDR.下图为MIZ7035的核心板。

ZYNQ SOC 入门基础(一)Hello World 实验_第2张图片

1.3 创建一个VIVADO工程

step1: 在打开的VIVADO软件界面,单击Create New Project

ZYNQ SOC 入门基础(一)Hello World 实验_第3张图片

step2:单击 Next,在弹出的窗口中输入工程名和保存路径,然后单击Next

ZYNQ SOC 入门基础(一)Hello World 实验_第4张图片

ZYNQ SOC 入门基础(一)Hello World 实验_第5张图片

step3:按下图进行设置

ZYNQ SOC 入门基础(一)Hello World 实验_第6张图片

step4:选择芯片型号

ZYNQ SOC 入门基础(一)Hello World 实验_第7张图片

step5:单击Finish完成工程的创建

step6:单击Create Block Design,输入名称system

ZYNQ SOC 入门基础(一)Hello World 实验_第8张图片

step7:单击“+” 号,添加IP

ZYNQ SOC 入门基础(一)Hello World 实验_第9张图片

step8:搜索“ZYNQ”,然后双击

ZYNQ SOC 入门基础(一)Hello World 实验_第10张图片

step9:添加进来zynq cpu IP,然后单击 Run Block Automation,直接单击 ok

ZYNQ SOC 入门基础(一)Hello World 实验_第11张图片

ZYNQ SOC 入门基础(一)Hello World 实验_第12张图片

step10:在Block 文件中,我们进行连线,将鼠标放在引脚处,鼠标变成铅笔状后进行拖拽,连线如下图所示。连线的作用就是把PS的时钟介入PL,当然我们这里暂时还用不到PL部分的资源。

ZYNQ SOC 入门基础(一)Hello World 实验_第13张图片

step11:双击 ZYNQ CPU IP ,对其进行设置,使其对应Miz7035的硬件设置。在此部分,我们需要做的就是修改时钟频率,内存类型和接口输出。需要注意的是如果时钟频率、内存类型与我们的硬件不一致时,SDK中的程序会崩溃,运行不下来。这在后续的调试中是一个小技巧。正确的配置是成功的必要条件。

PS时钟配置:

ZYNQ SOC 入门基础(一)Hello World 实验_第14张图片

内存配置:(Miz7035开发板的内存型号配置为MTKM16  RE-125)

ZYNQ SOC 入门基础(一)Hello World 实验_第15张图片

step12:设置外扩接口,之后点击OK

ZYNQ SOC 入门基础(一)Hello World 实验_第16张图片

step13:右击 system.bd ,单击Generate Output Products

ZYNQ SOC 入门基础(一)Hello World 实验_第17张图片

此步操作会产生执行、仿真和综合文件,可以看出最后的硬件设计步骤还是回到了我们前面的FPGA开发上来了。

ZYNQ SOC 入门基础(一)Hello World 实验_第18张图片

step15: 右击system.bd 选择Create HDL Wrapper 者不得作用是产生顶层HDL文件,选择让vivado自动管理

step16:之后看下源码的层次结构,可以看到system_wrapper.v就是顶层文件,调用了CPU

ZYNQ SOC 入门基础(一)Hello World 实验_第19张图片

step17:    生成比特流

step18: 查看system_wrapper.v 源码

ZYNQ SOC 入门基础(一)Hello World 实验_第20张图片

1.4 导出SOC硬件到SDK

step1: File-> Export-> Export Hardware,包含比特流

ZYNQ SOC 入门基础(一)Hello World 实验_第21张图片

step2: File->launch SDK,启动SDJK

1.5 Hello World 实验

step1: 打开SDK后如下图

1、硬件部分,这部分就是从VIVADO定制好的SOC硬件

2、这部分是硬件的地址空间分配

step2:z在SDK开发环境下,File-> New -> Application Project

ZYNQ SOC 入门基础(一)Hello World 实验_第22张图片

step3:工程名为 Hello World。然后单击Next

ZYNQ SOC 入门基础(一)Hello World 实验_第23张图片

step4:系统里面有很多的自带程序,本次就用自带的Helloworld程序做测试,单击Finsih

ZYNQ SOC 入门基础(一)Hello World 实验_第24张图片

step5:完成后界面如下

ZYNQ SOC 入门基础(一)Hello World 实验_第25张图片

这三部i分分别是工程的源文件、板卡支持包和硬件平台。

step6:连接开发板,上电。右击 Helloworld ->Debug as

step7: 双击下面这个位置新建

ZYNQ SOC 入门基础(一)Hello World 实验_第26张图片

step8:然后进行如下设置

ZYNQ SOC 入门基础(一)Hello World 实验_第27张图片

step9:用系统自带的串口调试助手,进行相关设置

ZYNQ SOC 入门基础(一)Hello World 实验_第28张图片

ZYNQ SOC 入门基础(一)Hello World 实验_第29张图片

step11: 单击运行输出结果。

ZYNQ SOC 入门基础(一)Hello World 实验_第30张图片

你可能感兴趣的:(FPGA设计)