Sí, debería siempre dividir estas dos partes en sus diseños.
(Por cierto. No hablaría de esos dos si estuviéramos hablando de módulos simples).
La división de ruta de datos y control tiene estas ventajas:
- mejor mantenibilidad
- la ruta de datos es más fácil de entender, porque es un flujo / gráfico dirigido
- Los FSM son más fáciles de entender porque no están llenos de datos
- desarrollo "más rápido"
- delegar el desarrollo a múltiples desarrolladores
- los módulos datapath podrían reutilizarse en el mismo proyecto o en otros.
Si ambos están entrelazados, un módulo de ruta de datos no será universal y no permitirá la reutilización del código / módulo
- mejor probabilidad
- probar los módulos de ruta de datos independientemente del control
- control de prueba (principalmente uno o más FSM) independientemente
- use arquitecturas ficticias en la ruta de datos mientras prueba el módulo de alojamiento
computación
La división de la ruta de datos y el control también implica la división de partes del control en unidades de subcontrol como sub-FSM, contadores, ...