Usted puede usar su propia convención si lo desea, pero en su OP dice que el MIT 6.004x dice que su convención es tener una salida de tubería registrada.
Pero hay mejores razones que "es su convención".
¿Por qué está agregando un registro de tubería en la lógica aleatoria de las puertas F, G y H? Porque no son lo suficientemente rápidos. ¿No lo suficientemente rápido para qué? No lo suficientemente rápido como para recibir entradas en este ciclo de reloj, y tener el resultado listo para ser usado en el próximo ciclo. Entonces, al agregar el registro de salida, estamos siendo explícitos acerca de donde el tiempo debe ser correcto.
Cuando se diseña una tubería, lo fácil de la sincronización es "¿se puede registrar una unidad, en un período de reloj?". El bit duro es "¿se puede registrar una ondulación de salida a través de la lógica combinatoria aleatoria que tengo entre etapas, en un período de reloj?" El uso de un registro de salida significa que todo el tiempo difícil está bajo el control del diseñador de ese módulo (o el estudiante que responde la pregunta), y las interfaces son solo de tiempo fácil.
El uso de un registro puro al principio o al final de un proceso canalizado le proporciona la sincronización de E / S más limpia con respecto al reloj. Si necesita conectar su proceso a algo, eso es importante ya que permite un cálculo más sencillo de las configuraciones y las reservas, y la tolerancia para demoras adicionales y la inclinación del reloj entre procesos. Si voy al catálogo de módulos, es más probable que pueda usar con éxito el diseño con la sincronización de la interfaz más limpia.
Si encuentra que ha conectado dos procesos y que hay dos registros entre ellos cuando solo tiene que haber uno, es trivial eliminar uno de ellos. Entonces, cuando los dos procesos se encuentran, generalmente tiene un registro al que puede llamar la salida del proceso anterior o la entrada al siguiente. La convención del MIT es que llame a ese registro parte del anterior.