zynq最核心的设计理念就是软件加硬件,即PS+PL。通过软硬件协同设计,结合了FPGA与双arm9内核,对于嵌入式拥有极大的优势。

SoC:System on
Chip的缩写,称为芯片级系统,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

整个片上系统主要使用资源:ZYNQ系列FPGA XC7Z020、2片DDR、串口芯片(USB转UART)。zedboard板子自带了这些资源,不需要另外添加模块。

PL部分(VIVADO):

新建工程,工程名为min_system,步骤省略,与前一篇博客建立工程步骤相同。(打开链接)

建好工程后,点击Create Block Design。

名字取为soc_system。

刚建好的Block Design。

点击,添加IP核。

在弹出的搜索框中输入zynq,查找zynq7处理器。双击选中即可添加入Block Design。

添加完成后,点击上方出现的Run Block Design,自动进行配置。加载vivado软件自带的官方配置。

直接点OK。

加载好的zynq处理器系统。

其相当于一个CPU。现在在vivado中配置的是基础的硬件配置,属于PL;后面可以在SDK中对其进行软件编程,属于PS。

给处理器连上时钟,才可以工作。用鼠标左键长按拖动即可连线。

双击ZYNQ7 Processing System模块,可以自定义硬件配置,添加或删减CPU的硬件功能。这里不做修改。

保存当前设计,之后可以看到多出了一个design,如下所示:

在soc_system上,即之前建立的Block Design,右键–>Generate Output Products。

点击generate产生仿真模型。

官方的配置文件一般都不会出错,如果是自己设计的,最好还是仿真一下,避免有bug。

回到前面新建好的Block Design,右键–>Create HDL Wrapper,创建顶层verilog HDL文件。

选上面的,创建的Verilog HDL文件用户可以自己修改;选下面的,不可以修改。一般选上面的就行了。

随后自动生成顶层的Verilog HDL文件。

产生比特流文件,作为FPGA的底层硬件配置。

等待vivado分析综合完,不过编译得挺慢的,喝杯茶休息一下吧。

产生了比特流文件之后就要导出了。
File–>Export–>Export Hardware

注意Include Bitstream也要选勾,要把生成的比特流文件导出到sdk,不然怎么下载都不会成功的,因为没有底层硬件配置好CPU,软件程序怎么可能跑的起来。

PS部分(SDK):

接下来,启动SDK进行软件部分的设计。
File–>Launch SDK
SDK界面。

新建工程。
File–>New–>New Appilcation Project

选项解释:

OS Platform:操作系统平台,有三种可选:standalone(裸机)、freertos823_xilinx、linux。选standalone。
Hardware Platform:选择的就是之前导出的硬件平台,当然也可以选择其他软件自带的配置好的硬件平台。默认已经选择好了我们自己建立的硬件平台。
Processor:zynq自带的两个arm9处理器,选择其中一个即可。默认选择好了,不改动。
Language:可以选择c语言或者c++,选默认的c语言。
Board Support Package:板级支持包,名字取为Hello_bsp。

Next,选择Hello World工程模板。

点击Finish后,创建工程。

修改Hello_World.c文件。

/******************************************************************************
*
* Copyright (C) 2009 - 2014 Xilinx, Inc.  All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* Use of the Software is limited solely to applications:
* (a) running on a Xilinx device, or
* (b) that interact with a Xilinx device through a bus or interconnect.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* XILINX  BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
* Except as contained in this notice, the name of the Xilinx shall not be used
* in advertising or otherwise to promote the sale, use or other dealings in
* this Software without prior written authorization from Xilinx.
*
******************************************************************************//** helloworld.c: simple test application** This application configures UART 16550 to baud rate 9600.* PS7 UART (Zynq) is not initialized by this application, since* bootrom/bsp configures it to baud rate 115200** ------------------------------------------------* | UART TYPE   BAUD RATE                        |* ------------------------------------------------*   uartns550   9600*   uartlite    Configurable only in HW design*   ps7_uart    115200 (configured by bootrom/bsp)*/#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"int main()
{init_platform();print("Hello Zedboard\n\r");cleanup_platform();
    return 0;
}

程序就是从串口打印字符串:”Hello Zedboard\n\r”。
默认设置波特率为115200。

下载测试:

SDK自带串口调试助手,点击+号,新建一个连接:

填入对应的端口号。

右键Hello工程,Run as–>Run Configuration
双击下面选中的项,新建一个下载配置。

如下都是默认配置:
指定了硬件平台、处理器、比特流文件、tcl文件。bit文件为之前vivado下生成的比特流文件。

工程名、可执行文件。elf文件是SDK中工程编译后生成的可执行文件。

最后可以下载程序进板子了。
首先配置底层硬件。
xilinx tools–>program fpga
由于之前已经导出了比特流文件,所以默认已经选好了比特流文件。
点击Program。

然后下载软件程序。
之前在Run Configuration已经配置好,可以直接Run了。
点击 的小箭头,选择之前配置好的下载配置。等一下子程序会下载进去。

