mortbopet / Ripes

A graphical processor simulator and assembly editor for the RISC-V ISA
https://ripes.me/
MIT License
2.49k stars 270 forks source link

M-extension issue (multiplication exceeds 64-bits) #344

Open AhmedAmrAbdellatif1 opened 6 months ago

AhmedAmrAbdellatif1 commented 6 months ago

Hello everyone, I was trying to use ripes to verify my multiplier design unit, by trying to perform a calculation that exceed 64-bit to verify the implementation of mulh instruction. So, i used the following assembly:

li x8, 11
slli x8, x8, 35
ori x8, x8, 254

li x9, 23
slli x9, x9, 35
ori x8, x8, 424

mul x10, x8, x9
mulh x11, x8, x9
mulhu x12, x8, x9
mulhsu x13, x8, x9

I'm trying to perform a multiplication between (377957122558) and (790273982464) the result should be (2.986896804445448e+23) which in hexadecimal --> 0000000000003F40 00016E9000000000 ''calculated using MATLAB''

so the result of using mul should be 00016E9000000000 and the result of using mulh should be 0000000000003F40

So, we can conclude that ripes calculate it wrong image