博客
上篇介绍了JESD204IP核的端口,本篇具体介绍使用该核时所需的全部寄存器,本篇同样比较枯燥,但JESD204IP核的寄存器读写却在实际使用时非常重要,本人在开发过程中来来回回折腾寄存器好多次,就是由于没有正确的理解并配置它,浪费了许多宝贵的时间
后面需要用到PetaLinux去生成BOOT.bin,根据ug1144-petalinux-tools-reference-guide搭建环境并安装PetaLinux。我装的是2018.2,下载的是petalinux-v2018.2-final-installer.run。
首先安装虚拟机,VMware。安装UBUNTU,ubuntu-18.04.1-desktop-amd64.iso,版本必须是这个,和petalinux-v2019.1-final-installer.run版本对应。
在开始之前,你需要准备好如下物品:
PYNQ-Z2开发板
装有最新版本Chrome浏览器的PC机
一根百兆/千兆网线
一根Micro USB线
至少8GB大小的Micro SD卡和读卡器
下载安装putty串口软件
在平常调试FPGA的过程中,大家会发现Vivado工程动辄数百兆大小,甚至几个G都很常见。如果调试的版本过多,就连几个T的硬盘也不够用。怎么办呢?其实,Vivado自带了一种使用tcl命令保存vivado工程为.tcl脚本的存储方法,几百兆的工程只需要几百K的大小就可以保存了。
学习Ultra96,在http://zedboard.org/support/design/24166/156可以下载Ultra96的相关教程,入门教程有Tutorials 01 to 04。可以根据其来熟悉开发板。
本篇主要参考其官方文档介绍JESD204IP核的端口信号含义,其实该篇本人写起来挺无聊的,大家读起来应该也很枯燥,但开发JESD204时每个端口信号的含义和使用规则必须了然于胸,所以不得不仔细解释一些端口信号,以后忘记了就当中文手册查看吧~
同学们在学网络课程的时候都知道,除巨帧外,常见的以太网帧的长度范围是64字节到1518字节,并且因为最初总线型半双工的组网原因,人们制定了CSMA/CD协议,规定了以太网中最短帧为64字节。然而,互联网的发展日新月异,今天的网络早已不是当初的半双工模式
首先要下载Ultra96的开发板定义文件(Board Definition Files),https://github.com/Avnet/bdf,从GitHub上下载AVNET所有开发板文件,如下所示
疫情期间是真爽,睡觉睡得我啥也不想干,本来也琢磨着继续更新,无奈开工就很忙,天天只想睡觉,自从爽了一个月,我就只想睡觉,看来我要买点亚麻籽油提提神了,碰巧最近有网友问他的双核没法正常工作,我试了下,是可以的,但是这当中也遇到点bug,好吧,开始干活吧
Ultra96板子是AVNET开发的,看价格也是比较便宜的。是基于Xilinx Zynq UltraScale+ MPSOC系列的芯片,具体使用的是:Xilinx Zynq UltraScale+ MPSoC ZU3EG SBVA484。板子本身比较比较小,外设模块也很少,其主要特点及开发板框架如下所示
Vitis视觉库可用于构建Vivado®HLS中的应用程序。本节详细介绍如何将Vitis vision库组件集成到Vivado HLS 2019.2的设计中。本节提供了有关如何通过Vivado HLS 2019.2 use flow运行单个库组件的步骤,其中包括C仿真、C合成、C/RTL联合仿真以及将RTL作为IP导出
PYNQ是利用Python语言对ZYNQ进行开发的项目。PYNQ从SD卡中启动,从镜像文件中加载系统程序,通过网口连接到浏览器上的Jupyter Notebook,在上面进行Python开发。ZYNQ包括一个双核ARM Cortex-A9处理器和一个FPGA,即处理器系统(PS)和可编程逻辑(PL),主要通过AXI接口连接。
Xilinx公司的JESD204 IP核能够实现复杂的JESD204B协议,支持的速度范围为1Gbps~12.5Gbps。该IP核可以被配置成发送器或者接收器,不能配置成同时收发。目前该IP核仅支持vivado软件,不支持ISE,且仅支持xilinx公司的7系列及其以上系列的FPGA硬件。该IP核的主要特性包括以下几点
继续学习ZYNQ,吃了好几年灰的ZYNQ 7020开发板一直没时间玩,现在稍微有点时间,准备空闲之余折腾一下,之前一直使用STM32等各式单片机,LINUX知识也知道一点,对HDL也是一窍不通,现在准备恶补一下,对于我来说,学习固然重要,但是白费力折腾也是要有的
或许是每个做硬件的厂商都有做软件的心,xilinx发布了他的下一个平台Vitis,也就是硬件和软件分开了(即Vivado和IDE分开了),除了启动方式和使用方法略有区别外,其他操作几乎与上一代Vivado一模一样。本文是试用这个新平台来尝尝鲜。
具体方法与 SDK 的多核工作实现方法基本一致,详细操作可以参考 zcu102 系列文档。本文的代码工程继承 vitis_zcu102_1 文档。
APU系统中CPU以串行执行代码的方式完成操作,软件方式很难做到精准计时,因此调用内部定时器硬件完成计时是更好的选择。本文以定时器中断方式控制LED周期性闪烁为例学习私有定时器的使用。同时学习如何将软件程序与硬件比特流文件一起固化到SD卡中,实现上电自动配置与启动自定义系统