2025年10月
新着記事
最近のコメント
月別
カテゴリ
2025.10.19 07:40

FIFO記述:Geminiも間違えるのだ


・ヘッドポインタとテイルポインタを使ったFIFOがどう合成されるのかを想像するとポインタの値に応じて書き込み先や読み出し先を選択しなくてはいけないわけで、やっぱりうまくない気がする。
・ここはやはりハードウェアらしく普通にシフトレジスタにしたほうが良い。とはいえ、延々と<=を並べるのもfor文で回すのもあまり格好良くないな。
・というところで、
 logic[2:0] fifo[8];
とかいうのを
 logic[7:0][2:0] fifo;
みたいなアレイにしてやれば良いか。というところで、再びGemini君に聞くと
fifo = {fifo[7:1],newdata[2:0]};
と書けという。なんか違和感がありながら動かしてみるとやっぱり動かない。DSimでシミュレーションしてみてもやはり動かない。
・そりゃそうで、これじゃ最下位のものを書き換えているだけで全然シフトしないだろう。
fifo = {fifo[6:0],newdata[2:0]};
みたいにしないとシフトしないはずだし、実際にこう書けばちゃんと動く。
・ということで、Geminiに改めて聞いても「いえ、そうではありません」的な回答で、なかなか頑固。それならということで”fifo[7:1]はfifo[7],fifo[6]...fifo[1]だよね?”と聞いても最初のうちは頑固だったけど、回答の途中で気づいたらしい。”【訂正】: 前回の説明の一部が誤っていました。”が返ってきた。
・ちなみに、バッファのクリアは単純に
fifo=0;
で良い。
・使用したLEの数も減ったし、めでたしめでたし。

この記事へのコメント
コメントを書く
名前

タイトル

ホームページ

コメント

パスワード(削除用)
クッキー