No es necesario declarar dentro de la sección PRIVATE los parámetros del proceso, pues éstos se declaran de forma automática; pero en caso de declararlos se deben declarar como variables no como tablas o estructuras, y no se deben inicializar.
Lo más probable es que se haya pretendido utilizar el mismo nombre para dos objetos diferentes; por un lado, para uno de los parámetros del proceso y, por otro, para una tabla PRIVATE del mismo proceso.
PROGRAM mi_juego; BEGIN //... END PROCESS mi_proceso(a) PRIVATE a[9]; // Error: No se puede especificar una tabla como parámetro. BEGIN //... END
El compilador interpreta que se está tipificando el parámetro a como una tabla de 10 posiciones y como no se puede pasar una tabla como parámetro, emite el error.