Al diseñar un sistema digital, ¿siempre tenemos que particionar las rutas de datos y las unidades de control?
Si no, ¿cuáles podrían ser las situaciones en las que realmente no tenemos que preocuparnos por la partición de estos módulos?
Gracias.
Al diseñar un sistema digital, ¿siempre tenemos que particionar las rutas de datos y las unidades de control?
Si no, ¿cuáles podrían ser las situaciones en las que realmente no tenemos que preocuparnos por la partición de estos módulos?
Gracias.
Dejando a un lado los comentarios de Snarky, la respuesta a tu pregunta es no, no siempre tienes que separarlos. Realmente depende de la naturaleza de la función que implementa el módulo y de la complejidad de la ruta de datos y la lógica de control.
A veces, con funciones simples, tiene sentido hacer todo en un solo proceso (por ejemplo, always
block en Verilog) dentro de un módulo. Mientras pueda ver fácilmente todo el contexto de todo lo que está sucediendo, esto requiere la menor cantidad de código fuente y la menor cantidad de cosas que alguien que lea el código deba memorizar.
Otras veces, tiene sentido hacerlo como procesos separados dentro de un solo módulo.
Y si el control o la ruta de datos es muy compleja, puede tener sentido implementarlos como módulos separados, tal vez incluso con submódulos internos. No hay reglas estrictas aquí.
Al igual que con cualquier código fuente, tenga en cuenta que usted u otra persona tendrá que leerlo y entenderlo algún día, y desea dejarlo tan libre de malentendidos como sea posible.
Claramente, DEBE tener ALGUNA forma de distinguir entre la información de DATOS y de CONTROL. De lo contrario no tienes un sistema operativo. Muchos sistemas separan datos y controlan FÍSICAMENTE, a menudo por motivos de velocidad. Por ejemplo, la mayoría de los chips de CPU de gama alta tienen rutas separadas de DATOS, DIRECCIÓN y CONTROL (e incluso I / O).
Y otros protocolos de comunicación (como USB o Thunderbolt o SATA) comparten la misma ruta física tanto para los datos como para el control. Y normalmente también se comparte el mismo camino para la comunicación en AMBAS direcciones. Pero identifican bloques de información como datos o control (o, en algunos casos, parte de ambos).
Lea otras preguntas en las etiquetas digital-logic verilog