16ビットCPU コンテスト課題
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[SN/X]]
*16ビットCPU コンテスト課題 [#w6adc637]
パルテノン研究会が主催するASICデザインコンテストの第11回から第13回までの規定課題であった16ビットCPUの設計の説明。
----
#contents
**課題 [#nacfaede]
[[PARTHENON研究会のページ>http://www-lab09.kuee.kyoto-u.ac.jp/parthenon/contest/]]で発表されています。
~
東海大学の清水先生が設計した16ビットCPUであるSN/Xとコンパイラセットをベースに改良を加え、エネルギー・時間積で評価を競います。
***課題ファイルのダウンロード [#cf1e3b76]
コンテストの課題ファイルを用意する
% wget http://www.ip-arch.jp/contest11.zip
***contest11内のファイルの概要 [#p294673b]
|snx.sfl|今回の課題となる16ビットCPU|
|snx.v(sfl2vlで変換される)|シミュレーション用Verilogファイル|
|main.v|シミュレーション用テストベンチ|
|snxc/|疑似言語からアセンブラを吐くコンパイラ|
|snxasm/|アセンブラからCPUの命令(機械語)を吐くコンパイラ|
|*.sc|疑似言語で書かれたプログラム|
|*.s(snxcコンパイラから生成)|アセンブラに変換したプログラム|
|*.mem(snxasmコンパイラから生成)|CPUに入力するために機械語に変換したプログラム|
|sim.log(シミュレーション後に生成)|シミュレーションのログファイル|
**開発と評価の手順 [#h16a1812]
動作の確認、論理合成、評価方法について。
***シミュレーション [#q2d6f6e1]
解凍したcontest11のディレクトリの中にMakefileがあるので、実行などは全てmakeで出来るように定義してあります。シミュレーションの実行はsfl2vlを使用して、SFL記述をVerilogに変換して動かすことになります。テストベンチとなるファイルはmain.vに定義。
|make sim1|recurのシミュレーションを動かす|
|make sim2|sortのシミュレーションを動かす|
|make sim3|fooのシミュレーションを動かす(recurと同じプログラム)|
|make sim4|forのシミュレーションを動かす|
|make clean|ファイルの削除|
どのシミュレーションを実行してもsnxcとsnxasmディレクトリ内のコンパイラもコンパイルされ、*.scから*.sを経て*.memファイルを自動的に生成します。詳しくはMakefileに定義されているので参照のこと。
***論理合成 [#w364f6fe]
PARTHENONシステムを使って回路を合成します。
|auto snx nld4 DEMO demo|snx論理合成用のコマンド|
Makefileに以下を追加しておくと、make autoで実行可能です。必要なデータをsnx.sumに書き出します。(先頭の空白はTABで入れること)
auto:
auto snx nld4 DEMO demo | tee snx.log
sed '1,/#### summary/d' snx.log | tee snx.sum
***評価方法 [#n21933c2]
本コンテストではエネルギー・時間積を用いて性能を評価します。
終了行:
[[SN/X]]
*16ビットCPU コンテスト課題 [#w6adc637]
パルテノン研究会が主催するASICデザインコンテストの第11回から第13回までの規定課題であった16ビットCPUの設計の説明。
----
#contents
**課題 [#nacfaede]
[[PARTHENON研究会のページ>http://www-lab09.kuee.kyoto-u.ac.jp/parthenon/contest/]]で発表されています。
~
東海大学の清水先生が設計した16ビットCPUであるSN/Xとコンパイラセットをベースに改良を加え、エネルギー・時間積で評価を競います。
***課題ファイルのダウンロード [#cf1e3b76]
コンテストの課題ファイルを用意する
% wget http://www.ip-arch.jp/contest11.zip
***contest11内のファイルの概要 [#p294673b]
|snx.sfl|今回の課題となる16ビットCPU|
|snx.v(sfl2vlで変換される)|シミュレーション用Verilogファイル|
|main.v|シミュレーション用テストベンチ|
|snxc/|疑似言語からアセンブラを吐くコンパイラ|
|snxasm/|アセンブラからCPUの命令(機械語)を吐くコンパイラ|
|*.sc|疑似言語で書かれたプログラム|
|*.s(snxcコンパイラから生成)|アセンブラに変換したプログラム|
|*.mem(snxasmコンパイラから生成)|CPUに入力するために機械語に変換したプログラム|
|sim.log(シミュレーション後に生成)|シミュレーションのログファイル|
**開発と評価の手順 [#h16a1812]
動作の確認、論理合成、評価方法について。
***シミュレーション [#q2d6f6e1]
解凍したcontest11のディレクトリの中にMakefileがあるので、実行などは全てmakeで出来るように定義してあります。シミュレーションの実行はsfl2vlを使用して、SFL記述をVerilogに変換して動かすことになります。テストベンチとなるファイルはmain.vに定義。
|make sim1|recurのシミュレーションを動かす|
|make sim2|sortのシミュレーションを動かす|
|make sim3|fooのシミュレーションを動かす(recurと同じプログラム)|
|make sim4|forのシミュレーションを動かす|
|make clean|ファイルの削除|
どのシミュレーションを実行してもsnxcとsnxasmディレクトリ内のコンパイラもコンパイルされ、*.scから*.sを経て*.memファイルを自動的に生成します。詳しくはMakefileに定義されているので参照のこと。
***論理合成 [#w364f6fe]
PARTHENONシステムを使って回路を合成します。
|auto snx nld4 DEMO demo|snx論理合成用のコマンド|
Makefileに以下を追加しておくと、make autoで実行可能です。必要なデータをsnx.sumに書き出します。(先頭の空白はTABで入れること)
auto:
auto snx nld4 DEMO demo | tee snx.log
sed '1,/#### summary/d' snx.log | tee snx.sum
***評価方法 [#n21933c2]
本コンテストではエネルギー・時間積を用いて性能を評価します。
ページ名: