私は4ビットのベクトルを持っています。ベクトルのベクトルの1ビットが1であるかどうかをチェックしたいのですが、基本的には最初の反復は、ベクトルからの最初のビットが1であるかどうかをチェックし、次の反復チェックで2番目のビットが1であるかどうかを確認します。Chiselでのビットベクトルの比較
以下に示すswitch文で試してみましたが、必要なように動作しません。
for(i <- 0 until ways) { //ways = 3
switch(current_way(i)){
is(UInt(1)){
way_dout(i) := way.io.dout((i+1)*line_size-1,i*line_size)
}
}
ありがとうございます。
返信いただきありがとうございます。あなたのやり方もうまくいかないようです。だから、current_wayは4ビットのベクトルであり、各繰り返しに対して、LSBから始まる各ビットを一度にチェックしたいと思う。ビットが1の場合、way_dout(i)はway.io.dout(...)からデータを取得します。そうでなければ、way_dout(i)に0を格納します。 – user2466860
@ user2466860私はコードをテストしていませんでしたが、あなたはちょうど言ったことをしなければなりません。コンパイル/エラボレーション時にエラーが発生しますか?なぜそれがうまくいかないのか説明できますか? – Kamyar