FPGA奇数分频】的更多相关文章

在FPGA设计中,分频是很常用的一个基本功能,一般来说,如果需要偶数分频即2次幂的整数倍,这个就很简单了,如2.4.8.16.32.64等这些以2的整数倍的. 这里说的是奇数倍分频,如时钟是100MHz,需要一个20MHz的输出频率,那么就需要5次分频,那么问题来了,安装2分频的方法:100/2=50,50/2=25,只能等到一个25MHz的频率,显然这种方法是不可行的,那么就需要奇数分频了. 1.做个模为5的计数器, 2.做两个个信号a,b.在模1的计数下,前2个周期信号a为高电平,后3个周期…
我们在做FPGA设计时,有时会用到时钟频率奇数分频的频率,例如笔者FPGA的晶振为50M,当我们需要10M的时钟时,一种方式可以使用DCM或PLL获取,系统会内部分频到10M,但其实VERILOG内部也完全能实现,所以我们还是来了解一下. 有这样一个欢乐的时钟了,我们要得到以下的分频效果: 奇数分频的难点就在于,三分频要求1.5倍的时钟时间翻转一次,这样整体的周期时间是原来的3倍,即三分频.五分频亦类似.而恰恰verilog不允许你在两个always模块里对同一reg赋值. 那怎么得到三分频的时…
http://www.cnblogs.com/fpga/archive/2009/10/24/1589318.html 占空比为50%的分频 偶数分频比较简单 比如N分频,那么计数到N/2-1,然后时钟翻转,代码如下:  1 module even(clk_in,clk_out,rst_n);  2 input clk_in;  3 input rst_n;  4 output clk_out;  5   6 parameter N=6;  7   8 reg [3:0] cnt;  9 reg…
module tw(clk,k_or,k1,k2); input clk; output k_or,k1,k2; reg [2:0] c1,c2; reg m1,m2; initial begin c1=0; c2=0; m1=0; m2=0; end always @(posedge clk) begin if(c1==a) c1<=0;else c1<=c1+1; if(c1==1) m1=~m1;else if(c1==b) m1=~m1;end always @(negedge clk…
代码: module odd_div( ); ; //分频系数,3即3分频 ; reg clk, rstn, clk_div_pos, clk_div_neg; wire clk_div_out; :] cnt; initial begin clk <= ; rstn <= ; # rstn <= ; end always begin # clk <= ; # clk <= ; end // 计数循环 always@(posedge clk or negedge rstn)…
0. 简介 有时在基本模块的设计中常常会使用到时钟分频,时钟的偶分频相对与奇分频比较简单,但是奇分频的理念想透彻后也是十分简单的,这里就把奇分频做一个记录. 1. 奇分频 其实现很简单,主要为使用两个计数模块分别计数,得到两个波形进行基本与或操作完成.直接贴出代码部分如下. module div_freq( iCLK, iRST_n, oCLK ); input wire iCLK; input wire iRST_n; output oCLK; 'd5; reg clk_p; :] cnt_p…
在学习FPGA的过程中,最简单最基本的实验应该就是分频器了, 同时分频器也是FPGA设计中使用频率非常高的基本设计之一, 尽管在芯片厂家提供的IDE中集成了锁相环IP, 如altera 的PLL,Xilinx ISE的DLL或者vivado中的clock来进行时钟的分频,倍频以及相移. 但是对于时钟要求不高的逻辑,通过语言进行时钟的分频相移显得十分方便, 这种方法可以节省芯片内部的锁相环资源,再者,通过语言设计进行时钟分频,可以锻炼我们对verilog的熟练和理解程度. 偶数倍分频:实现起来比较…
原理介绍 1.分频 FPGA设计中时钟分频是重要的基础知识,对于分频通常是利用计数器来实现想要的时钟频率,由此可知分频后的频率周期更大.一般而言实现偶数系数的分频在程序设计上较为容易,而奇数分频则相对复杂一些,小数分频则更难一些. 1)偶分频系数=时钟输入频率/时钟输出频率=50MHz/5MHz=10,则计数器在输入时钟的上升沿或者下降沿从0~(10-1)计数,而输出时钟在计数到4和9时翻转. 2)奇分频系数=50MHz/10MHz=5,则两个计数器分别在输入时钟的上升沿和下降沿从0~ (5-1…
实现占空比为50%的N倍奇数分频:首先进行上升沿触发进行模N计数,计数到某一个值时进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%的奇数n分频时钟.再者 同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空 比非50%的奇数n分频时钟.两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟. /*奇数分频,占空比为50%,5分频*/ always @(pose…
在一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率太高)进行分频.分频器主要分为奇数分频,偶数分频,半整数分频和小数分频,在对时钟要求不是很严格的FPGA系统中,分频器通常都是通过计数器的循环来实现的. 偶数分频:假设为N分频,由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数.以此循环下去.这种方法可以实现任意的偶数分频.如图所示,两个D触发器级联实现四分频电路,原理:来一个…