J'apprends à utiliser un FPGA (carte de développement Papilio, qui a un xilinx spartan3e, en utilisant vhdl).
J'ai besoin de diviser une impulsion entrante par un nombre (codé en dur).
Je peux voir 3 options - à peu près, comme pseudocode (en utilisant 10 comptes comme exemple):
- Initialiser à 0, lors de l'augmentation du front montant en entrée de 1, par rapport à 10; s'ils sont égaux, remettre à 0 et déclencher l'impulsion de sortie
- Initialiser à 10, sur le front montant en entrée, diminuer de 1, comparer à 0; si elles sont égales, remettre à 10 et déclencher l'impulsion de sortie
- Initialiser à 9, mais assurez-vous qu'il y a au moins 1 bit "0" en tête, qui est mon bit de sortie. Sur front montant en entrée, diminuer de 1. Sur front montant du bit de sortie, réinitialiser.
Le rapport cyclique est sans importance.
L'un d'eux est-il meilleur que les autres? Y a-t-il une méthode encore meilleure à laquelle je n'ai pas pensé?
Existe-t-il une méthode "standard" qui donnera au compilateur les meilleures chances d'optimisation?