¿Cómo generar esperar hasta que la división termine en verilog?

2

Estoy usando un módulo de división que tiene dos señales distintas a las entradas "ir" para indicar el inicio de la división. "hecho" para indicar parada de división. Se están tomando aproximadamente 300 ciclos de reloj para que la división se complete

¿Cómo puedo detener la ejecución del resto del circuito mientras se hace esto?

Tengo que generar el siguiente código

if x>p
    c=-p/x;
    m=(c+10)f
else
    c=-x/p;

La división aquí está tomando 300 ciclos de reloj impares para completar y tengo que detener la asignación de m hasta que el valor de c se calcule a partir de la división Gracias por la ayuda :-)

    
pregunta 8A52

2 respuestas

4

Cree una máquina de estados en la que se atasque en un estado particular hasta que la señal de confirmación termine.

    
respondido por el Socrates
3

En casos como estos, su módulo divisor generalmente se considera parte de la ruta de datos / flujo de datos de su diseño. Todos los módulos deben incluir algún tipo de señal 'habilitar' o 'clken' para que el control fsm pueda coordinar cuándo y dónde fluye la información. Cuando los módulos se conectan en cascada entre sí sin ningún controlador, generalmente tienen algún tipo de mecanismo de control de flujo, como un par disponible / preparado.

Si las otras partes de su circuito no fueron diseñadas de esta manera, generalmente puede implementarlo mediante el ajuste de sus relojes (esto no es posible en ciertos casos, como cuando contienen un pll). Esta es una forma de darles la funcionalidad 'habilitar' que está buscando.

    
respondido por el apalopohapa

Lea otras preguntas en las etiquetas