第12回LSIデザインコンテスト・イン沖縄  設計仕様書 - 8

9.SRP詳細構成例

SRPの設計アーキテクチャの典型的な例を説明する。1命令を1クロックサイクルごとに実現する例である。

命令ROMはワードアドレスを入力されると、命令が読みだされるROMを想定している。SRP内部のレジスタファイルで ra1, ra2は2つの読み出し用アドレス信号であり、このアドレスに従って、do1, do2にレジスタの値がそれぞれ読みだされる。 waは書き込みアドレス信号であり、書き込むデータはdinに与えられる。writeRF=1で、Clockの立ち上がりエッジでデータが レジスタファイルに書き込まれる。

レジスタファイルへのデータの書き込みが必要な命令はadd, sub, and, or, lw, sltである。表7にまとめる。

表7 レジスタファイルへのデータの書き込みが必要な命令と読み出しデータ数


ALUはadd, sub, and, orの演算サポートし、その演算結果(result)が0であるかどうかを調べるフラグ(zero)を計算する。 slt命令では、ALUは減算を実行し、zeroフラグを調べることで、実装可能である。

データRAMへの書き込みが必要な命令はsw命令であり、データRAMの読み出しが必要な命令はlwである。

SRPで△マークはClock入力を意味している。クロックの立ち上りエッジで書き込みが発生する順序回路であり、 △マークのない他の回路はすべて組合せ回路で構成できる。

”&”はビット連結、”+”は加算器、”MUX”はマルチプレクサ、”SE”は符号を保存したビット幅の16ビットから32ビットへの 拡張回路である。以下、表8に拡張の例を示す。16ビット表現でのMSBビットを16回左側に延ばせば実現できる。

表8 符号を保存したビット幅の16ビットから32ビットへの拡張の例


図7 SRP構成例

図7の右上の3入力MUXは分岐に関するものである。3入力の一番上が選択される場合は通常の分岐がない場合 であり、pc値は4ずつインクリメントしている。3入力の中央は無条件分岐に対応している。その前方の“&”はビットの 接続であり、下記に”00”を連接することにより、4倍を実現している。また、上位のビットの不足分4ビットはもとのPCの 上位ビットをコピーしている。3入力の一番下は、条件付き分岐が成立した(TAKEN)場合である。PC+4+offset*4の計算に なっている。

図8に、32番地、36番地、40番地を実行中の動作波形を示す。pcの値により、Iaddが生成され、命令Instが 命令ROMより取り出されている。命令の各フィールドの値より、ra1, ra2, waが生成されていることがわかる。


図8 SRP動作波形図

<<Back                 Next>>