diagram2vppl¶
概要¶
diagram2vpplは回路図エディタを流用して描いたDNNデータフローダイアグラムから、VPPL言語のソースプログラムを生成するツールです。 具体的にはBSCH3Vエディタで生成された部品表とネットリストからVPPL言語のソースプログラムを生成します。 部品表はBSCH3V付属のpl3w.exeにより生成されたCSVファイルです。 ネットリストはBSCH3V付属のnl3w.exeにより生成されたNETファイル(OrCad形式)です。 出力はVPPLコンパイラがコンパイルできるプログラムとなります。 なお、不完全なネットリストからは不完全なVPPLソースが生成されるので、ネットリスト変換後 ダイアグラムからの変換が正しく行われているのかレポートファイルを確認すべきです。
リビジョン¶
diagram2vppl.py v01r02
コマンドライン¶
python diagram2vppl.py [option [option_parameter]]...
以下のようなオプションをつけて動作させることで所望の結果を得ることができます。
コマンドラインオプション
オプション 意味 -h ヘルプ表示 –CSV csv 部品表入力 –NET net ネットリスト入力 –OUT vppl VPPL言語ソース出力ファイル名 –SOL nam ソリューション名 –DB db 共通DBフォーマット出力ファイル名 –PROF csv プロファイリング集計結果 -v 処理の途中経過を詳細に出力 -V バージョンのみ表示して終了 -d デバッグ用オプション
構造¶
-
class
diagram2vppl.
pListReader
(fnamCSV)[ソース]¶ Parts list File Reader Class.
parts list形式 CSVファイルを読み取って複数のテーブルを生成するクラス CSVファイル形式 存在しない要素,種別(B/D/M/U),番号,タイプ,パッケージ,ノート(パラメータ),アトリビュート(既定値) ①パッケージ名はVPPLであることを確認するのみ ②種別+番号–>UNIT名 ③UNIT名->タイプの連想配列作成 ④ノート、アトリビュートは key=value; 形式の羅列なのでそれぞれまずキー、バリュー化 ⑤アトリビュートのキーでノートを検索し、ノート内に該当キーがあればノートのバリューを そうでなければアトリビュートのデフォルト値を採用し、 UNIT名+”_”+キー->バリューの連想配列作成
-
class
diagram2vppl.
profDataReader
(fnamCSV)[ソース]¶ Profiler data File Reader Class.
profHelperが出力するCSVファイルを読み取ってユニット名->カウント数の辞書を作成するクラス
-
class
diagram2vppl.
netListReader
(fnamNET, typDic)[ソース]¶ Net-list File Reader Class.
Telesis形式 NETリストファイルを読み取ってユニット名.ピン番号->ネット名テーブルを生成するクラス PACKAGES部は確認のみ VPPLであること、TYPE; ユニット名がテーブルに存在すること NET部は ①ノード名を抽出 ②ユニット名.ピン番号を抽出 ユニット名.ピン番号->ノード名の連想配列作成
-
class
diagram2vppl.
vpplWriter
(fnamVPPL, typ, attr, node, um)[ソース]¶ VPPL Writer Class.
VPPLソースファイルを生成するクラス
-
genCONV
(unit_name)[ソース]¶ convolutionLayer
コンボルーションレイヤ生成の上位構造 ### iLimit, iSTEP, oLimit, oSTEP, iCH, oCH, kSIZE, kSTRIDE, iSIZE, oSIZE, q$ エラーなら真を返す
-
genCONV_L
(unit_name)[ソース]¶ convolutionLayer L
サイズ別コンボルーションレイヤ生成構造 iLimit, iSTEP, oLimit, oSTEP, iCH, oCH, kSIZE, kSTRIDE, iSIZE, oSIZE, q$ .1 IN .2 OUT .3 W .4 Win .5 FP .6 BP エラーなら真を返す
-
genCONV_M
(unit_name, kSIZE, kSTRIDE, iSIZE, oSIZE)[ソース]¶ convolutionLayer M
iLimit, iSTEP, oLimit, oSTEP, iCH, oCH, kSIZE, kSTRIDE, iSIZE, oSIZE, q$ .1 IN .2 OUT .3 W .4 Win .5 FP .6 BP エラーなら真を返す
-
genCONV_S
(unit_name, kSIZE, kSTRIDE, iSIZE, oSIZE)[ソース]¶ convolutionLayer S
iLimit, iSTEP, oLimit, oSTEP, iCH, oCH, kSIZE, kSTRIDE, iSIZE, oSIZE, q$ .1 IN .2 OUT .3 W .4 Win .5 FP .6 BP エラーなら真を返す
-
genLCN
(unit_name)[ソース]¶ local Contrast Normalization Layer
ローカル・コントラスト正規化レイヤの生成 nCH, kSIZE, iSIZE, oSIZE, q$ エラーなら真を返す
-
genPOOL
(unit_name)[ソース]¶ poolingLayer
プーリングレイヤ生成の上位構造 ### iCH, oCH, kSIZE, kSTRIDE, iSIZE, oSIZE, q$
-
genPOOL_X
(unit_name, kSIZE, kSTRIDE, iSIZE, oSIZE)[ソース]¶ poolingLayer X
サイズ別プーリングレイヤ生成構造 iLimit, iSTEP, oLimit, oSTEP, nCH, kSIZE, kSTRIDE, iSIZE, oSIZE エラーなら真を返す
-
processNet
()[ソース]¶ process net method
モードを進めながらネットを処理していく最上位メソッド 途中でエラーがあれば偽を返す。 モード0: ファイルコメント, solution モード1: パラメータ部 モード2: プロセス部 モード3: グローバル部 モード4: procヘッダ(~initialize部) モード5: iteration部 モード6: ファイル末尾部
-
set_pointer
(unit_name, pin, ptr, opt=False, forceSTEP='')[ソース]¶ set pointer
set_pointer関数を生成する。生成できれば真を返す。 opt==False(デフォルト, パラメータのnLIMIT, nSTEPから生成 opt==True(パラメータのnLIMITは使用するが、nSTEPを無視してforceSTEPを使用
-
-
class
diagram2vppl.
SwriterDNN
(fname, typ, attr, node, um)[ソース]¶ S Expression Writer Class for DNN DB.
Scheme処理系で読み込み可能な形式でデータベースを出力する DBでもノードという名称を使っているので注意。(こちらは識別のためのユニークな数字) 「DBノード名」は一意の部品番号をとる。 U部品の入出力端子に結合していない部品(WORKの全て、PARAMのほとんど)は無視される 属性 #1=レイヤ重み(本クラスでは決定できないのでオール1を与える)。別のプロファイリングプログラムで書き換えられる。 #2=ノードタイプ #3=属性値リスト