OSECPU-VMをFPGAに移植しようby hikalium, 2017-04-17 関連ページ日次ログ2017-05-22レビューありがとうございました。 現在の状況形式的記述を現在追加中。 ブロックダイアグラムを追加した。 https://github.com/osecpu/spec/blob/master/f0/index.md メモリアクセス時の各テーブル・レジスタファイル間のデータフローについても別途図示した。 データのロード・ストアについて 先週までは書き込みも各データ型に合わせた幅で行う予定だったが、それだと32bit以外のサイズのときに2回のメモリアクセスが必要になるため、避けたいと思った。 ということで結局、実際のメモリへの読み書きは32bit単位でのみ行うことになった。 32bit未満のデータに関しては、ローダで32bit幅に拡張する。ただし、データ幅の検査と、ポインタとメモリのデータ・タイプ一致検査は行う。 ただし、読み込みに関しては、ローダでの変換を支援するため、32bit単位でない読み込みをハードウエアで支援する。 LMEMCNVという命令を新設し、この目的に使用する。この命令は、設定されたデータタイプでメモリ領域がパックされていると考えて、アクセスしてくれる。レジスタ代入時に自動的に符号拡張する。 この回路自体は前回までにすでに設計済みなので問題はない。 次回までの目標まずは形式的記述を完全にする。そして実装にとりかかる。 実装の流れとしては、最初は単純な32bitCPUを構成して、それにチェック部分・メモリアクセス支援部分を付け足す形になる。 次回までに各コンポーネントをVerilogで記述してFPGA上に書き込んでみて、意図したとおり動作するかを確認する。 ALUの遅延がどうなるのかわかっていないので(特に除算命令が不穏)、次々回までにそれを試して調べてみる。 こういう場合は各演算の種類に合わせてウェイトを可変にするというので問題ないか? 2017-05-15GW前の進捗:命令セットをまとめたページを作成した。GW期間中の進捗:RTLレベル設計(途中)
報告事項
2017-05-10
2017-04-24ここまでの進捗
これからすること
2017-04-17このページを作成 CPUの仕様をどのようにするか考えているところ。 |