
ZYNQ
文章平均质量分 87
ChuanjieZhu
这个作者很懒,什么都没留下…
展开
-
ZYNQ+Vivado2015.2系列(十五)AXI Timer 用户定时器中断控制LED
前面的中断学习中我们学了按键,GPIO,Timer,是时候把它们整合到一起了。今天我们混合使用PS/PL部分的资源,建立一个比较大的系统。板子:zc702。实现功能如下:1.通过串口打印信息询问你要按SW5还是SW7;2.当正确的按键被按下,定时器启动,关闭led DS23;3.当定时器溢出后触发中断,开启DS23,系统回到1。我们用一个AXI GPIO连接到SW5,EMI原创 2018-01-16 11:47:32 · 6814 阅读 · 1 评论 -
ZYNQ+Vivado2015.2系列(十四)按键中断控制LED亮灭
前面我们介绍了按键中断,其实我们稍作修改就可以用按键控制LED了。做个小实验,两个按键分别控制两个led亮灭。板子:zc702。硬件部分添加zynq核:勾选串口用于打印信息,勾选EMIO,我们控制两个led,所以需要2bitPL 到PS的中断勾选上:PL时钟什么的都用不到,我们用的按键不需要时钟,EMIO属于PS。再添加一个concat IP用于原创 2018-01-15 21:33:14 · 4342 阅读 · 0 评论 -
ZYNQ+Vivado2015.2系列(十三)私有定时器中断
私有定时器属于PS部分,定时器可以帮我们计数、计时,有效的控制模块的时序。这一次实验我们认识定时器并使用定时器产生中断。CPU的私有中断(PPI),5个:全局定时器, 私有看门狗定时器, 私有定时器以及来自 PL 的 FIQ/IRQ。它们的触发类型都是固定不变的, 并且来自 PL 的快速中断信号 FIQ 和中断信号 IRQ 反向, 然后送到中断控制器因此尽管在ICDICFR原创 2018-01-15 11:22:23 · 3755 阅读 · 1 评论 -
ZYNQ+Vivado2015.2系列(十二)按键中断(PL中断请求)
PS和PL之间的交互,怎么都逃不过中断,稍微大型的数字系统,PS和PL之间配合使用就需要中断作为桥梁。本文通过按键发起中断请求尝试学习PL请求中断的处理机制。板子用的是zc702。ZYNQ是中断类系统框图:由上图可知,zynq的中断分为三种:1.软件中断(SGI,Software generatedinterrupts,中断号0-15)(16–26 reserv原创 2018-01-14 20:49:40 · 9953 阅读 · 2 评论 -
ZYNQ+Vivado2015.2系列(十一)BRAM的使用——PS与PL交互数据,及其与DRAM(Distributed RAM)的区别
Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。每一个BRAM都有两个共享数据的独立端口,当然是可以配置的,可用于片内数据缓存、FIFO缓冲。在Vivado里有一个IP核叫Block Memory Gen原创 2017-12-23 20:34:40 · 25519 阅读 · 5 评论 -
ZYNQ+Vivado2015.2系列(十)MIO/EMIO再识,MIO的引脚“复用”,EMIO当作PS的接口连接PL
前面我们介绍过EMIO,但是不详细。MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途,在下图中我们可以看到54个MIO连接这么多东西,必须得复用,所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用。板子用的是zc702。 下面我们双击ZYNQ核:我们到MIO的配置里,把其他的勾都去掉,去GPIO里看看: 这些都是使用其默认连接的...原创 2017-12-20 20:20:17 · 8481 阅读 · 1 评论 -
ZYNQ+Vivado2015.2系列(九)基于AXI总线的等精度频率计(测量数字信号频率)
上一节我们体验了一把PS和PL是怎样联合开发的,这种ARM和FPGA联合设计是ZYNQ的精华所在。这一节我们实现一个稍微复杂一点的功能——测量未知信号的频率,PS和PL通过AXI总线交互数据,实现我们希望的功能。如何测量数字信号的频率最简单的办法——在一段时间内计数在我们设定的时间(Tpr) 内对被测信号的脉冲进行计数, 得Nx, Fx=Nx/Tpr。Tpr 越大,测频精度越高。这原创 2017-12-19 22:34:13 · 3607 阅读 · 3 评论 -
ZYNQ+Vivado2015.2系列(八)ARM+FPGA的优势,PS控制PL产生需要的PWM波(基于AXI总线)
上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序,这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势,PS可以控制PL产生定制化的行为,而不需要去动硬件代码。这次实验是产生频率和占空比可调的PWM(Pulse Width Modulation)信号,调用8次,产生8路PWM波,并用这些信号去控制8路LED灯,观察实验效果。后面会做一个比较。用的板子原创 2017-12-19 21:11:57 · 3429 阅读 · 0 评论 -
ZYNQ+Vivado2015.2系列(七)软硬件联合Debug观察AXI总线读、写时各信号的时序
前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。具体做法是创建一个加法器模块,在Vivado里将AXI总线添加debug,在SDK端通过debug方式依次写入两个加数,由PL计算出和,我们读出这个原创 2017-12-10 17:49:45 · 4964 阅读 · 3 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(六)创建一个基于AXI总线的GPIO IP并使用
前言:FPGA+ARM是ZYNQ的特点,那么PL部分怎么和ARM通信呢,依靠的就是AXI总线。这个实验是创建一个基于AXI总线的GPIO IP,利用PL的资源来扩充GPIO资源。通过这个实验迅速入门开发基于总线的系统。使用的板子是zc702。AXI总线初识:AXI (Advanced eXtensible Interface),由RM公司提出的一种总线协议。总线是一组传输通道, 是原创 2017-12-07 11:21:17 · 6376 阅读 · 3 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(五)之ZYNQ的三种启动方式-JTAG、SD card、Flash
前言:前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Run as或者Debug as来运行程序。JTAG方式是通过tcl脚本来初始化PS,然后同用JTAG收发信息,优点是可以在线调试,缺点是断电后程序就丢失了。为了解决程序丢失的问题,可以制作镜像文件烧写到sd卡或者flash中,上电即可加载程序。ZYNQ有两大类启动模式:从BootROM主动启动,从JTAG被原创 2017-10-23 22:22:28 · 19581 阅读 · 2 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(四)之GPIO的三种方式:MIO、EMIO、AXI_GPIO
前言:ZYNQ 7000有三种GPIO:MIO是固定管脚的,IO号0~53,占54bit;EMIO通过PL扩展,使用时需要分配管脚,IO号54~117,占64bit;原创 2017-09-30 12:16:44 · 9814 阅读 · 6 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(三)之HelloWorld实验(最小系统)(纯PS)
前言:使用的板子是zc702。用Vivado的IP核搭建最小系统,包括ARM核(CPU xc7z020),DDR3(4×256M),一个UART串口(Mini USB转串口),纯PS,通过串口打印出HelloWorld,工程虽小,五脏俱全,算是一种朝圣。配置要和板子对应,大家注意修改。操作步骤:硬件部分1. 新建Vivado工程。选择芯片型号xc7z020clg484_1或者点击B原创 2017-09-26 21:13:36 · 9270 阅读 · 1 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(二)之奇数分频和逻辑分析仪(ILA)的使用
前言:偶数分频容易得到:N倍偶数分频,可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。奇数分频如何得到呢?奇数分频方法:N倍奇数分频,首先进行上升沿触发进行模N计数,计数到(N-1)/2时输出时钟翻转,同时进行下降沿触发的模N计数,计数到(N-1)/2时输出时钟翻转时,进行输出原创 2017-09-23 21:27:36 · 2586 阅读 · 1 评论 -
Xilinx ZYNQ 7000+Vivado2015.2系列(一)之流水灯(纯PL)
前言:学习Xilinx的ZYNQ 7000系列,用的板子是zc702,SOC型号是xc7z020.原创 2017-09-21 21:12:47 · 7277 阅读 · 2 评论