定义状态机当前状态为state ,次态为next _state; 输入a,输出b, 则下列为Mealy状态机的写法是:
A: always@(posedge clk)case (state )0:next_state<=1;1:next_state<=x;
B: always@(posedge clk)case (state )0: if(a==0)next_state<=1; else next_state<=x;1:next_state<=x;
C: always@(posedge clk)case (state )0: if(state==0)next_state<=1; else next_state<=x;1:next_state<=x;
D: 以上都是正确的
A: always@(posedge clk)case (state )0:next_state<=1;1:next_state<=x;
B: always@(posedge clk)case (state )0: if(a==0)next_state<=1; else next_state<=x;1:next_state<=x;
C: always@(posedge clk)case (state )0: if(state==0)next_state<=1; else next_state<=x;1:next_state<=x;
D: 以上都是正确的
举一反三
- 以下的描述中,必然是对Mealy型状态机的描述的是? A: always@(*)case(state)S0:beginout=0;if(in)next_state=S1;elsenext_state=S2;end…… B: always@(*)case(state)S0:beginif(in)next_state=S1;elsenext_state=S0;end…… C: always@(*)case(state)S0:beginif(in)beginnext_state=S1;out=1endelsenext_state=S0;end…… D: 以上答案均不正确
- 定义状态机当前状态为state,次态为next_state;输入a,输出b,则下列为Mealy状态机的写法是:
- 下列Moore型状态机采用Verilog语言主控时序部分正确的是: A: always@(posedge clk or negedge reset) begin if(!reset) current_state<=s0; else current_state<=next_state; end B: always@(posedge clk ) begin if(!reset) current_state<=s0; else current_state<=next_state; end C: always@(posedge clk t) if(reset) current_state<=s0; else current_state<=next_state; D: always@(posedge clk or negedge reset) if(reset) current_state<=s0; else current_state<=next_state;
- The output of a Mealy machine depends on its A: inputs B: present state C: next state D: answers (a) and (c)
- 以下说法错误的是void main(){ state=1; while(1) { switch(state) { case 0x01:setup();break; case 0x02:run();break; } }}void setup(){ Buzzer=1;Led=1;while(1) { if(Key==0){state=0x02;goto exit;} }exit:return;}void run(){ Buzzer=0;Led=0; while(1) { if(Key==0){state=0x01;goto exit;} } exit:return;} A: 共有两个状态 B: Buzzer=1;Led=1;实现声光报警 C: Buzzer=1;Led=1;全停 D: if(Key==0){state=0x01;goto exit;} 按下按键,转到第一个状态