Home


2016年12月8日 シミュレータのソースコードをMITライセンスで公開

ICF3シミュレータ

当時、ICF3のRSA演算器のマイクロコードを開発するためにC言語のシミュレータを作成した。 C言語といっても論理的な動作をほぼ完全にシミュレート可能なものだった。

その他の、作成済みのマイクロコードのファイル
中国人剰余定理ケース1    中国人剰余定理ケース2
中国人剰余定理ケース3    中国人剰余定理ケース4
楕円暗号スカラ倍


マイクロコードのファイルの作り方

シミュレータ特有の命令があります。
1つは16本の1024bitレジスタの設定。ファイルの先頭で
$R1 =
12345678
のようにします。レジスタはR0~R15ですが、必要なものだけで大丈夫です。
もう一つはレジスタの表示。演算が終わったところ、つまりEND命令のところで表示させたいレジスタを記述します。
END(0);@R14
のようにします。
シミュレータは先頭アドレスから実行を開始します。B命令で実行したい関数にジャンプさせます。 このとき注意しなければならないのは遅延分岐なのでB命令の次の命令も正しく記述しなければいけません。


デバッグについて

シミュレータ用の疑似命令、@にレジスタ名を追加した命令を利用すると、その命令実行時のレジスタが表示されます。
@I
とすればIレジスタの値がシミュレーション結果のファイルに出力されます。


ICF3シミュレータ Download

2016年12月7日に急にオープンソースとして公開することを決めたため公開用に整備されたコードにはなっていませんが シミュレータを使ってIoTアプリケーションの開発に役立つことを目標にやっていきたいと思います。 ライセンスはMITライセンスですがMITライセンスなのはシミュレータのみなので、ご注意願います。

マイクロコードについては十分な説明になっていませんが、ソフト編の「剰余演算器μコード設計仕様」、ハード編の全体図、サンプルコードをよく見ればある程度、わかると思います。 何かご質問があればご連絡くだされば対応します。

シミュレーション結果の詳細は別途、result.txtとして出力されます!

icf3sim

ソースコード


免責事項

利用して、万が一、損害を被っても当サイトは一切責任を持ちません。

FAQ

シミュレータを開発したのは誰?

論理設計者だった僕が人知れず開発したもの。 C++の演算子のオーバーロードによる可読性の向上について関心があって使ってみたが、 何を定義して実装すればいいのかという参考文献が、見つかっていなくて、 あまりうまく実装できていなかった。最近、公開したものはCで書き直しています。


シミュレータの言語は何?

最初はPerlとC++でした。Perlに寄付しなければならなくなったら、どうするのだという会社の意向により Perlで開発した部分をC言語に書き直しました。