verilog 之语法学习

时间:2022-10-13 15:46:16

1、使用非基数表示的十进制视为有符号数。使用基数表示的十进制被视为无符号数。

2、线网中的值被解释为无符号数,整型寄存器中的值被解释为有符号的二进制补码数,。

3、如果选择表达式的值为 x、z,或越界,则位选择的值为 x。例如S t a t e [x]值为x。

4、不允许对存储器变量值部分选择或位选择。如 mem[63][4 : 3],这是不允许的。

5、如果算术操作符中的任意操作数是 X或Z,那么整个结果为 X。

6、算术表达式结果的长度由最长的操作数决定。

7、无符号数存储在: 线网,一般寄存器,基数格式表示形式的整数。有符号数存储在: 整数寄存器,十进制形式的整数。

8、如果操作数长度不同,长度较短的操作数在最重要的位方向(左方)添 0补齐。例
如:'b1000 > = 'b01110  等价于:  'b01000 > = 'b01110

9、逻辑操作符有: && (逻辑与)   || (逻辑或)  !(逻辑非)。

10、按位操作符有: ~(一元非) &(二元与) |(二元或) ^(二元异或) ~^, ^~(二元异或非)这些操作符在输入操作数的对应位上按位操作,并产生向量结果。

11、归约操作符在单一操作数的所有位上操作,并产生 1位结果。归约操作符有 :
• & ( 归约与) 如果存在位值为0, 那么结果为0;若如果存在位值为 x或z,结果为x;否则结果为1。
• ~& ( 归约与非) 与归约操作符&相反。
• | ( 归约或) 如果存在位值为1,那么结果为1;如果存在位 x或z,结果为x;否则结果为0。
• ~| ( 归约或非) 与归约操作符|相反。
• ^ ( 归约异或) 如果存在位值为 x或z,那么结果为 x;否则如果操作数中有偶数个 1, 结果为0;否则结果为1。
• ~^ (归约异或非 ) 与归约操作符^正好相反。

12、移位操作符有: << (左移) >> (右移)移位操作符左侧操作数移动右侧操作数表示的次数,它是一个逻辑移位。空闲位添 0补位。如果右侧操作数的值为 x或z, 移位操作的结果为 x。

13、连接和复制操作:连接操作是将小表达式合并形成大表达式的操作。

14、信号的负沿是下述转换的一种: 1->x;  1->z; 1->0;  x->0;  z->0
正沿是下述转换的一种:                    0->x;  0->z; 0 ->1; x ->1; z -> 1

15、当端口和局部端口表达式的长度不同时,端口通过无符号数的右对齐或截断方式进行匹配。