如何在没有额外信号的情况下减少左值总线?
How can I reduce a lvalue bus without an extra signal?
我有一个带有多位信号的模块:
output logic [2:0] tuser,
在实例化它的模块中,我只有一个位信号,它应该是 modport 的 reduction OR*。
- 有没有办法直接用流运算符reduction-OR (
|sig
){>>{}}
或任何其他技术?
示例:(明显错误)
logic single_bit;
.tuser ({>>{|single_bit}})
.tuser ({|>>{single_bit}})
.tuser (|single_bit)
我在这里尝试使用语言的强大功能,而不是使用单独的信号来进行缩减。
不幸的是,SystemVerilog 没有表达您想要执行的操作的语法。唯一定义为赋值目标的运算符(称为 lvalue)是连接运算符和流运算符。那些只映射位置位关联。您必须为超出此范围的任何内容定义一个额外的信号。
我有一个带有多位信号的模块:
output logic [2:0] tuser,
在实例化它的模块中,我只有一个位信号,它应该是 modport 的 reduction OR*。
- 有没有办法直接用流运算符reduction-OR (
|sig
){>>{}}
或任何其他技术?
示例:(明显错误)
logic single_bit;
.tuser ({>>{|single_bit}})
.tuser ({|>>{single_bit}})
.tuser (|single_bit)
我在这里尝试使用语言的强大功能,而不是使用单独的信号来进行缩减。
不幸的是,SystemVerilog 没有表达您想要执行的操作的语法。唯一定义为赋值目标的运算符(称为 lvalue)是连接运算符和流运算符。那些只映射位置位关联。您必须为超出此范围的任何内容定义一个额外的信号。