gpt4 book ai didi

chisel - 关于凿子 :Vec & Wire 的语法

转载 作者:行者123 更新时间:2023-12-04 17:32:11 26 4
gpt4 key购买 nike

我正在学习 Chisel3。

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

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

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

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”?

提前致谢。

最佳答案

这里的关键是 Chisel3 中“类型”和“值”之间的区别。
Vec , Bundle , UInt , SInt , 和 Bool是“类型”的例子。
Wire , Reg , Input , Output , 和 Mem是“值(value)观”的例子。

BigBundle从上面:

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.
}
BigBundle是一种“类型”,就像 Vec(5, SInt(23.W))是一个“类型”。

如果你想使用这些类型,你可以创建一个 Wire这些类型之一,例如。
val myVecWire = Wire(Vec(5, SInt(23.W)))
val myBundleWire = Wire(new BigBundle)

编辑:更新为现代 chisel3 风格

关于chisel - 关于凿子 :Vec & Wire 的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com