很多人在求职时不知如何应对FPGA验证相关的面试。为了帮助大家复习巩固,特整理了一些常见的FPGA验证面试问题,并提供了详细的解题思路,帮助大家轻松应对面试过程中的各种难题。
面试准备
面试前,首先要准备好自我介绍,针对外企可以准备一份英文自我介绍,最好能够用英文介绍自己做过的项目或课题。
最重要的是,充分准备简历中所写的内容,确保简历上的每一项技能都是自己熟练掌握的。如果有项目经验,最好提前想到与项目相关的面试问题。
另外,很多人忽略了面试时的城市选择理由,要给出合理且具有说服力的理由,让面试官相信你真心想去那个城市工作和生活。
常见的面试题目
1. 建立时间和保持时间违例的解决方法
1)建立时间违例
- 时钟路径插入缓冲器;
- 更换延迟小的触发器;
- 增加时钟周期。
2)保持时间违例
- 优化时钟,使时钟更早到达;
- 触发器插入缓冲器;
- 更换延迟大的触发器。
2. 谈谈对UVM验证方法学的理解
UVM验证方法学是基于SystemVerilog语言形成的一种高效的验证方法。一方面,它提高了代码的复用性,使得验证人员能通过代码的移植复用快速搭建验证平台,从而将主要精力集中在测试用例的编写上;另一方面,UVM封装了很多实用的方法,使得验证人员不必过多关注底层实现,减少了验证平台的调试时间。
3. UVM有哪些组件?
- uvm_driver、uvm_monitor、uvm_sequencer、uvm_agent、uvm_scoreboard、uvm_env、uvm_test。
4. UVM组件的常用方法
- typedef,sprint(),topology(),create(),new()。
5. virtual sequencer和sequencer的区别,以及为什么使用virtual sequencer
当有多个驱动端agent,且多个激励之间存在协调关系时,有必要使用virtual sequencer。virtual sequencer的三个属性:
- 控制其他sequencer;
- 不直接连接任何driver;
- 不处理item。
6. 为什么要有sequence、sequencer以及driver,为什么分开以及这样做的好处
- Sequence机制将事务的定义和产生步骤从driver中剥离出来,driver只负责将事务信息驱动给DUT。
- 通过sequence机制,验证的case_list可以实现,保证UVM树形结构的统一性和可维护性。
7. assertion分为哪几种,简单描述assertion的用法
- 断言是验证方法的一种,用于对设计属性进行描述。如果设计属性与期望不符,则断言失败。
- 断言分为立即断言和并发断言。
- 立即断言:基于事件变化,时序无关,必须放在过程块中;
- 并发断言:基于时钟周期,计算表达式,适用于module、interface和program定义中。
8. FIFO的空满判断
- 严格判断:地址最高位和最低位相等为空,最高位不相等,低位相等为满;
- 不严格判断:设定一个空满阈值,进行条件判断。
9. FIFO的异步与同步
- 异步FIFO:读写时钟不同;
- 同步FIFO:读写时钟相同。
10. 验证的思想
验证的目的是在设计规范的要求下,检查DUT在已知功能目标下的正确性,尽管设计规范可能无法覆盖所有场景,验证工程师会尽力在有限的资源和时间内消除流片后的bug。
11. debug的主要手段
- 查看波形,查看log。
12. 为什么要避免使用绝对路径,如何避免
使用绝对路径会降低验证平台的可移植性。可以通过宏和interface来避免使用绝对路径。
13. 如何在driver中使用interface
使用virtual interface,通过configure机制的set和get进行传递。
14. 与逻辑和同或逻辑的运算
- 或:有1为1,只有全0为0;
- 同或:相同为1,不同为0。
15. 亚稳态是什么,怎么消除
- 产生原因:数据传输不满足触发器的建立时间和保持时间;
- 消除办法:
- 对异步信号进行同步处理;
- 使用FIFO对跨时钟域通信进行数据缓冲;
- 对复位电路采用异步复位,同步释放。
16. 竞争与冒险
- 不同信号到达汇合点的时间不同,产生竞争,竞争引发电路错误即为冒险。
- 解决方法:加滤波电容,选通信号。
FPGA验证为何如此重要?
FPGA行业是技术密集型、高风险的行业。设计一个FPGA项目,仅是开模的费用通常也会达到几百万。因此,确保FPGA功能的正确性和完整性非常关键。验证工程师通过提供反馈意见,确保设计在实现过程中的每一步都符合预期。验证不仅贯穿于FPGA设计环节,也影响整个产业链。FPGA验证岗位集硬件和软件技能于一身,对于学历背景较为友好,入行后的职业发展空间广阔,技术、管理、转岗等多条发展路径都可以选择。
面试技巧
面试时,比起笔试,面试更加重要,因为面试是你与面试官的面对面交流,关键在于用你的专业知识和技巧让面试官对你产生好感。下面是几个常见的面试技巧:
-
开场白:开口第一句话不是“面试官好”,而是“老师好”,并带着笑容,这样能拉近与面试官的距离。
-
准备工具:坐下后,拿出纸和笔,随时记录面试官说的要点。面试结束后,带走纸条,回去总结学习。
-
诚实:在技术面试中,诚实是非常重要的。如果你不懂某个问题,承认不会,面试官更看重你是否有解决问题的能力,而不是单纯的记忆能力。
-
自我介绍:在自我介绍时,突出你最独特的部分,展示出你与其他候选人不同的特点。
-
面试总结:面试结束后及时总结,回顾面试过程中面试官提到的知识点,这能帮助你在未来的面试中不断进步。
FPGA行业的竞争虽然没有其他行业那么激烈,但薪资待遇却非常优厚。面试成功与否往往取决于你个人的心态和临场表现,希望大家在面试中能够保持冷静,展示出自己的专业能力,顺利入职。