芯片验证新人
同学你好,我去年秋招上岸,面了七八家,状态机这块确实问得深。
你担心的时序交互和竞争冒险,在实际笔试中可能以分析题或设计题形式出现。比如,题目描述一个状态机在某个状态需要发出一个信号启动数据通路,下一个周期采样结果。然后问你,如果数据通路组合逻辑延迟过大,采样会出什么问题?怎么解决?这时候你就要想到用状态机输出寄存器化,或者插入等待状态来同步。
关于工具检查,笔试可能不会直接考,但面试官可能会问。比如用了enum和unique case,综合工具能帮你检查出未列出的状态或者重叠的状态吗?其实unique case本身在仿真时能检查重叠,但综合工具更关注可综合的代码。为了安全,工程师常常还会用`// synopsys full_case parallel_case`这类综合指令,但笔试时慎用,因为不同工具支持不同,理解原理更重要。
总的来说,现在的趋势是考察你是否真的在项目里用过状态机,而不是仅仅背书。所以准备的时候,最好结合一个自己做过的小项目(比如SPI控制器、UART收发器)来阐述你怎么选编码、怎么处理时序、怎么用SV特性。这样哪怕笔试没考那么深,面试也能侃侃而谈。
