J'essaie de trouver un équivalent de l'opérateur de puissance Verilog ** dans Chisel. Je suis passé par Chisel Cheat sheet et tutorial mais je n'ai pas trouvé ce que je cherchais. Après avoir traversé des conceptions écrites en Chisel, j'ai trouvé que les fonctions log2xx sont un choix populaire alors que l'opérateur de puissance n'est jamais utilisé. Bien sûr, je peux toujours utiliser l'opérateur de décalage pour obtenir la puissance de 2, mais j'espérais qu'il y a un opérateur de puissance générale dans Chisel. J'ai essayé d'utiliser les fonctions mathématiques de scala pour le travail mais j'ai eu une erreur de compilation.Opérateur de puissance à Chisel
1
A
Répondre
1
Puisque vous essayez de calculer une largeur de bit qui est calculée à le temps d'élaboration (c'est-à-dire lorsque Scala élabore le graphe matériel), nous pouvons utiliser les fonctions Scala. Scala fournit seulement un power function for Doubles, mais cela fonctionne très bien pour ce cas. Essayez math.pow(base, exp).toInt
, notez que base
et exp
peuvent être Ints et Scala les convertiront automatiquement en doubles pour l'appel de fonction. Vous avez simplement besoin de convertir le Double résultant en un Int pour l'utiliser comme bitwidth.
Pour plus de clarté, essayez-vous de créer du matériel capable de calculer un exposant ou essayez-vous de calculer une constante ou une largeur de bit? – jkoenig
J'essaie de calculer la largeur de bande – maskarih