关于verilog中{}大括号[]中括号的用法问题

请问各路大神

if(y[2][DATA_WIDTH-1])

x[3] <= x[2] - {{2{y[2][DATA_WIDTH-1]}},y[2][DATA_WIDTH-1:2]};

到底是什么意思。。根本看不懂

{}表示拼接,{{}}表示复制。

if(y[2][DATA_WIDTH-1])  //如果为高电平

//x[3] <= x[2] - {{2{y[2][DATA_WIDTH-1]}},y[2][DATA_WIDTH-1:2]};

//令temp1=y[2][DATA_WIDTH-1];
//令temp2=y[2][DATA_WIDTH-1:2];
//则x[3] <= x[2] - {   {2{temp1}},   temp2    }
//相当于x[3] <= x[2] - {    temp1,temp1,temp2   }

很簡單,
if()內的y[2][...]若其值為true也就是等於1的時候,
則x[3]被給予x[2]-{...}的運算結果的數值
若為false, 則不執行