私はブールのVecを持っているとしましょう。私は元のVecでこのインデックスまで見た真の値の数に等しい値で同じサイズの新しいVecを塗りたい。私はそれを組み合わせてしたい。チゼル:アンロールループでインクリメントされた変数をモデル化する方法
私のHLSの背景で、私の頭に定住コーディングスタイル、私はこのような何かを書きたい:
def foo (in : Vec[UInt]) = {
val out = Vec.fill(in.size) {UInt(in.size)}
val nextInd = Wire(init = 0.U)
in.zipWithIndex.foreach {case(val, ind) =>
when(val === true.B) {
out(ind) := nextInd
nextInd := Wire(init = nextInd+1.U)
}
}
}
しかし、私は、これは、組み合わせループを作成して理解し、私は良い方法を見つけることができませんそれをモデル化する。どういうわけか私はループの新しい変数の反復を生成し、それを反復の間に渡す必要があります。