1.系统任务$finish的作用是退出仿真器,返回主操作系统,也就是结束仿真过程。任务$finish可以带参数,根据参数的值输出不同的特征信息。如果不带参数,默认$finish的参数值为1。请问当$finish的参数值为2时,系统输出的特征信息是()
A.不输出任何信息
B.输出当前仿真时刻和位置
C.输出当前仿真时刻、位置和在仿真过程中所用memory及CPU时间的统计。
官方解析:
当参数值为0时,特征信息为:不输出任何信息
当参数值为1时,特征信息为:输出当前仿真时刻和位置
当参数值为2时,特征信息为:输出当前仿真时刻、位置和在仿真过程中所用memory及CPU时间的统计。
正确答案:C
2.将十进制数13.613转换成二进制数,要求装换误差小于1%,下面答案正确的是()
A.1101.10010100
B.1101.1001
C.1101.10011100
D.1101.10011101
官方解析:
首先根据转换误差确定二进制小数的位数,然后采用基数乘除法转换。
整数部分采用基数除法,反复初2,则13/2=6,余1 6/2=3,余0 3/2=1,余1,所以
(12)D =(1101)B
小数部分采用基数除法,先确定小数的位数。2-m ≤1%,可求出m≥2/lg2=6.64,m取7,则
0.613*2=1.226 取整数1, 0.226*2=0.452 取整数0, 0.452*2=0.904 取整数0,
0.904*2=1.808 取整数1, 0.808*2=1.616 取整数1, 0.616*2=1.232 取整数1,
0.232*2=0.464 取整数0, 0.464*2=0.928 取整数0
最后的小数大于0.5,根据四舍五入,最后应该取1,因为取七位,所以从第八位开始取,10011101,
0.0011B =1*2-1 +1*2-4+1*2-5 +1*2-6+1*2-8 = 0.61328125 误差0.61328125-0.613=0.00028125≈0.03%
满足要求。
正确答案:D
3.下列Verilog代码描述的数字电路是?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
A.模16计数器
B.4-2编码器
C.3输入数据选择器
D.2-4译码器
4.现有一个存储器的定义为reg [7:0] mema [15:0],则表示该存储器有()个()位的寄存器。
A.8,8
B.8,16
C.16,8
D.16,16
官方解析:
reg [7:0]定义了存储器中每一个存储单元的大小,即该存储单元是一个8位的寄存器;mema存储器名后的[15:0]则定义了该存储器有16个这样的寄存器。
正确答案:C
5.下列关于静态,动态时序模拟的优缺点说法错误的是()
A.静态时序分析是提取出整个电路存在的所有时序路径, 计算信号在这些路径上的传播延时,检查信号的建立和保持时间是否满足时序要求
B.静态时序分析可以对芯片设计进行全面的时序验证和功能验证,验证每一条路径,发现时序的重大问题,比如建立时间和保持时间冲突,slow path以及过大的时钟偏移
C.动态时序模拟就是仿真,自己可能写不出完备的测试向量
D.动态时序模拟能在验证功能的同时验证时序
官方解析:静态时序分析不能进行功能验证
正确答案:B
6.以下哪个选项中的命令不是用于写文件?
A.$fmonitor
B.$fstrobe
C.$fdisplay
D.$fdumpfile
官方解析:
$fmonitor、$fstrobe、$fdisplay、$fwrite都是用来写文件的。
$dumpfile的作用是选择VCD文件的名称。
正确答案:D
7.可以用()系统任务来显示,应该用非阻塞赋值的变量值。
A.$monitor
B.$strobe
C.$display
D.$write
display打印执行该函数时参数值,自动换行 write与display相同,不自动换行 strobe等所有赋值结束后打印 monitor监控参数变化,单一进程
正确答案:B
8.下列Verilog运算符,优先级从低到高排列正确的是:( )
①^, ②&&, ③%, ④!==
A.①②③④
B.②①④③
C.①②④③
D.②①③④
官方解析:
Verilog的运算符,优先排序如下:
正确答案:B
9.用户定义的原语是从英语User Defined Primitives直接翻译过来的,简称UDP。利用UDP用户可以定义自己设计的基本逻辑元件的功能。下面选项中,关于UDP正确的是()
A.UDP可以有多个输入端
B.UDP可以有多个输出端
C.UDP的真值表中,可以出现高阻值状态Z。
D.输入端和输出端都可以被定义为寄存器类型变量
官方解析:
UDP可以有多个输入端,最多允许有10个输入端。A选项正确。
UDP只能有一个输出端,而且必定是端口说明列表的第一项。B选项错误。
在UDP的真值表项中,只允许出现0,1,X的三种逻辑值,高阻值状态Z是不允许出现的。所以C选项是错误的。
只有输出端才可以被定义为寄存器类型变量。所以D选项是错误的。
正确答案:A
10.下列哪写标识符是合法标识符()
1.Shift_reg_c 2.a*b_net 3._a$b_wire 4.21net 5._bus11
A.1,5
B.2,3,4
C.1,4,5
D.1,3,5
官方解析:标识符必须以英文字母起头,或者用下横线起头,其中可以包括数字,$符和下横线符
正确答案:D
11.下列关于generate for循环语句说法错误的是()?
A.generate-for语句必须用genvar关键字,来定义for的循环变量
B.generate-for中的begin end块名字在同一module中不可重复
C.for循环中的内容必须用begin end块包括起来
D.generate for begin后面的名字可省略不写,但必须将begin end写完整,不可缺少end
官方解析:
generate-for中的begin end块必须有名字,且在同一module中不可重复;generate-for语句必须用genvar关键字,来定义for的循环变量,不可使用其他整型标量。
generate-for语句必须要注意三点: 1.使用genvar 定义变量,作为generate中的循环变量 2.generate中定义的for语句,必须要有begin,这为后续增加标签做准备 3.begin必须要有名称,也就是标签,即begin:标签,因为标签会作为generate循环的实际名称
正确答案:D