连接符也叫拼接运算符,它用于将一个或多个表达式产生的比特位连接在一起。连接符应使用括号字符 { 和 } 表示,表达式之间用逗号隔开。
连接符中不允许使用位宽不固定的量。因为verilog在计算连接符内所有操作数的位宽时,需要先确定连接符中每个操作数的位宽。
下面举一个例子来说明连接符的用法,该连接符包含4个表达式:
该例子的另一种等效方式为:
复制(replication)是一个只能用于连接操作的运算符,其表达方式是在连接符前加上一个非负数、非 x 和非 z 的常量表达式,称为复制常量,该常量用括号字符括起来,表示将连接符内的多个副本连接在一起。与常规连接不同,包含复制的表达式不应出现在赋值的左侧,也不应连接到output或inout端口。下面这个例子把w复制4次:
下面这个例子说明了嵌套在连接操作中的复制操作:
复制操作可以有一个值为零的复制常量,这在参数化代码中非常有用。复制常量为零的复制操作会被视为位宽为零,并被忽略。另外,复制操作只能出现在至少有一个操作数的位宽为正的连接操作中。例如下面的例子:
当对复制表达式进行求值时,即使复制常数为零,操作数也应被精确求值一次。例如:
等价于
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!