原创 N-0.5倍分频(Verilog)

2009-6-18 09:37 7531 10 14 分类: FPGA/CPLD

N-0.5倍分频(Verilog<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


采用模N计数器可以实现。对于进行n+0.5分频,首先进行模n的计数,在计数到n-1,输出时钟赋为‘1’,回到计数0,又赋为0,因此,可以知道,当计数值为n-1,输出时钟才为1,因此,只要保持计数值n-1为半个输入时钟周期,即实现了n+0.5分频时钟,因此保持n-1为半个时钟周期即是一个难点。具体如下:因为计数器是通过时钟上升沿计数,因此可以在计数为n-1时对计数触发时钟进行翻转,那么时钟的下降沿变成了上升沿。即在计数值为n-1期间的时钟下降沿变成了上升沿,则计数值n-1只保持了半个时钟周期,由于时钟翻转下降沿变成上升沿,因此计数值变为0。因此,每产生一个n-0.5分频时钟的周期,触发时钟都是要翻转一次。这个过程所要做的就是对CLK进行适当的变换,使之送给计数器的触发时钟每经历N-0.5个周期就翻转一次。N-0.5倍:取N=3,分频原理示意图如下:


 


  clk为为输入时钟;


  divclk为计数器计数时钟;


 


 


点击看大图


 



 


原理框图如下:


 


 

点击看大图


 


  程序


代码如下:


module divN_half(clk,divN_half);


 


input clk;            //时钟输入


output divN_half;     //N-0.5输出


 


parameter N = 3;     // 设置分频数N-0.5中的N


parameter M = 1;     // 2^(M+1)>3


 


reg [M:0]count;


reg divN_half;


reg div2;


 


assign divclk="clk"^div2;              //时钟输入与2分频异或


 


always@(posedge divclk)                  //N计数器


  begin


     if(count<N-1)


            begin


               count<=count+1;


                       divN_half<=0;


                end


         else


            begin


               count<=0;


                       divN_half<=1;


                end


  end


 


always@(posedge divN_half)              //2分频


   begin


           div2<=~div2;


   end


 


endmodule


 


Post-Route Simulation的仿真波形如下:


 


点击看大图


 


可以看到,实现了N-0.5(N=3,3-0.5=2.5)分频。


 


观察的波形信号加上divclk(计数器计数时钟)div2(二分频信号),可以看到仿真波形如预期。



 


点击看大图


 


 当设计N取其他数时,可以在程序中改参数:


parameter N = 3;     // 设置分频数N-0.5中的N


parameter M = 1;     // 2^(M+1)>3


 


本文工程文件:https://static.assets-stash.eet-china.com/album/old-resources/2009/2/18/5667006d-7df7-44bd-8de2-ea92191ceca1.rar


 


参考资料:


1)     任意数分频(包括奇偶数和小数)的各种设计方法[综合电子]_老古开发网文章


http://www.laogu.com/wz_1260.htm


2)     任意分频的verilog语言实现_淡淡啲菋噵


http://hi.baidu.com/wan_yi/blog/item/d8c997990f3d6d0d6f068c4b.html


3)  Verilog实现基于FPGA的通用分频器,<<电子与电脑>>2006 05
作者: 唐晓燕, 梁光胜, 王玮,


                                                     pdf

文章评论4条评论)

登录后参与讨论

用户1720344 2013-11-23 00:02

不好意思,已经搞定了!

用户1720344 2013-11-22 23:42

仿真不成功,请问怎么仿真?

用户402798 2013-8-30 16:05

用户377235 2013-6-3 14:50

puzzled

tengjingshu_112148725 2009-6-18 09:34

确实是没引号的,我也不知道为什么有

用户184581 2009-6-17 14:49

assign divclk="clk"^div2; 我在仿真的时候把clk的引号去掉才正确。
相关推荐阅读
藤井树 2015-10-12 14:43
印制电路板的抗干扰设计 zz
印制电路板的抗干扰设计     作者:中船重工集团第707所 肖麟芬   摘   要:本文以印制电路板的电磁兼容性为核心,分析了电磁干扰的产生机理...
藤井树 2013-10-22 15:32
2010.5.30 黄草梁上包饺子一日登山活动——摘韭菜篇
        上次桃花节的时候也有野韭菜,那时候的我连草和韭菜叶分不清,才回去的韭菜也不敢吃,哈哈,这次可算真正见识了韭菜,黄草梁也叫韭菜梁,因为满山遍野都是野韭菜而闻名,比较圆比较粗的就是野韭...
藤井树 2013-10-22 15:28
2010.5.30 黄草梁上包饺子一日登山活动——包饺子篇
摘韭菜回来,大家已经忙开了 我也装模作样地“工作着” 哈哈,还不让我包,包饺子是技术活,一定要皮薄馅厚才有资格包,像我这样的只能旁观了 摘的韭菜应该足够了,旁边那个袋子是我摘来带回学校的 ...
藤井树 2013-08-09 15:19
datasheet下载网站整理(查IC芯片手册)【原创】
*************************************************************************         作为电子工程师,芯片的dat...
藤井树 2010-06-04 00:21
陈伟宁王辉一家捐助渠道(北京菲亚特—英菲尼迪)
       王辉的最新消息请关注 http://chenweining.org/       目前事故责任认定已经出来了——陈家全责。        发信人: program (程序), 信区: D...
藤井树 2010-06-01 13:43
2010.5.30 黄草梁上包饺子一日登山活动——美景篇
这天不得不说的是天空,蓝蓝的天空,白白的云    绿油油的山脊  我、洪涛哥哥、huangna妹妹还有她同事小艾走在黄草梁上    在蓝天白云下合影       阳光照过来,景色真美 象鼻山,走不...
我要评论
4
10
关闭 站长推荐上一条 /2 下一条