FC2カウンター FPGAの部屋 MIPSプロセッサの実験
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

MIPSプロセッサの実験

ここ数年、実験のサポートをしてきたが、今度実験内容を変更することになった。
以前はアルテラの10K30で、FPGAにMIPSプロセッサのサブセットを載せる実験だ。といっても命令数8個の本当のサブセットだ。どうしてこんなに命令数が少ないかといえば、二系B〇のある有名なプロセッサ教科書のパイプライン・プロセッサの解説に準拠して作ったからだ。
パイプライン・プロセッサをいれると、10K30ではこれでぎりぎりだというわけもある。プロセッサコアだけでは、外部とのインターフェースが何もないので、RS232C経由のコマンドで、intel hex方式のバイナリ・データをメモリにロードする機能や、レジスタにロードする機能、パイプライン・プロセッサのステータスを読み出す機能、当然プログラムをRUNする機能などを回路でつけてある。
パソコンとはそのRS232C経由で接続する。その制御をするのに、GUIのソフトを用意してある。レジスタの状態を表示するWindowや、メモリの状態をバイナリ、と逆アセンブルして表示するエリア、現在のパイプライン・レジスタの状態を表示するWindowと制御用のボタンがある。
アセンブルしたintel hexのバイナリを制御ソフトでロードし、RUNして、どのように動作するかを観察できるようになっている。
この実験では、ハードはAHDLで書いてあった。AHDLだと、MAX+PULS2で無料でシミュレーションできるからだ。今度これをSpartan3 Starter Kitに載せかえることになった。
AHDLはVHDLに書き換えた。これは、以前から書き換えて、DWMのCycloneボードにも載せてあったので、これをちょこちょこっと変更。
だが、Spartan3だとだいぶハードがあまっていた。レジスタファイルは2入力ポート、1出力ポートおまけにリードよりライト優先という仕様だった。それをメモリで作っていた関係上、今までは時分割処理していたが、Spartan3の分散メモリで実装すると1クロックで収まるようになった。その代わり、リソースを食うようになってしまったが。。。
1クロック動作になった分、シミュレーションがわかりやすくなったので、学生にModelSimで、シミュレーションをしてもらうことにした。その場合、プログラムが入っていないと、シミュレーションできない。なので、Rubyを使って、VHDLファイルの分散RAMのINITにプログラムを書き込んでから、シミュレーションできるようになった。
これで、実験の準備は大体出来上がったが、今度はSpartan3 Starter Kitを学生に貸し出して、家でも出来るようにするので、その資料作製などの準備とかが忙しくなりそう。
  1. 2005年07月18日 07:20 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/36-64f32c03
この記事にトラックバックする(FC2ブログユーザー)