SN/Xプロセッサホームページ


本ページは16ビットプロセッサSN/Xの情報を発信します。 SN/Xは教育用プロセッサであるSN/1を単純に16ビットに 拡張しただけのものなので、SN/1をご存知の方はただ それだけのものと思ってください。
では、なぜSN/Xが必要になるかというとパルテノン研究会 のASICコンテストで規定課題となっている16ビットフリーCPU を講義で実地に動かしてみせたいという作者の勝手な希望からです。
この課題は自由度が大きいのですが、手持ちの機材の中から コーダ電子のCD9013教育用FPGAキットが ちょうどメモリサイズなどでぴったりであったため、これに収まる最低限のCPUを とりあえず作成しようと考えました。 CD9013は命令メモリ16ビット幅、データメモリ16ビット幅となっており、 ハーバードアーキテクチャのCPUの演習が簡単にできるようになっています。 ボードの写真を示します。

プロセッサのソースコードは snx.sfl になります。実装時はそのまま合成をかけてください。 講義のスピード評価時にはソースを"top.sfl"にリンクして "top"を合成してください。
講義資料中に言及したパイプラインプロセッサ SN/Xpはsnp.sflになります。 パイプラインのあるなし以外はなるべく論理をそのまま使ったので パイプライン化の手法が分かると思います。

より高度なパイプラインの技術を学びたい方は SP/1を御覧ください。 こちらは、フルインターロック付の5段パイプライン設計のプロセッサに なります。また、同じページのSP/1cはSP/1にキャッシュをつけて ヒットアンダーミスを実装したプロセッサで、どちらも合成可能な SFLソースで提供しています。

MS EXCELによるSN/Xシミュレータ v0.3を研究室の卒研生石川君が 作成しました。本シミュレータには1)ソート、2)GCD、3)素数探索のプログラ ムがアセンブラにて組み込み済です。

YACC/LEXによるSN/X簡易コンパイラを 用意しました。実行形式は各自コンパイルして作成願います。 言語はC言語風の簡易言語になります。アーカイブの説明は SN/X簡易コンパイラマニュアルを 参照ください。
コンパイラインタプリッタの実行形式はSoralis用を 用意しました。

YACC/LEXによるSN/X簡易アセンブラを 用意してあります。コンパイラとセットでお使いください。 アセンブラの実行形式はSoralis用を用意しました。


32ビットバージョンも用意しております。
snk.sfl
を御覧ください。このプロセッサはEPF10K30Aに収まるので MAX+PLUS2 Baselineで合成可能です。10K30Aでの使用率は70%程度なので 命令拡張などの余地がたっぷりあります。


以下、サンプルで用意したシミュレーションスクリプトと コーダ電子CD9013用の実装関連ファイルを示します。

このプロセッサはALTERA 10K10に収まります。 このページのGDFをトップファイルに指定し、階層ファイルとしてEDIFファイルを 用意します。CD9013のボードのピン接続はACFファイルに記述されているので これとEDIFのシンボルファイルをあわせた4つのファイルを一つのディレクト リに入れてMAX+PLUS2で合成をかけると、CD9013で実行できるプロセッサが 出来上がります。

CD9013のメモリ書き込み機能を用いて、命令メモリにSN/Xの命令を書き込んで 実行してみてください。 CD9013は8ビットごとにアドレスが付加されていますが、本プロセッサは 16ビット毎にアドレスを付けているので、アドレス線が 1ビットシフトしています。ご注意ください。

Contact Information

Naohiko Shimizu
School of Information Technology and Electronics, Tokai Univ.
1117 Kitakaname, Hiratsuka, 259-1292 Japan
email: nshimizu_AT_keyaki.cc.u-tokai.ac.jp
TEL:0463-58-1211(ext.4084)
FAX:0463-58-8320

Shimizu-Lab. Home Page