NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ブール配列はDMAにおいて利用できないのですか?

FPGAを用いてプログラムを行っています。その中で、ブール配列を用いているのですが、これをDMAで読み込みたいのですが、何か良い方法はないでしょうか。
0 件の賞賛
メッセージ1/3
3,472件の閲覧回数
平素より弊社製品をご利用いただきまして誠にありがとうございます。
日本ナショナルインスツルメンツ、技術部の和氣と申します。
 
FPGAのプログラムでブール配列のDMA転送について、DMAを設定する時はU32(符号なしの32ビット整数)のデータタイプしかございません。
そこで考えられる方法としまして、DMAの場合なら集録したブール値に対して、
「ブールから(0,1)に変換」関数(ブールパレット参照)で一度数値にして、それをU32に変換するか二つの値を繋げて、
DMA転送することができるかと思います。そこでRT又はWindows上で再度「0に等しくない」関数で戻すことができます。
しかしこの場合、送る速さによって負荷が大きくなりすぎる場合があるかと思います。
また同じような方法で「ブール配列を数値に変換」関数で、まとめたブール配列を数値に変換することもできます。
集録したデータを間引いて送るか、全データを送るかによって、どちらの方法が一番効率的かになってきます。
 
またDMAでなくても良く、そこまで頻繁に(10ミリ秒以上)データを取得しないようでしたら、普通にスカラブール表示器をFPGAに作成し、
その値をRT又はWindowsの間隔で取得するのも良いかと思います。データがそこまで要しないようでしたら、
この方法が一番簡単になるかと思います。
 
大抵の場合、データ量が多すぎますと、グラフ表示、データ保存、データ解析などが困難になる可能性もありますので、
一度色々な方法でお試し願います。
 
以上、ご参考にして頂ければ幸いです。もしご不明な点などございましたら、再度フォーラムに書き込みをお願い致します。
 
和氣 | 技術部 日本ナショナルインスツルメンツ株式会社
 
0 件の賞賛
メッセージ2/3
3,438件の閲覧回数
丁寧な回答ありがとうございました。
いろいろ試してみたいと思います。
0 件の賞賛
メッセージ3/3
3,411件の閲覧回数