找回密码
 注册
搜索
查看: 1624|回复: 3

[讨论] 如何使用verilog进行3分频

[复制链接]
发表于 2008-8-5 16:17:57 | 显示全部楼层 |阅读模式
如何使用verilog进行3分频,我在用FPGA设计一个程序时,需要几种不同的频率,但是只有一个时钟源,用锁相环只能满足一个频率要求,现在还需要一个3分频的频率,但不知如何设计,要求占空比为50%,希望那位高手帮忙指点,感激不尽。
 楼主| 发表于 2008-8-7 11:36:01 | 显示全部楼层
这两天在网上找到这样一个程序可以三分频,供大家研究,只是当时没有记下网站,若涉及到侵权问题,希望版主立即把此帖删除。
module div_3(clk,clkout) ;
input clk ;
output clkout;

reg q1,q2,d,clkout;
always @(posedge clk)
if(!d)
q1<=1'b1;
else
q1<=~q1;
always @(negedge clk)
if(!d)
q2<=1'b1;
else
q2<=~q2;

always@(q1 or q2)
d<=q1&q2;

always @(posedge d)
clkout<=~clkout;


endmodule
点评回复

使用道具 举报

发表于 2010-2-26 15:35:32 | 显示全部楼层
学习了,呵呵[em12]
点评回复

使用道具 举报

发表于 2010-3-3 13:43:25 | 显示全部楼层
也不是很方便吗?你这是要1/2占空比吗?
要不利用计数器的思想很容易实现三分频,不光三分频,N分频都可以举一反三。
如:5分频
module div_5(clk_in,clk_out,reset);
^^^^^^^^^^^^
^^^^^^^^^^^
^^^^^^^^^^^   // 省略
always @(posedge clk_in)                                    
begin
   if (!reset)
   count=0;
   else
      begin
      if (count<(5-1))
       count=count+1;
      else
       count=0;
      end
    clk_out=count[3];
end
endmodule
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-6 22:00 , Processed in 0.056851 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表