NI製品ディスカッション

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

PXI-7811R(FPGAモジュール)で20MHzクロックの出力方法は?

PXI-7811Rでは40MHz出力が可能とありますが、同モジュールで20MHzのクロック信号を出力するには
どのようにプログラミングすればよいでしょうか。
0 件の賞賛
メッセージ1/6
6,030件の閲覧回数
いつもお世話になっております。
日本NI技術部の数馬と申します。

20MHzクロックを出力するには、そのためのプログラムを作成する必要があります。
一般的な方法としては、ループの中でDIOラインに対し、FalseとTrueを順番に書き込む
ことにより、パルスを作成することが可能です。ループが回る速度は遅延関数をおき、適切なパラメータ
を入力することで決定されます。FPGAボードはタイムベースクロックのレートを変更することができます。
デフォルトでは40MHzのタイムベースクロックが使われます。クロック1ティック毎にTRUE/FALSE
を切り替えれば、20MHzのクロックになります。

プログラムのイメージは以下のようになります。

ご確認いただければ幸いでございます。以上よろしくお願いいたします。

日本NI 数馬

このメッセージは 12-04-2006 12:17 AMに S.Kazuma が編集しています。

0 件の賞賛
メッセージ2/6
5,993件の閲覧回数
日本NI技術部 数馬殿
 ご回答ありがとうございます。
 添付頂いたファイルのようにコーディングして実行させて
 みましたが、約2.8MHz(350nSec)のクロック以上が出ませんでした。
 実際に作成したプログラム構成の画像を添付致しましたので
 アドバイスいただければ幸いで御座います。
 
以上 宜しくお願い致します。
0 件の賞賛
メッセージ3/6
5,960件の閲覧回数
ご連絡いただきまして誠にありがとうございます。

失礼いたしました。デジタル出力の速度が追いつかないために、ループが設定する速度に追いついて
いないようです。以下のようなプログラムを作成していただき、動作確認をしていただいてよろしいでしょうか?

以上よろしくお願いいたします。
日本NI数馬
0 件の賞賛
メッセージ4/6
5,891件の閲覧回数
日本NI 数馬殿
 
添付のプログラムの通り作成いたしましたが、下記のようなエラーが出力されます。
「Error Code 61056:Component ddata00_res has invalid arbitration for Single-Cycle Timed Loops.」
「Error Code 61056:Component denable00_res has invalid arbitration for Single-Cycle Timed Loops.」
参考までに、このときのプログラムとエラーメッセージの画像を添付します。
 
英語のディスカッションフォーラムを参考にして現在はFPGA I/O Propertiesを以下のように
設定し20MHzのクロックが動作していますが、このFPGA I/O Properties設定の必要性について
詳しく教えていただけないでしょうか。
 
  FPGA I/O Propertiesデフォルト設定
   Arbitration for Output Data : Always Arbitrate
   Arbitration for Output Enable : Always Arbitrate
 
  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
 
  FPGA I/O Properties変更後 
   Arbitration for Output Data : Never Arbitrate
   Arbitration for Output Enable : Never Arbitrate
 
以上 よろしくお願い致します。
 
0 件の賞賛
メッセージ5/6
5,860件の閲覧回数
いつもお世話になっております。
日本NI数馬です。

Arbitrateが有効になっていると、IOノードの出力が完了するまでに複数ティック分(ティックは40MHzタイムベースの1クロック)かかります。
このためシングルサイクルドループでは使用することができません。

Arbitrateを無効にすることにより、IOノードの出力が完了するのが1ティックになります。

以上ご不明な点がございましたらご連絡をお願いいたします。
0 件の賞賛
メッセージ6/6
5,741件の閲覧回数