relojes independientes FIFO IP CATALAOG

0

[![ingreseladescripcióndelaimagenaquí][2]][2]EstoyintentandosimularunFIFOgeneradoporelcatálogodeIP.

ElegíparalaimplementaciónFIFOunBRAMderelojindependienteconvacíoscasivacíoscasicasillenos.

Tiene7bitsdeanchoy16bitsdeprofundidad.

Nocomprendocuandodesactivoelreinicio,todaslasbanderaspermanecenen'1',¿significaqueFIFOestávacíoyllenoalmismotiempo?

Luegoafirmoqueelpermisodeescrituraestáen'1'yescribounpardeveceslapalabra'03'enelFIFO,perometoma11ciclosderelojdelecturaparafinalmenteleerlapalabra'03'yseleesolodosveces,peroescribílapalabramásdedosveces.

Ydurantelaescrituraylalecturadelasbanderasvacíasyllenasnotienesentidoparamí

    
pregunta the dude

1 respuesta

0

Al observar la forma de onda, el FIFO tiene un tiempo de caída de ~ 14 relojes. El comportamiento de los indicadores de estado después de un restablecimiento parece tal que proporciona un estado "seguro" (consulte a continuación). Para más detalles tienes que preguntarle a Xilinx sobre eso. Solo me preocupa la "X" de tb_wr_rst_busy.

Además, le aconsejo que no escriba a la FIFO cuando afirme estar completo. La salida de tres veces 0x03 se corresponde con su habilitación de escritura activa al mismo tiempo que el indicador completo está bajo.

Lo mismo para la lectura: no leer cuando dice estar vacío.

Esta es también la explicación más probable para los indicadores de estado después de un restablecimiento: en el lado de escritura, dice estar lleno, en el lado de lectura dice estar vacío. Esto debería evitar que su lógica "haga" cualquier cosa con FIFO hasta que se complete el restablecimiento.

Y sí, un FIFO con relojes de lectura y escritura independientes (FIFO asíncrono) está obligado a tener una gran latencia entre la entrada y la salida.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas