Verilog 入门(二)(Verilog 语言要素)

标识符

Verilog HDL 中的标识符(identifier )可以是任意一组字母数字$ 符号和 _(下划线)符号的组合,但标识符的第一个字符必须是字母或者下划线。另外,标识符是区分大小写的。

转义标识符(escaped identifier)可以在一条标识符中包含任何可打印字符。转义标识符以 \(反斜线)符号开头,以空白结尾。

Verilog HDL 定义了一系列保留字,叫做关键词,它仅用于某些上下文中。注意只有小写的关键词才是保留字。例如,标识符 always(这是个关键词)与标识符 ALWAYS(非关键词)是不同的。

注释

在 Verilog HDL 中有两种形式的注释。

/* 第一种形式:可以扩展至
   多行 */

// 第二张形式:在本行结束。

格式

Verilog HDL 区分大小写。也就是说大小写不同的标识符是不同的。此外, Verilog HDL 是自由格式的,即结构可以跨越多行编写,也可以在一行内编写。

例如

initial begin Top=3'b001; #2 Top=3'b011; end

和下面的指令一样:

initial
  begin
    Top = 3'b001;
    #2 Top = 3'b011;
  end

系统任务和函数

$ 字符开始的标识符表示系统任务或系统函数。任务提供了一种封装行为的机制。这种机制可在设计的不同部分被调用。任务可以返回 0 个或多个值。函数除只能返回一个值以外与任务相同。此外,函数在 0 时刻执行,即不允许延迟,而任务可以带有延迟。

$display("Hi, you have reached LT today");
/* $display 系统任务在新的一行中显示。 */
$time
// 该系统任务返回当前的模拟时间

值集合

Verilog HDL 有下列四种基本的值:

  1. 0:逻辑 0 或“假”
  2. 1:逻辑 1 或“真”
  3. x:未知
  4. z:高阻

注意这四种值的解释都内置于语言中。如一个为 z 的值总是意味着高阻抗,一个为 0 的值通常是指逻辑 0。Verilog HDL中的常量是由以上这四类基本值组成的。
Verilog HDL 中有三类常量:

  1. 整型
  2. 实数型
  3. 字符串型

下划线符号 _ 可以随意用在整数或实数中,它们就数量本身没有意义。它们能用来提高易读性;唯一的限制是下划线符号不能用作为首字符。

数据类型

Verilog HDL 有两大类数据类型。

  1. 线网类型。。net type 表示 Verilog 结构化元件间的物理连线。它的值由驱动元件的值决定,例如连续赋值或门的输出。如果没有驱动元件连接到线网,线网的缺省值为 z。
  2. 寄存器类型。register type 表示一个抽象的数据存储单元,它只能在 always 语句和 initial 语句中被赋值,并且它的值从一个赋值到另一个赋值被保存下来。

参数

参数是一个常量。参数经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下:

parameter param1 = const_expr1, param2 = const_expr2, ...,
          paramN = const_exprN;

下面为具体实例:

parameter LINELENGTH = 132, ALL_X_S = 16'bx;
parameter BIT = 1, BYTE = 8, PI = 3.14;
parameter STROBE_DELAY = (BYTE + BIT) / 2;
parameter TQ_FILE = " /home/bhasker/TEST/add.tq"

猜你喜欢

转载自blog.csdn.net/myDarling_/article/details/134719586