Faire une cascade de 2 PLL dans un FPGA Spartan6

Bonjour à tous,

Pourriez-vous me conseiller au sujet de faire une cascade de deux PLL à l’intérieur d’un FPGA Xilinx Spartan6 ? Le but est d’obtenir un signal d’horloge de 294,… MHz. L’oscillateur externe est de 50 MHz. Maintent je multiplie cette fréquence par 7 afin d’obtenir un second signal d’horloge de 350 MHz. Ça marche. C’est le coeur de mon modulateur AM à fréquences multiples. Le voici:

IMG_20200605_113614.jpg

Ce modulateur fait la modulation de 8 stations simultanées dans la bande des PO. (et dans les GO). J’aimerais modifier la programmation afin de fixer les station sur un multiple de 9 kHz.
Pour arriver à cela il faut diviser la fréquence de 50 MHz par 49 et puis multiplier le résultat par 289. Le dénominateur et le numérateur d’un PLL à l’intérieur d’un Spartan6 FPGA sont limités à 32. Donc il est nécessaire d’installer deux PLL en série. Ainsi chaque PLL fait la multiplication avec (17/7). Le point difficile est la connexion des deux PLL. Je ne suis pas expert des détails d’un tel FPGA. Je n’arrive pas à trouver la methode de faire la connexion avec la language “Verilog”. Si vous savez comment faire l’interconnexion des deux PLL prière de me tenir au courant.

Un grand merci d’avance,

Eduard Hontelé

Bonjour à toutes et à tous,

La question que j’ai posée n’était pas facile. Enfin j’ai réussi à cascader deux PLL à l’intérieur du FPGA. Cette cascade fait la multiplication de fréquence par (289/49). Ainsi j’arrive à une fréquence de 50289/49 MHz sans remplacer l’oscillateur à quartz. Cette fréquence de 294,8979592 MHz fait une bonne appoximation de 91024*32 kHz; la fréquence idéale pour arriver à des porteuses qui tomberont sur un multiple de 9 kHz. L’écart à cause de cette approximation est de 45 ppm. En y ajoutant les 50 ppm du quartz ça fait un écart de 95 ppm au maximum.
L’origine du problème était le système de développement ISE14.7. L’assistance en ligne ne marchait pas. L’ essentiel de cela était la language Java. Le logiciel a besoin d’une version plus moderne. Après l’ avoir installé, je suis en mesure de lire les détails au sujet du générateur de code.

Afin de vérifier la fréquence j’ai programmé un diviseur par 1024. Ce signal est relié au compteur. Voici le résultat:
x1024.jpg
Il faut multiplier ce nombre par 1024 pour obtenir la fréquence d’horloge.

Sauf imprévu ce sera possible de mettre les 8 porteuses très proche de la fréquence d’un émetteur disparu.

Selon moi, la question a trouvé une solution.

Bien cordialement,

Eduard

Bonjour Eduard
Excellente solution !
Nous allons pouvoir continuer les tests pour contrôler que toutes les fréquences normalisées des émissions présentes ou disparues dans les bandes GO et PO sont correctement programmées.
A votre disposition pour poursuivre la session d’évaluation.
Bien cordialement
Daniel