Ajuda em VHDL?

B

BGA

Guest
-------
Última edição por BGA em 23 de Maio de 2003 21:03, editado 1 vez no total

 
Se estou a compreender que pretende atrasar o sinal,
e não a borda do mesmo.Em seguida, com suas necessidades, parece quase impossível de alcançar.Você precisaria veeeery longos turnos registar-se para ter atraso 500us, que é de 100000 ciclos de relógio seu principal relógio 20MHz.É verdade que FPGAs são registo ricos, mas não tanto ...Além de tê-lo programáveis que você precisa escolher uma saída de registo exigido que também não será trivial.

Se você quiser apenas demora borda do sinal, então é uma história diferente.

 
BGA wrote:

Preciso de uma linha digital demora entre 0 ns e 500us com precisão de 5ns.

A quantidade de atraso é especificado em um cadastro.

Qualquer ajuda?
 
Oi ...agradecimentos para o replay.
Vou tentar explicar melhor ...
O que eu preciso fazer é exactamente aquilo que Gunship writed no correio.Para resolver o problema de memória que
estou pensando para armazenar o sinal de entrada como segue:
Eu preciso o uso de 2 contadores clocked 'em 200Mhz (chamado Counter1 e Counter2).
-A primeira borda de subida do sinal de entrada é utilizada para iniciar Counter1;
-Quando uma aresta vem caindo, ele pára Counter1 e deixe começar Counter2.
-O valor de Counter1 é armazenada na memória.
-Quando a próxima borda de subida do sinal de entrada for detectado, Counter2 está parado e Counter1 é iniciado.
-O valor de Counter2 é armazenado.
....e assim por diante.
Para produzir o sinal de saída, eu preciso fazer o acesso à circular sequencial tampão e colocar o valor em outros dois contadores (Counter3 e Counter4).
O terminal contador sinal de Counter3 é usado para definir um FF, o balcão do terminal Counter4 é usado para limpar o FF.

Com as características do sinal de entrada que recebo, eu preciso de menos de 1000 um elemento de 32 bits de memória (provavelmente 1000 * 16 bits).

O atraso D é D = N * 5ns onde N é armazenado em um registro e pode mudar durante o processo demora.

Agora o problema é que eu não
estou em vhdl qualificados e uma ajuda é necessária para implementar essa máquina em FPGA.
U pode me ajudar?

 
Estou realmente não tem certeza do que você quer fazer ..
Mas isto pode ser útil se quiser adiar um sinal em um FPGA ..FPGA que você está usando?Se for Xilinx Virtex / SpartanII, você pode implementar isso em SRL16Es.

Como sabem elemento básico em um FPGA é um olhar de mesa.Xilinx FPGAs utilização de 4 entrada procurar mesa, e novamente estou falando da Xilinx Virtex FPGAs Família.EM Virtex FPGA, você pode configurar uma mudança Lot como um registo com 16 níveis de atraso.Desta forma, você não gasta qualquer lógica recursos no chip.

Se você não estiver usando dispositivos Xilinx ..e, em especial dispositivos Virtex família ...bem eu não sei

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorrir" border="0" />Deixe-me saber se você quiser mais informação sobre esta SRL16Es

Hope this helps
Kode

 
Vamos tentar desta maneira:
1: obter a singal da subida borda que você deseja atrasar
2: uso 200m freqüência [T = 5ns], (Pode ser gerada a partir de FPGA)
3: usar um contador, a duração é de 17, pelo menos,

quando detectado o sinal do aumento do limite, você pode iniciar o contador a zero,
defina o sinal de saída para um mesmo time.as o tempo está passando, o Couter continua a aumentar até atingir o seu alvo apenas set. e,
em seguida, o disactive sinal de saída, a queda abtain borda.

mas, o problema é que a saída será mais jitter 5ns.

 
O problema é que, durante o tempo de atraso, o sinal para o atraso pode ter mais de um aumento e queda borda.O sinal pode variar entre 0 e 1 sem quaisquer regras.

 

Welcome to EDABoard.com

Sponsor

Back
Top