首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chisel UInt负值错误

Chisel UInt负值错误
EN

Stack Overflow用户
提问于 2017-06-13 04:01:58
回答 1查看 340关注 0票数 1

我最近开始了scala的工作,需要创建一个MD5的实现。据我所知,MD5需要无符号类型,而scala则没有。因为我很快就会开始使用Chisel,它确实有无符号类型,所以我决定实现它的库。

代码语言:javascript
复制
if(i<16){
      F = ((B & C) | ((~B) & D))
      g = i
}

还有更多的错误消息,但它只是因为这个错误而出现错误的不同库和类的跟踪列表,因此我没有发布它,因为我认为它并不重要。如果是这样的话,我可以编辑这篇文章,然后把它全部贴出来。

我的B、C和D值等于下面列出的小写等效值,并且这是第一次通过for循环,所以它们还没有更新。

代码语言:javascript
复制
var a0 : UInt = UInt(0x67452301)
var b0 : UInt = UInt(0xefcdab89)
var c0 : UInt = UInt(0x98badcfe)
var d0 : UInt = UInt(0x10325476)

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-06-13 04:44:05

就我的答案而言,我使用了Chisel3首选的123.U样式来指定文字,而不是Chisel2的UInt(123)样式,但这个答案对这两种样式都适用。

有几种方法可以做到这一点:

对于大于64-bit的

  • val myUInt = 0x98badcfeL.U
  • This,
    • 使用Scala Long (将L放在文字末尾)显然不起作用。

使用

  • val myUInt = BigInt("98badcfe", 16).U

  • val myUInt = BigInt("98badcfe", 16).U

根据字符串

  • val myUInt = "x98badcfe".U
  • hex =x| h,dec = d,oct = o,b

  • 使用切塞尔的简写构造BigInts

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44507807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档