电路设计萌新
从面试官角度聊几句吧。我们出笔试题,确实越来越注重实际应用场景。状态机设计除了基础,常考三个进阶点:一是"低功耗状态编码",比如用时钟门控配合状态机,在某个状态下关闭部分模块时钟。笔试可能给一段代码让你找出功耗优化点。这时状态编码用One-hot结合门控时钟是常见思路。代码风格推荐两段式,因为输出逻辑可能包含门控使能,单独写容易维护。
二是"安全状态机",不光是错误恢复,还有防篡改设计。比如状态转移时加入校验逻辑,如果状态寄存器被软错误翻转,能检测并纠正。笔试可能考汉明码(Hamming Code)在状态编码中的应用。这比较难,但如果你能提到,会很加分。验证要点是错误注入测试,不过笔试一般只考设计思路。
三是"状态机与异步FIFO的协同",这其实是考察跨时钟域设计能力。常考题是状态机在发送端,根据异步FIFO的空满标志(已同步)做出决策。这里容易踩的坑是忽略了同步延迟导致的状态机"抢跑"。代码必须用寄存器打拍同步空满信号,输出逻辑要考虑延迟。验证时关注亚稳态和性能,比如会不会因为同步延迟降低吞吐量。
最后,无论什么场景,三段式状态机都是笔试的"安全牌",结构清晰,易综合。准备时多写几种编码方式的代码,做到能随手默写。
