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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5252|回复: 10

[原创] 点5分频实现

[复制链接]
发表于 2014-7-6 18:24:23 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 quantumdot 于 2014-7-7 18:49 编辑

奇数、偶数50%占空比分频很容易,点5分频是处理小数分频,比如3.5,7.5,23.5等,相比整数分频稍微复杂一点



  1. module Divclkp5(clk,tg_clk,rst);
  2. input clk,rst;
  3. output tg_clk;
  4. reg tg_clk;
  5. reg[23:0]counter,counter2;
  6. wire clk1;
  7. reg temp_tgp;

  8. parameter countN=11;        //(2n+1)/2=clkin/clkout N=2n+1,n>=2

  9. always@(posedge clk or posedge rst)
  10. begin
  11.         if(rst)
  12.         counter<=24'b0;
  13.         else if(counter>(countN-2))
  14.         counter<=24'b0;
  15.         else
  16.         counter<=counter+1'b1;
  17. end

  18. //(countN-1)/2:(countN+1)/2
  19. always@(*)
  20. begin
  21.                 if(counter>(countN-3)/2)//counter odd
  22.                 temp_tgp<=1'b0;
  23.                 else
  24.                 temp_tgp<=1'b1;
  25. end
  26. //new clk
  27. assign clk1=clk^temp_tgp;

  28. //repeat count
  29. always@(posedge clk1 or posedge rst)
  30. begin
  31.         if(rst)
  32.         counter2<=24'b0;
  33.         else if(counter2>(countN-3)/2)
  34.         counter2<=24'b0;
  35.         else
  36.         counter2<=counter2+1'b1;
  37. end

  38. //注意Duty的调整,这里绝不会出现50%的情况
  39. //if N<9 <--(countN-5)/2) else <--(countN-1)/4
  40. always@(*)
  41. begin
  42.   if(countN<9)
  43.     begin
  44.                 if(counter2>(countN-5)/2)
  45.                 tg_clk<=1'b0;
  46.                 else
  47.                 tg_clk<=1'b1;
  48.                 end
  49.         else
  50.           begin
  51.                 if(counter2>(countN-1)/4)
  52.                 tg_clk<=1'b0;
  53.                 else
  54.                 tg_clk<=1'b1;
  55.                 end
  56. end
  57. endmodule


复制代码



首先将分频数*2进行奇数分频,不需要占空比为50%,然后与原时钟xor得到新时钟,再用新时钟重计数
最后再来调整占空比

例如5.5分频

例如5.5分频



貌似1.5分频不适用,大家可以多多发言
发表于 2014-7-7 09:32:49 | 显示全部楼层
没看懂啊,为啥占空比是50,仿真结果不是6:5 么?
发表于 2014-7-7 12:18:00 | 显示全部楼层
谢谢楼主!!!好东西!
 楼主| 发表于 2014-7-7 18:45:56 | 显示全部楼层
回复 2# 15829023536


   这位仁兄,我已强调.5分频是不存在占空比为50%的,占空比为一个周期内高电平所占比,计算为:Th/T,图中所示为3/5.5
发表于 2014-7-7 20:14:48 | 显示全部楼层
之前也学过分数级的分频,但是不知道这种分频的实际用途是什么呢?求高手指点
 楼主| 发表于 2014-7-7 21:32:42 | 显示全部楼层
回复 5# shenqixian


   我也没遇到过,就单独分频讲部分分频至少精确一点吧
发表于 2015-7-13 00:16:45 | 显示全部楼层
回复 1# quantumdot


   那1.5分频的怎么写呢
发表于 2015-7-13 09:00:26 | 显示全部楼层
请教下,有什么用吗?
直觉这样的时钟关系就是后端的噩梦,一般不会用的。
 楼主| 发表于 2015-7-13 18:36:31 | 显示全部楼层
回复 7# zyq1994


   看代码n=1
 楼主| 发表于 2015-7-13 18:38:16 | 显示全部楼层
回复 8# orlye


   我也不怎么用,只是一个想法。有时,想法是没有卵用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-23 12:34 , Processed in 0.041403 second(s), 12 queries , Gzip On, MemCached On.

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