Tomando salida de FIFO implementado en verilog

1

Tengo un gran diseño implementado en Verilog. El diseño tiene FIFO como se muestra en la imagen de abajo. Debido a alguna razón, tengo que agregar un nuevo bloque "Consumidor" que se muestra.

El problema es que este bloque necesita todas las filas del bloque de origen (FIFO en este caso, que no puedo modificar) simultáneamente en un solo reloj. ¿Qué tengo que hacer? qué bloque intermedio puedo implementar que satisfaga los requisitos del bloque Consumidor . En este momento el indicador de lectura está leyendo datos secuencialmente.

    
pregunta gpuguy

2 respuestas

2

Dos opciones:

  1. O necesitas un reloj 23 veces más rápido y leer los datos con ese reloj.
  2. Lea FIFO utilizando el mismo método de lectura secuencial, pero haga estallar todos los datos para generarlos después de leer los datos. Esto dará como resultado una ráfaga de datos 23 veces mayor debido a un bus de datos 23 veces mayor.
respondido por el Socrates
0

Al remodelar el bus de 6 bytes de ancho a (23 * 6) 138 bytes de ancho, tendrá una señal 'válida' afirmada con menos frecuencia que llegará al consumidor. La entrada en serie a la salida en paralelo generalmente se implementa mejor con los registros de desplazamiento y un contador para establecer la validez de cada 23 ciclos de entrada válidos. Su registro de desplazamiento consta de 48 registros de desplazamiento de un solo bit independientes, cada uno con 23 elementos de profundidad.

Puede cargar el registro de desplazamiento desde la entrada hasta el FIFO, o la salida desde el FIFO en función de los dominios de reloj y las características de almacenamiento en búfer requeridas. Por ejemplo, ¿el Consumidor necesita varios / ciclos verificables en los que se mantiene la entrada amplia? En el que necesita el FIFO para amortiguar la falta de coincidencia de velocidad transitoria.

    
respondido por el shuckc

Lea otras preguntas en las etiquetas