作者:默宸,来源: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),使该信号的初始电平为低电平。
上拉下拉电阻如何接线?
上拉电阻示例...
作者:猫叔
多周期路径约束
多周期路径,我们一般按照以下4个步骤来约束:
1. 带有使能的数据
首先来看带有使能的数据,在本工程中的Tming Report中,也提示了同一个时钟域之间的几个路径建立时间不满足要求
其实这几个路径都是带有使能的路径,使能的周期为2倍的时钟周期,本来就应该在2个时钟周期内去判断时序收敛。因此,我们添加时序约束:...
本文主要介绍Zynq UltraScale+ MPSoC系列器件的PS-PL之间互连的AXI总线接口。
Zynq MPSoC系列器件的AXI总线结构如下图所示:
PS侧可以使用PS-PL AXI接口调用PL侧的硬件加速器等接口。这种互连属于高带宽、低延迟的连接方式。
Zynq MPSoC提供了12个PS-PL AXI端口,详细如下表所示:...
作者:Andreas Braun...
作者:猫叔
伪路径约束
在本章节的“2 约束主时钟”一节中,我们看到在不加时序约束时,Timing Report会提示很多的error,其中就有跨时钟域的error,我们可以直接在上面右键,然后设置两个时钟的伪路径。
这样会在xdc中自动生成如下约束:
set_false_path -from [get_clocks -of_objects [...
作者:默宸,来源: FPGA技术联盟
前言
很多FPGA初学者,都会怀疑学习FPGA有没有前途,发展前景怎么样,到底该怎样学习FPGA???各种迷茫,导致无法踏踏实实、全身心投入FPGA学习与开发工作中。下面请看看一个死磕FPGA 15年的大神给大家的肺腑之言,相信看完之后的你不在徘徊、不再犹豫、能够勇往直前。
作为一个从事了15年FPGA行业的大龄工程师。...
作者:猫叔
I/O约束
I/O约束是必须要用的约束,又包括管脚约束和延迟约束。
管脚约束
管脚约束就是指管脚分配,我们要指定管脚的PACKAGE_PIN和IOSTANDARD两个属性的值,前者指定了管脚的位置,后者指定了管脚对应的电平标准。
在vivado中,使用如下方式在xdc中对管脚进行约束。
set_property -dict {...
本文主要介绍Xilinx FPGA的GTx的参考时钟。下面就从参考时钟的模式、参考时钟的选择等方面进行介绍。
参考时钟的模式
参考时钟可以配置为输入模式也可以是输出模式,但是在运行期间不能切换。作为输入时,用于驱动Quad 或者channel PLLs,作为输出时,可以来自于同一个Quad中的任意一个channel。7系列的GTx只能作为输入,而Ultra和Ultra+...
作者:默宸,来源: FPGA技术联盟
跳频通信具有良好的抗干扰、抗多径衰落、抗截获等能力和同步迅速等特点,广泛应用于军事、交通、商业等各个领域。其关键技术主要有三点:跳频序列发生器、跳频频率合成器和跳频同步器。频率合成器是跳频系统的心脏,直接影响到跳频信号的稳定性和产生频率的准确度,在跳频频率合成器中,直接数字式频率合成器(Direct Digital Synthesizer :DDS)...
作者:王欢,来源: FPGA技术联盟
PCB布局技巧
1、滤波电容的放置要与电源接近,振荡器也是,在振荡器前端放电阻。
2、通过Design的Board Shape改变电路板大小。
3、画完电路板大小后,在Mechanical1层用10mil线画板框(部分工程师喜欢用禁止布线层即KeepOut-Layer层)P+L布线。
4、在布置PCB时,必须先要设置规则(很重要...
一、SPI协议
1、SPI协议概括
SPI(Serial Peripheral Interface)——串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟,AD转换器以及数字信号处理器和数字信号解码器之间。SPI是一种高速,全双工,同步的通信总线,在芯片上只占用四根线(CS、MOSI、MISO、SCK...
作者:猫叔
git有多好用我就不用多说了,可谓是程序员必备技能之一。对于一般的软件代码来说,只需把源文件进行git管理即可。但对于FPGA工程师来说,使用git多多少少有些蛋疼,主要有下面几个问题:
① 有bd文件的工程中,只把bd文件加入git是不行的;
② 很多公司都会有一些积累下来的hdl文件,放到某个文件夹中,所有的工程目录下都会有这个文件夹,...