一面是电话面,问了一些八股,大概七八个问题,没有很深入的问,大概阐述思路就可以;
二面是车轮面,一共三轮,一轮大概45min,会考察英文;
三面线下面试,基本上就是面试官看着做题,有验证方案、手撕代码、脑筋急转弯的题目。
1. 8bit的乘法器,8bit*8bit得到一个16bit,输入到输出有3个cycle的delay,请问需要怎样做输入激励,确保验证的完备性?
2. 验证的项目中uvm是怎么开启的,怎样知道test_case中写的输入激励都被输入给了dut?用什么机制?
3. 验证过程中遇到的bug是什么,怎么解决的?
4. 请介绍一下验证过程中用到的寄存器模型,你是怎么写寄存器的,寄存器有多少?
5. 写一个function用于将输入的32bit的a,b变量判断一共有哪些位相等?
6. 写一个function用于将输入的32bit的a变量,每相邻的两个位做互换?如果不采用function的方法,直接用逻辑运算符怎么操作?mask_code 010101...和10101010...分别与a^(a>>1),a^(a<<1)按位与,然后结果按位或
7. 异步fifo,深度位6bit,请问格雷码应该如何写?怎样判断写满还是读空?
8. 跨时钟域,一个spi的slave接收master输入过来sck和sdi,怎样对其进行处理?我回答的打两拍。。但是他后来的意思是多bit跨时钟域想看我怎么解决,然后回答握手或者异步fifo,就开始考6bit的异步fifo格雷码了
9. 在dc综合中如何进行多时钟域的constraint?有哪几种方法?没怎么做过综合只回答了set_flase_path和set_multicycle_path。。好像还有个逻辑互斥