我最近开始了scala的工作,需要创建一个MD5的实现。据我所知,MD5需要无符号类型,而scala则没有。因为我很快就会开始使用Chisel,它确实有无符号类型,所以我决定实现它的库。
if(i<16){
F = ((B & C) | ((~B) & D))
g = i
}还有更多的错误消息,但它只是因为这个错误而出现错误的不同库和类的跟踪列表,因此我没有发布它,因为我认为它并不重要。如果是这样的话,我可以编辑这篇文章,然后把它全部贴出来。
我的B、C和D值等于下面列出的小写等效值,并且这是第一次通过for循环,所以它们还没有更新。
var a0 : UInt = UInt(0x67452301)
var b0 : UInt = UInt(0xefcdab89)
var c0 : UInt = UInt(0x98badcfe)
var d0 : UInt = UInt(0x10325476)任何帮助都将不胜感激。
发布于 2017-06-13 04:44:05
就我的答案而言,我使用了Chisel3首选的123.U样式来指定文字,而不是Chisel2的UInt(123)样式,但这个答案对这两种样式都适用。
有几种方法可以做到这一点:
对于大于64-bit的
val myUInt = 0x98badcfeL.UL放在文字末尾)显然不起作用。
使用
val myUInt = BigInt("98badcfe", 16).U
val myUInt = BigInt("98badcfe", 16).U的
根据字符串
val myUInt = "x98badcfe".U,
https://stackoverflow.com/questions/44507807
复制相似问题