• 【2023灵动股份笔试题】~ 题目及参考答案


    0. 前言

    艾睿博迪,大家好啊!最近“二舅”这边又有疫情了,这还不知道这个月的线下宣讲会能不能如约而至呢!唉,这疫情把生活都弄乱了,呜呜呜!!!最近大家所在的地方都怎么样了呢?可以评论区打一波。再就是各位一定要注意安全,身体是革命的本钱呀!!!

    今天大家带来的是前几天做的一套笔试题,名称如标题所示,希望大家正确食用(点赞+转发+评论)

    本次笔试题总体来说不难,一共三个部分,单选、多选和简答。时间还是有一点点紧的。

    下边是具体的题目,仅仅是回忆,哈哈哈!!!

    1. 题目 & 答案

    第一题

    考察 断言?

    解析:这些题也是验证基本必考的,大家多看看基础知识即可。或者也可以看一下我之前写的博客,上边都有总结!

    第二题

    False path是什么?

    解析:

    FALSE PATH就是我们在进行时序分析时,不希望工具进行分析的那些路径。一般不需要工具时序分析的路径指的是异步的路径,异步路径就是指的不同时钟域的路径。

    在QuartusII的一个培训文档里面解释了什么时候要用到FALSE PATH:

    1. 从逻辑上考虑,与电路正常工作不相关的那些路径,比如测试逻辑,静态或准静态逻辑。

    2. 从时序上考虑,我们在综合时不需要分析的那些路径,比如跨越异步时钟域的路径。

    一些情况下,不设置FALSE PATH也可以,工具会去分析相关时序路径,但是肯定会有setup或者hold不满足,这个时候就需要去确认这些路径是否有问题了。而设置了FALSE PATH后,就告诉工具不用去分析这些路径了,这样工具就不会报告出来了,另外还有一个好处就是综合布局布线的时间会大幅减少,因为没有时序问题了,工具就可以跑的很快。因此,一般比较正规的项目,都需要设置FALSE PATH。

    第三题

    那个题我会,但我忘了是什么了!!!

    第四题

    动态验证的范畴?

    解析:

    所谓动态验证即验证结果依赖于向量输入,动态改变。形式验证和STA都不依赖于具体测试用例。

    所以说,前仿、后仿、modelsim仿真都是动态验证;

    而形式验证、STA不属于动态验证。

    第五题

    Eda的仿真工具和debug的工具有哪些?

    解析:

    目前行业内的验证工具按照验证方法来划分显得更为清晰,我们在标注工具的同时,也会附上其主要用途。在讲工具归属的时候,我们将分别采用前缀 S-(Synopsys),C-(Cadence)和 M-(Mentor)来表示。

    动态验证方法依赖于仿真器(Simulator),包括 S-VCS,C-Incisive & Xcelium,M-Questasim。

    硬件加速模拟器(emulator),包括 S-Zebu,C-Palladium,M-Veloce。

    形式验证工具(formal),包括 S-VC Formal,C-Jasper,M-Questa Formal。

    仿真调试工具(debug),包括 S-Verdi,C-SimVision,M-Questa Visualizer Debug。

    第六题

    SV中的数据类型有哪些?

    解析:SV中包括很多数据类型,比如二值的和四值的,其中包括什么我就不具体写出来了,感兴趣的同学可以到我博客那边看一下,写的很清楚。

    第七题

    使用interface链接dut和验证环境的好处是什么?为什么接口要定义成virtual的?

    解析:

    (问题一)

    a,接口最大的一个优势就是便于可重用,当我们的信号上百上千的时候,同时重复出现很多次,就应用接口。

    b,modport可以将接口的一系列信号捆绑。

    c,要增加信号只需要在接口中声明一次,高层需要调用的话可以之间调用,如果是verilog的端口连接,则必须在所有的层次都声明这个新增加的接口,容易出错。

    (问题二)

    virtual interface相当于物理interface的指针变量,你可以有多个指针变量指向同一个物理interface,多个物理interface连接有问题.一般就是在最顶层的TB中例化一个物理interface,然后环境中使用多个virtual interface指向同一接口的物理interface。

    还可以从这个思路理解:virtual interface是仿真运行时才连接到DUT上,如果只是interface,在编译时就必须进行连接。class是automatics,在运行的时候产生。如果类里的接口非virtual,编译时接口并不存在,就会出现编译错误。

    第八题

    rand int a;

    (1)用sv写出a在01234中的随机值

    (2)除了第一问的要求,还需要使得0123取值的概率为1/10,4的取值概率为3/5

    解析:

    (问题一)

    constraint a_value  {
      
      a inside {[0 : 4]};
      
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (问题二)

    constraint a_value  {
    
    a dist {[0 : 3] := 10, 4 := 60};
    
    或者
    
    a dist {[0:3] :/ 40, 4 :/ 60};
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    第九题

    描述 soc/ip 验证之间的区别,以及验证二者之间的侧重点。

    解析:

    SoC 和 IP 从独立性来看,前者较后者更为独立,往往具备更加完整的功能。SoC 会由多个IP、子系统和其它系统模块构成,从层次来看,IP 是构成 SoC 的重要组成部分。在验证SoC 时,首先需要确保其 IP 级别都完成了验证,而在系统级别需要验证各个模块之间的交互和协调情况、集成连线情况,测试用例会更加真实,当然,仿真速度也下降很快,一般需要做门级仿真。在 IP 级验证时,如果是内部 IP,那么需要就接下来的运用场景(配置情况),展开重点性的验证,如果是向外部提供的 IP,那么需要针对其参数配置展开更为全面细致的验证工作,所以其特点不但是要求验证每一项功能,而且是每一项功能在不同配置下的行为是否是正确的。

    第十题

    描述从芯片 spec 到 tapeout 的整个过程,重点介绍哪些步骤需要验证,以及所需的文件和验证重点。

    解析:

    a. 从 spec 到模块 RTL 时,除了 RTL 文件,还需要寄存器文件来生成寄存器模型,构建UVM 验证环境,主要验证每一项 RTL 功能。

    b. 从模块到子系统时,除了之前的文件,如果在子系统级别需要模拟电源域开关,那么还需要 UPF,如果子系统单独综合且较为独立,可能还需要做门级仿真,那么需要综合网表和 SDF 文件,验证的重点将是子系统的各项完整功能。

    c.在系统级别时,除了系统级的 RTL 仿真,也需要进行 UPF 仿真和门级仿真,因此也需要对应的 UPF 文件、网表和 SDF 文件,验证的重点是各个子系统之间的交互和协调情况、集成连线情况。

    声明

    本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!

    本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!

    如果觉得对你有用的话,记得收藏+评论!!!

    全网各平台同名===> “IC二舅”

    下一期如果有大家想看的 或者 哪块不懂想学习的,可以私聊或在群里提问都可以,“二舅” 给你安排上!!!

  • 相关阅读:
    【Flink读写外部系统】Flink异步访问外部系统_mysql
    FSC认证助您进入日新月异的时尚领域
    c# 如何将程序加密隐藏?
    【linux】进程等待,进程替换
    关于.model.meta,.model.index,.model.data-00000-of-00001--学习笔记
    pg14安装_rpm方式
    堆专题1 向下调整构建大顶堆
    Linux驱动开发(十七)---树莓派PWM驱动
    Camera Tunning ISP 模块面试总结
    Socks5代理与代理IP在数字世界的应用
  • 原文地址:https://blog.csdn.net/qq_40549426/article/details/126655693