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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 2253|回复: 2

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

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

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

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

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

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 下一条


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

GMT+8, 2025-10-9 04:06 , Processed in 0.015929 second(s), 5 queries , Gzip On, Redis On.

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