3-1 标识符
任意字母、数字、"$"和"_"组成,标识符第一个不能是数字。
3-2 注释
(1)/*可扩展多行*/
(2)//本行结束
3-3 系统函数
以$字符开始的标识符。
(1)$display("...") //$display系统函数用新的一行字符显示指定的信息
(2)$time //返回当前仿真时间
3-4 编译器指令
(1)‘define和‘undef //类似于C语言
(2)‘ifdef、‘ifndef、‘else、‘elseif、‘endif //条件编译
(3)‘default_nettype //为隐式线网指定线网类型
(4)‘include //用于在代码中包含任何其他文件的内容
‘include "../../asim.v"
(5)‘timescale //定义时间单位
(6)‘restall //讲所有的编译指令重新设置为缺省值
(7)‘line //将行号和文件名复位至指定的值
3-5 值集合
四种基本值:0、1、x(未知)、z(高阻态)
整型数:
(1)简单十进制:16,32,...
(2)基数格式:
4'B0_x1 ----4位二进制
5'O32 ----5位八进制
4'D2 ----4位十进制
4'Hx ----4位x,即xxxx
*位长不能是表达式,x和z在十六进制中为四位,八进制中为三位。
*若位宽定义比数值小,则左边的多余位被相应截断,若大则填0补齐。
(3)实数:十进制表示,科学计数法,5E-4,23_45e3...
3-6 数据类型
(1)线网类型:结构化元件间的物理连线,缺省值为z。
wire & tri
wor & trior
wand & triand
trireg
tri0 & tri1
supply0 & supply1
*未声明的线网缺省设置为1位的wire。
*线网分为向量线网(vectored)和标量线网(scalared),其中向量线网不允许对其进行局部操作,必须整体操作。
(2)变量类型:抽象的数据存储单元,只能在initial和always中被赋值,缺省值为x。
reg、integer、time、real、realtimme
reg [3:0] pus; //pus为4位的变量
reg [0:3] memory[0:63];//memory为一个由64个四位reg变量组成的数组(存储器)
integer: 定义整型变量
integer run_state[0:15][0:15] //16x16的整型数组
(3)命名事件:event ...
3-7 参数
参数是一个常量。
全局参数:parameter
局部参数:localparam
eg: parameter N = 8;