1.1 xilinx zynqMp 架构
1.1.1 16nm 级别工艺
Zynq UltraScale+ MPSoC架构
Xilinx新一代Zynq针对控制、图像和网络应用推出了差异化的产品系,这在Xilinx早期的宣传和现在已经发布的文档里已经说得很清楚了。她的产品系如图2所示。
图2 产品表
从图2看到,这个系列的Zynq算是8核(或9核)异构产品:四核的ARM-CortexA53 CPU、双核的Cortex-R5 RPU、Mali-400 GPU(一个Geometry核,两个像素核)、PL逻辑以及视频编解码器Codec核。
在表2中,ZU2E、ZU3E为针对控制类应用,逻辑和Block RAM资源较少,没有Video Codec和高速收发器。ZU4E、ZU2E和ZU7E针对视频类应用,有内部的UltraRAM资源、Video Codec和GTH高速收发器。其他型号针对网络应用,除了Video Code没有外,其它高大上的东西都有,比如更高速的收发器GTY,还有150G Interlaken和100G Ethernet MAC/PCS/RS-FEC等。
熊猫君是做图像的,下面的描述都是针对图像版的Zynq UltraScale+而言的。
因为PS部分的资源是固定的,大家都一样,在后面一起说就行。PL部分因为有这三个东西,将使设计如虎添翼:
a)大量的Block RAM和Ultra RAM资源,小20Mb的内部RAM资源,对分块处理图像,那应该会带来不少的便捷;
b)Video Code:这个东西是集成在PL侧的硬核,有了它,图像压缩和解压缩都不用愁了;
c)GTH:PL端集成的GTH收发器,对SDI、DP等图像接口接入那是十分的方便,当然也可以做PCIe咯。
不多说了,熊猫君从Xilinx官方文档UG1085上截一个图来表示这个高大上通用SoC的系统级架构,也就是下面的图3啦。
图3 Zynq UltraScale+ MPSoC系统架构图
http://blog.csdn.net/haoxingheng/article/details/50098777
时隔三年,Xilinx推出了其全新的异构SoC,大名叫ZynqUltraScale+。相比它的前辈Zynq-7000,这款SoC功能显得更加强劲:最显著的变化是新加入了GPU和视频编解码器,而且编解码器在PL端,PS端的高速接口更加丰富。按照Xilinx官方的说法,Zynq UltraScale+主要针对控制、图像和网络这三大块,比如说汽车辅助驾驶、8K图像、100G网、物联网等等领域(兵马未动,粮草先行啦,Xilinx早早的就针对这些差异化应用推出了SDx集成开发环境)。
从图4可以看到,这是一个带SDI接口的IP相机。大致分为两大块:
a)PL负责原始数据采集、Bayer域处理、ISP和图像编码;
b)PS负责对PL的管理、控制和协处理、RTSP服务器、千兆网和SD卡数据存储。
http://blog.csdn.net/haoxingheng/article/details/50076591
1.2 xilinux zynqMp 开发环境搭建
1.2.1 移植petaLinux之安装petalinux
-
-
start.安装虚拟机,在虚拟机里安装linux系统(ubuntu16)
- 虚拟机里磁盘尽量留大点,建议60G,我的是80G
sudo passwd
命令,设置超级用户su时的密码- 建议安装VMware Tools
- 开发工具:vivado2017.1(Windows下) + petalinux 2017.1(Linux下)
-
a.更新apt-get(可选,加速用,同传统方式移植那篇文章的第二节)
-
b.安装petalinux的依赖环境
安装petalinux的必要依赖环境,直接复制粘贴下面的命令行到shell中,系统自动下载安装下面的工具:sudo apt-get install build-essential vim tofrodos \
iproute2 gawk gcc git make net-tools zlib1g-dev \
libssl-dev flex bison libselinux1 libncurses5-dev \
tftpd lib32z1 lib32ncurses5 libbz2-1.0:i386 \
lib32stdc++6 xvfb chrpath socat autoconf libtool -
c.修改/bin/sh
shell中输入:dpkg-reconfigure dash
,在出现的界面中选择‘否’ -
d.下载petalinux
去官网下载petalinux-v2017.1-final-installer.run
(文件8个G,上传不了) -
e.安装petalinux
- 在一个用户目录下(我的是:
home/hlf/mnt
),用鼠标右键,新建一个文件夹petalinux
- 在普通用户下(非root模式下,即命令行是:
hlf@hlf-virtual-machine:~/mnt$
这样的),shell中输入命令:./petalinux-v2017.1-final-installer.run ./petalinux
- 经过漫长的等待,安装到一半的时候,提醒查看许可,按回车查看,按q退出,退出后输入y,回车,如此重复三次,才开始正式安装(这个步骤要很小心,如果没有输入y,就回车,就要重新了)
- 安装的时候提示,提示有几个库没装,不过没关系,等petalinux安装完之后,再补也不迟,静候一直到安装完毕
- 在一个用户目录下(我的是:
-
f.补一些库的安装
- 懒人直接只看这一点即可(可以跳过下面两点),把下面命令粘贴到shell中回车即可:
apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd
-
先安装刚刚安装时,提示缺少的库:
apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386
-
安装一些之后需要的库,全都安装了避免麻烦:
- 在运行petalinux-config -c kernel会出现错误,需安装:
apt-get install libncurses5 libncurses5-dev
- 编译时可能会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需安装:
apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386
- 提示缺少zlib和openssl,需安装:
apt-get install libssl-dev
- 出现警告(警告而已,强迫症可以处理一下),提示No tftp serve
- 在运行petalinux-config -c kernel会出现错误,需安装:
- 懒人直接只看这一点即可(可以跳过下面两点),把下面命令粘贴到shell中回车即可:
-