2022.11.5更新:(IC笔试题目有JL科技、TR半导体、HZW、MX半导体、RSKX)欢迎大家一起讨论题目,也请多多指教弟弟。笔试已经转移到新开帖子了。
目前投递60+,人才库8,offer6拒3签3。
第四阶段的目标是找到一个IC的开发岗位offer,继续往前走。
越努力,越幸运。
BYD(拒绝签约)
广东某双非工科院校,宣讲会当晚电话面试约40mins,主要是对方介绍汽车研究院和自己介绍自己的简历,对着简历一行一行问。三天后在教室现场人事面,通知9:20到,提前十分钟到教室,等到11:20才轮到,面试内容为查户口,期望薪资报了个数也没往下谈,你说什么他就记录什么。两天后通知签约,通知晚上7:00到,到了之后上一场的人还没签完,又等了近半小时才开始讲,教室坐满加站满人,教室外走廊也站了很多人。当场拒绝比亚迪。
待遇:双非硕士级别为F3,底薪10k,绩效0.36,前三个月没绩效,最后也没年终奖,说是利润奖,按21年报的净利润10%除以技术人员数量44318,人均近7k,又不是保证人人都有的。公积金按底薪的5%交,住4人间宿舍。
结论:招牛马,已拒绝。
YST(拒绝后hr保留)
15k*14薪,虽然是1-4个月年终奖,但是刚进去只能是1-2;
公积金按8k*5%交,社保按东莞交三百多;
住单人间月租200或300,吃饭类比学校食堂,东莞松山湖
丑的(GOT OFFER)
一面:天河五星级酒店无领导小组群面,题目为电动汽车设计方案,组员为4华工1暨大1双非的压倒性阵容,很无聊,双一流的学生也是真的会说话,不得不佩服。
测评:当晚收到测评邮件。
二面:视频面,很轻松,面试官还没开摄像头,全程对着自己说话。
签约:整了一天。
待遇:17.5k*14,级别好像是14级,公积金按8k多*7交610左右,住宿单间,其他奖项大约3-5w
CVTE(拒绝签约)
笔试:九月初
一面:电话面,问得没有很深入,半小时,国庆后的第一周
二面:人事面聊聊天,半小时
现场见面:三产在萝岗最边缘,和部门leader了解业务。最后选择拒绝,理由有三方面。首先是业务,做的是空调控制板卡,电机驱动,空调这个行业十年前已经是竞争充分了,个人并不看好这种赛道;其次是薪资,第一年学习阶段绩效拿不满,也就是年终没有3个月,内部调薪一年三次,不是领导评而是同事之间互相评,薪资透明,他说我的薪资已经是倒挂了,那我岂不是两年内基本不用考虑调薪,甚至还可能会被排挤;最后是加班文化,九点后下班,弹性工作制不打卡,相当于随叫随到,他说基本保证双休。和美的比起来性价比就低很多了。
待遇:17k*13+年终3个月,公积金按月薪-1k2住房补贴的5%交,吃免费无住宿,年调薪2-5次(250元/档,封顶8档),加班是文化,宣讲会的时候放了张部门全部人半夜四点下班的合照,有个朋友在里面天天九点后下班。
SY半导体(GOT OFFER)
10.28早上十点打电话约面试,下午三点半面试,五点半hr沟通发offer,不到八小时拿下。
珠海,应用工程师,保底18k*16(按绩效可多最多2个月的)+12w签字费三年均匀发,公积金按工资18k*12%。
长期激励就不展开了,类似丑的那些项目奖专利奖什么的,要IPO也可能有原始股。
住宿:吃食堂,申请珠海的人才公寓1k多,这方面没有丑的方便。
ZH电源(GOT OFFER)
投递:9月初
一面:十月中
二面:一面之后一星期
20k*14,年终奖看绩效,不一定是2,公积金按工资65%交5%,一日两顿餐补30,夜宵免费,朝九晚六还双休,坐标深圳。
目录
SY半导体(GOT OFFER)
ZH电源(GOT OFFER)
是否进行覆盖率的收集 ,都有哪些覆盖率,代码覆盖率又包含哪些内容?
对于同步fifo,每100个cycle可以写入80个数据,每10个cycle可以读出8个数据,fifo的深度至少为?
get_next_item()和try_next_item()有什么区别?
什么是Clock Jitter和Clock Skew,这两者有什么区别?
什么是转换时间(Transition Time)和传播延迟(Propagation Delay)?
sequencer的仲裁特性set_arbitration和锁定机制(lock和grab)
virtual sequence和virtual sequencer中virtual的含义
为什么要分开实现sequence、sequencer、driver?
什么是field_automation机制和objection机制?
APB和AHB协议 ,如何完成APB与AHB之间的握手?
通过一个AHB to APB bridge进行握手
AHB怎么完成burst传输?
首先看burst的类型是single、wrap还是incr,single就是单个传输,地址阶段从总线拿到地址和控制信号后,在数据阶段wdata拉高等待ready拉高完成传输。
incr表示地址不循环增量,每传输一个数据相应的地址就递增;wrap表示地址循环,具体看是多少拍为一个循环,如果是wrap4,数据位宽size是8,那么就是从当前地址开始进行增量为4、地址范围32的地址循环传输。
在AHB到APB bridge的测试点?
APB的测试点如下:
指令测试(覆盖组cg_apb_command,收集读写和idle三个指令);
传输时间测试(覆盖组cg_apb_trans_timing_group,看传输多个数据的sel信号的翻转情况,1次读写要2个clk,sel传送1个数据要维持2个clk为高后拉低,传送2个数据要维持2*2个clk为高后拉低,以此类推,burst test一共有4,8,16,32个数据;enable信号在连续读写时就是0101一高一低,如果是单个single的,就可能是1后拉低[*2:10]);
读写顺序的测试(覆盖组cg_apb_write_read_order_group,采集write信号,读为1写为0,共四种读写顺序)
项目中FIFO的测试点?FIFO的深度是多少?
根据硬件设计v文件sync_dff_fifo,深度是32
你是如何判别fifo的空满?
根据读写指针来判断fifo空满。
空标志:读指针追上写指针,两个指针所有位相同
满标志:写时针写满一圈,标志位置1,然后追上读指针,就是第一位相反,后面位相反
是否进行覆盖率的收集 ,都有哪些覆盖率,代码覆盖率又包含哪些内容?
是的。覆盖率的收集分为几块:首先是APB覆盖率的收集,一共测试了三个测试点,指令测试、传输时间测试、读写顺序的测试。
其次是
你所做项目的测试点有什么?
是否用到了断言覆盖率?
是的。断言覆盖率编写在覆盖组的后面。
1 检查地址中有无不定值:在sel拉高时(交叠蕴含|→)用系统函数$isunknown(addr)评估地址是否含x和z,如果是则返回1
2 检查sel拉高后下一拍enable是否拉高:用$rose(sel)和非交叠蕴含|⇒ $rose(enable)
3 检查enable拉高后下一拍是否被拉低:enable要拉低需要完成数据传输,所以在enable和ready都为高时评估|→$fell(enable)
4 检查wdata在传输数据时是否稳定:传输数据的两个clk的序列描述出来((psel && !penable) ##1 (psel && penable)),则评估$stable(wdata)
5 检查地址是否在两次连续传输保持稳定:定义两个地址变量,在enable为高时存入第一个地址,下一拍进入setup状态时调用$past(addr)存入第二个地址,然后评估两个地址是否一致
6 同上,检查write是否稳定:
7 检查读操作时rdata是否稳定:读操作write为低、ready为高、enable为高时,评估rdata是否稳定$stable()
8 检查不连续传输的write序列是否正确:enable拉高后评估write是否贯穿到下一次传输,由于不连续,enable拉高后的下一拍是idle,然后进入下一次传输,所以序列是$rose(penable) |-> pwrite throughout (##1 (!penable)[*2] ##1 penable[=1])
9 检查连续传输的write序列是否正确:enable拉高后评估write是否贯穿两拍后enable为高这个序列
10 检查连续读写的序列是否正确:连续读写时,write高2拍低2拍,enable0101,由于是连续写读,地址也要保持一致
11 连续两次写后读:在10的基础上复制多一次,write改为!write
12 13 不连续读,连续读,和9、10的区别就是write为!write
14 连续读写读:也是同理
寄存器和锁存器的区别
寄存器:寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。
锁存器:可以把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。锁存器是利用电平控制数据的输入。
寄存器是同步时钟控制,而锁存器是电位信号控制。锁存器一般由电平信号控制,属于电平敏感型。寄存器一般由时钟信号信号控制,属于边沿敏感型。
寄存器的输出端平时不随输入端的变化而变化,只有在时钟有效时才将输入端的数据送输出端(打入寄存器),而锁存器的输出端平时总随输入端变化而变化,只有当锁存器信号到达时,才将输出端的状态锁存起来,使其不再随输入端的变化而变化
什么是建立时间和保持时间?如果违例怎么办?
在时钟采样沿之前,数据必须保持稳定的时间,该时间量称为建立时间
在时钟采样沿之后,数据必须保持稳定的最短时间,称为保持时间。
建立时间余量(Setup Slack): 要求数据到达时间和数据实际到达时间的差值。
保持时间余量(Hold Slack): 数据实际结束位置和要求数据结束位置的差值。
数据从Reg1到Reg2,理想情况下采样沿到达Reg2时,数据的中间位置到达Reg2的数据端,这样出现最优的建立时间和保持时间,此时采样的数据也是最稳定的,如果时钟早到或者数据早到就会产生余量,严重的情况下就会产生时序违例。