Tengo dos módulos en VHDL, se parecen a esto:
En el módulo U1 tengo una entrada de 8 conmutadores, y se supone que cada conmutador envía un conjunto de paquetes (vectores de 64 bits) del módulo U1 al módulo U2. El módulo U2 emite cada uno de esos paquetes, a su vez, con un reloj de 1 MHz, a algún dispositivo externo.
Para mayor comodidad, permite llamar a cada conjunto de paquetes un comando .
Ya he implementado una cosa así ( sin matrices ), pero es complicado y crea un código muy largo. Para evitar eso, pensé en usar matrices y funciones / procedimientos, donde cada función / procedimiento (¿puede ser la salida de una función una matriz? Me estoy inclinando hacia el uso de un procedimiento aquí) almacena un comando (teóricamente esto podría ser 18 paquetes) en una matriz, y esa matriz se envía más tarde a U2.
La razón por la que quiero usar una función / procedimiento es porque cada comando se puede ejecutar varias veces con cada cambio de un interruptor (por ejemplo, el interruptor ascendente 2 podría enviar el comando número 1, comando número 2, comando número 3, comando número 1) y, por supuesto, esto hará que el código sea mucho más pequeño y eficiente.
Editar: el módulo U2 toma cada paquete (64 bits) y con una máquina de estado lo separa en paquetes de 8 bits cada uno y los envía al dispositivo externo a su vez, usando un reloj. Entonces, obviamente, necesito que una señal tome cada paquete de 64 bits uno por uno, por eso he pensado en usar arreglos.
Mis preguntas son:
- ¿Es eso posible? ¿Puede una matriz ser una salida de un módulo y la entrada de otro?
- En su opinión, ¿hay una mejor manera de implementar esto? (esa es la pregunta principal aquí)