Оператор мощности в долоте

Я пытаюсь найти эквивалент оператора мощности Verilog ** в Chisel. Я просмотрел шпаргалку по Chisel и руководство, но я не нашел то, что искал. Изучив проекты, написанные на Chisel, я обнаружил, что функции log2xx являются популярным выбором, в то время как оператор мощности никогда не используется. Конечно, я всегда могу использовать оператор сдвига, чтобы получить степень двойки, но я надеялся, что в Chisel есть общий оператор мощности. Я попытался использовать математические функции scala для работы, но у меня возникла ошибка компиляции.


person maskarih    schedule 24.05.2017    source источник
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