profundidade do FIFO

V

varkylin

Guest
Oi tudo:
Como faço para decidir a profundidade do FIFO em função da velocidade dos dois lados.
muito obrigado

 
A profundidade do FIFO deve ser tal que não haveria um estouro quando você tem alta velocidade escrever CLK e uma baixa velocidade de leitura CLK.

 
Tamanho do FIFO basicamente se refere à quantidade de dados disponíveis em um dado momento.Em FIFO assíncrona isso depende tanto ler e escrever freqüências de clock de domínio e número de escrita e leitura de dados (data rate).Taxa de dados pode variar dependendo da operação de domínio duas relógio e exigência (e de freqüência é claro!).A condição de pior caso é a diferença entre a taxa máxima de dados de leitura e gravação do relógio.Isso pode acontecer quando a taxa de dados de operação da escrita é máxima e para ler dados de taxa de funcionamento é mínimo.Vamos fwrite -> ser a freqüência de escrever domínio relógio
Fread -> ser a freqüência de clock de domínio de leitura.
Bmax -> burst de dados gravados ou número máximo de bytes de dados podem ser escritos
BWrite -> número de bytes que é escrito por ciclo de relógio
Bread -> número de bytes que são lidos por ciclo de relógio

Então tamanho FIFO pode ser dada por,

Fsize = Bmax-[Bmax.fread.Bread / fwrite.Bwrite]

Se o número de bytes lidos ou escritos por ciclo de relógio é um, então temos,

Fsize = Bmax-[Bmax.fread / fwrite]

No nosso caso, fwrite = 10 MHz

= Fread 2,5 MHz

Vamos Bmax = 2 então fsize = 2 - [(2 * 2,5) / 10] = 2-0.5 = 1,5 ~ 2Se Bmax = 5, então fsize = 5 - [(5 * 2,5) / 10] = 5-1.25 = 3,75 ~ 4.

 
Acho que, o tamanho da FIFO não é decidida pela velocidade dos dois lados, normalmente é depender do tamanho estouro buscar o máximo de tamanho.e como é a profundidade exata, é caso a caso.

 
Esta questão foi postada neste fórum muitas vezes.Tente encontrar as mensagens.

 

Welcome to EDABoard.com

Sponsor

Back
Top