ic验证和ic设计哪个好学 (ic设计难点)

失效分析 赵工 半导体工程师 2023-06-05 08:42 发表于北京

ic设计与方法讲解,ic设计验证

【丑话在前】本文分享整理的一些IC设计验证的一些常见问题,希望对于需要的朋友有用,后续还会更新。当然更希望有识之士可以留言分享对于其中问题的见解,为其他入门阅读本文的朋友广开思路,教学相长,互相学习。

Q1.定宽数组、动态数组、关联数组、队列各自的特点和使用方式。

Q2.fork...join/fork...join_any/fork...join_none之间的异同

Q3.mailbox、event、semaphore之间的异同

Q4.@(event_handle)和wait(event_handle.triggered)区别

Q5.task和function异同区别

Q6.使用clocking block的好处

Q7.同步FIFO和异步FIFO的作用和区别

Q8.SystemVerilog中OOP的三大特性

Q9.详述对于ref类型的理解

Q10.外部约束如何使用,有哪几种方式

Q11.代码覆盖率、功能覆盖率、SVA覆盖率都是衡量什么的

Q12.为什么选择验证工作

Q13.立即断言和并发断言的特点

Q14.SystemVerilog中面向对象编程的优势

Q15.如何保证验证的完备性

Q16.权重约束中”:=”和”:/”的区别

Q17.rand和randc区别

Q18.break、continue和returen的含义用法

Q19.function中return语句执行之后,function里剩下的代码语句还会执行吗

Q20.触发器和锁存器的区别

Q21.为什么要使用两级触发器进行同步

Q22.setup和hold违例分别是什么

Q23.SVA中and、intersect、or、throughout、$past如何使用

Q24.SVA中”->”和”=>”区别

Q25.如何关闭约束

Q26.deep copy和shallow copy区别

Q27.队列常用的方法有哪些

Q28.local和protected区别

Q29.常用的debug方法有哪些

Q30.亚稳态的危害

Q31.二进制码、格雷码、独热码的特点

Q32.packed array和unpacked array的区别

Q33.阻塞赋值和非阻塞赋值的区别

Q34.过程性语句和连续赋值语句的区别

Q35.initial和always的异同

Q36.FSM有哪几种?区别是什么?

Q37.数字电路中为什么要使用触发器

Q38.异步复位和同步复位各自特点和区别

Q39.异步复位同步释放代码实现

Q40.数字电路通常分为哪两种电路

Q41.illegal_bins和ignore_bins命中分别会怎么样?命中是否会计入覆盖率统计

Q42.负数采用二进制如何表示

Q43.4值逻辑变量赋值给二值逻辑变量时,x和z对应什么值

Q44.类中this是什么

Q45.子类中super是什么?

Q46.在IC验证中,我们一般对哪些内容进行随机化

Q47.通过函数返回数组有哪些方法

Q48.什么是clocking block的skew

Q49.并发断言的主要组成有哪些

Q50.如何检查随机化是否成功

Q51.什么时候randomize()失败

Q52.黑盒验证、灰盒验证、白盒验证

Q53.竞争与冒险是什么

Q54.虚接口有什么好处

Q55.接口的使用有什么优势

Q56.$cast在句柄转换时如何使用

Q57.为什么要进行后仿真

Q58.如何进行后仿真

Q59.什么是后仿真

Q60.当task的通过ref传递数据时,如果task内部对数据进行了修改,task外部是否立即可以看到数据被修改了还是要等到task执行完才能看到

Q61.使用packed struct定义下面数据包:

31:24 23:16 15:4 3:0

p1 p2 p3 p4

Q62.随机化的优势是什么?是不是意味着不再需要定向case了

Q63.randomize with{....}中的约束与class中的约束是什么关系

Q64.如何基于随机化的验证环境写定向测试

Q65.为什么数字电路系统中要使用二进制

Q66.数字电路中可能存在的风险问题有哪些?

Q67.什么是虚方法

Q68.低功耗方法你了解哪些

Q69.使用FSM设置序列检测器(序列:110110)

