インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

17.7.9.2. PPSでのパルス列の生成

PPSでパルス列を生成するには、次の内容を実行します。

  1. レジスター459 (PPS Control Register) のビット [6:5] (TRGTMODSEL) で11または10 (割り込み用) をプログラミングし、Target Timeレジスター (レジスター455および456) をPPS信号出力の開始時間に使用することをMACに指示します。
  2. Target Timeレジスター (レジスター455および456) で開始時間の値をプログラミングします。
  3. レジスター473 (PPS0 Width Register) で、PPS信号出力におけるパルス列間の間隔の値をプログラミングします。
  4. レジスター473 (PPS0 Width Register) でPPS信号出力の幅をプログラミングします。
  5. レジスター459 (PPS Control Register) のビット [3:0] (PPSCMD) を0010にプログラミングし、Target Timeレジスター (レジスター455および456) にプログラムされている開始時間に、PPS信号出力でパルスの列を生成するようにMACに指示します。デフォルトで、PPSのパルス列は、「STOP Pulse train at time」コマンドまたは「STOP Pulse Train immediately」コマンドで停止しない限りフリーランニングです。
  6. Target Timeレジスター (レジスター455および456) で停止値をプログラミングします。Target Timeレジスター (レジスター455および456) を再度プログラミングする前に、レジスター456 (Target Time Nanoseconds Register) のビット31 (TSTRBUSY) がクリアされていることを確認します。
  7. ステップ6 で指定したプログラムされている停止時間が過ぎた後で、レジスター459 (PPS Control Register) のPPSCMDフィールド (ビット3:0) を0100にプログラミングし、PPS信号出力のパルス列を停止します。

パルス列は、PPSCMDフィールドに0101をプログラミングすることにより、いつでも停止することができます。同様に、ステップ7 で発行されたStop Pulse trainコマンドは、PPSCMDフィールドに0110をプログラミングすることにより、ステップ6 でプログラムされている時間が過ぎる前にキャンセルすることが可能です。パルス列の生成は、PPSCMDフィールドに0011をプログラミングすることにより、ステップ2 でプログラムされている開始時間の前にキャンセルすることができます。