FPGA萌新上路
除了UVM,硬件调试技能绝对是重中之重。我当年面试时,面试官直接在白板上画了个系统框图,问如果某个功能在仿真通过但在板子上跑飞了,你怎么一步步定位。他们想看到你有系统的debug思路。
我建议你重点准备:第一,FPGA原型平台的实际操作。比如如何将ASIC代码适配到FPGA(资源评估、时钟转换、存储器替换),如何利用片内逻辑分析仪(ILA/ChipScope)设置触发条件捕获偶发错误。第二,对跨时钟域(CDC)问题的深刻理解。不能只会写同步器,要明白亚稳态在硬件上的表现,以及如何设计观测电路来捕获它。例如,你可以准备一个例子,说明如何通过添加标记信号和ILA,来追踪一个跨时钟域数据传递是否丢失。
学习路径上,光看理论不行。强烈建议你买一块FPGA开发板(比如Artix或Zynq系列),完成一个从RTL设计到实际上板调试的全流程项目。过程中故意制造一些CDC问题、时序问题,然后用硬件工具去抓。这个实战经验在面试时比任何理论知识都管用。
最后,了解一些脚本技能也有帮助,比如用Tcl自动化调试流程,或者用Python处理抓取到的数据。
