2017-10-21 12 views
0

tab = Array(1.U、6.U、5.U、2.U、4.U、3.U)とY = Seq(b 、g、g、g、b、g)、tabはUIntの配列です。 次のように私はタブでマップをやってみたい:チゼルを使った文字列のSeqの要素の索引付け

tab.map(case idx=>Y(idx)) 

をしかし、私はエラーを取得しておいてください。chisel3.core.UIntを見つけ、Intが必要。 は私が

tab.map(case idx=>Y(peek(idx).toInt) 

を行うことによってがintにIDXを変換する機能PEEK()を使用してみましたが、私は見られないPEEKます。私はまた、チゼルUIntをInt hereに変換することができないことを見ましたが、与えられた例でうまく使用することを理解できませんでした。ですから、上記を行う別のアプローチがありますか? ありがとう!

答えて

0

直面する問題は、UIntまたはSIntのようなハードウェア構成を使用してスカラーコレクションの要素にアクセスできないことです。 VecでYをラップするとうまくいくはずです。これが(配列[文字列])に適用することはできません)エラーVecInitを(取得strings.Iのシーケンスには適用されないようです

val YVec = VecInit(Y) 
val mappedY = tab.map { case idx => YVec(idx) } 
+0

あなたの全体的なモジュールに応じて、これはおそらくのようになります – Foutse

+0

はい、あなたがすることはできませんVecInit文字列を使用できますが、値がアルファベットの場合は、8ビットまたは16ビットのUIntとして表すことができます。フルストリングをしたい場合は、内部Vecが文字列であるVecのVecを作成する必要があります。すべてを管理するハードウェアがさらに必要です。 –

関連する問題