数字电路萌新
从面试官角度聊聊吧,我面过不少应届生。资源估算和时序收敛这类问题,通常不会直接问理论,而是结合具体设计场景。比如,我会在白板上画个简单模块,问“这个模块在FPGA里大概占多少资源?”或者“如果跑200MHz时钟,你觉得时序能过吗?为什么?” 考察的是你有没有工程直觉。
对于资源估算,你需要知道常见结构的资源消耗:比如一个32位加法器大约用32个LUT,一个DSP48通常能处理一个乘法累加。还要了解工具的影响,不同综合策略结果可能差很多。建议你准备时,用Vivado或Quartus实际综合几个小模块(比如FIFO、状态机),记下资源数据,形成自己的经验表。
时序收敛方面,重点考察分析思路。我会期待你提到:先看时序报告,识别关键路径;然后分析原因,是逻辑结构问题(如长组合链)、布局问题(如高扇出信号被摆远)、还是约束问题(如时钟定义不对)。解决方案要分层次:先优化RTL(重定时、流水线),再尝试综合选项(如retiming),最后才考虑布局约束(如位置约束)。如果你能提到工具的一些技巧,比如用phys_opt_design或增量编译,会很加分。
缺乏流片经验没关系,但要有FPGA项目经验,哪怕是自己做的课程设计。把项目从综合到实现完整走一遍,遇到时序问题自己调试过,就能讲出东西。学习途径推荐Xilinx的时序约束指南(UG903)和网上的一些实战博客,比如“FPGA时序收敛”系列文章。关键是要动手,光看是没用的。
