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用の実装関連ファイルを示します。
-
auto ; Simulation script for SN/X master file
-
f ; Simulation script
-
imem ; Simulation script
-
dmem ; Simulation script
- ddump ; Simulation script
- idump ; Simulation script
- px ; Simulation script
- readall ; Simulation script
- rep ; Simulation script
- snx.sfl ; SN/X SFL source code
- snp.sfl ; SN/Xp SFL source code
- snx2.sfl ; SN/X v2 SFL source code
以下の4つのファイルがとりあえずCPLDで合成して動作させるために
必要になります。(パルテノンを持っていなくてもこれらのファイルだけで
ALTERAのCPLDへマッピング可能です。)
-
snx.edf ; SN/X EDIF code
-
snx.sym ; SN/X symbole file for ALTERA
-
snxtop.gdf ; SN/X system ALTERA GDF file
-
snxtop.acf ; SN/X system ALTERA ACF file
-
imem.dat ; バブルソート命令イメージ
-
dmem.dat ; バブルソートデータイメージ
このプロセッサは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