2024年数字IC秋招-速腾聚创-数字芯片验证工程师-笔试题

文章目录

  • 前言
  • 一、单选题
    • 1.Verilog和OOP都具有例化的概念,但是在细节方面却存在一些区别。下面的选项中关于Verilog和OOP中例化的概念说法错误的是()。
    • 2、在system verilog中,关于类(class)的说法正确的是:
    • 3、关于以下UVM的说法错误的是?
    • 4、在编写System Verilog断言的时候,要表示在当前时钟沿检查到a=1后,检测接下来连续4个时钟内b=1。以下写法正确的是:
    • 5、使用system verilog编写如下代码,下列选项正确的是:
    • 6、在某个类中,有如下定义,下列选项描述正确的是:
    • 7、System verilog常用于编写testbench。关于以下两个赋值语句(略去其他语句),说法正确的是:
  • 二、问答题
    • 1、在同步电路中,什么建立时间和保持时间?怎么样计算同步电路的最大速度?
    • 2、简述SV或者UVM验证平台的基本框架图
    • 3、针对某组接口(可以以APB slave接口为例)进行测试点分解(即验证特性提取)时,可以从哪些方面进行分解提取,以保证验证全面性。
    • 4、代码覆盖率和功能覆盖率有什么区别?简述你对代码覆盖率和功能覆盖率的理解。
    • 5、简述interface和clock blocking的优点
    • 6、列举随机测试时,你通常考虑的随机化对象有哪些?
    • 7、简述定宽数组、动态数组、队列、关联数组的特点。
    • 8、请简述:在UVM验证平台运行过程中,build_phase,connect_phase,run_phase的功能和典型应用?
    • 9、简述UVM工厂机制的意义
    • 10、阅读程序,写出输出结果
    • 11、采用UVM或SV编写一个简单的apb接口的driver。


前言

笔试题型:单选 + 问答题
笔试平台:牛客(手机+电脑监控)
笔试时间:1h


一、单选题

1.Verilog和OOP都具有例化的概念,但是在细节方面却存在一些区别。下面的选项中关于Verilog和OOP中例化的概念说法错误的是()。

A. Verilog中的例化是动态的
B. System Verilog类在使用前必须先例化
C. verilog的实例名只可以指向一个实例
D. System Verilog句柄可以指向很多对象,当然一次只能指向一个


2、在system verilog中,关于类(class)的说法正确的是:

A. 类只能在program,package中定义,不能在module中定义
B. 类只能在program中使用,不能在module中使用
C. 类中的程序称为方法,也就是在类的作用域内定义的内部task或者function
D. 使用constant声明静态变量


3、关于以下UVM的说法错误的是?

A. uvm_object是UVM中最基本的类,几乎所有的类都继承自uvm_object
B. UVM真正的树根是一个称为uvm_top,uvm_top是一个全局变量,它是uvm_root唯一的一个实例
C. 可以通过get_full_name()函数获取不同component的路径
D. UVM_FATAL不会自动结束仿真


4、在编写System Verilog断言的时候,要表示在当前时钟沿检查到a=1后,检测接下来连续4个时钟内b=1。以下写法正确的是:

A. property p;
@(posedge clk)a |-> ##1 b[*4];
endproperty
B. property p;
@(posedge clk) a |-> ##[0:3] b;
endproperty
C. property p;
@(posedge clk) a l-> ##1 b[=4];
endproperty
D. property p;
@(posedge clk)a/-> ##[1:4] b;
endproperty


5、使用system verilog编写如下代码,下列选项正确的是:

integer p,q;
class A;rand integer x;constraint c{x<0;}
endclassclass B extends A;constraint c{x>0;}
endclassinitial beginA cla_a = new();B cla_b = new();cla_a.randomize();cla_b.randomize();p= cla_a.x;q = cla_b.x;end

A. q和p的值都大于0
B. q的值大于0,p的值小于0
C. 约束条件冲突,不能完成随机化
D. q.p的值都小于0


6、在某个类中,有如下定义,下列选项描述正确的是:

