等精度频率计计算过程出问题了,求助!

2019-03-25 10:52发布

今天在搞频率计的时候发发现一个问题:原程序如下:
module Fxprocess (Fx_count,Fs_count,Fh_count,Fx_valu,Fx_Duty);
input  [31:0] Fx_count;
input  [31:0] Fs_count;
input  [31:0] Fh_count;
output [31:0] Fx_valu;
output [7:0]  Fx_Duty;
parameter Fs = 50_000_000;  //板载标准频率50MHz
reg [31:0] Fx_valu;
reg [7:0] Fx_Duty;
always @(Fx_count or Fs_count or Fh_count)
begin
  Fx_valu <= Fs/Fs_count*Fx_count;
  Fx_Duty <= Fh_count/Fs_count*100;
end
endmodule
1)、在之前的计数模块里面我是设计了一个十进制计数器来计算Fs_count、Fx_count、Fh_count
假设我之前的计算模块得到的值分别是50_000_000、1000、25_000_000
经过  Fx_valu <= Fs/Fs_count*Fx_count;
         Fx_Duty <= Fh_count/Fs_count*100;
计算后输出居然是都是0,真是郁闷啊。

2)、要是在之前的计数模块里面我是设计了一个二进制计数器来计算Fs_count、Fx_count、Fh_count
经过  Fx_valu <= Fs/Fs_count*Fx_count;
         Fx_Duty <= Fh_count/Fs_count*100;
计算后就可以得出正确的输出。
不知是什么原因,有知道的给我指点下! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。