FPGA-Verilog
文章平均质量分 90
记录FPGA-Verilog的细节,及数字电路的知识
alangaixiaoxiao
科研虐我千百遍,我待科研如初恋
展开
-
FPGA优化-max_fanout命令
vivado自带很多命令帮助编译器更好的实现设计者的想法,用得好会变成开发利器。比如,max_fanout命令,本身是用来约束扇出,减少布线拥塞的常用命令。然而很多读者向我反映,使用这个命令之后发现没有任何事情发生,完全没有任何效果。这里我就带大家理一理这个命令的使用方法。max_fanout起作用的条件1. 打算降低扇出的网络必须是reg驱动。因为降低扇出的原理就是reg驱动超过N(设置参数)条网络的时候,就复制一个同样的reg驱动其他N条网络,如果复制2个还不够就一直复制到足够为止,见图...转载 2020-07-06 17:00:01 · 6739 阅读 · 0 评论 -
Xilinx FIFO使用小结
FIFO的使用非常广泛,一般用于不同时钟域之间的数据传输,或者用于不同数据宽度之间的数据匹配。在实际的工程应用,可以根据需要自己写FIFO。不考虑资源的情况下,也可以使用Xilinx提供的IP核来完成。接口类型选择Native,SOC芯片上也可以根据需要选择AXI接口。选择存储器类型:可以用块RAM、分布式RAM,移位寄存器和内嵌FIFO来实现FIFO。这里主要是block RAM和distribute RAM之间的区别。简而言之,block RAM是FPGA中定制的ram资源,而distribute原创 2020-06-08 11:21:39 · 10103 阅读 · 0 评论 -
Xilinx FPGA错误、调试记录
1.Verilog语法错误FATAL_ERROR: Vivado Simulator kernel has discovered an exceptional condition from which it cannot recover. Process will terminate. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx原创 2020-06-05 14:39:08 · 2432 阅读 · 0 评论 -
Verilog 有符号数与无符号数运算
无符号数运算,左值位宽不够,发生截断的现象reg [3:0] a = 4'b1111;//15reg [3:0] b = 4'b0010;//2wire [3:0] c;wire [3:0] show_c; assign c = a + b;//1assign show_c = a + b;//12. 两个无符号数运算,赋值给一个有符号的数。可以看出,右侧先按照无符号数进行运算,取得的运算结果按照左侧的符号进行.原创 2020-05-19 14:35:27 · 7513 阅读 · 4 评论 -
FPGA LUT查找表原理和编程方式
一、查找表LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM。这样也可以解释我们在设计中为什么要采用流水线的实现方法因为当输入数据的位数远大于一个LUT的输入时,就需要用多个LUT级联来实现逻辑,那么级联产生的延时也就不可避免了,这样就会制约系统的运行频率。那么为了避免级联数过于多,就采用插入寄存器的方法来实现。举一个简单的例子,如果要实现一个6*1的mux可以用一个6输入的LUT或...转载 2020-05-15 16:29:30 · 9862 阅读 · 2 评论 -
Xilinx FPGA 将寄存器放入IOB中
xilinx FPGA的资源一般指IOB,CLB,BRAM,DCM,DSP五种资源。其中IOB就是input/output block,完成不同电气特性下对输入输出信号的的驱动和匹配要求。IOB的作用就是完成信号的采集和输出,引脚可以配置支持不同电气特性,上拉下拉或三态,差分或单端。有ologic,i...转载 2020-05-15 14:03:07 · 4065 阅读 · 1 评论 -
Xilinx FPGA全局时钟网络
在 Xilinx 系列 FPGA 产品中,全局时钟网络是一种全局布线资源,它可以保证时钟信号到达各个目标逻辑单元的时延基本相同。其时钟分配树结构如图1所示。IBUFDS、IBUFGDS和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。1. IBUFG 即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUFG单元,否则在布局布线时会报错。IBUFG支持AGP,CTT,GTL,GTLP,HSTL,LVCMOS,LVDCI,LVPECL,转载 2020-05-14 09:48:49 · 2906 阅读 · 0 评论 -
VDMA IP的GUI配置介绍【Xilinx-VDMA模块学习】
本文转载自:http://blog.csdn.net/vacajk/article/details/53908661使用的是Vivado 2015.4,XC7Z020, AXI Video Direct Memory Acess(6.2)。 在我的系统中,GUI配置图片如下:(其实和默认配置没有太大区别) ...转载 2018-11-15 17:49:12 · 1217 阅读 · 0 评论 -
FPGA基础知识3(xilinx CLB资源详解--slice、分布式RAM和Block ram)
 来源:http://www.eefocus.com/b3574027/blog/15-05/312609_2e5ad.html以下分析基于xilinx 7系列CLB是xilinx基本逻辑单元,每个CLB包含两个slices,每个slices由4个(A,B,C,D)6输入LUT和8个寄存器组成。 同一CLB...转载 2018-09-12 00:44:48 · 2839 阅读 · 0 评论 -
