21 |
RISC-Vプロセッサの設計 (22) |
2段FIFOの修正
前記事で記載したようなウエイト制御を行えば、実質的に2段FIFOのd1は使用することはないはずです。従ってFIFO2.vからd1の本体及び関連制御信号を削除してしまいます。これによりウエイトシミュレーションを実施しましたが、結果は同様でした。これで実質FIFO1を設計することができました。
違いは、元のFIFO1ではempty=!fullというロジックだったものが、新FIFO1ではemptyとfullが3状態を取るようになったことです。しかし、1段しか無いということは永久にfullにはならないということなので、元のFIFO1でfullをFalse固定としても動作しそうです。
早速元のFIFO1を修正してシミュレーションしてみました。
同じく、読み取りにくいので表にしてみます。
ステージ | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
PC | 006c | 0070 | 0070 | 0070 | 0074 | 0078 | 007c |
IF | 0068 | 006c | 006c | 006c | 0070 | 0074 | 0078 |
ID | 0064 | 0068 | 0068 | 0068 | 006c | 0070 | 0074 |
EX | 0060 | 0064 | 0064 | 0064 | 0068 | 006c | 0070 |
MA | 005c | 0060 | 0064 | 0064 | 0064 | 0068 | 006c |
WB | 0058 | 005c | 0060 | 0064 | 0064 | 0064 | 0068 |
オリジナルFIFO2と全く同じ結果となりました。