Я пытаюсь найти эквивалент оператора мощности Verilog ** в Chisel. Я просмотрел шпаргалку по Chisel и руководство, но я не нашел то, что искал. Изучив проекты, написанные на Chisel, я обнаружил, что функции log2xx являются популярным выбором, в то время как оператор мощности никогда не используется. Конечно, я всегда могу использовать оператор сдвига, чтобы получить степень двойки, но я надеялся, что в Chisel есть общий оператор мощности. Я попытался использовать математические функции scala для работы, но у меня возникла ошибка компиляции.
Оператор мощности в долоте
comment
Для пояснения, вы пытаетесь создать оборудование, которое может вычислять экспоненту, или вы пытаетесь вычислить константу или разрядность?
- person Jack Koenig   schedule 24.05.2017
comment
Я пытаюсь рассчитать битовую ширину
- person maskarih   schedule 24.05.2017
Ответы (1)
Поскольку вы пытаетесь вычислить битовую ширину, которая рассчитывается во время разработки (т. Е. Когда Scala разрабатывает график оборудования), мы можем использовать функции Scala. Scala предоставляет только степенная функция для удвоений, но в данном случае она отлично работает. Попробуйте math.pow(base, exp).toInt
, обратите внимание, что base
и exp
могут быть Ints, и Scala автоматически преобразует их в Double для вызова функции. Вам просто нужно преобразовать полученный Double в Int для использования в качестве битовой ширины.
person
Jack Koenig
schedule
24.05.2017