7 |
RISC-Vプロセッサの設計 (12) |
verilogシミュレーション
verilogのソースを覗いてみると、FIFO2というモジュールがインスタンスされていました。ソースの一部を示します。
ライブラリ中のFIFO2($BLUESPECDIR/Verilog/FIFO2.v)のソースを見ると、中心部分は以下のようになっており、レジスタ2段によるFIFOです。
ただし、FIFOなので、2段とはいってもレイテンシが必ず2サイクルになるわけではありません。First-In, First-Outなので、1段目に入れたものをデキューしようとすると、そのまま1段目から供給するロジックとなっています。上記のように、data0は入力か、1段目か、0段目の選択となっており、data1が入力か1段目の選択となっています。
であることから、data0が出力側レジスタであることがわかります。一方、data1がD_INを入力とする場合は、d1diという信号がTrueの時であり、その論理は、
となっています。これはFIFOがemtpy(負論理なので)でなく、かつENQされたときというように読めますが、後で条件を調査します。
Leave a Comment