Vivado综合设计助手 - 帮助SystemVerilog支持 - 运营商

描述

此答复记录描述了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相同;

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字节压缩
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:02:27 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它