← eetop.cn_数字IC设计工程师笔试面试经典100题(大部分有答案)
推荐答案
测试一下
题目
确定状态数画出状态转移图,没有投币之前的初始状态S0,投入了1分硬币S1,投入了2分硬币S2,投入了3分硬币S3,投入了4分硬币S4。
参考答案与知识点
参考答案
本题要求基于给定状态S0~S4设计状态转移图,隐含一个典型的4分硬币投币机控制器。通常的模型是:系统接受1分或2分硬币(或仅1分),累计金额达到4分时输出有效信号(如释放商品或找零),并回到初始状态S0。状态S0表示已投入0分,S1表示已投入1分,S2表示2分,S3表示3分,S4表示4分。由于S4已达到目标金额,转移时需输出信号并回到S0,同时应考虑超额投币(即投入硬币后超过4分)时的处理,通常视为无效或找零回退,但简单设计中可忽略或强制回到S0。转移条件用输入硬币面值表示,例如投币输入X(0:无,1:1分,2:2分)。在S0时,投1分到S1,投2分到S2;S1时,投1分到S2,投2分到S3;S2时,投1分到S3,投2分到S4;S3时,投1分到S4,投2分到S0(超4分应输出信号并清0);S4时,投任意硬币均输出信号并回到S0。状态转移图需标注每个状态的名称、转移条件(X=1或2)以及输出(例如Y=1表示出货)。易错点包括:未考虑S4状态下的转移、忽视超额投币的处理、输出信号仅在S4有效而非所有状态、状态编码选择(二进制或独热码对FPGA资源影响)。实际设计中还需考虑glitch消除和时序约束。
涉及知识点
- 状态机状态数与编码
- 状态转移图绘制规范
- Moore型与Mealy型输出区别
- 输入信号与转移条件定义
- 自启动与多余状态处理
- 输出逻辑与次态逻辑分离