描述
此答复记录描述了Vivado Synthesis支持的SystemVerilog运算符,并提供了它们的编码示例。编码示例附在此答复记录中。答案记录还包含与已知问题和良好编码实践相关的信息。
注意 :每个编码示例都可用于直接创建Vivado项目。请参阅每个源文件中的标题,以获取每个示例中演示的SystemVerilog结构。
解
Vivado Synthesis支持的SystemVerilog运算符
有关编码示例,请参阅本AR末尾的表1-1。
SystemVerilog运算符是Verilog和C运算符的组合。在这两种语言中,操作数的类型和大小是固定的,因此操作符具有固定的类型和大小。操作符的固定类型和大小保留在SystemVerilog中。
1.Assignment Operators。
除了简单的赋值运算符“=”
例如:
A [1] + = 2; //与[i] = a [i] +2相同;
A [1] + = 2; //与[i] = a [i] +2相同;
SystemVerilog包括C赋值运算符和特殊的按位赋值运算符:+ =, – =,* =,/ =,%=,&=,| =,^ =,<< =,>> =,<<< =和> >> =。赋值运算符在语义上等同于阻塞赋值,但任何左侧索引表达式仅被计算一次。
2.二元运算符。
当二元运算符具有一个类型为bit的操作数和另一个类型为逻辑的操作数时,结果为逻辑类型。如果一个操作数的类型为int 和另一个整数类型,结果是类型整数。运算符!=和==如果任一操作数包含X或Z,则返回X,如Verilog-2001中所示。如果结果转换为类型位,则转换为0,例如,在if语句中。一元缩减运算符(&〜&|〜| ^〜^)可以应用于任何整数表达式(包括压缩数组)。如果打包类型为四值,则运算符应返回单个类型逻辑值,如果打包类型为二值,则返回类型为bit的值。
int i;
位b =&i;
整数j;
逻辑c =&j;
3.条件运算符。
用于条件语句的运算符。
conditional_expression :: = cond_predicate? {attribute_instance}表达式:表达式
4.Concatenation运算符。
大括号({})用于显示Verilog中的连接。连接被视为比特的打包向量。它可以在赋值的左侧或表达式中使用。
逻辑 log1,log2,log3;
{log1,log2,log3} = 3b111;
{log1,log2,log3} = {1b1,151,1b1}; //与3b111相同的效果
运算符的编码示例
表1-1
编码示例名称 | 使用的运算符 |
---|---|
operators_example1.zip |
|
operators_example2.zip |
|
operators_example3.zip |
|
operators_example4.zip |
|
附件
相关附件
名称 | 文件大小 | 文件类型 |
---|---|---|
operator_example1.zip | 1 KB | 压缩 |
operator_example2.zip | 487字节 | 压缩 |
operator_example3.zip | 915字节 | 压缩 |
operator_example4.zip | 919字节 | 压缩 |
没有回复内容