Actualización:
csum= csum + one_cnt[i* ('DPC_shift +1) +: ('DPC_shift +1)];
Tengo una duda, ¿es esto sintetizable?
Al menos en la versión de quartus que yo uso si i es una señal entonces no se sintetiza. Esto lo descubrí por las malas. Se queja de que la indexación no es constante a pesar de que el ancho es constante y el hecho de que es bastante feliz de realizar una selección de un solo bit con un índice variable.
Esto me resulta muy molesto, ya que si la herramienta lo permitiera, sería una herramienta útil para extraer subpalabras de palabras más grandes.
No he probado con otras herramientas ni con i como contador de bucles.