ピタゴラスイッチMIPS版/基本モジュールの実装方法
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[ピタゴラスイッチMIPS版/作業メモ]]
*概要 [#xf161562]
基本モジュールの実装方法まとめ。
----
#contents
*設計フロー [#i223ed18]
+mips_simulator/mips_sim/circuit/basicmodulesに移動。
+Module.templateを設計するモジュールのjavaファイルとして複製。
+クラス名を変更。([[詳細>#ecd6984f]])
+コンストラクタをクラス名に合わせる。([[詳細>#x9c6b2dd]])
+入出力ポートを記述。([[詳細>#u000d818]])
+executeメソッドを記述。([[詳細>#udb98a0a]])
*基本モジュールの実装 [#f93be59c]
加算器の実装を例にしています。
**クラス名の変更 [#ecd6984f]
クラス名とクラスに対するコメントを記述します。
-変更前
/**
* クラスの名称
* @author 設計者名
* @version バージョン(日付など)
*/
public class template extends Module {
-変更後
/**
* 2入力加算器
* @author Daisuke Ohwada (m5121216@u-aizu.ac.jp)
* @version Time-stamp: <2009/07/26 15:49:38 by Daisuke Ohwada>
*/
public class Adder extends Module {
**コンストラクタ [#x9c6b2dd]
コンストラクタ名をクラス名に合わせます。
-変更前
/**
* コンストラクタ
*/
public template(String name) {
super(name, in_ports, out_ports);
}
-変更後
/**
* コンストラクタ
*/
public Adder(String name) {
super(name, in_ports, out_ports);
}
**入出力ポート [#u000d818]
入出力のポートを定義します。ポートの定義は以下のコンストラクタを使って行います。
Port("ポート名", 接続される信号の種別);
ここで、接続される信号の種別はGlobalObjects.PORT_DATAとGlobalObjects.PORT_CONTROLで区別されます。
-変更前
// 入力ポート
private static final Port [] in_ports = {
/* ここに入力ポートを記述 */
};
// 出力ポート
private static final Port [] out_ports = {
/* ここに出力ポートを記述 */
};
-変更後
// 入力ポート
private static final Port [] in_ports = {
new Port("in1", GlobalObjects.PORT_DATA),
new Port("in2", GlobalObjects.PORT_DATA),
};
// 出力ポート
private static final Port [] out_ports = {
new Port("out", GlobalObjects.PORT_DATA)
};
**executeメソッド [#udb98a0a]
-変更前
/**
* 回路のシミュレーションの実行
* @param in 入力信号 (int [])
* @return 出力信号 (int [])
*/
public int [] execute(int [] in) {
/* ここに実行結果を記述 */
}
-変更後
/**
* 回路のシミュレーションの実行
* @param in 入力信号 (int [])
* @return 出力信号 (int [])
*/
public int [] execute(int [] in) {
return new int [] { add(in[0], in[1]) };
}
終了行:
[[ピタゴラスイッチMIPS版/作業メモ]]
*概要 [#xf161562]
基本モジュールの実装方法まとめ。
----
#contents
*設計フロー [#i223ed18]
+mips_simulator/mips_sim/circuit/basicmodulesに移動。
+Module.templateを設計するモジュールのjavaファイルとして複製。
+クラス名を変更。([[詳細>#ecd6984f]])
+コンストラクタをクラス名に合わせる。([[詳細>#x9c6b2dd]])
+入出力ポートを記述。([[詳細>#u000d818]])
+executeメソッドを記述。([[詳細>#udb98a0a]])
*基本モジュールの実装 [#f93be59c]
加算器の実装を例にしています。
**クラス名の変更 [#ecd6984f]
クラス名とクラスに対するコメントを記述します。
-変更前
/**
* クラスの名称
* @author 設計者名
* @version バージョン(日付など)
*/
public class template extends Module {
-変更後
/**
* 2入力加算器
* @author Daisuke Ohwada (m5121216@u-aizu.ac.jp)
* @version Time-stamp: <2009/07/26 15:49:38 by Daisuke Ohwada>
*/
public class Adder extends Module {
**コンストラクタ [#x9c6b2dd]
コンストラクタ名をクラス名に合わせます。
-変更前
/**
* コンストラクタ
*/
public template(String name) {
super(name, in_ports, out_ports);
}
-変更後
/**
* コンストラクタ
*/
public Adder(String name) {
super(name, in_ports, out_ports);
}
**入出力ポート [#u000d818]
入出力のポートを定義します。ポートの定義は以下のコンストラクタを使って行います。
Port("ポート名", 接続される信号の種別);
ここで、接続される信号の種別はGlobalObjects.PORT_DATAとGlobalObjects.PORT_CONTROLで区別されます。
-変更前
// 入力ポート
private static final Port [] in_ports = {
/* ここに入力ポートを記述 */
};
// 出力ポート
private static final Port [] out_ports = {
/* ここに出力ポートを記述 */
};
-変更後
// 入力ポート
private static final Port [] in_ports = {
new Port("in1", GlobalObjects.PORT_DATA),
new Port("in2", GlobalObjects.PORT_DATA),
};
// 出力ポート
private static final Port [] out_ports = {
new Port("out", GlobalObjects.PORT_DATA)
};
**executeメソッド [#udb98a0a]
-変更前
/**
* 回路のシミュレーションの実行
* @param in 入力信号 (int [])
* @return 出力信号 (int [])
*/
public int [] execute(int [] in) {
/* ここに実行結果を記述 */
}
-変更後
/**
* 回路のシミュレーションの実行
* @param in 入力信号 (int [])
* @return 出力信号 (int [])
*/
public int [] execute(int [] in) {
return new int [] { add(in[0], in[1]) };
}
ページ名: