技术
FIFO是FPGA应用当中非常重要的模块,广泛用于数据的缓存,跨时钟域数据处理等。学好FIFO是FPGA的关键,灵活运用好FIFO是一个FPGA工程师必备的技能。本章主要介绍利用XILINX提供的FIFO IP进行读写测试。
循环冗余码校验(CRC)是一种众所周知的错误检测代码,已广泛用于以太网,PCIe和其他传输协议中。现有的基于FPGA的实现解决方案在高性能场景中会遇到资源过度利用的问题。填充零问题和可编程性的引入进一步加剧了这个问题。在本文中,提出了stride-by-5算法,以实现FPGA资源的最佳利用。提出了pipelining go back算法来解决填充零问题。
FPGA本身是SRAM架构的,断电之后,程序就消失,那么如何利用FPGA实现一个ROM呢,我们可以利用FPGA内部的RAM资源实现ROM,但不是真正意义上的ROM,而是每次上电都会把初始化的值先写入RAM。本实验将为大家介绍如何使用FPGA内部的ROM以及程序对该ROM的数据读操作。
接着上一章继续深入代码,在BuildRelay中会调用Codegen函数。这个函数实现在src/relay/backend/graph_runtime_codegen.cc中。Codegen实现了内存的分配,IR节点到TIR节点的转换,tir图节点的一个调度优化。
Zynq UltraScale+ MPSoC VCU DDR 控制器是一款专用 DDR 控制器,只支持在 Zynq UltraScale+ MPSoC EV 部件上与 Zynq UltraScale+ MPSoC VCU(H.264/H.265 视频编解码器)连用。
因此,调试将不同于 MIG 等传统 Xilinx DDR 控制器。
DDR PHY 与电路板调试:
Zynq UltraScale+ MPSoC VCU DDR 控制器采用 MIG PHY。
这意味着您可以使用标准 MIG 示例设计来验证您的电路板布局是否正确,并验证 DDR 接口是否工作正常。
RAM是FPGA中常用的基础模块,可广泛用于缓存数据的情况,同样它也是ROM,FIFO的基础。本实验将为大家介绍如何使用FPGA内部的RAM以及程序对该RAM的数据读写操作。
赛灵思 MATLAB & Simulink Add-on插件是将 ModelComposer 和 System Generator forDSP 完美结合的统一工具。它是一种基于模型的设计工具,帮助算法和 RTL /硬件开发者在 MathWorks Simulink® 环境中以赛灵思器件为目标,快速开展设计与探索。
使用 2018.2 Ultra96 PetaLinux BSP 构建图像时,如果我在 Matchbox 桌面点击关断图标,电路板不关断。服务器窗口会关闭,屏幕变为空白,但电路板还在运行。
在本例程中,我们要做的是LED灯控制实验,每秒钟控制开发板上的LED灯翻转一次,实现亮、灭、亮、灭的控制。会控制LED灯,其它外设也慢慢就会了。
很多初学者看到板上只有一个25Mhz时钟输入的时候都产生疑惑,时钟怎么是25Mhz?如果要工作在100Mhz、150Mhz怎么办?其实在很多FPGA芯片内部都集成了PLL,其他厂商可能不叫PLL,但是也有类似的功能模块,通过PLL可以倍频分频,产生其他很多时钟。本实验通过调用PLL IP core来学习PLL的使用、vivado的IP core使用方法。
为 VCU129 开发板提供的 BOARDUI.exe 可用于为板载 Si5348 时钟模块编写程序。默认频率为 156.25Mhz,该频率的设置文件在 BOARDUI 的 clockFiles 目录下提供。如何修改时钟频率?
TVM主要的编译过程如下图:Import:将tensorflow,onnx,pytorch等构建的深度学习模型导入,转化成TVM的中间层表示IR。Lower:将高层IR表示转化成低阶TIR表示。Codegen:内存分配和硬件可执行程序生成。
NeoPixels是数字控制的红、绿、蓝像素。由于每种颜色都由8位表示,总共24位,因此每个像素可以显示16777216种颜色中的一种。每个NeoPixel实际上是一个WS2812 LED。这些LED包含五个输入端,相对于地(VSS)在3.3V到5.0V(VDD和VCC)的电压范围内工作。
AXU2CGA/B的特点是体积小并扩展了丰富的外设。主芯片采用Xilinx公司的Zynq UltraScale+ MPSoCs CG系列的芯片,型号为XCZU2CG-1SFVC784I。AXU2CGA的PS端挂载了2片DDR4(2GB,32bit)和1片256Mb的QSPI FLASH。
算符融合将多个计算单元揉进一个计算核中进行,减少了中间数据的搬移,节省了计算时间。TVM中将计算算符分成四种:
1 injective。一一映射函数,比如加法,点乘等。
2 reduction。输入到输出具有降维性质的,比如sum。
3 complex-out。这是计算比较复杂的,比如卷积运算等。
4 opaque。无法被融合的算符,比如sort。
Zynq UltraScale+ MPSoC系列是Xilinx第二代Zynq平台。其亮点在于FPGA里包含了完整的ARM处理子系统(PS),包含了四核Cortex-A53处理器或双核Cortex-A53加双核Cortex-R5处理器,整个处理器的搭建都以处理器为中心,而且处理器子系统中集成了内存控制器和大量的外设,使处理器核在Zynq中完全独立于可编程逻辑单元
在论坛上遇到在高层次综合工具中调用视觉库遇到的大多数问题都和 opencv 库以及Xilinx Vision 库的安装路径有关,如今 Vitis HLS 2020.1 之后的版本都不再提供OpenCV 的预编译库,就更需要开发者们将各自工作环境中的库路径,环境变量都设置好。希望这篇博文能给大家调用 Vitis Vision Library 提供向导,提升效率。

