0. 前言
间隔多时,“二舅”抡起键盘,开始码一篇文章吧!!!
今天大家带来的是之前做的一套笔试题,名称如标题所示,希望大家正确食用(点赞+转发+评论)
本次笔试题一共三部分:单选(15个30分)、多选(10个30分)、简答(6个40分,前两个各10分、后四个各5分)
下边是具体的题目,仅仅是回忆,哈哈哈!!!
1. 题目 & 答案
第一题
在sv中赋值时,8’b1、'1和’b1赋值会有什么区别?
解析:这个题之前做笔试遇到过,没什么难度,记住就好了!
8’b1表示8位二进制数,其值为1;
‘1表示不论你有几位,全赋值为1;
‘b1表示n位二进制数,其值为1.
第二题
枚举类型的考察?
解析:
枚举的内建函数如下所示
枚举初始值的数值怎么算?
每个后面的名称对应的值都是上一个值 +1 ,如果不写 bit 类型的话默认是 int 类型, { } 里的名称也可以直接赋值比如定义成 int 类型的话可以{OFF = 3,RED,YELLOW=8,GREEN},那么此时(RED = 3+1=4)、(GREEN = 8+1=9),注意如果出现相同的值时仿真会报错,如果给定的位宽排列小于名称个数也会错误,如上 2bit 有四种组合正好对应四个名称,再加一个名称的话就会错误。
第三题
Python中的find()用法?
解析:
find()方法用于检索是否包含指定的字符串。如果检测的字符串不存在,则返回-1,否则返回首次出现该字符串时的索引。
str.find(str,beg=0, end=len(string))
str,指定检索的字符串
beg,开始索引,默认为0。
end,结束索引,默认为字符串的长度。
第四题
二进制小数转换成十六进制数?
解析:
以小数点为分隔符,前后各按照4位二进制数是1位十六进制数来算,左边从右往左,高位补零;右边从左往右,低位补零。
第五题
SV中的数据类型转换?
解析:
对于转换方式,可以分为隐式转换和显式转换。
显式转换又可以分为静态转换和动态转换,静态转换并不会对转换值做检查。如果发生转换失败,我们也无从得知。而动态转换出错的话会有返回值。静态转换:unsigned’(signed);注意单引号。动态转换:$cast(tgt,src)
第六题
Run phase 和 main phase块中代码怎么执行?
解析:
可以看一下UVM实战书中的P354,有代码,可以看看!!!
第七题
定义了一个动态数组,已经初始化了大小为100个元素,之后想要变成200大小并且之前的数值保留,写代码?
解析:
array = new200;
第八题
r a n d o m 和 random和 random和urandom的区别?
解析:
我做题的时候以为是问的下边这个,结果大错特错!!!
注意:区分开sv中rand与randc的区别:
rand每次随机的概率都一样,类似于掷骰子;randc每次随机都不重复,类似于发牌;
其实二者区别如下:
$random —— 系统随机化调用函数,返回32bit有符号数;
$urandom() —— 系统随机化调用函数,返回32bit无符号数;
$urandom_range()—— 系统随机化调用函数,返回指定范围内的无符号随机整数;
srandom() —— 对象和线程(手动添加种子seed)的随机化方法;
randomize() —— 对象的随机化方法;
第九题
写一个随机化代码,大小为16~32,并且升序排列?
解析:
constraint array_size {
array.size() inside {[16 : 32]};
array.sort();
}
注意:reverse和shuffle方法不能带with条件语句,它作用范围是整个数组;sort和rsort方法可以带with条件语句,可以进行范围内排序;
第十题
对于随机化中解的概率的关系操作的考察?
解析:
SV书中的P147 (没有的小伙伴可以后台私信可以获取哦!!!)
第十一题
UVM中的寄存器模型?
解析:
第十二题
哪些是继承于component的类?
解析:
声明
本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!
本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!
如果觉得对你有用的话,记得收藏+评论!!!
全网各平台同名===> “IC二舅”
下一期如果有大家想看的 或者 哪块不懂想学习的,可以私聊或在群里提问都可以,“二舅” 给你安排上!!!