A FIFO is provided which includes gray-encoded READ and WRITE counters in
which partial capacity flags (referred to collectively as "WATERMARK
level" flags herein) are generated when the difference between the count
values in the two counters exceeds a first threshold level and which
resets the flag when the difference between the count values drops below a
second, lower threshold level. In accordance with the present invention, a
single gray-coded WRITE pointer counter comprises a WRITE pointer register
and a gray-code increment block. A READ pointer register comprises a shift
register and a gray code increment block having plural stages and storing
consecutive incremental WATERMARK values, based on the READ pulse count,
therein. With each successive READ clock pulse, consecutive WATERMARK
values are stored in the plural-stage READ pointer register, and with each
READ clock pulse these values are incremented by one. The plural WATERMARK
values are compared with the current value of the WRITE pointer register.
By analyzing the current WRITE pointer value in connection with the plural
consecutive WATERMARK values, the direction (ascending or descending) of
the compared values can be determined and, due to the redundancy available
from the multi-level WATERMARK values stored in the READ pointer register,
hystersis is introduced so that the partial capacity flags are generated
only when the difference between the READ and WRITE pulses crosses the
WATERMARK level.
Un fifo est fourni qui inclut gris-codé LU et ÉCRIT les compteurs dans lesquels des drapeaux partiels de capacité (désignés collectivement sous le nom des drapeaux de niveau de "FILIGRANE" ci-après) sont produits quand la différence entre les valeurs de compte dans les deux compteurs excède un premier niveau de seuil et lesquels remet à zéro le drapeau quand la différence entre les valeurs de compte chute au-dessous de un en second lieu, un niveau plus bas de seuil. Selon la présente invention, un simple gris-codé ÉCRIT le compteur d'indicateur comporte un registre d'indicateur d'INSCRIPTION et un bloc d'incrément de gris-code. Un registre INDIQUÉ d'indicateur comporte un registre à décalage et un bloc gris d'incrément de code ayant les étapes plurielles et stockant des valeurs par accroissement consécutives de FILIGRANE, basées sur le compte INDIQUÉ d'impulsion, là-dedans. Avec chaque impulsion d'horloge LUE successive, des valeurs consécutives de FILIGRANE sont stockées dans l'pluriel-étape LISENT le registre d'indicateur, et avec chacune LISENT l'impulsion d'horloge que ces valeurs sont incrémentées par on. Les valeurs plurielles de FILIGRANE sont comparées à la valeur courante du registre d'indicateur d'INSCRIPTION. En analysant le courant ÉCRIVEZ la valeur d'indicateur en liaison avec les valeurs consécutives plurielles de FILIGRANE, la direction (croissant ou descendant) des valeurs comparées peut être déterminée et, en raison de la redondance fournie par les valeurs à multiniveaux de FILIGRANE stockées dans le registre LU d'indicateur, hystersis est présenté de sorte que les drapeaux partiels de capacité soient produits seulement quand la différence entre LUE et ÉCRIVENT à des croix d'impulsions le niveau de FILIGRANE.