rand int len;
rand bit mode;constraint c{mode == 1 -> len dist {10:=1,20:=2};mode == 0 -> len dist {10:=2,20:=1};solve mode before len;
constraint mode

A. len取10的概率是1/2;
B. len取10的概率是1/3;
C. len取10的概率是1/4;
D. len取10的概率是1;


7、System verilog常用于编写testbench。关于以下两个赋值语句(略去其他语句),说法正确的是:

语句一:
wire a,b,c;
initial
#10 a = b+C;
语句二:
wire a,b,c;
initial
a = #10 b+C;

A. 两个语句是相同的,没有差别
B. #10a = b+c;表示延迟10个时钟单位后,将0时刻的b+c的值赋予a,
C. a=#10 b+c;表示延迟10个时钟单位后,将10时刻的b+c的值赋予a。
D. a= #10 b+c;表示延迟10个时钟单位后,将0时刻的b+c的值赋予a。


二、问答题

1、在同步电路中,什么建立时间和保持时间?怎么样计算同步电路的最大速度?

2、简述SV或者UVM验证平台的基本框架图

3、针对某组接口(可以以APB slave接口为例)进行测试点分解(即验证特性提取)时,可以从哪些方面进行分解提取,以保证验证全面性。

4、代码覆盖率和功能覆盖率有什么区别?简述你对代码覆盖率和功能覆盖率的理解。

5、简述interface和clock blocking的优点

6、列举随机测试时,你通常考虑的随机化对象有哪些?

7、简述定宽数组、动态数组、队列、关联数组的特点。

8、请简述:在UVM验证平台运行过程中,build_phase,connect_phase,run_phase的功能和典型应用?

9、简述UVM工厂机制的意义

10、阅读程序,写出输出结果

class transaction;int id;static int count=O;function new();id = count++;endfunction
endclassclass bad_transaction extends transaction;function new();super.new();endfunction
endclassmodule test;initial begintransaction t1,t2;bad_transaction bad_t1,bad_t2; //step (1)t1=new();$display("t1.id=%0d,t1.count=%0d",t1.id,t1.count); //step (2)t2=new();$display("t2. id=%0d,t2.count=%0d" ,t2.id,t2.count); //step(3)bad_t1=new();$display("bad_t1.id=%0d,bad_t1.count=%0d".bad_t1.id.bad_t1.count); //step(4)bad_t2=new();$display("bad_t2.id=%0d,bad_t2.count=%0d",bad_t2.id,bad_t2.count);l/step(5)t2=bad_t1;$display(""t2.id=%0d,t2.count=%0d",t2.id,t2.count); //step (6)bad_t2= t1;$display("bad_t2.id=%0d,bad_t2.count=%0d",bad_t2.id.bad_t2.count);end
endmodule

11、采用UVM或SV编写一个简单的apb接口的driver。

注:DUT作为APB slave,编写一个apb master driver。其中,pclk/paddr/pwrite/psel/penable/pwdata作为DUT的输入,pready/prdata为DUT输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手Spring Cloud 十四:璀璨物联网之路

快速上手Spring Cloud 一&#xff1a;Spring Cloud 简介 快速上手Spring Cloud 二&#xff1a;核心组件解析 快速上手Spring Cloud 三&#xff1a;API网关深入探索与实战应用 快速上手Spring Cloud 四&#xff1a;微服务治理与安全 快速上手Spring Cloud 五&#xff1a;Spring …

蓝桥杯刷题计划-洛谷-持续更新

P8598 [蓝桥杯 2013 省 AB] 错误票据 题目 #include <bits/stdc.h> #define endl \n #define int long long #define INF 0x3f3f3f3f3f const int N 1000010; using namespace std; int arr[N]; signed main() {int N;cin>>N;int idx;while(cin>>arr[idx…

基于ssm的bbs论坛系统

开发环境&#xff1a;idea 前端&#xff1a;JQueryBootstraplayui后端&#xff1a;SpringSpringMVCMybatis数据库&#xff1a;mysqlredis 基于ssm的bbs论坛系统&#xff0c;功能有论坛、导读、动态、排行榜以及后台管理系统等等 话不多说&#xff0c;看图&#xff01;&#x…

AcWing 173.矩阵距离

首先就是上一个时间超时的做法&#xff1a; #include<iostream> #include<stdio.h> #include<cstring> #include<cstdlib> #include<cmath> #include<vector> #include<algorithm> #include<stack> #include<queue> #…

HttpRunner 接口自动化测试框架实战,打造高效测试流程

简介 2018年python开发者大会上&#xff0c;了解到HttpRuuner开源自动化测试框架&#xff0c;采用YAML/JSON格式管理用例&#xff0c;能录制和转换生成用例功能&#xff0c;充分做到用例与测试代码分离&#xff0c;相比excel维护测试场景数据更加简洁。在此&#xff0c;利用业…

VLSM,CIDR,ICMP

IP编址 VLSM&#xff1a;可变长子网掩码 D类是主播&#xff0c;E类是保留 网络位向主机位借位&#xff0c;网络位向右移动。 1.网络位增加 2. 193.1.1.0/24 需求分析如下&#xff1a; CIDR -- 无类域间路由 -- 超网

苹果CMS影视APP源码,二开版本带视频教程

编译app教程 工具下载&#xff1a;Android Studio 官网地址&#xff1a;https://developer.android.google.cn/studio/ 环境设置&#xff1a; 设置中文&#xff1a;https://blog.csdn.net/qq_37131111/article/details/131492844 汉化包找最新的下载就行了&#xff0c;随便下载…

【Web前端】CSS基本语法规范和引入方式常见选择器用法常见元素属性

一、基本语法规范 选择器 {一条/N条声明} 选择器决定针对谁修改 (找谁) 声明决定修改什么.。(干什么) 声明的属性是键值对.。使用 &#xff1a; 区分键值对&#xff0c; 使用 &#xff1a; 区分键和值。 <!DOCTYPE html> <html lang"en"> <head>&…

python知识点总结(十)

python知识点总结十 1、装饰器的理解、并实现一个计时器记录执行性能&#xff0c;并且将执行结果写入日志文件中2、队列和栈的区别&#xff0c;并且用python实现3、设计实现遍历目录与子目录4、CPU处理进程最慢的情况通常发生在以下几种情况下&#xff1a;5、CPU处理线程最慢的…

File和IO流

1. File类常用方法 1.1 获取基本属性 • public String getName() &#xff1a;获取名称 • public String getPath() &#xff1a;获取路径 • public String getAbsolutePath()&#xff1a;获取绝对路径 • public File getAbsoluteFile()&#xff1a;获取绝对路径表示…

linux:线程同步

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》 文章目录 前言线程同步条件变量接口简单示例pthread_cond_wait为什么要有mutex伪唤醒问题的解决 (if->while) 总结 前言 本文作为我对于线程同步知识总结 线程同步 同步&…

让机器理解语言,从字词开始,逐步发展到句子和文档理解:独热编码、word2vec、词义搜索、句意表示、暴力加算力

让机器理解语言&#xff0c;从字词开始&#xff0c;逐步发展到句子和文档理解&#xff1a;独热编码、词嵌入、word2vec、词义搜索、句意表示、暴力加算力 独热编码&#xff1a;分类 二进制特征Word2Vec 词嵌入&#xff1a; 用低维表示 用嵌入学习 用上下文信息Skip-gram 跳字…

Web Components初探

组件化&#xff0c;标签语义化&#xff0c;是前端发展的趋势。现在流行的组件化框架有React、Vue等&#xff0c;标签语义化在H5中添加的article、dialog等。 Web Components 就是类似的一套技术&#xff0c;允许您创建可重用的定制元素&#xff0c;并且在您的web应用中使用它们…

网约车APP小程序源码代驾顺风拼车货运司乘端安卓苹果源码可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 一、详细介绍 系统是基于Thinkphpuniapp开发的&#xff0c;全开源未加密&#xff0c;这套源码可以拿回去自己做二开 后台用户端司机端 功能详情介绍&#xff1a; 车主实名认证&#xff0c;驾驶证认证&#xff0c;车…

JAVA面试大全之数据结构和算法篇

目录 1、数据结构基础 1.1、如何理解基础的数据结构? 2、算法思想 2.1、有哪些常见的算法思想?

【C++】快速判断元音字母,让代码不在繁琐!!

目录 一、前言 二、判断字符是否为元音字母 ✨ 繁琐的方法 ✨ 神奇又快速的方法 三、常考面试题 四、共勉 一、前言 大家有没有发现&#xff0c;我们在做算法题的时候&#xff0c;经常会碰到让我们判断一个字母是否为 元音字母&#xff0c;可是用通常的 if 条件判断 要繁…

Pytorch:torch.stack 和 torch.as_tensor

torch.stack 和 torch.as_tensor 是 PyTorch 中的两个函数&#xff0c;它们用于处理 tensor 的创建和操作&#xff0c;但它们各自的用途和功能是不同的。 torch.stack torch.stack&#xff1a;这个函数用于将一系列的 tensors 沿着一个新的维度合并。所有 tensors 必须有相同…

centos7 装 docker-ce

安装必要的系统工具&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 命令会以超级用户的身份安装三个软件包&#xff1a;yum-utils&#xff0c;device-mapper-persistent-…

Linux线程互斥

1.用线程封装代码测试通过现象引出线程互斥 1.1代码测试 Thread.hpp #pragma once #include<iostream> #include<string> #include<functional> #include<pthread.h> template<class T> using func_t std::function<void(T)>;template…

Java 实现缓存的三种方式

Java 实现缓存的三种方式 文章目录 Java 实现缓存的三种方式一、HashMap实现缓存Step-1&#xff1a;实现一个缓存管理类Step-2&#xff1a;将缓存管理类交给 Spring 进行管理Step-3&#xff1a;编写接口测试缓存Step-4&#xff1a;结果展示 二、guava local cache 实现Step-1&a…