2 votes

Diviser une horloge par 3 sans modifier le rapport cyclique ?

J'ai beaucoup cherché mais je n'ai pas trouvé de bonne solution. La plupart des réponses ne fonctionnent que lorsque le cycle d'utilisation est de 50 %, mais je cherche une solution qui fonctionne pour les horloges avec des cycles d'utilisation de 40 %, etc.

1voto

Peter de Rivaz Points 13457

SYNCHRONOUS

Vous aurez du mal à le faire avec une conception synchrone, car les flip-flops ne peuvent commuter que sur un front d'horloge.

Les circuits typiques de division par 3 sont soit :

  1. Utiliser des fronts d'horloge positifs et avoir un rapport cyclique de sortie de 33%.

  2. Utiliser les fronts positifs et négatifs et avoir un rapport cyclique de 50% si l'entrée est de 50%.

Malheureusement, pour un rapport cyclique d'entrée général tel que 40%, si vous tracez l'emplacement des fronts d'horloge, vous constaterez qu'ils se produisent à.. :

0,0.4,1,1.4,2,2.4,3

mais pour une division de 40% par 3, vous auriez besoin de bords séparés par 1,2 (=0,4*3) et 1,8, mais vous ne disposez pas de telles différences. (Vous ne disposez que de différences telles que 0,4, 0,6, 1,0, 1,4, 1,6, etc.)

ASYNCHRONOUS

La façon standard d'obtenir un diviseur par 3 avec un rapport cyclique différent est simplement d'instancier une boucle à verrouillage de délai ou un circuit à verrouillage de phase.

Par exemple, si vous utilisez un FPGA Altera, regardez la mégafonction AltPLL qui dispose d'options pour définir le rapport cyclique cible et qui fonctionnera sur une large gamme de rapports cycliques d'entrée.

Cependant, notez que le rapport cyclique de sortie est défini lorsque vous configurez la PLL et ne suivra pas le rapport cyclique d'entrée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X