Title

SystemVerilog -- 2.1 Data Types ~ New Data types

SystemVerilog logic and bit

上一篇文章中,概述了主要数据类型。在本会话中,我们将研究 4-state 和 2-state 变量以及两种名为logicbit的新数据类型。

4-state data types

除了 0 和 1 之外,还可以具有未知(X)和高阻态(Z)值的类型称为 4 态类型。请注意,只能在过程快中驱动,例如,数据类型只能在语句中驱动。SystemVerilog 引入了一种新的 4-state 数据类型,称为可以在过程快和连续语句中驱动。但是,具有多个驱动程序的信号需要声明为 net-type,以便 SystemVerilog 可以解析最终值。reg always initial wire assign logic assign wire

logic

module tb;
    logic [3:0] my_data;      // Declare a 4-bit logic type variable
    logic       en;           // Declare a 1-bit logic type variable

    initial begin
      $display ("my_data=0x%0h en=%0b", my_data, en); // Default value of logic type is X
      my_data = 4'hB;
      $display ("my_data=0x%0h en=%0b", my_data, en);
      #1;
      $display ("my_data=0x%0h en=%0b", my_data, en);
    end

    assign en = my_data[0];    // logic datatype can also be driven via assign statements
endmodule

模拟日志

ncsim> run
my_data=0xx en=x
my_data=0xb en=x
my_data=0xb en=x
ncsim: *W,RNQUTE: Simulation is complete.

2-state data types

在典型的验证tb中,在许多情况下,我们实际上并不需要所有四个值(0、1、x、z),例如,在使用指定数据包长度的标头对网络数据包进行建模时。长度通常是一个数字,但不是 X 和 Z。SystemVerilog 添加了许多新的 2-state数据类型,这些数据类型只能存储且值为 0 或 1。这将有助于加快仿真速度,占用更少的内存,并且在某些设计风格中是首选。

当 4-state 值转换为 2-state 值时,任何未知或高阻抗位都应该转换为0.

最重要的 2-state 数据类型是tb中最常用的数据类型。类型的变量可以是 0 或 1,表示单个位。应提供从 MSB 到 LSB 的范围,使其表示和存储多各位bit

bit

module tb;
    bit       var_a;
    bit [3:0] var_b;

    logic [3:0] x_val; // declare a 4 bit varible of type "logic"

    initial begin
      $display ("Initial value var_a=%0b var_b=0x%0h", var_a, var_b);

      var_a = 1;
      var_b = 4'hF;
      $display ("New values var_a=%0b var_b=0x%0h", var_a, var_b);

      var_b = 16'h481a;
      $display ("Truncated value: var_b=0x%0h", var_b);
  
      var_b = 4'b01zx;  // X and Z get converted to 0
      $display ("var_b = %b", var_b);
    end
endmodule

模拟日志

ncsim> run
Initial value var_a=0 var_b=0x0
New values var_a=1 var_b=0xf
Truncated value: var_b=0xa
var_b = 0100
ncsim: *W,RNQUTE: Simulation is complete.

posted on 2024-04-13 21:32  松—松  阅读(22)  评论(0编辑  收藏  举报

导航