运行结果:

Zedboard学习(四):PS+PL搭建SoC最小系统相关推荐

  1. 手把手,教你用nodejs搭建后台最小系统(大量图文)系列二

    前段时间利用nodejs封装了一个最小系统,也终于是把很久之前的愿望给实现了,在这里把如何实现分享出来. 本系列文章有两篇,上一篇详见下面传送门: 传送门:<手摸手,教你用nodejs搭建后台最 ...

  2. Easy EDA #学习笔记02# |Arduino UNO 单片机最小系统PCB原理图 (ATMEGA328P单片机 AMS1117芯片5V转3.3V )

    3D模型图 顶层 丝印层 阻焊层(绿油) 锡膏层 铜箔层 基板 - 原理图符号自动编号:[设置]-[系统设置]-[原理图]选项 铜柱M3: 原理图原点设置: Crl + A 拖动 [放置]-[画布原点 ...

  3. Zedboard学习(五):MIO与EMIO操作

    MIO: Zynq7000 系列芯片有 54 个 MIO(multiuse I/O), 它们分配在 GPIO 的 Bank0 和Bank1 隶属于 PS 部分, 这些 IO 与 PS 直接相连. 不需 ...

  4. 51单片机计算机实物焊接,基于51单片机的最小系统焊接图 浅谈单片机最小系统...

    本文主要是关于51单片机的相关介绍,并对基于51单片机的最小系统焊接进行了详尽的阐述. 单片机最小系统 单片机最小系统主要由电源.复位.振荡电路以及扩展部分等部分组成. 对于一个完整的电子设计来讲,首 ...

  5. ZYNQ学习笔记PS部分【基本介绍】

    基于Zynq的嵌入式开发流程 Xilinx Zynq SoC 是集成了FPGA和硬核处理器的特殊SoC,它与一般FPGA的最大不同就是自带了一个ARM Cortex-A系列硬核,根据型号不同从A9到A ...

  6. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  7. io vivado 怎么查看ps_基于Vivado的嵌入式开发 ——PS+PL实践

    基于Vivado的嵌入式开发 --PS走起 硬件平台:ZedBoard 开发工具:Vivado 2014.2 1.规划 废话不多说,依然是流水灯,这次是采用PS+PL实现. 功能依旧简单,目标是为了学 ...

  8. 【教程】迅为iTOP-4412精英版exynos4412开发板搭建原生Linux最小系统(一)

    概述 迅为iTOP-4412开发板采用的CPU芯片为三星的exynos4412,开发板分为三种:(1)POP封装+1GB内存(2)SCP封装+1GB内存(3)SCP封装+2GB内存.笔者用的是SCP ...

  9. sap系统搭建教程_Nios ii最小系统搭建教程

    本教程以最小系统的概念为切入点,详细演示最小系统搭建的每一个步骤:外加嵌入式IP CORE详细的理论剖析和详细的实践演示,提供部分工程集源码下载链接.本手稿为实践总结,只是提供了一个思路,比如,驱动都 ...

最新文章

  1. docker之Dockerfile
  2. zcmu1203(逆序对,归并排序)
  3. Java中forEach, 用来遍历数组
  4. HDU 4414 Finding crosses(搜索)
  5. Android插件化开发之动态加载技术系列索引
  6. 【APUE】孤儿进程与僵死进程
  7. css之文本溢出处理 | 背景图片处理
  8. 论文浅尝 - AAAI2020 | 基于知识图谱进行对话目标规划的开放域对话生成技术
  9. java第一 ++--
  10. 聊聊ExecutorService的监控
  11. 大多数人贫穷到极致时,就是富人灾难的开始,你认同这句话吗?
  12. Elasticsearch如何做到亿级数据查询毫秒级返回
  13. java 睡眠_Java 线程和多线程执行过程分析
  14. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例28
  15. legion--一款开源,易用,扩展性强的半自动化渗透测试工具
  16. 为知笔记-艾宾浩斯遗忘曲线复习插件
  17. Gym - 101986F Pizza Delivery (最短路必经路径)
  18. 每日一道题,划水有意义,看我不卷死你们(评论送书)
  19. sql server数据修复语句
  20. 优秀课件笔记之视听巧记汉英成语2

热门文章

  1. python广告搞笑_技术入门 | 听说Python的广告刷爆了你的朋友圈?
  2. 无限网络无限连接掉网的解决
  3. 【opencv】8.获取鼠标动作(滑轮滚动,左键按下,右键按下,鼠标移动)并进行相应处理
  4. 深度学习(DL)与卷积神经网络(CNN)学习随笔-05-基于Python的LeNet之CNN
  5. 回顾一些重要的CNN改进模型(你真的了解 Convolutional Neural Networks 么)
  6. Spring系列之beanFactory与ApplicationContext
  7. 如何写一个完善的c++异常处理类
  8. 设置GVIM的默认初试界面大小、启动位置
  9. 鸟哥的Linux私房菜(服务器)- 簡易 Cluster 架設
  10. TCP 的那些事儿(上)