6

私は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

}

急に顔面を殴られるので知りたいのですが、いつ「ワイヤー」を使うのですか?

前もって感謝します。

4

2 に答える 2

5

ここで重要なのは、Chisel3 での「型」と「値」の違いです。

VecBundleUIntSInt、およびBoolは「タイプ」の例です。

WireRegInputOutput、およびMemは「値」の例です。

上記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スタイルに更新

于 2016-11-28T19:35:51.577 に答える
4

Wire値を再割り当てする可能性のある Chisel ノードに使用します。

val a = Wire(Bool())
a := Bool(false)
...
于 2016-11-27T04:51:17.553 に答える