本文转载自: XILINX技术社区
在 AXI 基础第 2 讲 一文中,曾提到赛灵思 Verification IP (AXI VIP) 可用作为 AXI 协议检查工具。在本次第4讲中,我们将来了解下如何使用它在 AXI4 (Full) 主接口中执行验证(和查找错误)。
1. 下载设计文件(请输入以下网址进行下载
https://forums.xilinx.com/xlnx/...
技术
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号
神经网络加速器基本上是一个中介拓扑架构的神经网络加速器,其通过指令解析模块将不同指令分发到不同的数据处理模块。这些数据处理模块共享片上的存储。这种结构的优点有:
1) 结构简单,控制起来容易。对应每个数据处理模块都对应一个复杂指令,在进行神经网络加速的时候,只需要根据神经网络的中的不同数据计算部分,...
作者:范龙飞 ,文章来源:MYMINIEYE
1.FFT变换的基本原理
傅立叶变换是数字信号处理领域一种很重要的算法,可以将一个信号从时域变换到频域。傅立叶原理表明:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。
根据原信号的不同类型,傅里叶变换可以分为四种类别:
(1)非周期性连续信号傅里叶变换...
文章转载自:XILINX技术社区微信公众号
在这篇新博文中,我们来聊一聊如何将 AXI VIP 添加到 Vivado 工程中,并对 AXI4-Lite 接口进行仿真。随后,我们将在仿真波形窗口中讲解用于AXI4-Lite 传输事务的信号。
使用 AXI VIP 作为 AXI4-Lite 主接口(教程)
1. 下载设计文件(本文附件)
2. 打开 Vivado...
作者:范龙飞 ,文章来源:MYMINIEYE微信公众号
一.LDPC编码介绍
1.为什么要用LDPC编码,LDPC编码相对其他编码的好处
LDPC(低密度奇偶检验)码是由稀疏校验矩阵定义的线性分组码,具有能够逼近香农极限的优良特性,其描述简单,具有较大的灵活性和较低的差错误码特性,可实现并行操作,译码复杂度低,适合硬件实现,吞吐量大,极具高速译码的潜力,...
本文转载自: PYNQ开源社区微信公众号
本项目介绍了Sense HAT在PYNQ上的使用。Sense HAT是是为树莓派设计的集成外设板,包含了惯性传感器、湿度温度传感器、气压传感器和一个8×8LED矩阵。这些外设通过I2C总线利用不同设备地址来访问。本项目分成三个部分介绍:LED矩阵显示字符、温度气压传感器读取和惯性传感器数据读取。
快速开始...
文章转载自:XILINX技术社区微信公众号
赛灵思 AXI Verification IP (AXI VIP) 是支持用户对 AXI4 和 AXI4-Lite 进行仿真的 IP。它还可作为 AXI Protocol Checker 来使用。
此 IP 只是仿真 IP,将不进行综合(它将在 Pass-through 配置中被连线所替代)。
AXI VIP IP 核用途如下...
周丽娜(Ally Zhou)女士拥有十多年 FPGA 设计、EDA 工具和多年客户支持的经验。Ally 曾先后在同济大学,芬兰米凯利理工学院和复旦大学求学,获得工学硕士学位。加入赛灵思公司之前,曾在 Synopsys 工作,主要负责 FPGA 综合和 ASIC 原型验证方案的支持。
赛灵思技术市场专家周丽娜(Ally Zhou)
在本篇文章中,我们将介绍如何使用 Vitis 在...
作者:林志文,林志贤,郭太良,林珊玲;来源:2020年电子技术应用第2期
摘要: 针对卷积神经网络(CNN)在通用CPU以及GPU平台上推断速度慢、功耗大的问题,采用FPGA平台设计了并行化的卷积神经网络推断系统。通过运算资源重用、并行处理数据和流水线设计,并利用全连接层的稀疏性设计稀疏矩阵乘法器,大大提高运算速度,减少资源的使用。系统测试使用ORL人脸数据库,实验结果表明,在100...
注:案例来源于PYNQ社区,如果你有好玩的基于PYNQ的项目,欢迎投稿分享:pynq_china@xilinx.com
PYNQ Overlay 发布工具 PyPI
作为Python的官方第三方软件存储库PyPI,目前已将超过222,000个项目收纳囊中,PYNQ作为一款将Python开发语言与FPGA硬件设计完美衔接的产品,自然也是迫不及待地入住PyPI。...
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号
引言
神经网络中涉及到大量的张量运算,比如卷积,矩阵乘法,向量点乘,求和等。神经网络加速器就是针对张量运算来设计的。一个神经网络加速器通常都包含一个张量计算阵列,以及数据收发控制,共同来完成诸如矩阵乘法,卷积等计算任务。运算灵活多变的特性和硬件的固定架构产生了矛盾,这个矛盾造成了利用硬件执行计算任务的算法多变性。...
作者:默宸,来源:FPGA技术联盟微信公众号
01. Vivado的两种工作模式
Vivado设计有工程和非工程两种模式:
1. 工程模式:
工程模式是使用Vivado Design Suite自动管理设计源文件、设计配置和结果,使用图形化Vivado集成设计环境(IDE)交互式处理设计。工程模式下,既可以通过图像界面下操作(GUI操作,鼠标操作),...
什么是机器视觉
机器视觉是一项综合技术,包括图像处理、机械工程技术、控制、电光源照明、光学成像、传感器、模拟与数字视频技术、计算机软硬件技术(图像增强和分析算法、图像卡、I/O卡等)。一个典型的机器视觉应用系统包括图像捕捉、光源系统、图像数字化模块、数字图像处理模块、智能判断决策模块和机械控制执行模块。
机器视觉在工业市场的应用
用机器视觉技术取代人工,...
作者:默宸 FPGA技术联盟
Zynq的开发四种方式
ZYNQ中包含了两个部分,双核的arm和FPGA。根据XILINX提供的手册,arm模块被称为PS,而FPGA模块被称为PL。
ZYNQ内部包含PS和PL两部分,ZYNQ开发有一下四种方式:
A:纯PS开发
PS中包含2个ARM Cortex-9的内核,一些基本的外设扩展口以及Memory接口。...
文章来源:MYMINIEYE
当调制方式为16-AQM,64-QAM和256-QAM时需要做位交织,交织的目的是将突发的错误分散开来,把一个较长的突发差错离散成随机差错,再用随机差错的编码(FEC)等信道编码技术消除随机差错,提高通信的可靠性。交织的越深,抗突发错误的能力也越强。位交织的本质是做矩阵的转置运算,需要转置的数据包括信息位和校验位,在交织的过程中分两步完成,第一步为检验位交织,...
作者:鸟恋旧林XD 来源:FPGA开源工作室
浮点数量化为定点
1. 这篇博客将要讨论什么?
说来惭愧,作为计算机科班出身的人,计算机基础知识掌握并不扎实,这里的基础指的是计算机体系结构中的内容,诸如数据的表示和处理,如float的表示和运算等。看《CSAPP》方知人家老外把这个东西当成重中之重,大量详细的原理介绍,并配套大量例题。当初本科学的时候,...
文章来源:网络交换FPGA
最近有朋友问,公众号为什么起名叫网络交换FPGA?今天这篇文章就来回答一下。我们将从网络交换的历史讲起,也正如机器学习也赶上了ASIC工艺发展才引起革命性的变化一样。技术发展的历程中,总有那些看似不相关的技术结合起来,结果导致翻天覆地的变化。我觉得网络交换与FPGA就是属于这样的两种技术,必将会给整个行业带来革命性的变化。...
作者:Florent Werbrouck,Xilinx工程师
注意:本文来源于赛灵思中文社区论坛,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途
引言
近来,几乎每个赛灵思 IP 都使用 AXI 接口。Zynq®、Zynq MP、MicroBlaze™ 和全新的 Versal™...
作者:OpenSLee 来源:FPGA开源工作室微信公众号
1 Floating-Point IP支持的运算操作
1)Multiply—乘法
2) Add/subtract—加法和减法
3)Accumulator—累加
4) Fused multiply-add--融合乘加
5) Divide—除法
6)Square-root—平方根
7)...
作者:范龙飞 ,来源:MYMINIEYE微信公众号
一、扰码的作用
对数字信号的比特进行随机处理,减少连0和连1的出现,从而减少码间干扰和抖动,方便接收端的时钟提取;同时又扩展了基带信号频谱,起到加密的效果。为了保证在任何情况下进入传输信道的数据码流中“0”与“1”的概率都能基本相等,传输系统会用一个伪随机序列对输入的传送码流进行扰乱处理,将二进制数字信息做“随机化”处理。
二、...
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号
Pblock是对一些逻辑实行物理上的约束,即把一些逻辑绑定到FPGA上固定的资源区域内。它是优化走线,改善时序的一种很重要方法。Pblock的大小限定了该逻辑单元使用的FPGA资源,pblock的位置限定了逻辑单元在FPGA中的位置。通常一个pblock大小不要超过总设计资源的20%。如果pblock占比资源很大,...
作者:深维科技 樊平
编者按:图片逐渐成为互联网主要的内容构成,相应的图片处理需求也在高速成长,移动应用与用户生产内容(UGC)正在驱动数据中心图像处理的业务负载快速增加。本文深维科技联合创始人兼CEO樊平详细剖析了图片加速的必要性、当前实际的图片解决方案与部署方式以及如何通过FPGA+CPU异构计算的方案维护用户体验与服务成本新平衡。
1. 为什么需要图片加速?
目前,...
作者:安平博,Xilinx高级工程师;来源:AI加速微信公众号
前言
做深度学习加速器已经两年了,从RTL设计到仿真验证,以及相应的去了解了Linux驱动,深度学习压缩方法等等。今天来捋一捋AI加速器都涉及到哪些领域,需要哪些方面的知识。可以用于AI加速器的主要有三种不同架构的器件种类:CPU,GPU,AI芯片/FPGA。CPU是一个通用架构芯片,其计算能力和数据带宽相对受到限制,...
作者:Mill,来源:MYMINIEYE微信公众号
关键内容提要:
(1) FPGA IO命名方式;
(2) FPGA的上电时序
今天想和大家一起聊聊FPGA的IO。
先说说我当年入门的经历吧。国内的大学有FPGA开发条件的实验室并不太多,当年大学的那帮同学有的做ARM,有的做linux,很少有人做FPGA,...
作者:Mill,来源:MYMINIEYE微信公众号
FFT
一.Xilinx FFT IP介绍
1.总体特性
• FFT IP核支持复数的正逆傅里叶变换,可以实时配置变换的长度
• 变换的长度N=2m,m=3-16,即支持的点数范围为8-65536
• 数据和相位因子宽度都为8-34
• 支持三种算法类型...
作者:Nutan Rajaram Ghatge,Xilinx工程师
注意:本文来源于赛灵思中文社区论坛,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途
从 2019.2 版开始,赛灵思 SDK 开发环境已统一整合到全功能一体化的 Vitis™ 统一软件平台中。
尊敬的 SDK 用户,...
由于XDC约束是按顺序应用的,并且基于明确的优先级规则进行优先级排序,因此必须仔细检查约束的顺序。
如果多个物理约束发生冲突,则最新约束将获胜。 例如,如果通过多个XDC文件为I / O端口分配了不同的位置(LOC),则分配给该端口的最新位置优先。
Vivado IDE可全面了解您的设计。 要逐步验证您的约束:
1.运行相应的报告命令。
2.查看Tcl控制台或“消息”窗口中的消息...
具体细节的展示图如下:
通过上图可知,在OpenCL中提供的存储模型中,有如下几种Memory类型。
Host Memory
Host Memory指的是连接在主板上的内存条,仅供host进行数据读取。
Off-Chip Global memory
Off-Chip Global memory 指的是在FPGA板卡上通过硬件与FPGA芯片连接的内存条...
1、Zynq的开发四种方式
纯PL开发,纯PS开发(helloworld),PS+PL(无操作系统,跑裸跑程序),PS+PL(跑操作系统)。
1.1 纯PL开发
这个和一般的xilinx的FPGA没有很大的区别。
1.2 纯PS开发
典型的就是helloworld工程, 一种是传统的arm的方式。还一种就是xilinx方法,这个是生成一个elf文件,...
作者:猫叔
首先,什么是XPM?可能很多人没听过也没用过,它的全称是Xilinx Parameterized Macros,也就是Xilinx的参数化的宏,跟原语的例化和使用方式一样。可以在Vivado中的Tools- > Language Templates中查看都有哪些XPM可以例化。
从上图中可以看出,目前可以例化的XPM主要有三种:跨时钟域处理、...
作者:OpenSLee
1、float IP的创建
搜索float双击Floating-point
1 > Operation Selection 我们这里选择浮点数的加减法验证。
2 > Precision of Inputs 我们选择单晶浮点数(Single),指数位宽Exponent Width 8bit 尾数位宽24 bit...
作者:猫叔
FPGA中乘法器是很稀缺的资源,但也是我们做算法必不可少的资源。7系列及之前的FPGA都是25x18的DSP,UltraScale中是27x18,我们可以通过调IP Core的方式或者原语的方式来进行乘法操作。在里面可以设置有符号还是无符号数乘法。
当然,我们也可以直接使用*符合来进行乘法,对于无符号的乘法
reg [7:0] ubyte_a;
reg...
作者:OpenSLee
1、Floating-Point IP支持的运算操作
1)Multiply—乘法
2) Add/subtract—加法和减法
3)Accumulator—累加
4) Fused multiply-add--融合乘加
5) Divide—除法
6)Square-root—平方根
7) Comparison—比较
8)...
注意:本文所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途。
BY 卢昊
论坛明日之星成员 - 卢昊
曾就职于上海贝尔(阿尔卡特朗讯),任FPGA工程师。目前从事FPGA加速计算方面的工作。有多年使用FPGA开发和应用的经历,熟悉Xilinx...
金融科技英译为 Fintech, 是 Financial Technology 的缩写,指通过利用各类科技手段创新传统金融行业所提供的产品和服务,提升效率并有效降低运营成本。近年来,众多金融技术公司相继推出基于 FPGA 的产品,在模型计算、高频交易等领域大放异彩。
FPGA 是如何为金融行业服务的?解决了哪些金融问题?想要回答这两个问题,就不得不从时延谈起。
FPGA...
作者:猫叔
时序约束辅助工具
上面我们讲的都是xdc文件的方式进行时序约束,Vivado中还提供了两种图形界面的方式,帮我们进行时序约束:时序约束编辑器(Edit Timing Constraints )和时序约束向导(Constraints Wizard)。两者都可以在综合或实现后的Design中打开。
1. 时序约束编辑器...
wire 和reg是Verilog程序里的常见的两种变量类型,他们都是构成verilog程序逻辑最基本的元素。正确掌握两者的使用方法是写好verilog程序的前提。但同时,因为他们在大多数编程语言中不存在,很多新接触verilog语言的人并不能很清楚的区别两种变量的不同之处。这里简单对他们做一个比较,方便在编程时区别使用。
功能和状态
Wire主要起信号间连接作用,...
本文主要介绍数字-模拟编码技术。之前的文章《硬件接口协议之“通信线路物理层编码技术介绍”》介绍了数字-模拟编码技术主要有以下几种:
幅移键控编码(ASK,Amplitude shift keying)
频移键控编码(FSK,Frequency shift keying)
相移键控编码(PSK,Phase shift keying)
正交调幅编码(QAM,...
时钟树不仅可以做到高扇出,还可以做到让时钟信号到达各个触发器的时刻尽可能一致,也即保证时钟信号到达时钟域内不同触发器的时间差最小。
这篇博文进一步说时钟树的问题,我们知道了时钟树的这么强大的功能,好处这么多,那么怎么使用时钟树,我什么时候使用到了时钟树呢?
一、什么情况下,时钟应该“上树”?
如果一个时钟信号是为FPGA内部的一些逻辑资源提供“脉搏”的,那么强烈建议该时钟“上树...
作者:lee
浮点数,是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。
1 、浮点数基础知识
浮点数由四部分构成:符号位(Sign Bit)、尾数(Mantissa)、基数(Radix)和指数(...
本文主要介绍数字-数字编码中的双极性码。双极性码是使用两个以上的电平值进行编码,无线路信号代表一种信号逻辑状态,正电平和负电平交替代表另一种状态。
MLT-3
MLT-3即Multi-Level Transmit-3,多电平传输码,MLT-3码跟NRZI码有点类似,其特点都是逢“1”跳变,逢“0”保持不变,并且编码后不改变信号速率。与NRZI码不同的是,MLT-3是双极性码,...
作者:王欢,来源: FPGA技术联盟
本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码书写以及代码的讲解,可作为读者参考。
第一章:模块书写
Verilog HDL 语言的基本语法与...
BY Ajay Petley
注意:本文所有内容皆来源于Xilinx工程师,如需转载,请写明出处作者及赛灵思论坛链接并发邮件至cncrc@xilinx.com,未经Xilinx及著作权人许可,禁止用作商业用途。
多重驱动定义:
具有两个或更多个源的网络或信号被称为多重驱动场景。
为何需要解决多重驱动场景?
多重驱动的存在属于设计错误,最终值可能难以确定。...
(一)AXI接口
如何设计高效的 PL 和 PS 数据交互通路是 ZYNQ 芯片设计的重中之重。AXI 全称 Advanced eXtensible Interface,是 Xilinx 从 6 系列的 FPGA 开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式。在 ZYNQ 中继续使用,版本是 AXI4,所以我们经常会看到 AXI4.0, ZYNQ 内部设备都有 AXI...
极性码采用两个电压值编码:正电平代表一种信号逻辑状态,负电平代表另一种状态。极性码包括:归零码、不归零码、双相位码、块编码等。下面就进行详细介绍。
RZ Encoding
归零编码使用两组电平值:正-零,负-零。
信号变化不是发生在比特之间而是发生在每个比特内。在每个比特间隙的中段,信号将归零。比特“1”实际上是用正电平跳变到零表示,比特“0”则用负电平跳变到零表示,...
初玩zynq发现,在zynq中可以运行FreeRTOS,果断试了下;测试了几个例子,一切正常,但是在使用空闲钩子函数时导致无法正常执行。
要使用空闲钩子函数必须将FreeRTOSConfig.h文件中的configUSE_IDLE_HOOK定义为1,当然编译前已手动将其定义改为1,但是空闲钩子函数仍然没有运行。
查看源文件没发现错误,...
作者:猫叔
延迟约束
对于延迟约束,相信很多同学是不怎么用的,主要可能就是不熟悉这个约束,也有的是嫌麻烦,因为有时还要计算PCB上的走线延迟导致的时间差。而且不加延迟约束,Vivado也只是在Timing Report中提示warning,并不会导致时序错误,这也会让很多同学误以为这个约束可有可无。
但其实这种想法是不对的,比如在很多ADC的设计中,...
来源:硬件助手
本文主要介绍各种通信接口物理层的编码技术,包括数字-数字接口编码方式、数字-模拟接口编码方式、模拟-数字接口编码方式、模拟-模拟接口编码方式。
Digital to Digital Encoding
数字-数字接口的编码方式主要就是对二进制比特流的编码,常见的可以归为三大类:
单极性码(单电平):非零电平代表一种信号逻辑状态,零电平代表另一种;...
作者:猫叔
FPGA的调试是个很蛋疼的事,即便Vivado已经比ISE好用了很多,但调试起来依旧蛋疼。即便是同一个程序,FPGA每次重新综合、实现后结果都多多少少会有所不同。而且加入到ila中的数据会占用RAM资源,影响布局布线的结果。
尤其是在时序紧张的情况下,ila占的资源越多,布线的难度就会越大。当时序不收敛时,就可能会导致一个问题,我们从ila中看到的信号可能不是真实的...
作者:胡永怀,来源: FPGA技术联盟
Q:
什么是上拉/下拉电阻?有什么作用?又该怎么用?
A:
上拉电阻:将一个不确定的信号通过电阻连接到高电平(VCC),使该信号初始电平为高电平。
下拉电阻:将一个不确定的信号通过电阻连接到低电平(GND),使该信号的初始电平为低电平。
上拉下拉电阻如何接线?
上拉电阻示例...