Xilinx 产品设计与功能调试技巧

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Xilinx 产品设计与功能调试技巧

yolanda
Moderator
Moderator

BY Hong Han

在Vitis 统一软件平台中使用v++ -link命令,可以把各种类型Kernel(C, C++, OpenCL™ C, 以及 RTL)的对象文件(.XO)整合到目标平台中,最终生成器件的二进制文件XCLBIN

阅读更多内容...

更多
0 0 43
yolanda
Moderator
Moderator

BY Giovanni Guasti

 

本篇是利用 Python 和 PyTorch 处理面向对象的数据集系列博客的第 3 篇。

如需阅读第 1 篇,请参阅此处。如需阅读第 2 篇,请参阅此处

在本篇博文中,我们将在“猫和狗”数据库上重复先前第 2 部分中已完成的过程,并且我们将添加一些其它内容。

阅读更多内容...

更多
0 0 50
yolanda
Moderator
Moderator

BY Giovanni Guasti

本篇是利用 Python 和 PyTorch 处理面向对象的数据集系列博客的第 2 篇。如需阅读第 1 篇,请参阅此处

我们在第 1 部分中已定义 MyDataset 类,现在,让我们来例化 MyDataset 对象。

阅读更多内容...

更多
0 0 82
yolanda
Moderator
Moderator

BY Giovanni Guasti

机器学习中一个常见问题是判定与数据交互的最佳方式。

在本文中,我们将提供一种高效方法,用于完成数据的交互、组织以及最终变换(预处理)。随后,我们将讲解如何在训练过程中正确地把数据输入给模型。

阅读更多内容...

更多
0 0 102
yolanda
Moderator
Moderator

BY Deepak D N

(UG332) 即为《Spartan-3 系列配置用户指南》

在此用户指南中,并未涵盖有关从 SPI 闪存启动时,如何使用内部配置访问端口 (ICAP) 来支持在 Spartan-3AN FPGA 内运行多重启动应用的用例。我们将在本篇博文中讲解此用例。

阅读更多内容...

更多
0 0 77
yolanda
Moderator
Moderator

By Hong Han

Alveo系列开发板上的平台其实是一个DFX设计的静态部分,在Vitis 统一软件平台中使用Alveo系列开发板设计加速Kernel, 最终这些Kernel的逻辑会在分布在DFX设计的动态区域.

本篇介绍一下如何为Kernel的逻辑做floorplan(画Pblock),人为控制Kernel逻辑的布局.

 

阅读更多内容...

更多
0 0 86
yolanda
Moderator
Moderator

BY Yang Chen

在开发一个加速程序的之前,有一个很重要的步骤:正确设计程序架构。开发人员需要明确软件应用程序中哪一部分是需要硬件加速的,并且它多少的并行量,以保证硬件加速器件(FPGA)能完美发挥其作用。这里我们大致分为5个步骤:

1. 基准和建立目标

2. 确定加速部分

3. 确定FPGA硬件加速并行量

4. 确定软件部分并行量

5. 微调架构细节。

阅读更多内容...

更多
0 0 121
yolanda
Moderator
Moderator

By Hong Han

 

在Vitis 统一软件平台中使用Alveo系列开发板设计加速Kernel时,系统会自动为Kernel的时钟设置默认频率.

以xilinx_u200_qdma_201910_1平台为例,在Vitis中选择平台时可以看到默认的时钟频率是300Mhz和500Mhz.

阅读更多内容...

更多
0 0 125
yolanda
Moderator
Moderator

BY Stephen MacMahon

在本篇博文中,我们将探讨如何在 Vitis 中调试 Zynq UltraScale 器件启动镜像。这些启动镜像包括 ARM 可信固件 (ATF) 和 U-boot。

启动镜像调试是任何定制板启动过程中不可或缺的一环,希望本篇博文能够帮助用户完整完成定制板启动镜像的调试工作。即使您使用的是开发板,本篇博文也将能够提供有关启动镜像在 Zynq UltraScale 上的工作方式方面的诸多实用见解。如需阅读本系列的所有文章,请参阅此处

阅读更多内容...

更多
1 0 137
yolanda
Moderator
Moderator

BY Aoife Marsh

AXI 基础第 6 讲 - Vitis HLS 中的 AXI4-Lite 简介中,我们学习了如何使用 C 语言在 HLS 中创建包含 AXI4-Lite 接口的 IP。在本篇博文中,我们将学习如何导出 IP 以供在 Vivado Design Suite 中使用以及如何将其连接到其它 IP 核与处理器

阅读更多内容...

更多
0 0 194
yolanda
Moderator
Moderator

BY John Bieker

