Verilog HDL模型中的所有时延都根据时间单位定义
assign #2 Sum= A ^ B;
//# 2指2个时间单位。编译器指令需在模块描述前定义:` timescale 1ns /100ps
//此语句说明时,延时间单位为1ns并且时间精度为100ps
//如果没有这样的编译器指令,VerilogHDL模拟器会指定一个缺省时间单位。IEEE Verilog HDL标准中没有规定缺省时间单位
标识符
1.用户为程序描述中的Verilog对象所起的名字:模块名、变量名、常量名、函数名、任务名
2.必须以英语字母(a-z, A-Z) 或下横线符(_ )起头。其中可以包含数字、$符和下划线符
3.最长可以达到1023个字符
4.模块名、端口名和实例名都是标识符
5.Verilog语言大小写敏感:如sel和SEL是两个不同的标识符
6.所有的关键词都是小写的
任务与函数
1.以$字符开始的标识符表示系统任务或系统函数
2.任务可以返回0个或多个值,函数除只能返回一个值以外与任务相同
3.函数在0时刻执行,即不允许延迟,而任务可以带有延迟
4.常用于测试模以,一般不用于源代码设计
$display ("Hi, you have reached LTtoday' ); /*$display系统任务在新的一-行中显示。* /
$time //该系统任务返回当前的模拟时间
编译指令
以`(反引号)开始的某些标识符是编译器指令:
`define和`undef,类似C语言中的宏定义指令
` ifdet、`else和`endf,用于条件编译
`indlude文件既可以用相对路径名定义,也可以绝对路径
`timescale编译器指令将时间单位与实际时间相关联,该指令用于定义时延的单位和时延精度
值集合:基本值
1. 0:逻辑0或“假”
2. 1: 逻辑1或"真"
3. x:末知
4. z:高阻(x, z不区分大小写)