FPGA
文章平均质量分 84
Hyunnnnn
自己选择的路,跪着也要走完,相信自己,世界上那么多人成功,为什么不是自己呢!!
展开
-
FPGA中组合逻辑和时序逻辑的区别
数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。1.组合逻辑概念组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关,不涉及对信号跳变沿的处理,无存储电路,也没有反馈电路。通常可以通过真值表的形式表达出来。2.组合逻辑的Verilog HDL 描述根据组合逻辑的原创 2016-12-02 16:36:53 · 22675 阅读 · 2 评论 -
大家都应该懂的FPGA设计常识
Table of Contents代码风格1. 多使用 开发工具自带(vivado, ISE)自带的代码模板2. 使用流水结构来降低逻辑层数 3. 在模块边界上使用寄存器而非组合逻辑 3. 采用适当的 RAM 和 DSP 的实现方式(是否选用硬核)4. 在综合后或是逻辑优化(opt_design)后的时序报告上分析代码优化的方向5. 尽量避免使用异步复位时序约束...原创 2018-07-16 21:49:59 · 2192 阅读 · 0 评论 -
Verilog开源项目
讲到开源,必然要准守开源的协议。而且必须要讲究原则:此处引用阮一峰的博客的一张关于开源许可证的图片作为参考,具体细节以协议条款为准。CaptionRISC-V相关RISC-V是开源指令集(ISA)。基于RISC-V的开源内核和SoC列表SiFive Freedom E300/U500 Platform包含E300和U500的RTL代码,cpu内核基于Rocket,增加了So...转载 2019-01-24 11:07:10 · 6768 阅读 · 1 评论 -
如何解决FPGA 高扇出( high fanout)问题
支持原著,转自:https://blog.csdn.net/shshine/article/details/52451997Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,受到整体结构设计的需要或者无法修改代码的限制,则需要通过其它优化手段解决...转载 2019-01-21 16:08:47 · 9894 阅读 · 0 评论 -
Vivado使用误区与进阶——XDC约束技巧之I/O篇 (上)
来自:http://xilinx.eetrend.com/article/8441Vivado使用误区与进阶——XDC约束技巧之I/O篇 (上)《XDC约束技巧之时钟篇》中曾对I/O约束做过简要概括,相比较而言,XDC中的I/O约束虽然形式简单,但整体思路和约束方法却与UCF大相径庭。加之F...转载 2019-04-03 15:39:04 · 729 阅读 · 0 评论 -
Vivado使用误区与进阶——XDC约束技巧之I/O篇 (下)
来自:http://xilinx.eetrend.com/article/8448Vivado使用误区与进阶——XDC约束技巧之I/O篇 (下) 《XDC约束技巧之时钟篇》中曾对I/O约束做过简要概括,相比较而言,XDC中的I/O约束虽然形式简单,但整体思路和约束方法却与UCF大相...转载 2019-04-03 15:40:20 · 567 阅读 · 0 评论 -
XDC约束技巧——CDC篇
来自:http://xilinx.eetrend.com/article/7735上一篇《XDC约束技巧之时钟篇》介绍了XDC的优势以及基本语法,详细说明了如何根据时钟结构和设计要求来创建合适的时钟约束。我们知道XDC与UCF的根本区别之一就是对跨时钟域路径(CDC)的缺省认识不同,那么碰到...转载 2019-04-03 15:41:50 · 537 阅读 · 0 评论 -
XDC约束技巧——时钟篇
来自:http://xilinx.eetrend.com/article/7734XDC约束技巧之时钟篇Xilinx©的新一代设计套件 Vivado 中引入了全新的约束文件 XDC,在很多规则和技巧上都跟上一代产品 ISE 中支持的 UCF 大不相同,给使用者带来许多额外挑战。Xilinx ...转载 2019-04-03 15:43:54 · 855 阅读 · 0 评论 -
FPGA开发中SRL16E的使用
FPGA开发过程中是免不了要用到移位寄存器的,传统的移位寄存器是通过寄存器(或者叫触发器FF)实现的,占用的是FPGA内部的逻辑资源,当要移位的次数过多时,自然会耗费更多FF资源。但是如果用LUT(lookup table)查找表实现的话就很轻松了,LUT是通过提前存储下一张真值表来实现逻辑运算的,所以非常节省逻辑资源。常用的移位寄存器SRL种类很多,这里以16bit的SRL16E为例,说一...原创 2019-05-06 13:46:34 · 1939 阅读 · 0 评论 -
SoC Make Process
SoC Make ProcessKeywords:High Quality, Milestone, DB, Checklist,Plan,FlowPurpose定义开发SoC的流程,并且为SoC设计提供指导Scope为所有参与SoC定义和开发的人准备的所有SoC(ASIC 和 FPGA)开发项目都将会使用这个过程PrinciplesSoC开发流程模型是以So...原创 2019-05-06 13:56:40 · 465 阅读 · 0 评论 -
FPGA实现的实时流水线连通域标记算法
本文要介绍的是两年前我自己琢磨出来的一种用FPGA实现的二值图像连通域标记算法。这个算法的特点是它是一个基于逐行扫描的流水线算法,也就是说这个算法只需要缓存若干行的图像数据,并在这若干行的固定延时内就给出结果,实时性很高,计算延时就只有这若干行,FPGA也无需外界SRAM或DDR来缓存图像数据。算法也不会因为图像中的连通区域数目多了就会变慢,因为这是流水线算法,就没有处理目标多了还会变慢这个概念。转载 2017-01-23 14:22:45 · 8320 阅读 · 3 评论 -
FPGA浮点小数与定点小数的换算及应用
定点小数运算有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。所谓定点小数就是把小数点的位置固定,我们要用整数来表示小数。先以10进制为例。如果我们能够计算12+34=46的话,当然也就能够计算1.2+3.4 或者 0.12+0.34了。所以定点小数的加减法和整数的相同,并且和小数点的位置无关。乘法就不同了。 12*34=408,而1.2*3.原创 2016-12-05 15:15:19 · 16121 阅读 · 8 评论 -
[IP实例]vivado VIO (virtual input output)虚拟IO使用
一般情况下ILA和VIO都是用在chipscope上使用,VIO可以作为在chipscope时模拟IO。譬如:在使用chipscope时需要使用按键出发,但是没有设计按键或者板子不再身边,所以需要模拟按键输入还有其他信号的输出。参数配置,配置输入探针数量和输出探针数量。分别可以设置0-256个。probe in ports参数配置,配置数据探针位宽原创 2016-12-16 10:00:23 · 33884 阅读 · 1 评论 -
Xilinx FPGA中全局时钟资源的使用方法
IBUFDS、IBUFGDS和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。1. IBUFG 即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUFG单元,否则在布局布线时会报错。IBUFG支持AGP,CTT,GTL,GTLP,HSTL,LVCMOS,LVDCI,LVPECL,LVTTL,PCI,PCIX,,SSTL等多种...原创 2016-12-21 18:25:35 · 14078 阅读 · 9 评论 -
FPGA规范及该注意的地方
0.模块级的注释每个模块开始要注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。/* ======================== Filename ﹕ RX_MUX.vAuthor ﹕Description ﹕Called by ﹕Top moduleRevision History ﹕Revision 1.0Email ﹕ liexuan.xu@robsense.c原创 2016-12-21 19:33:34 · 1195 阅读 · 0 评论 -
Verilog HDL 语言书写规范
0. verilog HDL 命名规则 类型 命名方式 实例 顶层文件 对象+功能+top video_online_top.v 逻辑控制文件 对象+ctr ddr_ctr.v 驱动程序 对象+功能+dri lcd+dri.v 参数文件 对象+para lcd+para.v 模块接口 特征域+文件名+u mcb_read; c3+原创 2016-12-21 19:35:28 · 3123 阅读 · 0 评论 -
[1]时钟无缝切换
时钟切换分成两种方式,普通切换和去毛刺无缝切换。普通切换,就是不关心切出的时钟是否存在毛刺,这种方式电路成本小。如果时钟切换时,使用此时钟的模块电路处于非工作状态,或者模块内电路被全局复位信号reset住的,即使切出毛刺也不会导致DFF误触发,这样的模块可以选择用此种切换方式。写法很简单assign clk_o = sel_clkb ? clkb : clka ,当sel_clkb原创 2017-01-16 17:00:22 · 6898 阅读 · 1 评论 -
[2]Vivado中异步FIFO的实现和使用
FIFO应用:1、在千兆以太网数据写入,往DDR3里面写数据时候2、AD采样时钟和内部时钟不同时,需要FIFO进行转换3、同频异相时也需要用FIFO进行转换 Vivado中FIFO generator的配置方法1、2、standard FIFOread mode读取时会延迟一个周期时钟,first word fall throughr原创 2017-01-17 10:34:17 · 17263 阅读 · 4 评论 -
[3]FPGA双端口RAM操作(乒乓操作)
如果需要重读,需要用ram,如果不需要重读的话就用FIFO双buffer不太好实现错误重传机制!!!!双buffer作用:1、跨时钟域2、完成数据位宽转换3、完成数据缓冲双buffer缓冲操作示意图,在操作工程中存在两个clock1 和clock2,但是输入输出的传输带宽不能相差太大,会出现数据覆盖的现象1、如上图所示,输入端读数据比写数据速度要块,这样原创 2017-01-17 17:21:43 · 7134 阅读 · 0 评论 -
VHDL和Verilog的区别
这两种语言都是用于数字电子系统设计的硬件描述语言,而且都已经是 IEEE 的标准。 VHDL 1987 年成为标准,而 Verilog 是 1995 年才成为标准的。这个是因为 VHDL 是美国军方组织开发的,而 Verilog 是一个公司的私有财产转化而来的。为什么 Verilog 能成为 IEEE 标准呢?它一定有其优越性才行,所以说 Verilog 有更强的生命力。 这两转载 2017-01-22 14:14:31 · 23474 阅读 · 1 评论 -
Xilinx FPGA功耗评估(笔记)
Xilinx Power EstimatorUG440 XPE(Xilinx Power Estimator)功耗包括静态功耗和动态功耗动态功耗的动态部分(易操作)动态功耗的静态部分静态功耗,降低功耗,电压和功耗关系P(staic) = V^3P(dynamic) = V^2静态功耗是三极管漏电流静态功耗跟温度有关系芯片规模下,静态功耗小...原创 2019-05-06 13:59:42 · 11694 阅读 · 1 评论