首页 > 试题广场 >

分析下面这段用于描述有限状态机(FSM)次态逻辑的 `alw

[单选题]
分析下面这段用于描述有限状态机(FSM)次态逻辑的 `always` 块。在 `S1` 状态下,如果输入信号 `in` 为 `0`,代码中没有明确指定 `next_state` 的值。请问一个典型的逻辑综合工具在处理这段代码时,最有可能为 `next_state` 推断出什么类型的硬件电路?
parameter IDLE=0, S1=1, S2=2;
reg [1:0] current_state, next_state;
reg in;
always @(current_state or in) begin
    // 默认赋值可以避免latch,但这里特意省略
    // next_state = current_state; 
    case (current_state)
        IDLE:
            if (in) next_state = S1;
            else next_state = IDLE;
        S1:
            if (in) next_state = S2;
            // 当 in 为 0 时, next_state 未被赋值
        S2:
            if (!in) next_state = IDLE;
            else next_state = S2;
        default:
            next_state = IDLE;
    endcase
end
  • 一个D触发器(D-Flip-Flop),因为时钟信号未在敏感列表中。
  • 一个透明锁存器(Transparent Latch),因为在某些组合逻辑条件下输出需要保持前一状态。
  • 一个由与非门构成的组合逻辑环路(Combinational Loop),导致电路振荡。
  • 相关的逻辑将被完全优化掉,因为存在不完整的逻辑描述。

这道题你会答吗?花几分钟告诉大家答案吧!