技术
由 Ubuntu 16.04 机器上不兼容 GTK 版本导致的 Eclipse GUI 问题
在本系列的前几篇文章中 ,我们讨论了 Dennard Scaling 和摩尔定律的细目以及对专用和适应性加速器的需求。 然后,我们深入研究了功耗问题,并讨论了网络压缩的高级优势。在这第三篇文章中,我们将探讨专门构建的“计算有效”神经网络模型的优点和挑战。
在软件开发过程中我们经常遇到用 patch 来传递和更新代码的场景。今天赛灵思技术专家以一个端到端的例子来演示在 Petalinux 使用过程中,如何给 u-boot 的源码生成patch 并在 Petalinux 中进行编译。
Petalinux可以帮助工程师简化内核模块的创建工作。在petalinux工程目录下,使用命令“petalinux-create -t modules --name --enable”,能创建Linux内核模块,包括c源代码文件、Makefile、Yocto的bb文件。相关文件放在目录“project-spec/meta-user/recipes-modules”,目录结构如下
在 "人工智能引发能源问题,我们该怎么办 (一)"中,我们简要介绍了更高层次的问题,这些问题为优化加速器的需求奠定了基础。作为一个尖锐的问题提醒,现在让我们通过一个非常简单的图像分类算法,来看一看与之相关联的计算成本与功耗。
有时CPU需要与PL进行小批量的数据交换,可以通过BRAM模块,也就是Block RAM实现此要求。本章通过Zynq的GP Master接口读写PL端的BRAM,实现与PL的交互。在本实验中加入了自定义的FPGA程序,并利用AXI4总线进行配置,通知其何时读写BRAM。
2014 年,斯坦福大学教授 Mark Horowitz 发表了一篇题目为“计算的能源问题(以及我们该怎么办)”的论文。这篇具有深远意义的论文,讨论了当前半导体行业所面临的最热门的、与登纳德缩放比例定律 (Dennard Scaling )和摩尔定律 (Moore’s Law) 失效相关的挑战。
自从 Vitis 发布后,Xilinx 在 Github 上持续开源了很多资源,方便开发者进行自己的设计,减少产品上市时间。所以本期文章我们来看下如何获取和使用 Github 上的开放资源。
PL和PS的高效交互是zynq soc开发的重中之重,我们常常需要将PL端的大量数据实时送到PS端处理,或者将PS端处理结果实时送到PL端处理,常规我们会想到使用DMA的方式来进行,但是各种协议非常麻烦,灵活性也比较差,本节课程讲解如何直接通过AXI总线来读写PS端ddr的数据,这里面涉及到AXI4协议,vivado的FPGA调试等。
Free RTOS实时操作系统运行环境,这里不深入探讨Free RTOS的具体使用。本实验以FreeRTOS Hello World做举例,并实现两个LED灯以不同间隔持续闪烁。本实验基于 “PL端AXI GPIO的使用”工程,硬件环境不需要修改。
Xilinx官方为大家提供了很多IP核,在Vivado的IP Catalog中可以查看这些IP核,用户在构建自己的系统中,不可能只使用Xilinx官方的免费IP核,很多时候需要创建属于自己的用户IP核
前面讲过如何用的是PS端的EMIO点亮PL端LED灯,但是并没有与PL端产生交互。本章介绍另外一种控制方法,在ZYNQ当中可以使用AXI GPIO,通过AXI总线控制PL端的LED灯。同时也介绍了PL端按键的使用。
鉴于DNN 在研究和技术方面的巨大投资,很明显,DNN 作为首选解决方案的适用范围,将会继续迅速扩大。然而,在可预见的未来,许多应用将通过传统技术(包括其他形式的机器学习)或通过深度学习和传统算法的组合,来获得最好的解决方案。接下来,我们就一起了解一下,深度学习在机器视觉中的典型应用。
如果想用PS点亮PL的LED灯,该如何做呢?一是可以通过EMIO控制PL端LED灯,二是通过AXI GPIO的IP实现控制。本章介绍如何使用EMIO控制PL端LED灯的亮灭。同时也介绍了,利用EMIO连接PL端按键控制PL端LED灯。
FreeRTOS在 void vTaskStartScheduler( void )里调用 configSETUP_TICK_INTERRUPT(), 也就是void FreeRTOS_SetupTickInterrupt( void )。void FreeRTOS_SetupTickInterrupt( void )在文件portZynqUltrascale.c里实现
本章介绍system monitors的使用,用于监测芯片的电压、温度值等,也可以通过PL端的ADC引脚作为外部信号的采集。
之前群里有一些关于在Vivado中IP综合时出现各种问题,大部分通过reset_project这个TCL命令解决,今天就简单分析一下reset_project这个命令的作用。
通常 Kernel 一加载起来,大家能在/dev目录下可以看到一大堆的设备。这些设备都是 Kernel 加载初始化过程中,由内核和驱动创建出来的。那么哪个设备才是我真正要用的设备。下面就几个常用的外设来和大家一起梳理一下。
在实际工作中,会遇到产品升级问题,如果按照程序烧录的方式,可能需要打开产品的外壳,这无疑。本章介绍一种通过网络远程更新FLASH程序的方法,包含UDP和TCP两种方法。