📅  最后修改于: 2021-01-11 14:32:13             🧑  作者: Mango
Verilog中的词汇约定类似于C编程语言。 Verilog语言源文本文件是词汇标记流。
词汇标记可以由一个或多个字符,并且每个单个字符都在一个标记中。
标记可以是关键字,注释,数字,空格或字符串。所有行应以分号(;)终止。
空格可以包含制表符,空格,换行符和换页符的字符。这些字符将被忽略,除非它们用于分隔其他标记。但是,空格和制表符在字符串很重要。
有两种类型来表示注释,例如:
我们可以以二进制,十进制,十六进制或八进制格式指定常数。负数以2的补码形式表示。当用于数字时,问号(?)字符可替代z字符的Verilog。下划线字符(_)在数字中的任何位置都是合法的,但会被忽略为第一个字符。
1.整数
Verilog HDL允许将整数指定为:
句法
语法为:
'
2.实数
3.有符号和无符号数字
Verilog支持两种数字类型,但有一定的限制。在C语言中,我们没有int和unint类型来说明数字是带符号整数还是无符号整数。
没有负号前缀的任何数字均为正。或间接方式将是“未签名”。
负数可以通过在常量的大小前面加上减号来指定,从而成为带符号的数。 Verilog内部以2的补码格式表示负数。可以添加可选的带符号说明符以进行带符号运算。
4.负数
通过在数字的大小之前放置减号(-)来指定负数。在base_format和number之间使用减号是非法的。
标识符是用于定义对象的名称,例如函数,模块或寄存器。标识符应以字母字符或下划线字符开头。
例如,A_Z和a_z。
标识符是字母,数字,下划线和$字符。最长为1024个字符。
1.转义的标识符
Verilog HDL通过转义标识符允许在标识符中使用任何字符。
转义的标识符包括标识符中的任何可打印ASCII字符。
运算符是用于放置条件或操作变量的特殊字符。有一个,两个,有时三个字符用于对变量执行操作。
1.算术运算符
这些运算符执行算术运算。 +和-用作一元(x)或二进制(zy)运算符。
算术运算中包括的运算运算符为加,减,乘,除和模。
2.关系运算符
这些运算符将两个操作数进行比较,并以1或0的位返回结果。关系运算中包括的运算符为:
3.按位运算符
按位运算符在两个操作数之间进行逐位比较。按位运算中包括的运算符为:
4.逻辑运算符
逻辑运算符是按位运算符,仅用于单个位操作数。它们返回一个0或1的单个位值。它们可以处理整数或一组位,表达式并将所有非零值都视为1。
逻辑运算符通常用于条件语句中,因为它们可用于表达式。逻辑运算中包括的运算符为:
5.归约运算符
归约运算符是按位运算运算符的一元形式,并且对操作数向量的所有位进行运算。这些也返回一个单位值。归约运算中包括的运算符为:
6.移位运算符
移位运算符将第一个操作数按语法中第二个操作数指定的位数进行移位。
空缺位置在两个方向(左移和右移)中均填充有零(没有使用符号扩展名)。 Shift操作中包括的运算符为:
7.串联运算符
串联运算符组合两个或多个操作数以形成较大的向量。串联操作中包括的运算符为:
8.复制运算符
复制运算符正在复制一个项目。复制操作中使用的运算符为:
9.条件运算符
有条件的运算符合成一个多路复用器。它与C / C++中使用的类型相同,并根据条件评估两个表达式之一。有条件操作中使用的运算符为:
操作数是运算符在其上进行操作的表达式或值。所有表达式都有至少一个操作数。
1.字面量
字面量是在Verilog表达式中使用的恒定值操作数。两种常用的Verilog字面量是:
2.接线,Regs和参数
连线,regs和参数是在Verilog表达式中用作操作数的数据类型。位选择“ x [2]”和零件选择“ x [4:2]”
位选择和部分选择分别用于使用方括号“ []”从导线,寄存器或参数向量中选择一位和多位。
3.函数调用
在函数调用,函数的返回值被直接用于表达而无需首先将其分配给寄存器或导线。
它只是将函数调用作为操作数的类型之一。了解函数调用的返回值的位宽很有用。