本文旨在提供一种方法,以帮助设计师判断给定模块是否能够在空裸片上达成时序收敛。  如果目标模块无法在空裸片上达成非关联 (OOC) 时序收敛,则恐难以与设计其余部分达成关联性时序收敛。设计师可从完整设计中提取目标模块、对其进行布局规划、约束,然后通过实现工具来运行这些模块,以判断是否能够独立达成时序收敛

阅读更多内容...

更多
0 0 126
yolanda
Moderator
Moderator

BY Davis Zhang

Open AMP framework支持standalonelinux环境下加载RPU的程序,但是没有u-boot下面的支持。U-boot下可以把rpu app binary加载到memory,然后用“cpu”命令启动rpu app。这个流程不是官方支持的方法,所以不在支持范围内,这里只做可行性探讨。下面是简单测试过可行的方法。

阅读更多内容...

更多
0 0 133
yolanda
Moderator
Moderator

BY Davis Zhang

有时我们需要为官方IP或者自己创建的IP生成kernel module,然后在linux kernel space里使用kernel module来控制这个IP。如果要使用IP中断,我们需要在kernel module代码里获取设备中断并建立中断服务程序。在老版本petalinux,我们可以在kernel module里直接指定IP中断的实际物理中断号,但是新版本内核里我们需要在kernel module里获取IP的虚拟中断号。

阅读更多内容...

更多
0 0 124
yolanda
Moderator
Moderator

By Davis Zhang

I2C总线的两根信号线SCLSDA需要上拉才能正常工作,当板卡上没有合适的硬件设置或者没有合适的I2C slave设备,我们就无法进行I2C软件测试。那么是否可以将两个PS I2C控制器通过EMIO接口互连起来呢?

阅读更多内容...

更多
0 0 129
yolanda
Moderator
Moderator

BY Ben M. Fell

在 FPGA 设计进程中,时序收敛无疑是一项艰巨的任务。 低估这项任务的复杂性常常导致工作规划面临无休止的压力。赛灵思提供了诸多工具,用于帮助缩短时序收敛所需时间,从而加速产品上市。本篇博文描述了一种方法,能够有效减少时序路径问题分析所需工作量。

阅读更多内容...

更多
1 0 204
yolanda
Moderator
Moderator

BY Chao Zhang

 

本示例工程中我们会在TensorFlow2下使用Keras API创建一个自定义CNN网络,在Vitis-AI 1.3环境下编译成Xilinx DPU上运行的模型文件,并在Xilinx zynqMP上部署运行。

该示例工程应在Vitis-AI 1.3 Docker,vitis-ai-tensorflow2 conda环境中运行。

有关Mnist手写数字数据集,请参见http://yann.lecun.com/exdb/mnist/。

在该例程中我们会演示以下的步骤:

  • 使用TensorFlow2训练和评估小型自定义卷积神经网络
  • 对浮点模型进行量化(quantization)
  • 对量化模型进行评估
  • 使用校准数据集对训练后的模型进行微调(finetuning)
  • 编译量化和微调的模型,以创建.xmodel文件,准备在DPU加速器IP上执行
  • 在zynqMP评估板上下载并运行该模型
阅读更多内容...

更多
0 0 222
yolanda
Moderator
Moderator

BY Vivian Yin

时序约束中的set_input_delay/set_output_delay约束一直是一个难点,无论是概念、约束值的计算,还是最终的路径分析,每一次都要费一番脑子。

Vivado为方便用户创建输入输出接口的约束,整理出了一套非常实用的Input Delay/Output Delay Constraints Language Templates。只需根据接口信号的特征匹配到对应的template分类,就可以轻松套用模板中的公式创建约束。

本文将通过几个例子来展示,如何精确找到匹配的template。

阅读更多内容...

更多
2 0 263
yolanda
Moderator
Moderator

By Gary Pan

以太网IP核的1588功能是用来实现,在IP内部为TX侧发送包打上发送出去这个时间节点的时间戳,以及获得RX侧收回来的包在IP接口处的时间戳。然而10G/25G的IP例子工程没有提供演示,本文主要介绍了如何使用这个IP的1588功能。

阅读更多内容...

更多
0 0 248
yolanda
Moderator
Moderator

By Zhendong Wu

Alveo加速卡除了有我们ultrascale+系列的芯片以外,还有TI的MSP432,它的作用就是监控板子的状态,比如电流电压温度等信息。主控端可以通过FPGA,访问MPS432,然后获取这些信息。那么怎么样简单的获得这些信息呢,为此我们准备了CMS IP.

阅读更多内容...

更多
0 0 187
yolanda
Moderator
Moderator

By Chao Zhang

今天和大家分享下如何在Petalinux下定位decice-tree错误的一些技巧。 

首先我们来了解下Petalinux工程中device-tree的文件位置:

