新手学verilog,写了一个频率计(采用等精度方法),频率计数模块代码如下: 限于字数,不便将该模块所有代码上传,频率计数module采用三段式做法,S0将所有值清零, S1:begin if(!Carry_in) begin cnt_flag <=... 新手学verilog,写了一个频率计(采用等精度方法),频率计数模块代码如下:
限于字数,不便将该模块所有代码上传,频率计数module采用三段式做法,S0将所有值清零, S1:begin if(!Carry_in) begin cnt_flag <= 1'b1; Na_flag <= 1'b1; end else begin if(cnt_flag) begin if(Na_flag) begin toggle <= 1'b1; Na_cnt <= Na_cnt + 1'b1; Na_flag <= 1'b0; end end end
if(toggle) begin Nb_cnt <= Nb_cnt + 1'b1; end if(!Switch) begin toggle <= 1'b1; Switch_flag <= 1'b1; end end
仿真图:
signaltap图:
不知道为什么,我在S1状态中进行Na_cnt自加操作时,在signaltap中值会乱跳,求帮助