top of page

[scala/chisel] value >> is not a member of (chisel3.Bool, chisel3.UInt)


Issue

The following code causes the compilation error in the title

val x = 3.U(16.W)
val y = 5.U(16.W)

val mul_out := MuxCase(0.U(16.W), Seq(
    (exe_fun === ALU_MULH) -> (x*y)>>32.U(WORD_LEN.W),
))

*Please think of exe_fun as an integer type variable that is calculated before this.


The error message seems to say, "The operation chisel3.BOOL >> chisel3.UInt is not possible." Even though both x and y are defined as UInt type...



Cause and solution

When the above code is compiled, It seems that

(exe_fun === ALU_MULH) -> (x*y)

is processed first and interpreted as

((exe_fun === ALU_MULH) -> (x*y)) >> 32.U(WORD_LEN.W)

Therefore, I was able to compile it successfully by adding parentheses as shown below.

val x = 3.U(16.W)
val y = 5.U(16.W)

val mul_out := MuxCase(0.U(16.W), Seq(
    (exe_fun === ALU_MULH) -> ((x*y)>>32.U(WORD_LEN.W)),
))

Recent Posts

See All

[Chisel] Don't use polymorphism

What I want to do There are multiple similar units Most of processes are the same, only some differences. Select an appropriate unit...

Comments


category

Let's do our best with our partner:​ ChatReminder

iphone6.5p2.png

It is an application that achieves goals in a chat format with partners.

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

Let's do our best with our partner:​ ChatReminder

納品:iPhone6.5①.png

It is an application that achieves goals in a chat format with partners.

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

Theme diary: Decide the theme and record for each genre

It is a diary application that allows you to post and record with themes and sub-themes for each genre.

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png
bottom of page