本文已参与「新人创作礼」活动,一起开启掘金创作之路
- 以下哪个选项中的命令不是用于写文件?
A. $fmonitor B. $fstrobe
C. $fdisplay D. $fdumpfile
本题选D,$fmonitor、$fstrobe、$fdisplay、$fwrite都是用来写文件的。
$dumpfile的作用是选择VCD文件的名称。
- 可以用()系统任务来显示,应该用非阻塞赋值的变量值。
A. $monitor B. $strobe
C. $display D. $write
本题答案选B
$display命令的执行是安排在活动事件队列中,但排在非阻赋值赋值数据更新事件之前
$strobe命令的执行是排在非阻塞赋值数据更新事件之后。
$display适合用来显示阻塞语句的赋值
$strobe适合用来显示非阻塞语句的赋值
- display打印执行该函数时参数值,自动换行 write与display相同,不自动换行 strobe等所有赋值结束后打印 monitor监控参数变化,单一进程
- 下面哪个不是 不可综合的verilog语句
A. events
B. force 和release
C. #10
D. instantitation
本题选D,
instantitation 实例化 可综合
以#开头的延时不可综合成硬件电路延时,综合工具会忽略所有延时代码,但不会报错。
event在同步test bench时更有用,不能综合。
不支持force和release的综合。
- 在verilog语言中,关于模块与端口说法不正确的是:
A. 模块定义必须以关键字 module 开始,以关键字 endmodule 结束。
B. inout 类型可以声明为 reg 数据类型
C. output 可以声明为 wire 或 reg 数据类型。
D.一个模块如果和外部环境没有交互,则可以不用声明端口列表
本题我误选了C,本题应该选B。
解析:input、inout 类型不能声明为 reg 数据类型
因为reg 类型是用于保存数值的,而输入端口只能反映与其相连的外部信号的变化,不能保存这些信号的值。
inout、input必须wire型
-
参数型常数经常用于定义延迟时间和变量宽度。在模块或实例引用时,可通过参数传递改变在被引用模块或实例中已经定义的参数。即,在TOP模块中引用decode实例时,可以通过参数的传递来改变定义时已规定的参数值
-
现有一个存储器的定义为reg [7:0] mema [15:0],则表示该存储器有16个8位的寄存器。
-
将十进制数1002.456转换为八进制数(要求转换误差不大于2-4),结果是( )