Actualización:
csum = csum + one_cnt [i * ('DPC_shift +1) +: (' DPC_shift +1)];
Tengo una consulta, ¿esto es sintetizable?
Al menos en la versión de quartus que uso si i es una señal, no se sintetizará. Descubrí esto por el camino difícil. Se queja de que la indexación no es constante a pesar del hecho de que el ancho es constante y del hecho de estar contento de realizar una selección de un solo bit con un índice variable.
Me parece muy molesto, ya que si la herramienta lo apoyara, sería una herramienta útil para extraer palabras secundarias de palabras más grandes.
No he probado con otras herramientas o con i como contador de bucles.