首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于chisel的语法:Vec和Wire

关于chisel的语法:Vec和Wire
EN

Stack Overflow用户
提问于 2016-11-26 16:22:03
回答 2查看 1.4K关注 0票数 6

我正在学习Chisel3。

我有一些关于密码的问题。

代码语言:javascript
复制
val myVec = Wire(Vec(5, SInt(width = 23)))  // Vector of 5 23-bit signed integers.

我想如果我声明一个向量,我需要写"Wire",但当我看到这些代码时,我错了。

代码语言:javascript
复制
class BigBundle extends Bundle {


 val myVec = Vec(5, SInt(width = 23))  // Vector of 5 23-bit signed integers.

 val flag  = Bool()
 // Previously defined bundle.

 val f     = new MyFloat

}

它突然打在我的脸上,所以我想知道我什么时候用"Wire"?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-11-29 03:35:52

这里的关键是Chisel3中“类型”和“值”之间的区别。

VecBundleUIntSIntBool都是“类型”的示例。

WireRegInputOutputMem都是“值”的示例。

使用上面的BigBundle

代码语言:javascript
复制
class BigBundle extends Bundle {
  val myVec = Vec(5, SInt(23.W)) // Vector of 5 23-bit signed integers.
  val flag = Bool()
  val f = new MyFloat // Previously defined bundle.
}

正如Vec(5, SInt(23.W))是一种“类型”一样,BigBundle也是一种“类型”。

如果您希望使用这些类型,您可以创建这些类型之一的Wire,例如。

代码语言:javascript
复制
val myVecWire = Wire(Vec(5, SInt(23.W)))
val myBundleWire = Wire(new BigBundle)

编辑:针对现代chisel3样式进行更新

票数 5
EN

Stack Overflow用户

发布于 2016-11-27 12:51:18

可以将Wire用于任何可能重新指定其值的切槽节点。

代码语言:javascript
复制
val a = Wire(Bool())
a := Bool(false)
...
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40816397

复制
相关文章

相似问题

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