转行上岸年薪40W+学长整理:IC面试之verilog(上)

1、同步复位和异步复位的区别,体现在verilog代码中是什么样子

如图所示

2、 变量类型、四值逻辑和二值逻辑区别及使用


①二值逻辑只可以表示0和1;四值逻辑可表示0、1、x和z;
②二值逻辑仿真工具开辟的存储空间更小且其行为更接近真实的电路;使用四值逻辑是因为实际过程中会出现错误,如volition等从而出现x和z态来提示出错;
③二值逻辑的默认值是0;四值逻辑的默认值为x。

3、 Wire、reg 和 logic有什么区别

①总结Verilog wire和reg的区别:
wire表示导线结构,reg表示存储结构。
wire使用assign赋值,reg赋值定义在always、initial、task或function代码块中。
wire赋值综合成组合逻辑,reg可能综合成时序逻辑,也可能综合成组合逻辑。
②总结SystemVerilog logic的使用方法:
单驱动时logic可完全替代reg和wire,除了Evan提到的赋初值问题。
多驱动时,如inout类型端口,使用wire。

4、 使用权重时,:= 和 :/ 区别

:=表示值范围内的每一个值的权重是相同的;:/表示权重均分到值范围内的每一个值。如src dist {[1:3]:=60};1,2,3的权重都是60,概率均为60/180; dst dist {[1:3]:/60};1,2,3权重均分60,为20,概率为20/60.

5、 随机时,如果想把constraint里的某个数据不让它随机,使用什么方法

①如果只有少数几个变量需要修改,可以调用rand-mode();函数把这些变量设置为非随机数;如p.length.rand_mode(0);p.length=42。
②p.constraint_mode(0);关闭随机约束块;(0);关闭,(1);打开

6、 array中,pack和unpack的区别

①非合并数组:如 bit [7:0] arry1[3];
存储方式:按[7:0] 8位存放,32位中没使用也会继续开辟新空间

②合并数据:如bit [3:0] [7:0] arry2;
存储方式:紧凑连续存放,32位不存放完不会开辟新空间

7、 oop的主要特点

8、有两个变量rand A, rand B, 怎么控制b先随机

可以加入把B加入到fork join中。如:
initial begin
transaction t;
t=new();
fork
t.randomize(B);
join
t.randomize(A);
end

9、covergroup在哪里定义,哪里例化,有哪些,分别怎么做采样,根据什么来写

10、状态机分类;

①Mealy状态机:输出取决于输入和当前状态

11、setup time, hold time,

①Setup/holdtime是芯片对输入信号和时钟信号之间的时间要求。Setup time是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
②hold time是指触发器的时钟信号上升沿到来以后, 数据稳定不变的时间。如果holdtime不够,数据同样不能被打入触发器

12、sv中队列的方法是什么(push, pop insert之类的), 说一下队列、动态数组、关联数组怎么用

①队列;可以在一个队列的任何位置进行增加或者删除元素;声明q[$]包含方法有q.insert(i,j)—在固定位置i插入数j;q.push_front(bask)—前(后)插入;j=q.pop_back(front)—从后(前)取出给j
②动态数组:new[]来制定位宽;如
int dyn[];
initial begin
dyn = new[5];
end
③ 关联数组:其主要针对需要超大空间但又不是全部需要所有数据的时候使用,类似于hash,通过一个索引值和一个数据组成,索引值必须是唯一的。

13、竞争与冒险

①竞争: 在组合电路当中,当某个输入变量具有两条以上的路径到达输出端的时候,由于每条路径上的延迟时间的不同,到达终点的时间就会有先有后,这一现象称作竞争。所以这是一个输入级的概念。
②冒险:组合逻辑电路中有两个输入信号A和B,当A、B同时向相反的逻辑电平跳变(A : 1—> 0 ; B : 0 —> 1),有可能导致输出端可能产生毛刺的现象,称为冒险。这是一个输出级概念。
③解决方法:
方法一:接入滤波电容
在输出端并接一个滤波电容Cf,可以将毛刺的幅度削弱至有效点平范围之下。
缺点:增加了输出电压波形的上升时间和下降时间,使波形变坏。适合对输出波形前后无严格要求的场合。
方法二:引入选通脉冲
设法得到一个与输入信号同步的选通脉冲,对这个脉冲的宽度和作用时间有严格要求。
方法三:增加冗余项
例如:Y = AB +A’C,在B=C=1的条件下,会产生竞争冒险。通过增加冗余项BC来消除。
由于BC=1,所以Y = AB +A’C + BC成立。
此时,无论A的状态如何变化,都不会引起竞争与冒险。
方法四:加blocking clock;

14、怎么收集功能覆盖率的;

15、sv中的约束,怎么将256个数从小到大排列,不用sort方法

constraint c {for(int i=0;i<7,i++)
for(int j=i+1;j<8:i++)
if(array[i]>array[j]) begin
int temp = arrays[i];
arrays[i] = arrays[j];
arrays[j] = temp;
end;}

16、rand和randc

简单的说,rand是随机,randc是循环随机。rand相当于样本放回的随机采样,相邻两次可能相同。randc则是拿一个少一个,当每个可能的值都出现一遍后才会重复。

17、SV中同步方式有哪几种

①事件(event)

event可用于实现线程的同步,通过->操作符来触发事件,通过@和wait来等待事件。在这当中,@为边沿敏感型,可能出现因事件已经被触发而被阻塞住的情况,而wait(xx.triggered)则是电平敏感,如果当前事件已经被触发也不会被阻塞

②旗语(semaphore)

旗语可以实现对同一资源的控制访问,当一个资源存在多个请求时,可通过semaphore的方式来分配“钥匙”来控 制多方的访问请求。

③、信箱(mailbox)

在使用sv搭建验证环境时,mailbox的使用还是比较普遍,主要用于各个组件之间的通信(及信息传输)

18、谈谈SV中的class

①验证证环境的不同组件其功能和所需要处理的数据内容是不相同的。不同环境的同一类型的组件其所具备的功能和数据内容是相似的。基于以上两点,验证世界的各个组件角色明确、功能分立,使用面向对象编程与验证世界的构建原则十分符合;
②class类:基本模块包括成员变量和方法。在Verilog中module也可以包含变量和方法,只不过它是“硬件盒子”,class是“软件盒子”。
③Verilog中没有句柄的概念,即只能通过层次化的索引方式A.B.sigx,而SV中的class通过句柄可以将对象的指针赋予其它句柄,使得操作更加灵活。
④与硬件域例如module、interface不同的是,在class中声明的变量其默认为类型为动态变量,即其声明周期在仿真开始后的某时间点开始到某时间点结束。在class中定义的方法默认类型是动态方法,也可以通过关键字static修改为静态方法。
#数字IC设计工程师##IC验证##芯片IC验证工程师##数字IC##ic就业#
全部评论
会持续更新哈~
1 回复 分享
发布于 2022-07-04 18:04
厉害👍
点赞 回复 分享
发布于 2022-08-14 08:00

相关推荐

避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
评论
31
256
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务