FPGA经典设计
dxz44444
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
跨时钟域信号的处理
参考文献:https://www.cnblogs.com/rouwawa/p/7501319.htmlhttps://www.cnblogs.com/lyc-seu/p/12441366.html1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么这个设计只有一个时钟域。假如设计有两个输入时钟,一个时钟给接口1使用,另一给接口2...原创 2020-05-06 12:49:18 · 2146 阅读 · 0 评论
-
Vivado基于Rom IP核查找表生成cos、sin波形的方法
一、MATLAB生成sin,cos的数据文件构造256点的正余弦表,分别得到 cos和sin的查找表matlab代码: 求sinfid = fopen('sin.txt','a' );str1 = 'MEMORY_INITIALIZATION_RADIX=10;';str2 = 'MEMORY_INITIALIZATION_VECTOR=';fprintf(fid,'\t%s\n \t%s\n', str1,str2);for k=1:256;y(k) =sin(2*pi*k/256原创 2020-12-02 20:51:59 · 3620 阅读 · 0 评论 -
格雷码异步FIFO
格雷码设计异步FIFO,读快写慢,读时钟会出现漏采样的情况,漏采的数据留在FIFO中,导致满信号间断分布。源文件: module dual_clk_fifo #(parameter DATESIZE = 8, parameter ADDRSIZE = 4, parameter ALMOST_GAP = 3)(input [DATESIZE-1:0] wdata,input winc, wclk, wrst_n,input rinc, rclk, rrst_n...原创 2020-07-29 23:25:28 · 595 阅读 · 0 评论 -
跨时钟域设计(结绳法,脉冲展宽法)
一、结绳法(一)https://www.cnblogs.com/lyc-seu/p/12441366.html#%E6%96%B9%E6%B3%95%E4%BA%94%EF%BC%9Admux%E5%90%8C%E6%AD%A5%E5%99%A8参考链接:https://blog.youkuaiyun.com/qq_15026001/article/details/100022905?ops_request_misc=%257B%2522request%255Fid%2522%253A%252215954952原创 2020-07-24 15:48:18 · 5159 阅读 · 0 评论 -
乘法器的verilog实现
https://www.cnblogs.com/shengansong/archive/2011/05/23/2054401.html一、对两个二进制数进行相乘运算,运用列式求法我们可以得知,乘法最终就是由加法和移位运算构成的,由此可以用高速度的加法和移位实现乘法操作,具体代码如下:module multi_4bits_pipelining(mul_a, mul_b, clk, rst_n, mul_out); input [3:0] mul_a, mul_b; i.原创 2020-07-08 19:41:02 · 1601 阅读 · 0 评论 -
IBUF,OBUF,IOBUF原语解析(inout实现,综合出电路结构)
用两种方法 实现inout,综合出来的电路结构一样,所以inout作输入时直接assign就行了。:module inout_def(input clk,input z2,inout dinout2,input z3,inout dinout3,output reg led_r2,output reg led_r3 ); reg dout2 = 0;wire din2;assign dinout2 = z2?1'bz:dout2;assign din2 = di原创 2020-07-08 11:12:07 · 27579 阅读 · 0 评论 -
除法器的verilog实现
除法器在FPGA里怎么实现呢?当然不是让用“/”和“%”实现。在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法实现除数为任意整数的除法,很大程度上限制了它的使用领域。并且多数综合工具对于除运算指令不能综合出令人满意的结果,有些甚至不能给予综合。即使可以综合,也需要比较多的资源。对于这种情况,一般使用相应的算法来实现除法,分为两类,基于减法操作和基于乘法操作的算法。1.1 实现算法基于减法的除法器的算法:对于32的无符号除法,被除数a除以...原创 2020-07-06 17:22:36 · 21896 阅读 · 0 评论 -
线性反馈移位寄存器(LFSR) ______FPGA产生基于LFSR的伪随机数
FPGA产生基于LFSR的伪随机数1.概念 通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取其中一个数字,该数字称作伪随机数,由于所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。这里的“伪”的含义是,由于该随机数是按照一定算法模拟产生的,其结果是确定的,是可见的,因此并不是真正的随机数。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要,如果随机原创 2020-07-01 19:52:29 · 2036 阅读 · 0 评论 -
verilog中异或(^)理解与应用(格雷码,奇偶判断,奇分频)
异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即: 0^0 = 0, 1^0 = 1, 0^1 = 1, 1^1 = 0按位异或的3个特点:(1) 0^0=0,0^1=1 0异或任何数=任何数(2) 1^0=1,1^1=0 1异或任何数-任何数取反(3) 任何数异或自己=把自己置0一、异或^的运用:...原创 2020-06-18 14:50:24 · 31227 阅读 · 0 评论 -
FPGA分频电路实现(奇数,偶数,小数半分频,任意分频)
目录 前言 分频器分类 偶分频 奇分频 占空比为50%的奇分频 占空比不限定的奇数分频器 https://blog.youkuaiyun.com/Reborn_Lee/article/details/81298123?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158928148219724845005777%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&am原创 2020-05-12 19:31:50 · 5084 阅读 · 0 评论 -
时钟切换中的毛刺(glitch)
1.有毛刺的时钟切换电路assign outclk = (clk1 & select) | (~select & clk0);这个时钟切换电路是一个纯组合逻辑,输出时钟(OUT CLOCK)由选择信号(SELECT)控制,当SELECT为1时输出CLK1,反之,输出CLK0.2.相关时钟源的毛刺保护下图显示了防止源时钟相互倍数的时钟开关输出出现毛刺的解决方案。在每个时钟源的选择路径中插入一个负边沿触发的D触发器。 在时钟的下降沿采样选择控制(SELECT),以及仅.原创 2020-05-12 15:57:29 · 13729 阅读 · 0 评论 -
用Verilog实现串并转换
一、串转并转换模块1) 利用移位寄存器 串行转并行数据输出:采用位拼接技术(移位寄存器),将串行的数据总数先表示出来,然后发送一位数据加一,后面的接收的这样标志:data_o <= {data_o[6:0],data_i };1输入8输出的串转并模块的Verilog代码module serial_parallel( input clk, input rst_n,en, input dat...原创 2020-05-11 19:18:19 · 17128 阅读 · 3 评论 -
FPGA基础学习,输入的信号是否都需要寄存两拍?
1.初识FPGA CLB之总览http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13799.html2.初识FPGA CLB之LUT实现逻辑函数http://xilinx.eetrend.com/d6-xilinx/article/2018-10/13818.html3.初识FPGA——如何理解时序电路1)纯组合逻辑电路的...原创 2020-05-03 18:39:19 · 1736 阅读 · 0 评论 -
FPGA---------乒乓操作
1.乒乓操作原理 乒乓操作是一个主要用于数据流控制的处理技巧,典型的乒乓操作如图所示: 外部输入数据流通过“输入数据选择控制”模块送入两个数据缓冲区中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(Dual RAM),SRAM,SDRAM,FIFO等。 在第1个缓冲周期,将输入的数据流缓存到“数据缓冲1”模块,在第2个缓冲周期,“输入数据...原创 2020-04-30 21:49:06 · 984 阅读 · 0 评论
分享