Multiplieur de fréquence en VHDL - Divers - Programmation
Marsh Posté le 23-03-2008 à 16:40:10
Avec une cible physique, la solution habituelle pour multiplier un signal d'horloge est de passer par une PLL ou DLL (boucle à verrouillage de phase ou de délai). Ces blocs sont basés autour d'un VCO, qui étant une fonction analogique complexe (génèrant une fréquence variable selon une consigne en tension) ne peut pas être synthétisée sous forme de portes logiques.
En pratique, on est donc obligé d'instancier une "primitive constructeur" PLL ou DLL qui intégre nativement une des PLL ou DLL intégrées au FPGA (sauf si ta carte utilise un modèle préhistorique). Multiplier/diviser la fréquence d'une horloge (et/ou contrôler sa phase avec une horloge de réference) étant une fonctionnalité incontournable dans tout design "sérieux" destiné à une application réelle, la doc des constructeur traite ce sujet en long, large et en travers (du moins chez Xilinx et Altera).
En bref :
1 - DL la doc du FPGA
2 - Recherche la section traitant des PLL/DLL
3 - Dans l'environnement de dev instancies la primitive (via coregen / megawizard ou encore a la main) mentionnée dans la doc
4 - Si tu veux simuler ton design sous Modelsim, il est probable qu'il te faille changer la résolution (en centaine de ps voir moins selon le rapport de multiplication/division) et d'avoir compilé les librairies de simulation des primitives (cf doc du fabriquant du FPGA)
Marsh Posté le 14-03-2008 à 20:21:53
Bonjour,
Je cherche à coder un multiplieur de fréquence en VHDL.
Le but est de récupérer la fréquence d'un quartz et de la multiplier dans une carte de développement.
Sachant qu'une fréquence de Quartz est au alentour de 14.5Mhz,
je voudrais pouvoir multiplier cette fréquence pour atteindre des centaines de Mhz
Si vous pouviez me donner un code ou du moins une idée pour la façon de procéder ça serait génial
D'avance merci
Message édité par Raph004 le 14-03-2008 à 20:23:16