我正在查看程序并找到以下代码:
{a2, a1} <= {a1, b};
我不确定我所经历的程序是用Verilog还是SystemVerilog编写的。我知道花括号用于Verilog中的连接操作,但是我并不完全遵循这里正在进行的连接。此外,由于我不确定给定的代码片段是否在Verilog或SystemVerilog中,因此我对代码感到困惑。花括号还表示SystemVerilog中的另一个操作......?
提前致谢
答案 0 :(得分:5)
这只是将左手和右手侧分别作为一个变量的连接。 SystemVerilog 2009取代了Verilog,因此向后兼容大多数(全部?)语法。
例如
wire [0:0] l1;
wire [2:0] l2;
reg [1:0] r1;
reg [1:0] r2;
assign {l1,l2} = {r1,r2} ;
与
相同assign l1[0] = r1[1];
assign l2[2] = r1[0];
assign l2[1] = r2[1];
assign l2[0] = r2[0];