关于Verilog HDL的一些技巧、易错、易忘点 daily record
一个小细节always@(posedge I_clk) begin if(I_rst_p) cnt <= 2'd0; else if(cnt == 2'd2) cnt <= 2'd0; else cnt <= cnt + 1; endalway...原创 2018-08-23 11:09:02 · 300 阅读 · 0 评论 -
XAIU接口协议
ISO七层协议到TCP/IP四层协议的对应关系图: MAC即Media Access Control,即媒体访问控制子层协议.该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质.在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断...转载 2018-08-19 23:59:48 · 6732 阅读 · 1 评论 -
关于Verilog HDL的一些技巧、易错、易忘点
关键词: ·技巧篇: 组合逻辑输出类型选择; 语法上的变量交换; ·易忘篇: case/casex/casez语句; 循环语句; 数制和操作符; 数据类型; ·易错: 数据的截位与扩位 子模块例化中隐式线网赋值技巧篇: 1、组合逻辑输出:描述一个纯组合逻辑电...转载 2018-08-13 11:38:01 · 1670 阅读 · 0 评论 -
同步FIFO---Verilog实现
module fifo_sync#( parameter data_width = 16, parameter data_depth = 256, parameter addr_width = 8)( input ...原创 2018-08-05 16:32:47 · 3058 阅读 · 0 评论 -
异步FIFO---Verilog实现
本文大部分内容来自Clifford E. Cummings的《Simulation and Synthesis Techniques for Asynchronous&amp;amp;nbsp;FIFO Design》,经过自己的一些改变,理论部分为转载,代码自己完成。一、FIFO简介 FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,它与普通存储器的区别是没有外部...原创 2018-08-05 16:32:14 · 87085 阅读 · 72 评论 -
FPGA---奇偶分频
<前注>:设计中尽量还是要避免使用自己计数分频得到的时钟,去使用厂家自带的分频IP(如Vivado中的clock wizard)。 >> 偶数分频比较简单,这里略过。>> 对于不要求占空比为50%的奇数分频,也比较简单,直接模N计数,期间进行两次翻转就可以了。 >> 这里重点介绍要求占空比为50%的奇数...原创 2018-08-10 10:40:46 · 657 阅读 · 0 评论 -
FPGA重要的设计思想
FPGA重要设计思想 1.速度和面积互换原则。以面积换速度可以实现很高的数据吞吐率,其实串/并转换、就是一种以面积换速度的思想 2.乒乓操作。 乒乓操作的处理流程为:输入数据流通过“输入数据选择单元”将数据流等时分配到两个数据缓冲区,通过“输入数据选择单元”和“输出数据选择单元”按节拍、相互配合的切换,将...转载 2018-08-10 14:35:50 · 1280 阅读 · 0 评论 -
基于移位加法的乘法器---Verilog实现
无符号数的乘法,根据乘数的数位计算位积,再将一系列位积相加。便可以得到两个无符号二进制数的乘积。这里可以选择移位的方式。比如out= in * 13,in为4位,则out为8位,的计算:assign out = a + a << 2 + a <<3;实现。组合逻辑电路乘法器实现:module mult_module#( parame...原创 2018-08-14 22:43:13 · 16470 阅读 · 0 评论 -
串行FIR滤波器---Verilog设计
数字滤波器数字滤波器从实现结构上划分,有FIR和IIR两种。FIR的特点是:线性相位、消耗资源多;IIR的特点是:非线性相位、消耗资源少。由于FIR系统的线性相位特点,设计中绝大多数情况都采用FIR滤波器。线性相位系统的意义,这里的线性相位指的是在设计者关心的通带范围内,LTI系统满足线性相位要求: 1. 从延时的角度看:保证了输入信号的相位响应是线性的,即保证了输入信号的延时特性。 ...原创 2018-08-11 23:37:52 · 10456 阅读 · 4 评论 -
FPGA数字信号处理(二)并行FIR滤波器Verilog设计
该篇是FPGA数字信号处理的第二篇,选题为DSP系统中极其常用的FIR滤波器。本文将简单介绍FIR滤波器的原理,详细介绍使用Verilog HDL设计并行FIR滤波器的流程和方法。接下来几篇会介绍串行结构FIR的Verilog设计、使用Quartus和Vivado的IP核设计FIR的方法。 数字滤波器数字滤波器...转载 2018-08-12 16:53:31 · 4502 阅读 · 0 评论 -
基于减法操作除法器的算法---Verilog实现
引言除法器在FPGA里怎么实现呢?当然不是让用“/”和“%”实现。在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以...原创 2018-08-13 10:15:29 · 11909 阅读 · 0 评论 -
SDRAM_controller ---2017.12.13
这是我第一次开始自己在板子上做一个不大不小的项目,嗯,或者叫做小的自我测试,对于来到国科实习这么久的一个考试。用了两周半的时间,中间还穿插着被安排了做一点别的事情,结果只是勉强及格吧,很勉强,不谦虚,看到了自己很多的不足,这个行业需要的知识太多了,也更新的太快了----致还不太老的自己。一. about sdram 1.SDRAM:Synchronous Dynamic Random Ac...原创 2020-03-12 09:50:11 · 367 阅读 · 0 评论