Chargement…
Chargement…
Avec R=256 et un module impair m<=255, le bloc retourne x*y*R^-1 mod m. Les entrées satisfont 0<=x,y<m. Ce résultat est un produit de Montgomery, pas directement x*y mod m sauf si les opérandes ont été préparées pour ce domaine.
Initialisez t=0. Pour chacun des huit bits de x, du poids faible au poids fort : ajoutez y à t si le bit vaut 1 ; si t est impair, ajoutez m ; divisez ensuite t par deux. Après la huitième étape, soustrayez m si t>=m. i_rst est synchrone, actif haut, et remet l'état interne ainsi que les sorties à zéro.
Pour m=251, R^-1=201. Le testbench vérifie plusieurs produits, les valeurs proches du module et zéro.