Horloge réglable en HDL

zdun8

Horloge réglable en HDL


J’ai besoin de générer une horloge réglable en hdl (verilog) sur altera cyclone II fpga en utilisant des sondes de signal (blocs qui peuvent changer leur valeur de sortie via jtag – il n’est pas nécessaire de recompiler le code). J’ai trouvé une solution qui utilise un compteur et un comparateur, la sortie du comparateur étant la nouvelle horloge, mais cette idée crée une horloge très moche (pic) et je me demandais s’il y avait une meilleure solution à cela.

Sur certains fpgas (stratix), il est possible d’utiliser une pll reconfigurable mais cela ne s’applique malheureusement pas au cyclone II.

Merci de votre aide

modifier: horloge d’entrée 24 Mhz. Horloge de sortie 1 kHz – 10 MHz, l’horloge est utilisée pour les blocs émetteur-récepteur et récepteur, qui envoient simplement des octets entre eux.

Dave Tweed ♦

Pas assez d’informations: quelles fréquences d’horloge souhaitez-vous générer et quelles horloges disposez-vous dans la puce?

avakar

À quoi sert l’horloge résultante? Est-ce une sortie ou est-il utilisé pour synchroniser une logique avec le FPGA?

zdun8

Horloge d’entrée 24 Mhz. Horloge de sortie 1 kHz – 10 MHz, l’horloge est utilisée pour les blocs émetteur-récepteur et récepteur, qui envoient simplement des octets entre eux.

Dave Tweed ♦

Vous devez modifier les informations supplémentaires dans la question; les gens pourraient ne pas le repérer ici dans les commentaires.

Réponses


 Dave Tweed

Si vous pouvez tolérer 42 ns de gigue crête à crête (la période de votre horloge 24 MHz) dans votre horloge synthétisée, une approche de synthèse numérique directe (DDS) serait probablement viable. Cela nécessite simplement un registre d’accumulateur et un additionneur de même largeur. Le MSB de l’accumulateur devient votre horloge synthétisée.

Vous n’avez pas précisé la résolution de fréquence dont vous avez besoin. Pour générer une sortie à 1 kHz, il faudrait au moins 15 bits dans votre accumulateur; cela vous permettrait de générer n’importe quelle fréquence qui est un multiple de 24 MHz / 2 15 = 732,42 Hz. Si vous ajoutez plus de bits, vous pouvez obtenir une résolution plus fine. Si vous voulez une résolution de ~ 1 Hz, vous aurez besoin de 25 bits, ce qui vous donnera des pas de 0,715 Hz.

Pour toute conception DDS particulière, le nombre de bits dans la valeur de réglage de fréquence est le même que le nombre de bits dans l’additionneur et l’accumulateur. Pour changer la fréquence, même à la volée, il suffit de changer cette valeur (mais pas sa largeur).

zdun8

C’est intéressant et c’est logique. Le seul problème est que j’ai besoin d’ajuster l’horloge sans recompilation lorsque j’utilise dds, je devrais changer la largeur de la sortie de la sonde qui, pour autant que je sache, n’est pas possible. Cependant, il semble possible si je n’utilisais qu’un certain bit d’un registre fixe pour générer l’horloge, c’est ce que vous vouliez dire? Pourriez-vous expliquer comment avez-vous calculé 42 ns de gigue crête à crête?

zdun8

Je comprends, merci beaucoup, je vais utiliser cette approche dans mon projet, merci beaucoup.

 

#en, HDL, horloge, réglable

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *