Verilog的语言要素有哪些?
time time_id1, time_id2, . . . ,time_idN [ msb:1sb];
msb和lsb是表明范围界限的常量表达式。如果未定义界限,每个标识符存储一个至少64位的时间值。时间类型的寄存器只存储无符号数。例如:
time Events [0:31]; //时间值数组。
time CurrTime; //CurrTime 存储一个时间值。
5. real和realtime类型
实数寄存器(或实数时间寄存器)使用如下方式说明:
//实数说明:
real real_reg1, real_reg2, . . ., real_regN;
//实数时间说明:
realtime realtime_reg1, realtime_reg2, . . . ,realtime_regN;
realtime与real类型完全相同。例如:
real Swing, Top;
realtime CurrTime;
real说明的变量的缺省值为0。不允许对real声明值域、位界限或字节界限。
当将值x和z赋予real类型寄存器时,这些值作0处理。
real RamCnt;
. . .
RamCnt = 'b01x1Z;
RamCnt在赋值后的值为'b01010。
3.8 参数
参数是一个常量。参数经常用于定义时延和变量的宽度。使用参数说明的参数只被赋值一次。参数说明形式如下:
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;
参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值(这两种机制将在第9章中详细讲解)。
评论