Accueil > Electronique > FPGA > Round-robin pour FPGA
Round-robin pour FPGA
dimanche 22 novembre 2009, par
Introduction
La description qui suit permet de partager une ressource entre plusieurs processus dans une FPGA. Elle est basée sur deux décaleurs à barillet et une pseudo-bascule RSC par processus.
La description
La description est paramétrable en nombre d’entrées donc de processus.
Le premier décaleur permet la réorganisation des candidats à l’accès de la ressource partagée en fonction du précédent élu. Dès que le précédent élu libère la ressource, elle sera affectée au prochain candidat. Cela permet d’éviter une appropriation par un seul des candidats.
Le second décaleur effectue l’opération inverse du premier afin que chaque allocation soit à associer à la bonne requête.
La bascule RSC mémorise le processus élu. Lorsque le processus n’a plus besoin d’accéder à la ressource, il remet la cellule RSC à zéro afin de permettre à un autre processus d’avoir l’accès à la ressource.
Remarque
L’ordonnanceur tel qu’il est décrit permet d’effectuer une décision par coup d’horloge. Par exemple, un processus est prêt à rendre la main, au prochain coup d’horloge un autre processus est autorisé à accéder à la ressource.
Conclusion
J’ai synthétisé la description sous plusieurs outils et pour plusieurs cibles.
Nombre d’entrées | Outil de synthèse | Cible | Période minimum | Niveau logique |
---|---|---|---|---|
4 | ISE 11.3 | XC3S400-5PQ208 | 6,213 ns | 4 |
8 | ISE 11.3 | XC3S400-5PQ208 | 9,887 ns | 7 |
4 | Quartus 9.0sp2 | EP3C40Q240C8 | 5,017 ns | ? |
8 | Quartus 9.0sp2 | EP3C40Q240C8 | 9,943 ns | ? |
4 | Quartus 9.0sp2 | EP3C16Q240C8 | 4,796 ns | ? |
8 | Quartus 9.0sp2 | EP3C16Q240C8 | 11,011 ns | ? |
Attention : Ces résultats ne sont donnés qu’à titre indicatif. En effet, il n’y a pas de contraintes sur l’affectation des broches.