FPGA: Memória buffers design em VHDL

P

Pedro23

Guest
Queridos todos,

Eu tento fazer o desenho de memória para funcionar como um amortecedor para as datas de entrada.Eu trabalho em um bordo spartan3E.
Meus dados de entrada são 4 canais std_logic_vector (11 virou 0),
a frequência 50 MHz.
Estou pensando em usar um FIFO por canal, um MUX 4 -> 1 e uma única RAM.Eu necessidade de acelerar a freqüência de leitura FIFOs, para poupar a memória RAM de 4 (um canal = uma parte).
Talvez eu possa usar núcleo gerador da Xilinx para gerar FIFOs e RAM ... mas não sei como escolher a profundidade e largura do FIFOs / RAM, a leitura de FIFOs freqüência (200 MHz?), Como controlar os dados intercâmbios ...
Por último,
tenho ideias, mas tenho dificuldades para implementar a solução.

Alguém pode me ajudar?
Obrigado!

 
Olá Pedro,
Antes de começar, você deve certificar-se dados sobre a frequência ou a taxa de bits.Uso do FIFO significa tão somente quando tiver taxa de bit variável.Ou então, você acabará por acabar com a escassez fifo e perder dados ... Veja este link para alguma informação sobre fifo pormenores e cálculo antes de iniciar .... E tentar dar pouco mais info ....
<http://www.asic-world.com/tidbits/fifo_depth.html>
Atenciosamente

 
Olá xtcx,

Eu tento fazer um sistema de aquisição de dados.Os dados deixam uma ADC em 4 LVDS canais por 12 bits moldura.Então, eu faço uma conversão serial para paralelo.Tenho certeza sobre a minha entrada, os dados vêm pela armação de 12bits no 50Mhz frequência, por isso é 600Mbps no FIFO entrada.
Eu escolhi FIFOs independente com relógios e penso que uma leitura 200Mhz frequência pode ser suficiente.
Eu já vi esse método de cálculo para o FIFO profundidade mas parece confuso para mim ...

 
Oi Pedro,
Seu conceito é ainda pouco claro para mim .. Seu ADC actualiza todos 50MHZ só,
tem certeza sobre isso ?.... Ok, então para readinf 4-canais, a sua velocidade deve ser lido 200MHz ..... Altogethor, você faria Não precisar de um fifo se mudar sua velocidade é 4 vezes mais rápida do que a velocidade de entrada de dados, desde que a sua memória RAM deverá ser capaz de escrever dados a essas velocidades.Por ex., Na minha concepção,
tenho dados de 8 bits a partir de 8 diferentes entradas.Mas só posso permitir que um processo ou canal (8 bits) em um tempo.Neste caso, eu nunca optar por fifo a razão é porque todos os bits de dados a partir de 8 canais estão em constante taxa de bits de 128 Kbps.Assim
8 ch x 128KHz = 1024KHz.
Então se eu mudar o MUX
da Sel a uma velocidade de 1024KHz, então eu posso ler todos 8-ch, sem qualquer perda.Também a minha memória RAM tem dados de 8 bits de largura e eu simplesmente mudar o endereço da minha memória RAM de 8 canais utilizando o valor corrente em meu selector.Por ex., Se o meu seletor tem valor 5 (CH-5), então vou adicionar este 5 com ram addr.Well, No seu caso,
50MHZ x 4CH = 200MHz.
Então, se você mudar rapidamente o selector de seus 4
.-1. MUX em 200MHZ velocidade, você não perderá todos os dados na saída da MUX.Você deve configurar a sua memória RAM para dados larguras de 12 bits.Você pode simplesmente mudar o endereço de sua memória RAM, dependendo do seu valor MUX selector.Apenas certifique-se de escrever os dados na memória RAM em velocidades de 200MHZ.Final coisa é, não vejo que haja qualquer necessidade de FIFO em todo o seu caso ..... excepto Você só precisa de um FIFO RAM se escrever a esta velocidade não é possível em caso como RAM 133MHz ou mesmo mais lento .... É claro agora? ...

 

Welcome to EDABoard.com

Sponsor

Back
Top