一个合格的FPGA工程师需要具备广泛的知识和技能,以成功设计、开发和维护FPGA电路。以下是合格的FPGA工程师需要掌握的关键知识领域:
1. 硬件描述语言(HDL)编程: 熟练掌握硬件描述语言,如VHDL或Verilog,是关键的基础。FPGA工程师需要能够使用HDL编写、模拟和调试FPGA电路。
2. 数字电路设计: 了解数字电路原理和设计技巧,包括逻辑门、时序电路、...
技术
作者:Zhang Yong,AMD工程师;来源:AMD开发者社区
通常如果一个application正在访问某个video设备的时候,另外一个application访问它会返回busy状态。有时我们需要把同一个camera的图像显示到两台显示器上,基于blog “如何在zcu102板卡上创建DisplayPort 1.4 Tx Subsystem core的pipeline”里的PS-DP...
作者:Jackie Gao,AMD工程师;来源:AMD开发者社区
简介
EtherCAT是基于以太网的现场总线系统,最早是由德国的Beckhoff公司研发。EtherCAT是确定性的工业以太网。具体低抖动,实时性高等特点,在工控领域得到广泛应用。
本参考设计基于ZYNQ-7000,外挂LAN9252芯片。在硬件方面,ZYNQ与LAN9252通过AXI EPC连接,在软件方面,...
作者: Duoqiang Liu,来源:FPGA算法工程师
1.IIR滤波器的原理
1.1 概述
《数字信号处理》作为一门通信、电子、信息等本科专业基础课程,在《信号与系统》课程的基础上,学习离散信号与离散时间系统,尤其是离散傅里叶变换(DFT)和快速傅里叶变换(FFT)、数字滤波器、多速率信号处理等在通信、雷达等领域得到广泛应用。
无限脉冲相应(Infinite Impulse...
在基于FPGA的网络设备中,精确的时间同步至关重要。IEEE 1588标准定义的精确时间协议(PTP)为网络中的设备提供了纳秒级的时间同步。本文将介绍虹科提供的适用于基于FPGA的网络设备的IEEE 1588透明时钟(TC)架构,帮助您实现精确时间同步和高效通信。
在分布式系统中,传感器/执行器的事件和操作需要进行精确的时间协调,因为时钟差异可能导致操作失败。为了确保时间同步,...
软件版本:VIVADO2021.1
操作系统:WIN10 64bitaa
硬件平台:适用XILINX A7/K7/Z7/ZU/KU系列FPGA
登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!
1 概述
本章课程以大家熟悉的流水灯为例子,详细讲解了VIVADO软件的使用,包括创建FPGA工程,编写Verilog代码,添加管脚约束...
03使用ILA IP、直接添加信号法和VIO进行调试
软件版本:vitis2021.1(vivado2021.1)
操作系统:WIN10 64bit
硬件平台:适用AMD-XILINX A7/K7/Z7/ZU/KU系列FPGA
1 概述
在开发工程中,我们需要对一些信号进行debug调试,如果对于CPU的软件开发一般可以设置断点,但是对于FPGA来说,FPGA是无法设置断电的,...
作者:Noel Tenorio,ADI产品应用工程师
摘要
电压监控器通过监控电源,在电源发生故障时将微控制器置于复位模式,可防止系统出现错误和故障,从而提高基于微控制器系统的可靠性。然而,噪声、电压毛刺和瞬变等电源缺陷都可能会导致误复位问题,从而影响系统行为。本文介绍电压监控器如何解决可能触发误复位的因素,以提高系统性能和可靠性。
简介
对于需要使用现场可编程门阵列(FPGA...
作者:Adam Taylor,来源:ADM开发者社区
简介
在使用可编程逻辑器件设计时,最重要的步骤之一就是为应用选择最佳器件。在 AMD 成本优化的产品系列中,有一系列可供开发人员选择的 FPGA 及异构 SoC。
成本优化的产品系列 (COP) 包含AMD 7 系列和 UltraScale+™ 系列器件、所有 AMD Spartan™ 7 与 AMD Artix™ 7...
作者:Chen Shaoyi,AMD工程师;来源:AMD开发者社区
最后我们需要生成能够在KR260上运行的固件。
首先我们需要根据https://www.xilinx.com/products/som/kria/kr260-robotics-starter-kit/kr260-getting-started/getting-started.html 设置好KR260开发板。...
作者:Chen Shaoyi,AMD工程师;来源:AMD开发者社区
上一篇博客中我们导出了platform的设计工程XXX.xsa。接下来我们将使用pfm.tcl来生成platform工程,配置Linux部分并生成Vitis acceleration platform。
使用以下命令将xsa转换为platform文件。
xsct pfm.tcl -xsa
其中pfm....
软件版本:vitis2021.1(vivado2021.1)
操作系统:WIN10 64bit
硬件平台:适用AMD-XILINX A7/K7/Z7/ZU/KU系列FPGA
1 概述
在开发工程中,我们需要对一些信号进行debug调试,如果对于CPU的软件开发一般可以设置断点,但是对于FPGA来说,FPGA是无法设置断电的,但是FPGA可以通过内嵌的逻辑分析仪(ILA)IP以及虚拟(...
作者:Chen Shaoyi,AMD工程师;来源:AMD开发者社区
官网上没有提供KR260的DPU预配置工程。在这篇博客中,我们将为 KR260 Vitis 加速平台创建硬件设计。 我们将从KR260预设文件开始,添加平台所需的外设并对其进行配置。 一切设置完毕后,我们将把硬件设计导出到XSA。
创建名为kr260_platform的Platform
Create...
1.1概述
一般安装vitis(vivado)的过程中勾选了安装jtag cable驱动就会默认安装好jtag驱动,但是如果vivado无法正确识别到JTAG,那么可以试下重新手动安装驱动
1.2准备工作
安装驱动前,必须关闭所有的vivado,vitis-sdk并且拔掉USB JTAG 以免导致安装失败
1.3usb-jtag驱动安装...
1.1 Modelsim软件版本选择
不同的Vivado版本支持使用的Modesim版本不同,具体可查看Xilinx提供的文档UG973-vivado-release-notes-install-license。
我们使用的Vivado 软件版本是 vivado2017.4,推荐使用版本是 ModelSim SE/DE/PE (10.6b),经过安装发现,使用低于推荐的版本,...
本文转载自:uisrc.com
1 Vitis概述
Vitis 统一软件平台可实现在 Xilinx 异构平台(包括 FPGA、SoC 和 Versal ACAP)上开发嵌入式软件和加速应用。它可为边缘、云和混合计算应用加速提供统一编程模型。
利用与高层次框架的集成,通过加速库采用 C、C++ 或 Python 进行开发,或者使用基于 RTL 的加速器和低层次运行时 API...
图形处理单元(GPU)、张量处理单元(TPU)和其他类型的专用集成电路(ASIC)通过提供并行处理能力来实现高性能计算,以满足加速人工智能(AI)训练和推理工作负载的需求。
AI需要大量的算力,尤其是在学习和推理时。这种需求不断地将供电网络的边界推向前所未有的新水平。这些高密度工作负载变得愈加复杂,更高的瞬态需求推动配电网络的每个部分都必须高效运行。...
作者:Giovanni Di Maria, 来源:EDN姊妹网站EEWeb
上一篇文章(《数电中的逻辑门》)探讨了逻辑门的概念。它们可以由分立和有源电子元件制成,尽管今天逻辑门可以在集成电路中使用。然而,在本文中,将研究其他逻辑门。通过适当地组合多个逻辑门,可以构建具有更重要功能的复合逻辑系统。
1. 逻辑门的组合
正如我们在上一篇文章中看到的,...
概述
假如现在有一种方法–可以在不怎么需要修改已有设计的情况下,就可以帮您节省50%的设计资源,那你会试试看吗?
当前市场环境下,更低廉的成本却可获得同等性能无疑是极具诱惑的。本文将介绍一种FPGA设计技术,该技术可以改变 FPGA 设计的规模大小和使用性能。
单级逻辑
你可以在Xilinx的FPGA 中使用可配置逻辑块CLB中的查找表LUT和触发器DFF来实现简单的逻辑函数。...
作者:Alan Yang,DigiKey 员工
本文继续探讨微控制器(uC)到现场可编程门阵列(FPGA)接口。
第1部分 介绍了指导大型系统开发的Verilog设计理念。介绍寄存器传输电平(RTL)设计准则的关键部分,如时钟边界、频闪器的使用和双缓冲区的必要性。
第2部分 介绍了SPI协议。回想一下,所选择的协议改编自802.3以太网帧,具有可变有效载荷长度和循环冗余校验(...
作者:Alan Yang,DigiKey 员工
本系列文章的主要目标是开发一种在微控制器(uC)和现场可编程门阵列(FPGA)之间快速可靠地传输数据的机制。在本系列文章中,我们将描述通信协议和相关帧的属性。
设计uC到FPGA接口的方法有很多。让我们先建立一套通用的设计要求来框定这个对话:
尽量减少uC和FPGA之间的线数
允许uC和FPGA之间有针对性的(可寻址的)...
作者:Florentw,AMD工程师;来源:AMD开发者社区
简介
在 Versal AI 引擎 2 一文 中,我们注意到计算图 (graph) 文件中有一行内容用于为每个内核实例定义运行时比率参数。
在本文中,我们将讲解该参数如何影响 AI 引擎应用的资源使用率和性能。
要求
下文要求您通读前几篇 AI 引擎系列博文。
AI 引擎系列 1 - 从 AI...
作者:Alan Yang,来源:DigiKey 员工DigiKey社区
本文,我们将探讨微控制器(uC)到现场可编程门阵列(FPGA)串行外设接口(SPI)。主要目标是使FPGA更容易控制。我们将探索在DigilentBASYS-3 (XilinxAtrix-7)开发板上开发,使用Verilog硬件语言,并在Arduino Nano Every上开发相应的微控制器代码。...
作者:Florentw,AMD工程师;来源:AMD开发者社区
在前几篇 AI 引擎系列博文中,我们讲解了 AI 引擎仿真器生成的用于执行 AI 引擎 (AIE) 应用功能验证的文本文件。
在本文中,我们将讲解如何生成追踪来观察计算图 (graph) 的状态,这也是执行性能分析的关键要素。
要求
下文要求您通读前几篇 AI 引擎系列博文。
AI 引擎系列 1 -...
作者:Marcello Colozzo,来源:EDN电子技术设计
本文将深入分析离散傅里叶变换(DFT)和快速傅里叶变换(FFT)。
信号的采样过程是一种理想形式,因为它在时间轴上从−∞延伸到+∞,因此有无数个瞬时tn。这就破坏了使用电子计算器对采样信号进行频率分析的可能性。因此,我们需要一个能够返回有限数量的瞬时(样本)的真实采样过程。
加窗技术——频谱泄漏
从数学上讲...
作者:Longley Zhang,AMD工程师;来源:AMD开发者社区
在AMD XILINX SoC器件(Zynq-7000,Zynq MPSoC,Versal),常见的启动方式是通过加载外部存储器(QSPI Flash,eMMC等)上的镜像,直接启动到Linux。但当板子调试时,经常需要通过JTAG把SoC器件启动到Linux。这个博客将分享通过JTAG启动Linux的方法和脚本...
作者:Zhang Yong,AMD工程师;来源:AMD开发者社区
DisplayPort 1.4 Tx Subsystem core的最简pipeline就是如它的linux driver wiki page里的figure-4那样,framebuffer_read+DP+video_phy。Zcu102板卡没有PL DP的专用接口,所以要用到一个FMC子卡来扩展PL DP接口。...
作者:Giovanni Maria,来源:EDN电子技术设计
在本文中,将探讨数字电子电路的另一个重要方面,即涉及逻辑门的问题。将讨论现有的不同类型的逻辑门以及它们如何工作。这将是理解逻辑电子电路和创建更复杂电子系统的重要一步。
1. 逻辑门
逻辑门是执行逻辑运算的一个(或一组)电子元件,其中二进制值0和1用两个不同的电压值表示,如上一篇文章中所见。在了解了AND(与)、OR(或)...
作者:Kathy Ren,AMD工程师;来源:AMD开发者社区
在Ultrascale+ HBM系列的器件上包含有容量32Gb/64Gb的高带宽硬件存储介质HBM。每个HBM stack的容量是32Gb,分为8个channel。每个channel可以分为2个伪通道(pseudo channel)。除了基本的AXI3总线供数据读写之外,还带有ECC(错误校验和纠正)功能。这样,...
作者:Peter Zhou,AMD工程师;来源:AMD开发者社区
问题背景:近期我们在Versal VC1902上使用winbond stacked flash W25H02JV,在uboot启动的时候,发现会有概率性启动失败的问题。
围绕这个问题,我们做了一些分析,由于之前很少有项目使用此种类型的flash,所以这个型号的flash的驱动并不是很成熟。...
作者:Simon Li,AMD工程师;来源:AMD开发者社区
有时候在debug GT的时候,需要用Digital monitor读出RX equalizer的code,本篇文章以US+的GTM为例子,提供了一个步骤,详细寄存器可以参考UG581.
1. Select DRP和Dmonitor port
2. Dmonitor port,用DRP...
作者:Terry Ni,AMD工程师;来源:AMD开发者社区
在petalinux系统中,System V 和 SystemD是执行初始化和管理系统服务的不同初始化系统。它们的主要区别在于其体系结构和功能:
System V Init (SysV Init)
System V Init 是传统的初始化系统,已经存在很长时间,通常以脚本的形式存在,通常位于 /etc/init.d/...
作者:Jackie Gao,AMD工程师;来源:AMD开发者社区
前言
当FPGA开发者需要做RTL和C/C++联合仿真的时候,一些常用的方法包括使用MicroBlaze软核,或者使用QEMU仿真ZYNQ的PS部分。
此教程介绍一种通过SystemC做RTL/C/C++联合仿真的方法,所有的BFMs(Bus Function Module)都是通过SystemC完成。...
作者:Zhang Yong,AMD工程师;来源:AMD开发者社区
OpenCV支持许多与计算机视觉和机器学习相关的算法,并且正日益扩展。OpenCV Python是OpenCV的Python API,本文介绍一种方法在petalinux环境下使用OpenCV的Python API实现USB camera视频流的读取显示。
在Petalinux 环境下执行带有opencv...
作者:Simon Li,AMD工程师;来源:AMD开发者社区
在debug GT的时候,有时候需要读出一些寄存器来分析。这篇文章介绍一种通过AXI4 Lite或者APB3接口从XSCT来读Versla GT的寄存器的方法。
APB3是一个32-bit数据总线地址,但是AXI4-Lite是一个8-bit Byte总线。因此如果用AXI-lite,需要将如下的寄存器地址*4。...
作者:Tulip Peng,来源:FPGA FAE技术分享选集微信公众号
接着上一篇“AMD Versal系列CIPS IP核介绍”文章来进一步讲解如何来建立CIPS IP核示例工程。
利用CIPS IP核的板卡自动化以及预置功能,生成VCK180 DDRMC基于GUI界面的调试工程。当然该工程亦可以根据AMD官网例程TCL文件来完成。
本文是基于Vivado 2022....
来源:内容由半导体行业观察(ID:icbank)编译自servethehome,谢谢。
最近发布了 CXL 3.1 规范。新规范对横向扩展 CXL 进行了额外的结构改进、新的可信执行环境 ehnahcments 以及对内存扩展器的改进。
CXL 3.1 在底层进行了许多重大更改,主要是为了解决团队构建更大的 CXL 系统和拓扑时发生的问题。
CXL 3...
在赛灵思器件中为部分重配置编译设计时,会创建不同类型的比特流。
本文档为 7 系列和 UltraScale 器件的每种比特流类型定义了术语,并进行了详细说明。
《部分重配置用户指南》(UG909) 中提供了以下所示全部主题的更多信息。
比特流类型包括:
完整配置比特流
部分比特流
空白比特流
清除比特流
完整配置比特流。所有 PR...
从傅里叶变换到小波变换,并不是一个完全抽象的东西,完全可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。
下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东西、小波究竟是怎样的思路。(反正题主要求的是通俗形象,没说简短,希望不会太长不看。。)
一、傅里叶变换...
作者:Yin Chaowen,AMD工程师;来源:AMD 开发者社区
1. 关于Vitis Vision Library
Vitis Vision 库是一组 90 多个内核,基于 OpenCV 计算机视觉库,针对 Xilinx™ FPGA、AI Engine™ 和 SoC 进行了优化。 Vitis Vision 库中的内核在 Xilinx Vitis™ 工具套件中进行了优化和支持。...
根据调整管的工作状态,我们常把稳压电源分成两类:线性稳压电源和开关稳压电源。此外,还有一种使用稳压管的小电源。这里说的线性稳压电源,是指调整管工作在线性状态下的直流稳压电源。而在开关电源中则不一样,开关管是工作在开、关两种状态下的。
简单介绍下分类:
NPN稳压管:内部用一个PNP管控制达林顿调整管。
LDO稳压管:调整管是一个PNP管。
Squasi-LDO:...
本文转载自:SDNLAB
Compute Express Link(CXL)作为一种先进的互连技术,在当今高性能计算领域引起了广泛关注,其高带宽、低延迟的特性使其成为连接处理器、加速器、存储等关键组件的理想选择。本文将深入探讨CXL技术,从其起源、特点,到应用领域和与其他技术的比较,全面了解CXL对现代数据中心生态系统的重要性。
什么是CXL?...
作者: Tulip Peng,来源:FPGA FAE技术分享选集微信公众号
AMD自适应计算加速平台(ACAP)是一个完全软件可编程资源集合,这些资源结合在一起构成片上系统 (SoC),包括以下主要的资源块:
AI 引擎(AI 引擎可用性与器件相关)
可编程逻辑(PL)
片上网络(NoC)
高速 I/O (XPIO)
集成存储器控制器(DDRMC)
处理器系统(PS)...
作者:Yin Chaowen,AMD工程师;来源:AMD开发者社区
1. 关于ILA Cross Trigger
1)ILA Cross Triggering功能使得ILA核心之间、以及ILA核心与处理器(例如,AMD Zynq™ 7000 SoC)之间可以进行Cross Trigger。这个功能在你需要在不同时钟域的两个ILA核心之间触发,或者在处理器和ILA核心之间执行硬件/...
作者:Grace Sun,AMD工程师;来源:AMD开发者社区
仿真是设计流程中进行功能性能验证的重要步骤。Vivado IDE集成了Modelsim, VCS, Xcelium等第三方仿真器的目标选项,可以使用户直接从Vivado界面内启动第三方仿真器的仿真,这种方式自动化程度高,便捷且不易出错。但出于习惯,定制灵活性,验证环境等原因,很多用户会在Vivado...
作者:Adam Taylor,贸泽电子专稿
现场可编程门阵列(FPGA)是实现图像处理系统的绝佳选择。它具有高度并行的逻辑架构,可实现高分辨率、高帧率的图像处理算法,因而非常适合用于从自动驾驶到机器人等诸多应用。通常,图像处理解决方案是在异构片上系统(SoC)中实现的,这样的系统能够结合可编程逻辑与Arm®硬处理器内核。然而,在某些应用中,这些处理器并不能得到充分利用,...
作者:Florentw,AMD工程师;来源:AMD开发者社区
简介
在上一篇 AI 引擎系列博文中,我们运行了 AI 引擎编译器,将计算图 (graph) 与内核代码编译到目标 AI 引擎模型中。
在本文中,我们将在 Vitis™ 分析器中详解编译汇总文件,其中提供了有关编译的大量实用信息。
要求
下文要求您通读前几篇 AI 引擎系列博文。
AI 引擎系列...
作者:Grace Sun,AMD工程师;来源:AMD Xilinx开发者社区
用户在目标平台运行Vitis AI所编译的xmodel时,碰到比较常见的问题之一是fingerprint校验失败。报告的错误类似以下信息:
CHECK fingerprint fail! model_fingerprint 0x101000016010407 is un-matched with...
作者: tongcheng123,文章来源:FPGA视频图像处理微信公众号
每一片芯片内部存有一个设备标识符,xilinx把它叫做DNA,这个DNA是不可更改的,永久存在芯片里面的。根据文档介绍,一个系列最多有32块芯片的DNA一样。下面简单介绍一下xilinx FPGA的DNA,及怎么读取出来。
Xilinx的FPGA芯片,在7系列和7系列之前的产品,DNA是一个57Bit的数据,...
作者:Jackie Gao,AMD工程师;来源:AMD Xilinx开发者社区
简介
ZYNQ-7000的S_AXI端口提供了外设访问PS内部外设控制器的接口,这其中包括4个S_AXI_HP端口以及两个S_AXI_GP端口。一般来说,可以访问的内部资源包括DDR控制器,QSPI控制器,OCM,IIC,SPI等。
本教程提供一个最小的参考设计,使上柆机可以通过PCIE端口,...