Q70.描述你对数字集成电路设计流程的认识

Q71.虚接口是什么

Q72.预定义的随机方法有哪些

Q73.预定义的随机方法是否可以重载

Q74.预定义的随机方法执行顺序和执行情况

Q75.package用途是什么

Q76.package如何使用

Q77.如何在子类中调用父类中的方法

Q78.bit[7:0]和byte有什么区别

Q79.类中的方法和类外的方法有什么区别

Q80.如何将类中的方法定义在类外

Q81.modport的用途是什么

Q82.struct和union的异同

Uniion的成员

Q83.$rose和posedge区别

Q84.如何在fork...join结构中kill进程

Q85.什么是覆盖率驱动的验证

Q86.如何检查句柄是否指向有效对象

Q87.semaphore用处是什么

Q88.为什么要使用断言

Q89.如何在clocking block中声明异步信号

Q90.代码覆盖率和功能覆盖率的关系

Q91.什么是验证计划,应该包含哪些部分

Q92.类中的静态方法使用注意事项有哪些

Q93.initial和final的区别

Q94.建模存储器,使用什么类型的数组

Q95.如何避免测试平台和dut之间的竞争冒险

Q96.logic、bit、wire区别

Q97.什么是抽象类

Q98.always@*与always_comb区别

Q99.简述验证结构

Q100.parameter、define和typedef之间区别

Q101.new()和new[]的区别

Q102.solve...before如何使用

Q103.mailbox和队列的异同

Q104.什么是静态变量

Q105.什么是生命周期

Q106.交叉覆盖率的优点

Q107.pass_by_value和pass_by_ref区别

Q108.$display和$write区别

Q109.同一个作用范围内使用枚举类型需要注意什么

Q110.敏感信号列表信号缺失会如何

Q111.covergroup在类中使用和类外分别如何使用

Q112.简述回调机制

Q113.三段式状态机是哪三段(状态转移、组合逻辑描述状态转移规律、电路输出)

Q114.什么是虚接口,为什么要使用虚接口

Q115.Verilog中for能不能综合

Q116.举例常见的单bit同步机制

Q117.举例常见的多bit同步机制

Q118.SystemVerilog中##n表示什么

Q119.UVM指的是什么?具有哪些特点,为什么要使用UVM?

Q120.简介工厂机制(factory)

Q121.简介事务级建模

Q122.uvm_component和uvm_object的区别

Q123.UVM中run_phase和main_phase的区别

Q124.为什么要使用phase机制

Q125.m_sequencer和p_sequencer区别

Q126.top-down phase、bottom-up phase有哪些

Q127.为什么build_phase是top-down phase,connect_phase是bottom-up phase

Q128.$size用于packed array和unpacked array分别得到的什么

Q129.class和struct的异同

Q130.class和module的异同

Q131.对象创建的初始化顺序

Q132.子类和父类中是否可以定义相同名称的成员变量和方法(非虚方法)

Q133.为什么需要随机

Q134.线程间通信控制共享资源的原因是什么

Q135.uvm_transaction和uvm_seq_item的关系

Q136.p_sequencer是什么?

Q137.m_sequencer是什么?

Q138.new()和create有什么区别

Q139.如何启动sequence

Q140.copy和clone的区别

Q141.Agent中的Active mode和Passive mode区别

Q412.在UVM的工厂机制中,为什么要使用注册机制

Q143.简述UVM的工厂机制

Q144.UVM中的RAL什么,可以用来干什么?

Q145.简述系统级、子系统级和模块级验证

Q146.IP和VIP分别指的是什么

Q147.set_config_*和uvm_config_db区别

Q148.$stop、$finish和final如何使用

Q149.简述virtual sequence和virtual sequencer作用

Q150.简述code review的重要性

来源:处芯积律;作者nanoty

ic设计与方法讲解,ic设计验证

半导体工程师

半导体经验分享,半导体成果交流,半导体信息发布。半导体行业动态,半导体从业者职业规划,芯片工程师成长历程。