###背景
vivadoで回路開発をする場合、chipscopeで簡単な信号解析ができます。それでも、固定小数の変換や波形のレンジ指定が煩雑になりますし、トリガー毎の背景色が邪魔で観察がしにくい。
このため、CSVにexportしてexcelで加工して可視化していました。でもデータが増えると処理が遅くなります。あまりの遅さに耐えられなくなったため、CSVファイルをSciLabで分析することにしました。
chipscopeデータのExport
あとから16進数を変換するのは大変なので、予めvivadoで全信号をsigned指定しておく。キャプチャデータをCSV形式でexportする。
CSVデータ読み込み
`
DATADIR='データファイルのディレクトリ';
//ファイル名の取得 この辺りは適宜
files=listfiles(DATADIR+'ila*.csv');
fn=files(1);
//全部読み取る。但し先頭はNanとなる。型は'double' or 'string'
//16進数のまま読み込むならば'string'を指定すること
raw=csvRead(fn,',',型);
//観察したい信号だけ選ぶ
dat=cat(2,raw(:,カラム番号1),raw(:,カラム番号2),raw(:,カラム番号3));
//(必要に応じて)トリガー後最低2サンプルキャプチャするので1つ捨てる
dat2=dat(2:2:length(dat(:,1)),:);
//作画して確認
clf;plot2d(dat2(2:1000,2:$));
`
変数エディタから作画することで、観察が簡単になりました。あたりをつけてから、スクリプトで作画すればよさそう。
##SciLab関連ドキュメントリンク
install
macOSでSciLabを動かすまで
SciNoteのオートコンプリートをとめたい
実践
SciLabでCSV読み込み
SciLabでGUIを使ってみる
Mac/Windows共用scilabスクリプト未公開
SciLabでフィルタを適用する未公開
プロットメモ未公開
プロットあれこれ未公開
他の言語と比較・書き換え
Scilab (NumPy) - plotの書き方
[配列と文字列処理の比較](https://qiita.com/0x20FE/items/ b6ea768692297b721951)
関数とオブジェクトの書き方メモ
Scilab,NumPy,R行列処理の比較
##履歴
2019.11.26 更新
2019.12.05 カラムデータ切り出し部分の諸々誤記を訂正
2020.08.18 関連リンク追加