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

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
#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了。

点击的小箭头,选择之前配置好的下载配置。等一下子程序会下载进去。

运行结果:

---------------------
作者:hongbin_xu
来源:CSDN
原文:https://blog.csdn.net/hongbin_xu/article/details/74700556

最新文章

最新文章