← 数字IC设计工程师笔试面试经典100题(大部分有答案)

推荐答案 测试一下

确定状态数画出状态转移图,没有投币之前的初始状态 S0,投入了 1分硬币 S1,投入

编程题 中等 笔试真题

参考答案

本题要求设计一个投币器的状态转移图,典型场景是自动售货机或计费系统。题目给出的初始状态S0(0分),投入1分硬币后进入S1(1分),后续投入还需考虑2分硬币或累加逻辑。 **状态机设计步骤:** 1. 确定输入:硬币面值(例如1分、2分);输出:例如达到目标分值(如3分)时给出取货信号。 2. 状态定义: - S0:累计0分,初始状态; - S1:累计1分; - S2:累计2分; - S3:累计3分(目标状态,输出取货信号,并自动回到S0或清零)。 3. 转移条件: - 投入1分:S0→S1,S1→S2,S2→S3; - 投入2分:S0→S2,S1→S3,S2→S4(超出目标,可设计为进入S0并找零,或忽略);若设计为到达3分即输出并回到S0,则S2+2分视为无效输入或进入错误处理。 4. 边界处理:投币后若累计超过目标值,可设计为输出信号并退回多余硬币,或积累到下一个周期。 **易错点:** - 状态数确定:需根据实际需求(如是否需要找零、是否支持多币种)定义所有可能累计值,不能遗漏中间状态; - 自循环:未投币时应停留在当前状态; - 输出时机:通常在进入目标状态时产生输出,且输出与状态相关(Moore机)或与转移相关(Mealy机)。 **参考状态转移图:** 以Moore型为例,圆圈表示状态,箭头标注输入(投币1分/2分),括号内为输出(取货信号)。 S0(0)→[1分]→S1(0)→[1分]→S2(0)→[1分]→S3(1)→[任意]→S0(0) S0→[2分]→S2,S1→[2分]→S3,S2→[2分]→(通常视为无效或进入S0+找零)。 **总结:** 本题考察有限状态机的状态定义、转移条件和输出逻辑,需注意输入组合的完备性和边界状态的处理。若有具体面额和扣费逻辑,则需进行具体设计。

涉及知识点

  • 有限状态机(FSM)状态定义
  • 状态转移图绘制方法
  • Moore型与Mealy型区别
  • 输入组合的完备性检查
  • 边界状态与自循环设计
  • 自动售货机典型状态机
← 上一题
登录后反馈错题
下一题 →