工具自动生成的device-tree文件位于components/plnx_workspace/device-tree/device-tree, 该文件夹下的文件请勿自行修改,供用户编辑的device-tree文件位于project-spec/meta-user/recipes-bsp/device-tree/files。

阅读更多内容...

更多
1 0 205
yolanda
Moderator
Moderator

BY Nathan Xu

有很多客户在比较FFT C-Model仿真和FFT IP前仿遇到问题.

总结下来, 原因大概有三种.

1)     C-Model的输入数据和IP仿真的输入不完全一致

2)     C-Model的参数设置和IP的参数设置不完全一致

3)     出现overflow

 

阅读更多内容...

更多
0 0 207
yolanda
Moderator
Moderator

BY Chao Zhang

在软件开发过程中我们经常遇到用patch来传递和更新代码的场景。今天我们以一个端到端的例子来演示在Petalinux使用过程中,如何给u-boot的源码生成patch并在Petalinux中编译。

阅读更多内容...

更多
1 0 277
yolanda
Moderator
Moderator

BY Yang Chen

自从Vitis的发布,Xilinx在Github上也开源了很多资源,方便开发者进行自己的设计,减少产品上市时间。所以我们来看一下如何获取和使用Github上的开放资源。

以Vitis_example为例,链接https://github.com/Xilinx/Vitis_Accel_Examples

阅读更多内容...

更多
0 0 312
yolanda
Moderator
Moderator

BY Terry Ni

引言

        通常Kernel一加载起来,大家能在/dev目录下可以看到一大堆的设备。这些设备都是Kernel加载初始化过程中,由内核和驱动创建出来的。那么哪个设备才是我真正要用的设备。下面就几个常用的外设来和大家一起梳理一下。

阅读更多内容...

更多
0 0 307
yolanda
Moderator
Moderator

BY Terry Ni

 设备树是Petalinux kernel的关键组件,接下来以2020.1版本为例,为大家介绍一下在Xilinx Petalinux 工程中的设备树是如何产生,配置以及修改的。

阅读更多内容...

更多
0 0 459
yolanda
Moderator
Moderator

BY Praveen Venugopal

在“IIC 协议与编程序列”一文中,我们为内部集成电路 (IIC) 协议的初学者们提供了有关该协议基础知识和编程序列的详细解释。在本篇博文中,我们将探讨有关 AXI IIC 和 PS IIC 的自调试技巧。

阅读更多内容...

更多
0 0 349
yolanda
Moderator
Moderator

BY WEN CHEN

提取实现任务级(task_level)的硬件并行算法是设计高效的HLS IP内核的关键。在本文中,我们将重点放在如何能够在不需要特殊的库或类的情况下修改代码风格以实现C代码实现并行性。 Xilinx HLS编译器的显着特征是能够将任务级别的并行性和流水线与可寻址的存储器PIPO或FIFO相结合。本文首先概述可以获取任务并行的前提条件,然后以DAG(directed acyclic graph) 代码为例,挖掘其中使用fork-join并行性,并结合使用ping- pong buffer启用了一种基于握手的任务级粗粒度的流水线形式。

阅读更多内容...

更多
0 0 317
yolanda
Moderator
Moderator

BY Wen Chen

HLS 优化设计的最关键指令有两个:一个是流水线(pipeline)指令,一个是数据流(dataflow)指令。正确地使用好这两个指令能够增强算法地并行性,提升吞吐量,降低延迟但是需要遵循一定的代码风格。展开(unroll)指令是只针对for循环的展开指令,和流水线指令关系密切。

阅读更多内容...

更多
0 0 345
yolanda
Moderator
Moderator

BY Wen Chen

说起高层次综合技术(High-level synthesis)的概念,现在有很多初学者简单地把它理解为可以自动把c/c++之类地高级语言直接转换成底层硬件描述语言(RTL)的技术。其实更准确的表述是:由更高抽象度的行为描述生产电路的技术。高层次的概念代表的是硬件描述语言里面较高的抽象层次,只是随着软件硬件语言的共同发展,这样的高抽象度的行为描述语言来到了C/C++/System C 这样的层次。

阅读更多内容...

更多
0 0 379
yolanda
Moderator
Moderator

BY Wen Chen 

本文给想直接使用Vitis HLS 工具在 Standalone 模式下调用Xilinx Vision Library L1 API 的小伙伴提供了一个非常容易上手的脚本文件。 

在论坛上遇到在高层次综合工具中调用视觉库遇到的大多数问题都和opencv库以及Xilinx Vision库的安装路径有关,如今Vitis HLS 2020.1之后的版本都不再提供OpenCV的预编译库,就更需要开发者们将各自工作环境中的库路径,环境变量都设置好。希望这篇博文能给大家调用Vitis Vision ibrary提供向导,提升效率。

阅读更多内容...

更多
1 0 587