原创 by DeeZeng FPGA 的 CLK pin 是否可以用作普通输入 ,输出或双向IO 使用?    这些专用Clock input pin 是否可以当作 inout用,需要看FPGA是否支持. 像cyclone V的CLK in 同时支持 作为普通的 inout 而有些FPGA则不支持   那我们可以如何确认是否支持呢? 可以查看 FPGA 的pinout Excel 数据表 https://www.intel.com/content/www/us/en/programmable/s…
主要参考了https://www.eefocus.com/liu1teng/blog/12-02/237897_4533d.html .Xilinx UG471.UG472以及Xilinx Forum上的一些问答,在此一并表示感谢. ------------------------------------------------------------------------------------------------------ 本文主要用来随意记录一下最近在为手头的FPGA项目做约束文件…
小梅哥编写,未经许可严禁用于任何商业用途 近期,一直在调试使用Verilog编写的以太网发送摄像头数据到电脑的工程(以下简称以太网图传).该工程基于今年设计的一款FPGA教学板AC620.AC620上有一个百兆以太网接口和一个通用CMOS摄像头接口,因此非常适合实现以太网图传功能.CMOS摄像头接口没有什么好说的,就是IO而已,这里先重点介绍下以太网接口. 以太网接口使用了一片10/100M自适应以太网收发器(PHY),型号为RTL8201.该芯片和FPGA采用标准的MII接口进行连接.什么是M…
1.什么是xilinx fpga全局时钟资源 时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动.延迟.偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能.xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源.xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小.全局时钟资源…
目录 Intel FPGA 的Clock Region概念 Intel 不同系列FPGA 的Clock Region 1. Clock Region Assignments in Intel Stratix 10 Devices 2. Clock Region Assignments in Intel Agilex Devices 3. Clock Region Assignments in Intel Cyclone V SX Devices 3.1 Spine Clock Region 3.…
1.首先了解Intel FPGA SDK for OpenCL实现OpenCL的设计组件,包括: kernels, global memory interconnect, local memory, loops 以及channels (1) Kernels Loops一般是Kernel优化的重点,尤其是nested loops. OpenCL系统中每个kernel是通过一系列block表示的.Block主要由三部分:输入或循环输入节点,一组指令以及一个分支节点.若block中没有分支则没有输入与…
对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路基于时钟触发沿设计,对时钟的周期.占空比.延时和抖动提出了更高的要求.为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟. FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元…
时钟架构总览 7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求.Clock Management Tiles(CMT)提供了时钟合成(Clock frequency synthesis),倾斜矫正(deskew),过滤抖动(jitter filtering)功能.非时钟资源,例如本地布线,不建议使用在时钟设计中. 全局时钟树(Global clock tree)可以驱动device中的所有同步原件(synchronous eleme…
一段时间以来,MathWorks一直主张使用Matlab和Simulink开发工具进行基于模型的设计,因为好的设计技术使您能够在更短的时间内开发更高质量的复杂软件.基于模块的设计采用了数学和可视化的方法,通过整个开发过程中使用的系统级建模(从初始设计到设计分析,仿真,自动代码生成.开发和验证)来开发复杂的控制和信号处理系统.这些模块是由框图,文本程序和其他图形元素组成的可执行规范.基于模型的设计鼓励对比其他设计方法更广泛的设计空间的快速探索,因为您可以在设计周期的早期更快地迭代设计.而且,由于这…
原创 by DeeZeng FPGA的时钟需要从专用的时钟管脚输入,那CLKn 作为Single-End时钟pin时是否能直接进 PLL呢? 通过查看对应FPGA型号的手册,得出以下结论 1. Cyclone V, Stratix V 的 CLKn 不能直接进PLL,需要走GCLK,RCLK之后才行 2. MAX10 ,Arria 10 的 PLL ,CLKn 可以直接进PLL. (Arria10 的 fPLL  CLKn不能直接走,但 XCVR bank 的一般是 差分时钟输入) 如下以部分F…
在第一个独立开发的FPGA项目中,使用了Altera平台的三速以太网IP,工作在100M模式下,外部输入的PHY时钟频率为25MHz. 由于在前期没有注意这个外部输入的时钟,导致最后不得不在板子上飞线,完成以太网的调试.这篇文章主要讲讲在做FPGA开发的时候,如何考虑时钟资源的评估!? 1 .使用的时钟频率和相位变化范围?是用DCM还是PLL? 2.设计中使用到的IP核需要多种时钟域吗?用到了多时钟,它们在期间上怎么选择和分布? FPGA上时钟资源有全局时钟资源,水平时钟资源.垂直时钟资源,区域…
1 引言    基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免.如果对跨时钟域带来的亚稳态.采样丢失.潜在逻辑错误等等一系列问题处理不当,将导致系统无法运行.本文总结出了几种同步策略来解决跨时钟域问题. 2 异步设计中的亚稳态    触发器是FPGA设计中最常用的基本器件.触发器工作过程中存在数据的建立(setup)和保持(hold)时间.对于使用上升沿触发的触…
文章主要是基于学习后的总结. 1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域.假如设计有两个输入时钟,如图1所示,一个时钟给接口1使用,另一给接口2使用,那么我们说这个设计中有两个时钟域. 2. 亚稳态 触发器的建立时间和保持时间在时钟上升沿左右定义了一个时间窗口,如果触发器的数据输入端口上数据在这个时间窗口内发生变化(或者数据更新),那么就会产生时序违规.存在这个时序违规是因为建立时间要求和保持时间要求被违反了,此时触发器内部…
FPGA跨时钟数据传输,是我们经常遇到的问题的,下面给出一种跨时钟握手操作的电路结构.先上图 先对与其他人的结构,这个结构最大的特点是使用 req 从低到高或者高到低的变化 来表示DIN数据有效并开始传输.并且同过判断 req与ack信号是否相等就可以判断传输是否完成.当req !=ack时表示正在传输,不可以发起新的传输操作.当req=ack时表示传输完成,可以开始新的传输过程. 并且这样的结构在req传输发生亚稳态时也可以有效的传输信号,可以适应任意时钟域之间的数据传输.仿真图如下 代码:…
概述 卷积是一种线性运算,其本质是滑动平均思想,广泛应用于图像滤波.而随着人工智能及深度学习的发展,卷积也在神经网络中发挥重要的作用,如卷积神经网络.本参考设计主要介绍如何基于INTEL 硬浮点的DSP Block实现32位单精度浮点的卷积运算,而针对定点及低精度的浮点运算,则需要对硬浮点DSP Block进行相应的替换即可. 原理分析 设:f(x), g(x)是两个可积函数,作积分: 随着x的不同取值,该积分定义了一个新的函数h(x),称为函数f(x)与g(x)的卷积,记为h(x)=f(x)*…
FPGA项目设计中,通常会遇到多时钟处理.即一个PLL输出多个时钟,根据条件选择合适的时钟用作系统时钟.方案一: 外部晶振时钟进入PLL,由PLL输出多个时钟,MUX根据外部条件选择时钟输出做为系统使用. 方案在时钟频率比较低的情况下是可行的.设计时注意MUX使用组合逻辑实现的,注意case语句中default选项必须有输出,否则会出现锁存器. 当输出时钟频率较高时,这种方案的时序约束就比较麻烦.除了使用creat_clock命令约束PLL输入时钟,使用creat_generate_clock约…
1 假设FPGA设计,包括不同的频率的时钟,它会发出涉及异步时钟. 我们需要一些方法来使时钟同步,从而保证FPGA可靠性设计. 2 在建立和保持时间所构成的有效时间窗体内,数据输入到触发器进行转换. 假设数据的到达时间不满足建立或者保持时间就会产生时序冲突. 此时触发器的输出就有可能停留在非逻辑0 或1 的范围内(这个状态叫做准稳态).从而造成逻辑错误. 3 假设异步时钟的相位不可以全然对齐就有可能引起2中所述的故障,并且这样的故障是不可再现的,也无法通过仿真发现. 4 解决方法,即时钟同步问题…
7系列FPGA中包含了多达24个CMT(时钟管理单元)(实际上V7常见只有20个),MMCM和PLL均为时钟综合器,对外部输入时钟.内部时钟进行处理,生成需要的低抖动时钟.PLL是MMCM的功能子集,也是基于MMCM的.其中MMCM包含的额外特性有: 输入多路复用器从IBUFG,BUFG,BUFR,BUFH,GTs(CLKIN only)或互连(不推荐)中选择其一 作为参考和反馈时钟,每个时钟输入都经过一个可编程的计数器(D).相位频率检测器(PFD)比较输入(参考)时钟和反馈时钟的上升边缘的相…
有些东西当你习以为常而不去深思熟虑的时候,致命的错误就会因此埋下!      FPGA开发中难免会遇到跨时钟域处理的问题,而对于单比特信号,我会不假思索的回答:打两拍不久解决了吗?但是事实时,这佯作的前提条件是:信号A从clk1进入到clk2的时候,clk1的是一个慢时钟,而clk2是一个快时钟.这样在快时钟域把信号A延迟两排,总能采样到稳定的数据. 但是如果是一个快时钟信号进入到一个慢时钟域中,上面的做法就不一定成立!单比特信号A在快时钟周期内2个clk保持稳定,但是快时钟域内2个clk的时钟…
上一次设计的动态扫描数码管显示电路模型如上,这是一个32位并行数据[31:0]disp_num选通输出并行数据[7:0]select和[7:0]段选的电路.因此需要输出16个信号 而在开发板上的电路与这个的接口不同,如下: 这个开发板设计的fpga只有有三个输出,接到2片级联的74HC595芯片上,并行输出段选和位选数据. 这三个输出分别为:DIO(串行数据),SCLK(与74HC595匹配的时钟信号),RCLK(锁存器使能信号) 因此,想要在这片开发板上控制数码管显示,就得修改代码. 在上一次…
一.典型方法 典型方法即双锁存器法,第一个锁存器可能出现亚稳态,但是第二个锁存器出现亚稳态的几率已经降到非常小,双锁存器虽然不能完全根除亚稳态的出现(事实上所有电路都无法根除,只能尽可能降低亚稳态的出现),但是基本能够在很大程度上减小这种几率.最后的一个D触发器和逻辑电路组成的是一个采沿(上升沿,修改一下就能采集下降沿)电路,即当第二个锁存器的输出中出现1个上升沿,那么最后的逻辑输出就会产生1个clock的高电平脉冲 二.结绳法 1.结绳法1:利用数据的边沿作时钟(例子中上升沿).(可以将脉冲无…
https://www.altera.com/documentation/swn1503506366945.html https://files.cnblogs.com/files/shaohef/opae-driver-architecture.pdf CCIP https://github.com/yongfengdu/fpga k8s support # cat enablevf.sh # SRIOV enable # https://opae.github.io/docs/drv_arc…
构建 Nano Datacenter 的两大平台 在测试环境或者家庭实验室(Home lab)中使用 VMware vSphere 作为虚拟化平台非常普遍,笔者更倾向使用 Nano Datacenter 这个词汇来指代这种环境.构建 Nano Datacenter 通常有两大平台即:Apple Mac mini 和 Intel NUC. 图:NUC 8 对比 Mac mini 2018(图片来源网络) 我们在这里了解一下当前 VMware ESXi 7.0 Update 2 对两种平台的支持情况…
2021.08.31 更新:集成 "vmkusb-nic-fling" 和 "nvme-community",现在只有一个镜像. 2021.06.16 更新:集成 community-networking-driver v1.2 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u2-nuc/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www.sysin.org 更新说明 集成 May…
首先是看到FPGA在配置的时候有三种不同的电VCCINT .VCCIO VCCA,于是就查了下有什么不同: FPGA一般会有许多引脚,那它们都有什么用呢? VCCINT为施加于 FPGA 内核逻辑的电压,典型的电压为1.2 V.1.5 V.1.8 V.2.5 V和3V,电流可达12A(?) 专用引脚和用户引脚 FPGA引脚分为两类:专用引脚和用户自定义引脚 专用引脚大概占FPGA引脚数的20%~30%,也就是说其硬件编码都是为了实现专用功能而编写的. 而专用引脚又分为以下3个子类: 电源引脚:接…
1.   时钟资源概述 时钟设施提供了一系列的低电容.低抖动的互联线,这些互联线非常适合于传输高频信号.最大量减小时钟抖动.这些连线资源可以和DCM.PLL等实现连接. 每一种Spartan-6芯片提供16个高速.低抖动的全局时钟资源用于优化性能:这些资源可以背Xilinx工具自动地使用,即使时钟频率相对较低,使用时钟资源来消除潜在的时序冒险仍然是十分重要的, 每一个Spartan-6 FPGA提供40个超高速.低抖动的IO局部时钟资源(32个BUFIO2S和8个BUFPLL)这些IO局部时钟资…
1.   Spartan-6系列封装概述 Spartan-6系列具有低成本.省空间的封装形式,能使用户引脚密度最大化.所有Spartan-6 LX器件之间的引脚分配是兼容的,所有Spartan-6 LXT器件之间的引脚分配是兼容的,但是Spartan-6 LX和Spartan-6 LXT器件之间的引脚分配是不兼容的. 表格 1Spartan-6系列FPGA封装 2.   Spartan-6系列引脚分配及功能详述 Spartan-6系列有自己的专用引脚,这些引脚是不能作为Select IO使用的,…
1 系统方案 对于设计一款硬件平台,首先要确定整体框架,确定各个模块所需要的芯片以及电压分配情况.图2.6是笔者曾经设计的硬件平台系统. 图2.6系统框图 对于选定一个系统方案之后,接下来做的要先去查看所选用的芯片的数据手册.那么查看手册一般有几点必须要注意,(1)FPGA的工作电压,确定若FPGA正常工作需要几档电压,好设计电源电路:(2)考虑功耗,这决定着需要多大功率的电源才能驱动芯片正常工作:(3)查看时钟网络的分布,这决定在进行逻辑设计时时钟分配的问题:(4)JTAG下载电路,这一部分是…
FPGA最全科普总结   FPGA 是可以先购买再设计的"万能"芯片.FPGA (Field Programmable Gate Array)现场可编程门阵列,是在硅片上预先设计实现的具有可编程特性的集成电路,它能够按照设计人员的需求配置为指定的电路结构,让客户不必依赖由芯片制造商设计和制造的 ASIC 芯片.广泛应用在原型验证.通信.汽车电子.工业控制.航空航天.数据中心等领域. Altera LUT4 架构 FPGA 硬件三大指标:制程.门级数及 SERDES 速率,配套 EDA…
FPGA芯片内部硬件介绍 FPGA(Filed programmable gate device):现场可编程逻辑器件 FPGA基于查找表加触发器的结构,采用SRAM工艺,也有采用flash或者反熔丝工艺:主要应用高速.高密度大的数字电路设计. FPGA由可编程输入/输出单元.基本可编程逻辑单元.嵌入式块RAM.丰富的布线资源(时钟/长线/短线).底层嵌入功能单元.内嵌专用的硬核等组成: 目前市场上应用比较广泛的FPGA芯片主要来自Altera与Xilinx.另外还有其它厂家的一些低端芯片(Ac…