Xilinx ZYNQ SOC入门基础之Hello Word实验

引言:本系列文章我们介绍下Xilinx公司的ZYNQ SOC软件开发,软件设计采用的硬件平台为Xilinx XC7Z035-2FFG676。通过该系列文章我们学习ZYNQ SOC软件开发的基本流程、MIO使用、EMIO使用以及中断资源的使用等相关入门类知识,同时掌握Xilinx Vivado软件调试相关的方法等。作为本系列开篇文章,本文学习以下内容:

  • ZYNQ-7000 SOC软件开发流程
  • 实现ZYNQ SOC Hello word实验例程(熟悉开发流程)

1. ZYNQ-7000 SOC软件开发流程

ZYNQ-7000 SOC是Xilinx公司推出的FPGA+ARM架构的单芯片片上系统(SOC),它在性价比、性能、成本及可升级性等众多方面相对于单纯的FPGA逻辑或者ARM处理器具有很大优势。目前,市面上ZYNQ SOC的应用也是非常的广泛,如自动驾驶、视听娱乐、机器视觉、蜂窝网通信等等。

ZYNQ SOC的开发流程与以往的纯FPGA逻辑开发有所不同,这一点我们在后续文章专门进行相关的介绍。图1给出了进行ZYNQ SOC开发的流程框图。

Xilinx ZYNQ SOC入门基础之Hello Word实验

图1、ZYNQ SOC开发的流程框图

从图1中我们可以看到:

1.项目任务需求实现功能划分

我们在进行ZYNQ SOC项目开发时,一般先对项目需求展开分析,将设计任务合理划分为硬件设计(Vivado:FPGA逻辑设计)和软件设计(SDK:ARM嵌入式软件设计)。一般来说FPGA逻辑执行速度快,延迟小,实现固定算法、高速接口处理等,软件则实现执行速度慢,复杂控制部分功能。

2.硬件平台设计

利用Vivado开发环境搭建SDK硬件配置环境是ZYNQ SOC设计的第一步。我们在IP Integrator集成环境内实现PS配置,如DDR3、时钟、MIO、PL和PS时钟、中断等;完成各个IP模块信号连接;验证各个IP连接正确性;生成整个硬件平台的顶层HDL文件。

然后,对工程添加管脚约束(不使用FPGA外设管脚,可不添加),经过综合、实现,生成硬件bit流文件。最后将硬件配置信息导入到SDK完成硬件平台搭建。

3.SDK软件设计

硬件配置信息导入到SDK后,我们就可以创建板级支持包(.bsp),建立应用工程,进行软件开发与调试,最终生成.elf文件。

4.配置文件下载

生成.elf文件后,我们可以将比特流文件和该文件一起产生可执行文件,并下载到配置存储器中,完成配置文件存储。待电路板上时,按照对应的启动模式加载配置文件,实现硬件和软件启动。

2.Hello word实验例程

2.1实验系统框图

本实验通过使用SDK自带的测试例程实现Hello Word语句输出,系统框图如2所示。

Xilinx ZYNQ SOC入门基础之Hello Word实验

图2、实验系统框图

2.2硬件平台设计

我们利用Xilinx Vivado集成开发环境搭建硬件平台。

1.建立Vivado工程

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

step2.输入工程名称及工程路径,点击NEXT。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step3:建立空工程,点击NEXT。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step4:选择芯片型号。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step5:点击Finish,完成工程建立。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step6:点击IP INTEGRATOR,然后点击Create Block Design,创建系统框图。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step7:点击图中“+”,添加IP

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step8:在Serach里搜索ZYNQ,然后双击过滤显示的ZYNQ7 Processing System。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step9:点击Run Block Automation,自动添加ARM外设I/O

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step10:点击OK

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step11:将鼠标放置在FCLK_CLK0,弹出铅笔符号时,按住左键拖到M_AXI_GP0_ACLK管脚,完成PS时钟到PL时钟连接(不用FPGA逻辑资源,可以不用连接)。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step12:双击processing_system7_0,进行配置PS,首先配置PS和PL时钟。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step13:PS DDR3 内存配置,电路板上使用的内存型号:MT41K256M16 RE 125。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step14:配置PS MIO接口电压和MIO管脚配置。配置完成后,点击OK,完成PS配置

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step15:连接IP配置及连接后,验证模块连接的正确性;另外可以刷新模块布局。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step16:选择system.bd,右击选择Generate Output Products

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step17:点击Generate

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step19:选择system.bd,右击选择Create HDL Wrapper,产生工程顶层文件。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step20:选择选择 Leave Let Vivado manager wrapper and auto update,单击 OK

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step21:查看顶层文件。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step22:产生硬件bit流文件。点击Generate Bitstream,在弹出的对话框中选择Yes

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step23:点击OK,进行编译。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step24:完成比特流文件生成,点击Cancel,至此完成硬件设计。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step25:导入硬件SOC配置信息到SDK,File->export->-->Export Hardware

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step26:如果包括FPGA比特流文件,需要勾选Include bitstream

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step27:导入配置文件到SDK,File->-->Launch SDK,弹出的菜单,点击OK,完成SDK导入。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

2.3 软件设计

Step1:硬件设计加载到SDK后,显示界面如图所示。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step2:新建软件应用工程,File->New->-->Application Project

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step3:新建应用工程,命名HelloWord,点击NEXT

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step4:我们选择SDK自带的Hello Word测试例程,点击Finish

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step5:生成应用工程

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step6:开始调试,右击HelloWord,选择Debug As->Debug Configurations

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step7:双击Xilinx C/C++ application(System Debugger),生成应用工程调试文件

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step8:配置调试信息

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step9:配置串口信息,选择串口号,波特率。

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step10:点击运行按钮,

Xilinx ZYNQ SOC入门基础之Hello Word实验

 

Step11:在SDK Terminal可以看到,打印出了Hello Word信息,表明实验测试成功。

Xilinx ZYNQ SOC入门基础之Hello Word实验

Xilinx ZYNQ SOC入门基础之Hello Word实验

更多其他技术文章可以关注我的微信公众号“FPGA技术实战”,欢迎交流 !