我有一个名为
signal
的信号,这是信号的定义:
signal = |{`PS.iptile0.psst0.cols1.active_signal,
`PS.iptile0.psst1.cols1.active_signal,
`PS.iptile0.psst2.cols1.active_signal,
`PS.iptile0.psst3.cols1.active_signal,
`PS.iptile1.psst0.cols1.active_signal,
`PS.iptile1.psst1.cols1.active_signal,
`PS.iptile1.psst2.cols1.active_signal,
`PS.iptile1.psst3.cols1.active_signal};
我想做的是通过 for 循环实现这个属性 这是我当前的代码:
logic signal
logic [TILE*PARTS-1:0] signal_new;
generate
for (genvar i = 0; i < TILE; i++) begin
for (genvar j = 0; j < PARTS; j++) begin
assign signal_new[i*PARTS+j] = {`PS.iptile${i}.psst${j}.cols1.active_signal};
end
end
endgenerate
signal = | {signal_new};
但是它显示语法错误:
Error-[SE] Syntax error
token is '.'
line: assign signal_new[i*PARTS+j] = {`PS.iptile${i}.psst${j}.cols1.active_signal};
根据我的理解,这是因为 signal_new 我正在尝试使用“.”进行连接。但我们只能连接一个字符串而不是一个逻辑。 无论如何我可以解决这个问题吗?
注意: 我想要
PS.iptile0.psst0.cols1.active_signal
这样而不是这样PS.iptile[0].psst[0].cols1.active_signal
这就是为什么我不能使用
{`PS.iptile[i].psst[j].cols1.active_signal};