module barrel16 title '16-bit Barrel Shifter' " Inputs and Outputs DIN15..DIN0, S3..S0 pin; DOUT15..DOUT0 pin istype 'com'; S = [S3..S0]; equations [DOUT15..DOUT0] = (S==0) & [DIN15..DIN0] # (S==1) & [DIN14..DIN0,DIN15] # (S==2) & [DIN13..DIN0,DIN15..DIN14] # (S==3) & [DIN12..DIN0,DIN15..DIN13] # (S==4) & [DIN11..DIN0,DIN15..DIN12] # (S==5) & [DIN10..DIN0,DIN15..DIN11] # (S==6) & [DIN9..DIN0,DIN15..DIN10] # (S==7) & [DIN8..DIN0,DIN15..DIN9] # (S==8) & [DIN7..DIN0,DIN15..DIN8] # (S==9) & [DIN6..DIN0,DIN15..DIN7] # (S==10) & [DIN5..DIN0,DIN15..DIN6] # (S==11) & [DIN4..DIN0,DIN15..DIN5] # (S==12) & [DIN3..DIN0,DIN15..DIN4] # (S==13) & [DIN2..DIN0,DIN15..DIN3] # (S==14) & [DIN1..DIN0,DIN15..DIN2] # (S==15) & [DIN0,DIN15..DIN1]; end barrel16