- Muchas notas - Fran Acién

20210104 - VHDL 9 - FSMD

Continuación del block diagram de 20201015 - VHDL 5 - Diseño secuencial.

FSMD es la implementación de “dataflow” en VHDL.

Convertir algoritmo en circuito combinacional sin elementos de memoria. La secuencia será “flow of data”.

Problemas:

  • Poco flexible
  • Valida unicamente para algoritmos triviales

Bloque FSMD

1.png

Construcción del datapath:

  1. lista todas las operaciones RT (register transfer)
  2. Agrupar operaciones RT de acuerdo con el registro destino
  3. Añadir lógica combinacional
  4. Añadir status circuits

Construcción del control path:

  • Listar todas las entradas de control
    • Entradas de control externas
    • Señales que determinan un estado siguiente
    • Nuevos circuitos para generar lógica
  • Listar todas las salidas de control
    • Señales de control para multiplexores
    • Señales de control externas
  • Seguir la construcción estándar FSM
Periodo de reloj y rendimiento

Dificil de analizar porque hay dos bucles

Mejor escenario -> Las señales de control se necestan tarde, las señales de estados se disponen pronto

$$ T_c = T_{cq}(data) + T_{dp} + T_{setup}(data) \\ T_c = T_{cq}(state) + T_{output} + T_{dp} + T_{next} + T_{setup}(state) \\ T_{cq} + T_{dp} + T_{setup} \le T_c \le T_{cq} + T_{output} + T_{dq} + T_{next} + T_{setup} \\ \frac{1}{T_{cq} + T_{output} + T_{dq} + T_{next} + T_{setup}} \le f \le \frac{1}{T_{cq} + T_{dp} + T_{setup}} \\ T_c = \text{Clock period} \\ K = \text{nº de ciclos para completar la computación} \\ Total = latencia = K \cdot T_c \\ $$

En donde K viene determinada por el algoritmo.