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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2104|回复: 2

[求助] 等精度频率计,测50Hz的方波,结果是 49 和 94967295 两个数轮回显示???

[复制链接]
发表于 2012-10-6 20:00:51 | 显示全部楼层 |阅读模式

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

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

x
如题,感觉是 运算部分有溢出现象,但死活看不出来,将代码贴出来,请各位帮帮忙,先谢了!

module divider
(
        clk, rstn,
        Cnt1_data,
        Cnt2_data,
        Data_Bin
);

        input clk, rstn;
        input [31:0]Cnt1_data;                               
        input [31:0]Cnt2_data;                               
       
        output [31:0]Data_Bin;

        /***********************************************/
       
        parameter Freq_50KHz = 16'd50_000;                                                //Fs = Freq_50KHz         
       
        /***********************************************/
       
        reg [31:0]Cnt1_in, Cnt2_in;                                                                  //Ns = Cnt1_in, Nx = Cnt2_in       
        reg [31:0]Data_out;                                                                                          //Fx = Data_out
        reg init_flag;
       
        always @ ( posedge clk or negedge rstn )
                if( !rstn )
                        begin
                                Cnt1_in <= 32'd0;
                                Cnt2_in <= 32'd0;
                                init_flag <= 1'd0;
                        end
                else
                        begin
                                if( init_flag == 1'd0 )
                                        begin
                                                init_flag <= 1'd1;
                                                Cnt1_in <= Cnt1_data;
                                                Cnt2_in <= Cnt2_data * Freq_50KHz;
                                        end
                                else if( init_flag == 1'd1 )
                                        begin
                                                init_flag <= 1'd0;
                                                Data_out <= Cnt2_in / Cnt1_in;
                                        end
                        end                       
                               
        /***********************************************/
       
        assign Data_Bin = Data_out;
       
        /***********************************************/       
       
endmodule
发表于 2012-10-7 08:52:40 | 显示全部楼层
仿真一下就可以了。
这个地方怎么乘除法都上来了。改成加减运算。fpga不适合做 乘除运算。
 楼主| 发表于 2012-10-7 10:00:45 | 显示全部楼层
回复 2# tiangua


    先谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-8 18:58 , Processed in 0.054290 second(s), 9 queries , Gzip On, MemCached On.

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