
zynq
文章平均质量分 79
leon_zeng0
从事激光领域软件开发,三维内雕软件,3d 打印机软件, 运动控制器,通讯,c, c++, verilog,fpga
技术移民加拿大,往返于多伦多和中国之间
喜欢旅游,游泳,徒步,自驾游,独轮平衡车,滑冰,单板滑雪
展开
-
查看zynq 的 id 或者DNA
每个zynq fpga 芯片都有一个唯一的id ,怎么查看呢?本文介绍 Vivado 里面查看。通过jtag 连接你的zynq板子,在 vivado 里面打开Flow->Program and Debug ->hareware Manager就出现硬件管理界面,连接,自动连接 ,就可以看到你的硬件右键点击你的硬件,我这里是 xc7z010(1), 选择 hardware device Properties就进入属性界面,在这里Register->EFUSE->.原创 2021-11-25 12:18:41 · 4178 阅读 · 0 评论 -
zynq 7000 的HDMI 显示SD卡内图片文件
本文是zynq 7000 的HDMI 显示实验一文的继续,在上文中显示的内容包含在代码中,而本文直接显示SD卡里的BMP图片文件。你必须先完成了zynq 7000 的HDMI 显示实验,才能本实验。代码下载:链接:https://pan.baidu.com/s/11-RLOYtl1AyxcQ_XGbw2YQ提取码:zvnchdmiSDsrc.zip 是本文代码 17k, 其他是上文的内容硬件设计本实验的硬件设计基本与zynq 7000 的HDMI 显示实验相同,所以不必重...原创 2021-01-30 03:34:41 · 1390 阅读 · 2 评论 -
zynq 7000 的HDMI 显示实验
用了很多年的zynq 7000,一直就没做hdmi 显示实验。前几天终于做了这个实验,也就做一个总结。我的实验是在微相的z7r-lite下根据他们的教程完成的。平台是windows 10 , Vivado 2018.3。如果硬件设计不一样,主要是替换rgb2dvi 模块和gpio 中断部分。工程资料下载,链接:https://pan.baidu.com/s/11-RLOYtl1AyxcQ_XGbw2YQ提取码:zvnc这个下载里里三个文件,一个hdmi_out 全工程67M,下了这个就..原创 2021-01-29 12:45:58 · 11677 阅读 · 4 评论 -
PCA9685 多舵机控制器的编程
本文介绍通过写入寄存器的方法实现对PCA9685 的控制。PCA9685 模块制作机器人,舵机就是让它动起来的关键器件。而又由于通常设计中为了不影响处理器供电或者主控功率不够,都会另外制作一块板子用作舵机驱动,也叫舵机控制板。PCA9685是一款用于产生16路PWM信号的LED控制芯片, 采用I2C总线与主控芯片进行通信。PCA9685具有可以产生16路PWM脉冲、控制独立精准、编程简单灵活等特点, 以其为基础实现的舵机控制能够有限减少硬件和软件设计的复杂度, 具有高可靠性PCA9685的用途.原创 2021-01-08 15:06:25 · 16034 阅读 · 0 评论 -
zynq 7000 的 iic 外设编程
本文主要介绍zynq 7000下的i2c ps 外设编程。实验是在vivado 2018.3 上完成的。本实验的前提条件是你已经做过了zynq 7000的helloworld sdk 实验。一般开发板的厂家都提供了的,一些设置与所用硬件有关,也可参考我的博客petalinux 2018.2 下的helloworld 实验I2C总线简介I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。I2C总线上分成主机和从机两种设备。.原创 2021-01-08 03:47:07 · 6176 阅读 · 15 评论 -
AXI4 Lite 协议分析
本文是上篇文章《自定义IP实验》的扩展,在Zynq 7000 的ip设计应用中,为了实现PS-PL 互动,我们需要选择 AXI 4 协议, 而Axi4 Lite 是其中简化版本,耗用资源比较少,也比较好理解。大多数情况,我们选择它。为了设计好自定义ip 包,我们需要熟悉和掌握 Axi 4 Lite。首先使用ILA 采集读写的波形图,另存工程,然后添加ila。我简单介绍其操作过程,如原创 2017-12-08 05:39:51 · 14532 阅读 · 0 评论 -
自己动手做个DIY波士顿机器狗
我想来整个DIY波士顿机器狗。中文的介绍:https://www.qbitai.com/2020/08/17572.html软件安装:https://github.com/mike4192/spotMicro硬件制作:https://www.thingiverse.com/thing:3445283中文介绍是这样的:用树莓派DIY波士顿机器狗,帮你省下50万:教程开源,人人皆可上手软件部分在运行Ubuntu 16.04的树莓派3B计算机上实现。所以首先,需要准备一个价原创 2020-09-10 12:17:18 · 10019 阅读 · 18 评论 -
VSCode 同时调试2个或多个程序
在上文:VS Code 在Linux下IDE开发C++的HelloWorld中介绍了VS Code 的基本调试,但那只是一个应用。在开发客户服务程序,或通讯程序中,有必要同时调试2个或多个程序,这就是本文要介绍的内容。本文参考学习链接:https://code.visualstudio.com/docs/editor/debugging#_compound-launch-configurations本文采用的2个代码例子来自:linux, petalinux 下的udp 通讯实验,2个非常简单.原创 2020-07-19 06:58:20 · 18972 阅读 · 1 评论 -
ZYNQ 双核运行并交互,一个linux,一个裸核
zynq 7000 一般有2个cpu (arm A9),我们一般都用一个cpu0,本实验让2个cpu 都运行起来,cpu0 运行操作系统petalinux 2018.2, cpu1: 裸机流水灯。同时通过共享内存的方式,实现2个核之间的交互。原创 2020-07-15 12:17:01 · 10231 阅读 · 7 评论 -
petalinux(zynq) 设备树学习
正在学习A Tutorial on the Device Tree (Zynq) -- Part IZynq设备树教程(一)A Tutorial on the Device Tree (Zynq) -- Part IIA Tutorial on the Device Tree (Zynq) -- Part IIIA Tutorial on the Device Tree (Zynq) -- Part IVA Tutorial on the Device Tree (Zynq) --原创 2020-07-13 20:02:16 · 4168 阅读 · 0 评论 -
ZYNQ 7000 AMP模式双裸核运行 双方共享内存交互
本文是zynq 7000 AMP模式 双裸核CPU同时运行的继续。本文主要是上文的基础上增加通过共享内存的方式,演示2个裸核的交互。共享内存前先看看内存地址分布,这个图取自 ug585 4.1 节 address map 的表4-1本文定义OCM 为共享内存,地址为0xffff_0000。在2个文件的头部都这样定义共享内存#include "xil_mmu.h"#define COM_VAL (*(volatile unsigned int*)(0xffff0000))#d...原创 2020-07-01 10:14:55 · 4845 阅读 · 0 评论 -
zynq 7000 AMP模式 双裸核CPU同时运行
本实验通过学习https://blog.youkuaiyun.com/long_fly/article/details/79335025而来。从软件的角度来看,多核处理器的运行模式有三种:AMP(非对称多进程):多个核心相对独立的运行不同的任务,每个核心可能运行不同的操作系统或裸机程序,但是有一个主要核心,用来控制整个系统以及其它从核心SMP(对称多进程):一个操作系统同等的管理各个内核,例如PC机BMP(受约束多进程):与SMP类似,但开发者可以指定将某个任务仅在某个指定内核上执行默认情况下,ZYNQ..原创 2020-06-28 13:13:56 · 5782 阅读 · 0 评论 -
VMware中调整虚拟机窗口,铺满全屏幕
我用VVMware 很多年了,当然不是天天用。但是我的虚拟机总是部分屏幕,要吗只是全屏,我在windows 10下的任务都看不到。昨天我突然网上找一找,还真找到了,特记录如下。学习链接是:VMware中调整虚拟机窗口,铺满全屏幕 安装vmwaretools 点击:查看 —— 自动调整大小 —— 自动适应客户机 我的实际操作只是2。...原创 2020-06-26 10:18:50 · 8593 阅读 · 0 评论 -
tftp 源代码解析
我先研究udp 传输的机制,tftp是用udp 设计的一个不错应用。在网上查找tftp 源代码,发现https://github.com/ideawu/tftpx上的源码比较好看,这个只是linux 下的代码。在ubuntu 上make 了一下,就编译好了,然后测试程序,能按tftp 的方式运行。那个链接包含服务端和客户端代码,我这里只是分析其客户端代码,因为就算客户端代码也很大的,相比其他的代码,这个还是算简单的。这个客户端代码包含3个文件,tftpx.h 定义tftp中的常量,与..原创 2020-06-21 12:05:08 · 3668 阅读 · 0 评论 -
Zynq的启动过程及加密
ZYNQ7000器件是ARM和FPGA合在一起的单芯片解决方案,又是以ARM为中心的解决方案,FPGA只是作为ARM的一个可编程的外设部分;系统首先启动的是ARM处理器,FPGA是在ARM处理器的控制下进行选择加载;本文首先对ZYNQ7000器件的启动过程做些了解和分析,然后着重分析应用中怎样对设计进行加密保护,因为在现代系统设计中越来越注重对设计的保护,这是为了防止产品在投放市场后出现有人抄袭我们的设计;在设计保护方面ZYNQ7000器件已经提供了一套解决方案,我们需要研究并加以应用到产品中去。本文的原创 2020-06-18 14:35:00 · 4976 阅读 · 3 评论 -
zynq 程序固化和启动
我们前面的例程都是在 SDK 开发环境中用 JTAG 直接下载程序运行,如果开发板断电,程序就会丢失,如何让程序能够在开发板断电后再上电能重新启劢,这就需要用刡应用程序的固化。 ZYNQ7000 SOC 芯片可以从 FLASH 启劢,也可以从 SD 卡里启劢, 本文给大家介绍程序的 FLASH 或者 SD 卡启动的方法。 前面我们也介绍过, Zynq7000 SOC 芯片上电后,运行的是 ARM 系统(PS)。然后再通过 ARM 系统软件部分加载 FPGA 的比特流文件.bit 至 FPGA(PL原创 2020-06-14 13:46:27 · 8758 阅读 · 3 评论 -
PL读写DDR3 实现PS和PL间的数据交互 时序波形图
本文是PL读写DDR3 实现PS和PL间的数据交互以及PL读写DDR3 实现PS和PL间的数据交互 代码分析的继续虽然在代码分析一文中分析了代码,但还是时序波形图比较直观,我这是用Vivado的集成逻辑分析仪ILA 在有sdk 下的应用入门介绍的方法采集的。波形如下:上面波形图的信号名依次是:system_i/AzIP_AXI_Master_0_M00_AXI_AWADDRsystem_i/AzIP_AXI_Master_0_M00_AXI_AWVALIDsystem_i...原创 2020-05-16 07:19:59 · 2177 阅读 · 0 评论 -
PL读写DDR3 实现PS和PL间的数据交互 查表程序的验证程序
本文是PL读写DDR3 实现PS和PL间的数据交互 查表程序的续集,ip的源代码见上文。本文只是提供一种简单验证方法。直接用axi_gpio这个系统提供的ip进行验证,而原文需要自己加建立一个ip来验证。建立工程等一般流程这里不介绍了。在建立的原理图里添加cpu,然后添加上文介绍自建的ip searchTable, 添加2个axi_gpio。原理图如下:这里2个gpio ...原创 2020-03-28 04:50:20 · 859 阅读 · 0 评论 -
PL读写DDR3 实现PS和PL间的数据交互 查表程序
1: 添加端口 //input original input wire [15 : 0] IN_ADDR, //out results output wire [15 : 0] OUT_DATA, //output cycle for search output wire [7 : 0] OUT_TIM,读地址段: //Read Addresses ...原创 2020-03-18 14:02:08 · 1666 阅读 · 2 评论 -
petalinux 保留一段专用内存给你的驱动程序
在实际应用中,需要保留一段专用内存,给驱动程序或者应用程序,比如给PL 访问的一段内存,用于查表,等等。本文介绍如何在petalinlux 里实现保留一段内存。在这里我引用原文有3种方式预留内存:普通的,DMA,CMA。我的应用中打算使用普通的,32位方式。但这里3种方式都介绍。来自参与的问题:https://forums.xilinx.com/t5/Embedded-Linux/Zynq...原创 2020-02-26 03:57:29 · 3373 阅读 · 0 评论 -
Vivado的集成逻辑分析仪ILA 在有sdk 下的应用入门
我在前面有2篇Vivado 下的集成逻辑分析仪ILA:Vivado下的集成逻辑分析仪ILA 入门Vivado下集成逻辑分析仪ILA入门续但没有介绍有sdk 的情况下怎么用,当时也没用过,前几天我觉得有这需要,就找了一篇文章学习,然后做了这个实验。参考文章是:https://www.realdigital.org/doc/c4d57104000339a55b764e5e5f21e28...原创 2020-02-17 13:27:36 · 3395 阅读 · 0 评论 -
PL读写DDR3 实现PS和PL间的数据交互 代码分析
本文是PL读写DDR3 实现PS和PL间的数据交互的继续,深入分析其代码。首先分析基本要求,或者需求分析,然后代码分析,这个代码是上文中利用vivado 2018.2 自动生成的,也许做了一点修改比如注释。然后对代码分段分析,我想使用这些代码,所以必须分析弄懂。还在继续学习中,如果有什么问题,大家一起讨论,若有更明白说法的地方请赐教。需求分析要想PL访问板上的DDR3存储器,必须...原创 2020-02-13 13:05:02 · 5342 阅读 · 19 评论 -
linux 命令学习笔记
学习linux很久了,有些命令过些时间就忘了,找也找不到。没办法,把他记在这里,方便你我。同时有新的体会,再附加到这里。首先介绍学习命令的几个网站初窥Linux 之 我最常用的20条命令Linux常用命令学习前者介绍的命令有:cd ,ls ,grep, find, cp, mv, rm, ps, kill, killall, file, tar, cat, chgrp, chow...原创 2020-02-06 08:54:53 · 502 阅读 · 1 评论 -
petalinux 的rootfs文件系统放在SD 分区上
在前面2文即:petalinux 2018.2 在ubuntu 16 下的工程制作并启动实验以及petalinux 2018.2 在QSPI启动中,介绍了制作petalinux 启动的过程。但上面2文的rootfs 都是在RAM中,在文件系统中做的修改,在系统关闭后都不能保存。本文介绍的方法就是解决不能保存的问题,我们把rootfs文件系统放在SD分区中,可以保存文件以及我们对系统做的修...原创 2020-01-30 04:40:51 · 9699 阅读 · 15 评论 -
zynq 7000 petalinux 2018.2下的流水灯实验
流水灯实验通过简单的硬件,演示在petalinux 下对zynq 7000的外设的操控。1:硬件设计硬件设计是在Vivado 2018.2 下完成的。 除了满足petalinux 的基本硬件设计要求外,需要添加 一个gpio ip。这个ip 可以是vivado 2018.2 本身自带的gpio, 也可以是另篇自定义ip 设计中我们设计的ip。 如果是自带的,注意设置为4位,只输出。在约...原创 2018-11-17 11:23:44 · 3642 阅读 · 0 评论 -
zynq 的64位全局定时器
zynq 有一个64位全局定时器,我觉得有点实用价值,比如精确的实时计算,代码运行时间计算。怎么用呢?我就google 了一下,有篇文章推荐查看2个文件。这2个文件名分别是 sleep.c, xtime_l.c。这2个文件是Vivado 安装的时候就安装好了的样例程序,我的是在这个目录下:C:\Xilinx\SDK\2015.4\data\embeddedsw\lib\bsp\standalone...原创 2018-04-01 11:21:20 · 3377 阅读 · 4 评论 -
PL读写DDR3 实现PS和PL间的数据交互
本文构建一个AXI4-Lite Master IP来实现PL读写DDR3。最后用sdk 程序验证pl 读写过程中写入的数据。本文参考https://www.eefocus.com/antaur/blog/17-08/423773_0818c.html学习而来,但我添加了数据验证部分。我的另篇博文是:zynq 7000 自定义IP 实验https://blog.youkuaiyun.com/leon...原创 2019-08-05 00:39:55 · 11962 阅读 · 0 评论 -
zynq 7000 SDK下的流水灯实验
zynq 7000 的流水灯实验是最简单的纯PL 的实验, helloworld 是SDK下的最简单实验,但不包括任何PL。本文是这2者综合下的最简单实验, PS 和 PL 都有的情况下最简单实验。其结果与流水灯实验一样,但是通过SDK的方式来实现。本实验的前提是做过上面2个实验。否则看不懂的话,请参考我的上面2文,操作细节在这里可能没有描述那么清楚。1:创建工程,取名led_sdk,...原创 2018-09-02 14:50:26 · 6613 阅读 · 0 评论 -
虚拟机VMware时,如何在Windows和Ubuntu之间共享文件夹
你已经在虚拟机中安装了Ubuntu,你可能会发现拥有一个带有Windows主机操作系统的共享文件夹很有用。1:在Windows 下共享一个文件目录,文件目录上右键,属性,共享。2:虚拟机上关电Ubuntu。3:在VMware Player中选择您的VM,然后单击编辑虚拟机设置。4:在“选项”选项卡中,单击左侧窗格中的“共享文件夹”(shared folders)。5:单击右...原创 2018-09-08 01:08:22 · 21001 阅读 · 0 评论 -
zynq 7000 的流水灯实验
流水灯实验是FPGA 的入门实验。最简单并且得到实在的体验,我们就从这里开始zynq 7000的体验吧。本实验包括3部分:创建工程,添加和建立文件,比特流产生和编程。 1:创建工程:打开Vivado,在如下界面里选择建立工程,Create Project。由于不同的vivado的版本,可能界面不一,但都是找到Create Project。出现create project 界...原创 2018-08-31 03:14:39 · 2956 阅读 · 0 评论 -
zynq 7000 clg400 可作为外部AD 的引脚列表
我用的XC7Z010-1CLG400C(AC7020 为 XC7Z020-2CLG400I) ,想用zynq7000 的自带ADC, 查找得到如下列表,适用于zynq 7000 的 CLG400 封装。Pin Pin Name Memory Byte Group Bank C20 IO_L1P_T0_AD0P_35 0 ...原创 2018-06-18 15:47:52 · 3402 阅读 · 2 评论 -
zynq 的定时器中断实验
本文通过定时器中断实验,介绍zynq 的中断和定时器的基本使用方法。本文是在helloworld 实验的基础上完成的,所以必须先完成了helloworld 的实验。这个可以学习本博客的helloworld 实验,或者开发板提供的helloworld 实验。1:中断和定时器介绍:中断对于保证任务的实时性非常必要, 在 ZYNQ 里集成了中断控制器 GIC(Generic Interrupt Cont...原创 2018-04-01 00:43:44 · 3699 阅读 · 0 评论 -
Vivado HLS 入门实验
当我们安装好Vivado 的时候,也同时装好了Vivado HLS.。 这是个什么东西?我就有一种想一探究的感觉。网上一查,Vivado High-Level Synthesis。学习了一段时间的Zynq 7000, 找了一个HLS的教程,就开始了如下入门实验,体验高级语言综合设计IP。Vivado HLS是Xilinx 推出的高层次综合工具,采用C/C++语言进行FPGA设计。HLS提供了一些样...原创 2017-11-21 12:10:45 · 21436 阅读 · 13 评论 -
Zynq 7000 自定义ip 的仿真
本文是《zynq 7000 自定义ip实验》一文的继续,也是《AXI4 协议分析》一文的基础上写出来的,如果没看这2文,可以根据你的需要去看看。设计axi4 ip 是个复杂的工作,在正式测试前做仿真测试可以排除很多bug,保证产品开发高效高质量。下载链接总失效, 把testbench.v直接放这里了。本文主要介绍仿真程序的设计。在ip设计工程的Simulation sources中,添加或新...原创 2017-12-10 13:11:55 · 2595 阅读 · 3 评论 -
zynq 7000 自定义IP 实验
本文通过一个简单例子介绍zynq 7000中自定义ip 的设计过程。 此例子就是控制4个led 。 在ps-pl 试验中,一般用的就是Vivado 自带的GPIO ip。 所以如果你熟悉了PS端和PL端协同设计流水灯试验,对于本例子就只需关注自定义ip 的设计了。如果你还不熟悉这种协同设计,那你就得先学习好了,再来看本文试验。本文就是用自定义的ip 替代自带的gpio ip来控制流水灯。其主要...原创 2017-11-30 15:16:30 · 7147 阅读 · 9 评论 -
zynq 7000下读写qspi 及flash 唯一id
本文主要演示zynq 7000下对Qspi 的读写操作,以及读取8字节唯一ID, 可以用于简单加密。我在使用altera 的时候,写了一篇读写flash 及其ID的文章。在我转入zynq 7000的时候,自然也要有读写QSPI FLASH, 以及读取其ID。本文分为四部分:硬件设计,软件设计,测试验证,期待本文的前提条件是读者会helloworld 实验,也就是会zynq 7000的SDK开发过程...原创 2017-10-25 12:09:54 · 14590 阅读 · 11 评论 -
petalinux 2018.2 在ubuntu 16下的安装
我第一次安装petalinux2018.2, 是在 ubuntu18, 因为最新的ubuntu 就是 ubuntu18。 在安装中会报一些错,但能安装完成。配置的时候也会报错。看到论坛提问,说目前petalinux2018.2 只是支持ubuntu16。这样我最后选择了ubuntu16。我的ubuntu16 是安装在虚拟机里的 vm14。 1: 下载下载地址是:https://ww...原创 2018-09-19 03:35:24 · 18747 阅读 · 13 评论 -
petalinux 2018.2 在ubuntu 16 下的工程制作并启动实验
在上文中介绍了如何安装petalinux 2018.2。其验证的方法是:source /home/liwenz/petalinux/settings.sh如果不报错,并且echo $PETALINUX 能显示你的安装路径就是好了。其中/home/liwenz/petalinux 是我的安装目录。本文在此基础上创建一个工程,并用sd卡启动测试。1:搭建硬件环境ug1144 里提到...原创 2018-09-20 03:40:47 · 9146 阅读 · 3 评论 -
petalinux 2018.2 在QSPI启动
我认为比较容易制作的启动盘是从SD卡启动,但实际中很需要直接从QSPI启动。那么本文是在制作从SD卡的基础上完成的。如果你有不清楚,那就先看看我的另篇博客petalinux 2018.2 在ubuntu 16 下的工程制作并启动实验链接是:https://blog.youkuaiyun.com/leon_zeng0/article/details/82766521那篇文章介绍从SD 启动的制作过程...原创 2018-10-03 13:13:07 · 10302 阅读 · 5 评论 -
Vivado 中如何使用 AXI DMA, PL 访问 DDR
起始工程是原来的helloworld 工程,若有不清楚,那就先实验了helloworld,再来开始这个实验。http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html是主要参考资料,详细原理请参考原文。原文实验是Vivado 2014, 我的验证测试是在 Vivado 2018.2.实验内容是用 AXI ...原创 2019-07-29 00:49:47 · 8532 阅读 · 2 评论