摘要:
Block RAM是PL部分的存储器阵列,为了与DRAM(分布式RAM)区分开,所以叫块RAM。 ZYNQ的每一个BRAM 36KB,7020的BRAM有140个(4.9M),7030有265个(9.3M),7045有545个(19.2M)。 每一个BRAM都有两个共享数据的独立端口,当然是可以配置 阅读全文
摘要:
前面我们介绍过EMIO,但是不详细。 MIO是PS的IO接口,这个M代表的是Multiuse,也就是多用途, 在下图中我们可以看到54个MIO连接这么多东西,必须得复用, 所以当我们开发的时候需要的功能配置上,不需要的去掉,防止IO口被占用。 板子用的是zc702。 下面我们双击ZYNQ核: 我们到 阅读全文
摘要:
上一节我们体验了一把PS和PL是怎样联合开发的,这种ARM和FPGA联合设计是ZYNQ的精华所在。 这一节我们实现一个稍微复杂一点的功能——测量未知信号的频率, PS和PL通过AXI总线交互数据,实现我们希望的功能。 如何测量数字信号的频率 最简单的办法——在一段时间内计数 在我们设定的时间(Tpr 阅读全文
摘要:
上一节我们观察了AXI总线的信号,了解了基于AXI总线读写的时序, 这一节我们继续探索基于AXI总线的设计,来看一看ZYNQ系列开发板的独特优势, PS可以控制PL产生定制化的行为,而不需要去动硬件代码。 这次实验是产生频率和占空比可调的PWM(Pulse Width Modulation)信号, 阅读全文
摘要:
前面一节我们学会了创建基于AXI总线的IP,但是对于AXI协议各信号的时序还不太了解。 这个实验就是通过SDK和Vivado联合调试观察AXI总线的信号。 由于我们创建的接口是基于AXI_Lite协议的,所以我们实际观察到是AXI_Lite协议的信号时序。 具体做法是创建一个基于AXI总线的加法器模 阅读全文
摘要:
前言: FPGA+ARM是ZYNQ的特点,那么PL部分怎么和ARM通信呢,依靠的就是AXI总线。 这个实验是创建一个基于AXI总线的GPIO IP,利用PL的资源来扩充GPIO资源。 通过这个实验迅速入门开发基于总线的系统。 使用的板子是zc702。 AXI总线初识: AXI (Advanced e 阅读全文
摘要:
前言: 前面我们都是使用JTAG方式下载比特流文件,然后下载elf文件,最后点击Run as或者Debug as来运行程序。 JTAG方式是通过tcl脚本来初始化PS,然后用JTAG收发信息, 优点是可以在线调试, 缺点是断电后程序就丢失了。 为了解决程序丢失的问题,可以制作镜像文件烧写到sd卡或者 阅读全文
摘要:
前言: ZYNQ 7000有三种GPIO:MIO,EMIO,AXI_GPIO MIO是固定管脚的,属于PS,使用时不消耗PL资源; EMIO通过PL扩展,使用时需要分配管脚,使用时消耗PL管脚资源; AXI_GPIO是封装好的IP核,PS通过M_AXI_GPIO接口控制PL部分实现IO,使用时消耗管 阅读全文
摘要:
前言: 使用的板子是zc702。用Vivado的IP核搭建最小系统,包括ARM核(CPU xc7z020),DDR3(4×256M),一个UART串口(Mini USB转串口),纯PS,通过串口打印出HelloWorld,工程虽小,五脏俱全,算是一种朝圣。配置要和板子对应,大家注意修改。 操作步骤: 阅读全文
摘要:
前言: 偶数分频容易得到:N倍偶数分频,可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。以此循环下去。 奇数分频如何得到呢? 第一部分 奇数分频 奇数分频方法: N倍奇数分频,首先进行上升沿触发进行模N计数, 阅读全文
摘要:
原文链接:https://blog.csdn.net/u014485485/article/details/78056980 前言: 学习Xilinx的ZYNQ 7000系列,用的板子是zc702(注意不是zedboard),SOC型号是xc7z020。虽然设计思路一样,但不同的套件引脚和io标准是 阅读全文