Necesita ayuda para comprender la generación de salida de estado de una ALU

0

Actualmente estoy intentando implementar un procesador simple utilizando Verilog en un FPGA. Estoy usando la arquitectura Mic - 1 como modelo de referencia.

Lo que no puedo entender es que la ALU está generando una salida de "estado" cuando se completa una determinada operación. ¿Cómo sabe exactamente la ALU que se ha completado una determinada operación? Debido a que cada operación puede tomar un número diferente de ciclos de reloj para completar. Por ejemplo, la multiplicación puede llevar muchos ciclos de reloj que la suma simple, ya que la multiplicación requiere varios cambios de bit y adiciones.

¿Este retardo de tiempo debería estar predefinido en ALU?

La arquitectura MIC-1 se muestra a continuación.

    
pregunta Anuradha

1 respuesta

2

Su ALU tendrá una máquina de estado que realiza cualquier operación de varios ciclos. Esta máquina de estado es lo que controla el "final" de una instrucción.

No hay razón para que las operaciones deban tomar más de un ciclo, pero tan pronto como lo permita, debe realizar un seguimiento de las fases de una sola instrucción. También es posible que desee considerar el impacto de la demora en la obtención de instrucciones o en la carga / almacenamiento de datos (ya que es muy probable que se encuentre con una infraestructura de bus que implique arbitraje). paso 'y cuando hay que esperar.

La arquitectura que se muestra aquí parece una sola etapa, sin canalización. No hay ninguna razón por la que su ALU no pueda consumir varios ciclos y permita que el resto de la máquina avance solo una vez que esté estable.

Se sincronizará una etapa de varios ciclos (desplazamiento / operación para cada bit) o una única ruta combinatoria profunda (que será más difícil desde el punto de vista de la restricción de síntesis). Por lo general, puede intentar convertir su ruta más lenta en un simple múltiplo de la entrada, y tal vez detenerse durante 3 ciclos (como ejemplo). A veces, puede mirar un par de bits de datos de entrada para decidir cuánto tiempo necesita la lógica para estabilizarse.

    
respondido por el Sean Houlihane

Lea otras preguntas en las etiquetas