微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 状态机中变量自动归零

状态机中变量自动归零

时间:10-02 整理:3721RD 点击:

我遇到了这样的问题,在以下的状态机中,我有些量在状态0中赋值,在状态一中没有赋值,但是就被自动的拉到零了,直到下次赋值一的时候才会回到一,不知道为什么呢?我也试过了,用信号来代替这个量,然后在最后加一个信号赋值给端口的语句但是还是不行。这个现象只在后仿真中出现,前仿真一点问题没有。请问问什么呢? 谢谢

前仿真图

后仿真图1

后仿真图2 (把中间变量temp输出了)

(这个好像和上面的后仿真图还不一样,不知道为什么,求指导~)

PROCESS (rst_in , clk)

BEGIN

IF( rst_in ='0') THEN

pr_state<= state0;

ELSIF(clk'EVENT AND clk='1') THEN

pr_state <= nx_state;

ENDIF;

END PROCESS;


PROCESS (pr_state,busy_in,frstdata_in)

BEGIN

CASEpr_state IS

WHENstate0 =>-- all reset

rst_out<= '1';--initialize 0

--cs_out<= '1';

csbf<= '1';

--convst_out<= '1';

convstbf<= '1';

nx_state<= state1;

i<= "0000";

temp1<="0000";--临时测试量。

WHENstate1 =>--start

rst_out<= '0';

--convst_out<= '0';

--cs_out<= '1';

csbf<= '1';

convstbf<= '0';

nx_state<= state2;

i<= "0001";

whenstate2 =>

rst_out<= '0';

--convst_out<= '1';--出一个小脉冲

convstbf<= '1';

--cs_out<= '1';

nx_state<= state3;

i<= "0010";

whenstate3 =>

rst_out<= '0';

--convst_out<= '1';-- 这个算是接着打了一拍。

convstbf<= '1';

--cs_out<= '1';

i<= "0011";

nx_state <= state4;


WHENstate4 =>

IF(busy_in = '0') THEN

--cs_out<= '0';

csbf<= '0';

nx_state<= state5;

ELSE

--cs_out<= '1';

csbf<= '1';

nx_state<= state4;

ENDIF;

i<= "0100";

whenstate5 =>

if(frstdata_in= '1') then

--cs_out<='0';

csbf<= '0';

nx_state<= state6;

else

--cs_out<='0';

csbf<= '0';

nx_state<= state5;

endif;

i<= "0101";

whenstate6 =>

--cs_out <= '0';

csbf <= '0';

if(temp<8) then

db_168((temp+1)*16-1 downto temp*16 )<= db_16;--save 记住读数据的时候cs一定是为低的。

temp<=temp+1;

temp1<= temp1+ "0001";

nx_state<= state7;

else

nx_state<= state9;--表示数据采集完成。

--temp<= 0;

endif;

i <= "0110";

whenstate7 =>

csbf<= '1';--回一

--cs_out <= '1';

nx_state<= state6;

i <= "0111";

whenstate9=>---cs_out <='1';

csbf<= '1';

temp <= 0;

temp1<= "0000";

nx_state<= state9;

i<= "1001";

whenothers =>

nx_state <= state0;

i<= "1111";

ENDCASE;

END PROCESS;


tempi <= temp1;

cs_out<=csbf ;

convst_out <= convstbf;

END BEHAVIOUR;

为什么我的插图不见了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top