[an error occurred while processing this directive]
Чего непонятно? Есть параметр, задающий битность регистра. Далее этот регистр идет как часть регистра сдвига. Если он однобитный, то в нем самом сдвигать нечего, просто его выход суем в другой регистр. А если двубитный или шире, то двигаем и в нем тоже. Ну и как тогда условно компилить? Ведь описание на верилоге будет разным. Пока я что-то не нашел как это сделать, только если разные файлы (модули) делать. Но это криво.
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))