SV刷题Day 7

197 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路!


image.png $fwrite的作用是打印信息到屏幕上,类似于$display
$fseek,文件定位,可以从任意点对文件进行操作
$fstrobe$strobe 使用函数使用类似,都是在时间节点到达时,执行函数
因此,应该选择C选项

image.png

image.png function里的new函数里面的所传的参数是默认的传参,实际调用的时候,根据实际所传参数而定,否则以默认曾经参数而定。

a设置为静态变量 因此其值会在同一个类的不同的对象中传递,b为动态变量,每次创建完成后,下一次创建不会继承其值,即不同的对象中的值互不相干。如上,第一次创建对象时,传入aa的值是30,此时a值为a+aa=0+30=30,第二次创建对象时传入aa的值为30,a=a+aa=30+30=60,同时b的初始值为0,传入bb的值是40,b= bb+a+b=40+60=100, 因此b为100。

  1. 对于systemverilog的队列,描述不正确的是
A. 对于队列,SV实际上分配了额外的空间
B. 使用new[]进行初始化
C. 空队列文本{}可以用来指示一个空队列
D. 可以用SV预定义的方法删除指定位置队列成员

队列不用像动态数组那样调用 new[] 为队列分配空间

image.png

  • begin...end中的语句以顺序方式执行,
  • fork...join中的语句以并行方式执行,同时等其中的所有的语句执行完成,才开始后续的处理
  • fork...join_none中的语句以并行方式执行,不需要等其中的语句执行完成,直接开始后续的处理
  • fork...join_any中的语句以并行方式执行,只有其中有一个语句执行完成,就开始后续的处理
  1. 下面对于program的描述,错误的是:
A. program并行运行
B. 可以用$exit显示结束,即使有多个program也会结束仿真
C. 运行完所有的initial块后才会结束仿真
D. 内部定义的变量赋值应该使用阻塞赋值

本题答案选B, 可以用$exit显示结束,但只能结束当前作用的program所有program运行完后才会结束仿真