Considera una expresión como:
assign x = func(A) ^ func(B);
donde la salida de la función es de 32 bits de ancho, y x es un cable de 16 bits. Quiero asignar solo los 16 bits más bajos del xor resultante.
Sé que el código anterior ya lo hace, pero también genera una advertencia. El enfoque "obvio" no funciona:
assign x = (func(A) ^ func(B))[15:0]; // error: '[' is unexpected