Zedboard学习(四):PS+PL搭建SoC最小系统 标签: fpgazedboardxilinxsoczynq 2017-07-07 15:58 7人阅读
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最小系统
- Zedboard学习(一):移植Ubuntu桌面操作系统 标签: ubuntu移植zedboardFPGA 2017-07-04 21:53 26人阅读
- Zedboard学习(三):PL下流水灯实验 标签: fpgazynqPL 2017-07-05 11:09 21人阅读 评论(0)
- Zedboard学习(二):zedboard的Linux下交叉编译环境搭建 标签: 交叉编译linuxzedboard 2017-07-04 23:49 19人阅读
- 学习笔记之-51单片机最小系统搭建
- <模电学习1>Multisim 12.0 搭建并仿真51单片机最小系统
- zedboard:使用ISE和modelsim搭建仿真环境 标签: zedboardfpgamodelsimise 2017-03-03 14:00 528人阅读
- linux环境搭建和arm开发板环境搭建 续 分类: 嵌入式开发学习 2011-03-22 22:58 2558人阅读 评论(3) 收藏
- 深入浅出FPGA-17-xilinx_zynq7000_EPP上一个简单实验(PS+PL)
- 面包板搭建最小系统
- Adroid学习笔记-入门资料以及V2.3系统开发环境搭建
- centos6.3 最小安装系统下快速搭建环境
- nginx+PHP服务器环境安装与配置学习(一) - windows系统基础环境搭建
- PHP Discuz 学习标签过程,敬请阅读
- (原创)基于or1200最小sopc系统搭建(一)--搭建及仿真(DE2,DE2-70)
- 新浪微博Android客户端学习记录二:系统主框架搭建
- FPGA最小系统
- 通过一个简单的文章系统学习MVC3+Linq搭建网站--项目文件结构介绍(3)
- AO 中关于坐标系统的感想 -AO学习资料 阅读
- 通过一个简单的文章系统学习MVC3+Linq搭建网站(1)