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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4958|回复: 9

一个小数分频器的设计问题

[复制链接]
发表于 2008-5-29 23:43:02 | 显示全部楼层 |阅读模式

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

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

x
分频比是8.7,源程序如下:
//8分频电路
module fd8bits(reset,clkin,clkout);
input clkin,reset;
output clkout;
reg clkout;
reg[4:1]q;
always @ (posedge clkin)
begin
    if(!reset)
        q=0;
    else
        begin
             if(q<7)
                q=q+1;
             else
                q=0;
         end
     clkout<=q[3];
end
endmodule
//9分频
module fd9bits(reset,clkin,clkout);
input clkin,reset;
output clkout;
reg clkout;
reg [4:1]q;
always @(posedge clkin)
begin
    if(!reset)
          q=0;
    else
        begin
             if(q<8)
                q=q+1;
             else
                q=0;
         end
     clkout<=q[3];
end
endmodule
//    ÷8/9分频
module fd89bits(reset,clkin,a,clkout);
input reset,clkin,a;
output clkout;
reg clkout;
wire clkout1,clkout2;
fd8bits fd81(reset,clkin,clkout1);
fd9bits fd91(reset,clkin,clkout2);
always @(a or posedge clkin)
  begin
       if(a==1)
         clkout=clkout1;
       else
         clkout=clkout2;
  end
endmodule
这里使用÷8/9 双模前置分频器, 按照前面的分析, 可以通过计数器计数先做3次8分频, 后做7次9分频, 即可得到平均分频系数8.7。由于从N分频切换到N+1分频和从N+1分频切换到N分频都会产生一个随时间增长的相位移, 如果简单的先进行3 次8 分频后做7 次9 分频将会产
生很大的相位波动。考虑到该小数分频器要进行多次8分频和9分频,那么就设法将两种分频混合均匀, 这种“均匀”工作是通过计数器来完成的, 在这里只讨论一位小数的情况, 下面简要介绍这种混合的方法每进行一次分频, 计数值为10 减去分频系数的小数部分,各次计数值加。若累加结果小于10, 则进行N+1分频, 若大于10 或等于10, 则进行N 分频。该例中计数值为(10-7)=3, 前3 次累加结果都小于10, 所以为9 分频,第四次累加结果为12, 则去掉十位数后累加结果变为2, 同时进行8 分频,附件给出了该分频器的分频过程

问题:编译时出错,提示always @(a or posedge clkin)这里有问题,发现是电平敏感型和边沿敏感型不能同时用,就改为always @( posedge clkin),编译通过,但仿真时结果出不了,不知道是什么问题,请大家指正,看有什么问题没有(源程序是从一篇论文里看到的)
QQ截图未命名.bmp
发表于 2008-6-2 11:22:04 | 显示全部楼层
看了半天,也没太懂,目的是每8.7个时钟,输出翻转一次,是这个意思么?
发表于 2008-6-3 11:30:31 | 显示全部楼层
我想。这个程序的顶层文件可以不用时钟CLKIN来控制了。完全可以用组合逻辑。
比如assign  clkout = (a)? clkout1 : clkout2;
或用always语句只用a来做敏感信号。去掉CLKIN应该不会影响。
发表于 2008-12-19 09:29:30 | 显示全部楼层
最后一段的代码和文章思路相悖,我认为没这么简单,目前我也在试小数分频
发表于 2008-12-19 20:24:32 | 显示全部楼层
可以吗?不太清楚
发表于 2010-9-30 16:03:29 | 显示全部楼层
need to debug
发表于 2011-8-29 17:01:45 | 显示全部楼层
可以吗,论文是水货
发表于 2011-8-30 11:41:59 | 显示全部楼层
可以参考很多fran_n pll的文章;一般都是采用sigma delta modulator
发表于 2011-9-27 09:54:36 | 显示全部楼层
硬件实现比较好,代码不懂
发表于 2013-7-30 15:34:33 | 显示全部楼层
不知道你testbench怎么写的,能仿真的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 08:42 , Processed in 0.030626 second(s), 9 queries , Gzip On, Redis On.

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