Rozważ wyrażenie takie jak:
assign x = func(A) ^ func(B);
gdzie wyjście func ma szerokość 32 bitów, a x jest drutem o długości 16 bitów. Chcę przypisać tylko najniższe 16 bitów wynikowego xor.
Wiem, że powyższy kod już to robi, ale generuje również ostrzeżenie. „Oczywiste” podejście nie działa:
assign x = (func(A) ^ func(B))[15:0]; // error: '[' is unexpected