SV刷题Day 8

242 阅读2分钟

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


  • 类中成员没有static修饰符修饰的情况下,缺省状态是动态成员
  • 当使用随机激励时,就需要一种能够自动预测结果的方式---通常是记分板或者参考模型
  • 受约束的随机测试平台找起漏洞来会比很多定向测试快很多
  1. 下面的选项中说法错误的是()?
A. imeunit和timeprecision声明语句可以明确的为每个模块指明时间值,从而避免含糊不清
B. time类型的变量可以保存小数时延
C. 可以使用$timeformat,$time和$realtime来使代码在事件标度上更清楚
D. 使用timeunit和timeprecision声明语句时,必须把它们自己放到每个带有时延的模块里

本题的正确答案选B,
timeunit和timeprecision声明语句可以明确的为每个模块指明时间值,从而避免含糊不清
time类型的变量不能保存小数时延,因为它们是64比特的整数,所以时延的小数部分会被舍入。如果不希望这样,可以采用real变量。 realtime可以保存小数时延

  1. 在system verilog中,变量的声明错误的是:
A. int a[][];
B. int b[8][5];
C. int [8][3] c;
D. int [3:0] d [5:0];

本题选C,合并数组的维数只能通过 [hi:lo]的形式声明,
int [8][3] c;错误,应为 int [7:0][2:0] c;
非合并数组可以使用,如int b[8][5]; 的维度声明方式
int a 声明了一个二维的动态数组,不指明维度。
考察合并数组的声明: 数据类型 [数组大小] [位宽] 变量名 注:声明合并数组时,数组大小和位宽必须指定,并且位宽必须是[msb : lsb],而不是[size]

image.png

  • 几何中每一个值取出的概率是相同的,即使值在数组中出现多次。
  1. 下面对测试生成的激励描述错误的是:
A. 用户提供的确定输入是所谓的直接测试
B. 到达被测设计引进的激励是二进制的
C. 用户激励指一个来自用户的指令
D. 一般来说,激励的输入分为两种,一种是确定的,由用户直接提供;另一种则是随机的,由系统完全随机生成

本题的答案选D。在一个高级的验证平台中, 激励可以根据用户指定的约束, 然后完全通过验证平台自动产生, 这就所谓的约束随机激励产生

  • 用户激励指一个来自用户的指令
  • 到达被测设计引进的激励是二进制的