Verilog入门者
同学,你听说的这些点现在笔试确实会涉及,尤其是头部公司。我帮你拆解一下:
关于编码方式对比,这已经不算超纲了。题目可能会描述一个“状态数较多(比如15个)但状态转移相对简单”的场景,让你选编码并解释。你需要能脱口而出:One-hot在FPGA上效果好,触发器多用但解码简单,速度通常有优势;二进制编码在ASIC里更省面积,但状态解码可能需要额外的组合逻辑,在状态数多时可能影响速度。有时还会提一下格雷码,用于减少状态跳变时的毛刺。
状态机安全设计,防挂死是可靠性要求高的系统(比如汽车电子、通信控制)必考的。笔试可能会直接问:“如何保证状态机不会进入未定义状态?” 你要能列出:1)明确定义所有状态,使用完备的case语句(SystemVerilog中用unique case帮助检查完备性);2)一定要写default分支,将非法状态引导到复位状态或一个安全的空闲状态;3)对于特别关键的设计,甚至可以考虑对状态寄存器进行奇偶校验或ECC。这体现了你的工程素养。
SystemVerilog特性,enum和unique/priority case的考察,更多是看你是不是在用现代的、更安全的设计方法。enum让代码可读性更强,也便于调试;unique case告诉综合工具和仿真器,分支是互斥且完备的,能避免综合出锁存器,也能在仿真时提供更好的警告。笔试可能给一段有问题的老式代码,让你用SV特性重写或指出问题。
所以,准备时广度要有,但深度不用恐慌。把三段式基础打牢,然后针对这几个扩展点,每个都找一两个例题练练手,整理出你自己的答题话术,就够了。
