在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 7475|回复: 13

怎么实现占空比1:1的三分频??

[复制链接]
发表于 2008-3-16 16:03:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
逻辑电路或者RTL代码实现都可以
谢谢大家指点
发表于 2008-3-16 16:55:21 | 显示全部楼层
用时钟的上升沿和下降研分别触发即可
回复 支持 反对

使用道具 举报

发表于 2008-3-16 17:10:59 | 显示全部楼层
这个三分频蛮有意思的,可以参考一下,实现起来简单,避免使用计数器了

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

回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-17 00:44:14 | 显示全部楼层
谢谢
我学习一下,呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-17 00:53:20 | 显示全部楼层
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

刚看了一下,怎么感觉不对呢?实现的不是三分频
我没有跑仿真,只是把初值d和clkout都看为0
回复 支持 反对

使用道具 举报

发表于 2008-3-17 12:46:06 | 显示全部楼层
是真确的.
进行了仿真的。要把q1,q2,clkout,都先置为0.
回复 支持 反对

使用道具 举报

发表于 2008-3-18 16:20:37 | 显示全部楼层
我感觉也是不对啊,作出来的不是3分频,而是4分频,应该分别用posedge & negedge 两个counter来实现!
回复 支持 反对

使用道具 举报

发表于 2008-3-19 08:35:48 | 显示全部楼层
确实是4分频, 不是3分频, 如果是四分频, 就不用这样繁琐了
回复 支持 反对

使用道具 举报

发表于 2008-3-19 15:45:16 | 显示全部楼层
仿真看一下吧. 不要以为自己都是对的.上面的程序是正确的.
同时用上升沿和下降沿能够做任意奇数的50%分频.
回复 支持 反对

使用道具 举报

发表于 2008-3-20 09:40:12 | 显示全部楼层
学习一下~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-8-25 05:51 , Processed in 0.019137 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表