如何在没有额外信号的情况下减少左值总线?

问题描述

我有一个带有多位信号的模块:

output  logic [2:0]  tuser,

在实例化它的模块中,我只有一个位信号,它应该是modport的 reduction OR *。

  • 是否可以直接使用流运算符 |sig或其他任何方法进行还原或{>>{}})? / li>

示例 :(显然是错误的)

logic single_bit;
 .tuser  ({>>{|single_bit}})
 .tuser  ({|>>{single_bit}})
 .tuser  (|single_bit)

在这里尝试在这里使用语言的功能,而不是仅发出单独的信号来进行简化。

解决方法

不幸的是,SystemVerilog没有表达您想要做什么的语法。定义为充当分配目标的唯一运算符(称为 lvalue )是串联运算符和流运算符。那些仅映射位置位关联。您必须为超出此范围的所有内容定义一个额外的信号。